基于CPLD的I2C總線接口設(shè)計(jì)
2.6 12CPORT單元
本單元是整個(gè)設(shè)計(jì)的核心,用于完成數(shù)據(jù)的I2C總線輸出以及I2C總線輸入數(shù)據(jù)的讀入。同時(shí)產(chǎn)生接口模塊的各種工作狀態(tài)。
該單元的工作過(guò)程為:在SysCLK的下降沿分別讀入工作使能信號(hào)和工作時(shí)序信號(hào),如果此時(shí)EnIdle=‘1’則強(qiáng)制I2C總線進(jìn)入空閑模式;如果EnStart=‘1’,則使I2C總線輸出開(kāi)始信號(hào);如果EnWrite=‘1’,則使I2C總線輸出8位數(shù)據(jù)信號(hào);如果EnInACK=‘1’,則從I2C總線讀入從機(jī)響應(yīng)信號(hào);如果EnRead=‘1’,則從I2C總線讀入8位數(shù)據(jù);如果EnOutACK=‘1’。則使I2C總線輸出主機(jī)響應(yīng)信號(hào);如果EnStop=‘1’,則使I2C總線輸出結(jié)束信號(hào);在整個(gè)工作過(guò)程中,模塊會(huì)自動(dòng)根據(jù)工作情況,設(shè)置各種狀態(tài)控制信號(hào)。
圖3是用QuartusII9.0對(duì)該單元仿真的時(shí)序圖。本文引用地址:http://www.ex-cimer.com/article/191294.htm
2.7 PcPort單元的實(shí)現(xiàn)
該單元是模塊與CPU的接口,CPU通過(guò)該單元向接口模塊寫入工作模式控制信息、需要發(fā)送的數(shù)據(jù)以及I2C工作速度控制信息;同時(shí)通過(guò)該單元讀入從機(jī)響應(yīng)信息、從機(jī)輸出數(shù)據(jù)、發(fā)送接收寄存器狀態(tài)等信息。
評(píng)論