基于CPLD的I2C總線接口設(shè)計


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