基于CPLD的I2C總線接口設計

2.6 12CPORT單元
本單元是整個設計的核心,用于完成數據的I2C總線輸出以及I2C總線輸入數據的讀入。同時產生接口模塊的各種工作狀態。
該單元的工作過程為:在SysCLK的下降沿分別讀入工作使能信號和工作時序信號,如果此時EnIdle=‘1’則強制I2C總線進入空閑模式;如果EnStart=‘1’,則使I2C總線輸出開始信號;如果EnWrite=‘1’,則使I2C總線輸出8位數據信號;如果EnInACK=‘1’,則從I2C總線讀入從機響應信號;如果EnRead=‘1’,則從I2C總線讀入8位數據;如果EnOutACK=‘1’。則使I2C總線輸出主機響應信號;如果EnStop=‘1’,則使I2C總線輸出結束信號;在整個工作過程中,模塊會自動根據工作情況,設置各種狀態控制信號。
圖3是用QuartusII9.0對該單元仿真的時序圖。本文引用地址:http://cqxgywz.com/article/191294.htm

2.7 PcPort單元的實現
該單元是模塊與CPU的接口,CPU通過該單元向接口模塊寫入工作模式控制信息、需要發送的數據以及I2C工作速度控制信息;同時通過該單元讀入從機響應信息、從機輸出數據、發送接收寄存器狀態等信息。












評論