8051單片機的I2C接口并行擴展
(2)I2C總線未連接,要進行讀操作。8051的操作:
①電路寫控制字W2;②寫器件內地址第1字節; ③當bz=1時寫器件內地址第2字節…;④當bz=1時讀第1字節…。
I2C的操作:
當接收到該控制字W2后操作為:①置bz=1,啟動I2C總線;②根據控制字中的器件地址以出第1個字節(器件選擇、寫);③發送器件內地址;④關閉I2C總線;⑤啟動I2C總線;⑥第2次發送器件選擇字節、讀;⑦接收數據內容,置bz=1…。
(3)I2C總線已連接,換一個I2C器件或換新地址,要進行寫操作。
8051的操作:
①寫控制字W5;②當bz=1時寫器件內地址第1字節;③當bz=1時寫器件內地址第2字節…;④當bz=1時寫第1字節…。
I2C的操作:
當接收到該控制字W5后操作為:①置bz=1,關閉I2C總線;②啟動I2C總線;③根據控制字中的器件地址發出第1個字節(器件選擇、寫);④發送器件內地址,置bz=1。
(4)I2C總線已連接,換一個I2C器件或換新地址,要進行讀操作。
8051的操作:
①電路寫控制字W6;②寫器件內地址第1字節; ③當bz=1時寫器件內地址第2字節…;④當bz=1時讀第1字節…。
I2C的操作:
當接收到該控制字W6后操作為:①置bz=1,關閉I2C總線;②啟動I2C總線;③根據控制字中的器件地址發出第1個字節(器件選擇、寫);④發送器件內地址;⑤關閉I2C總線;⑥啟動I2C總線;⑦第2次發送器件選擇字節、讀;⑧接收數據內容,置bz=1…。
4 結 語
擴展接口芯片設計采用VHDL語言實現,芯片設計的全部程序均通過ALTERA公司的MAXPLUSⅡ軟件編譯,仿真結果正確。編譯、仿真后的VHDL 程序經下載線下載至EPM7128SLC84-15芯片,驗證正確。設計的接口時鐘要求6 MHz,可直接和單片機接口連接。
擴展后的接口,傳送一位數據只需要4個時鐘周期。擴展的接口,訪問I2C器件的時鐘可以自行設定,他們之間的通信不需要等待8051。一旦8051的并行數據送出,該接口可立即用自己設定的速度傳送。從而該接口在8051和I2C器件之間通信時,數據的傳送可達到并行的速度,這就是本接口擴展設計的最大優點。
由于使用的設計軟件是ALTERA公司的MAXPLUSⅡ軟件,下載仿真芯片為EPM7128SLC84該芯片延遲時間為15 s,延時時間過長;接口的設計本身對數據傳輸的時鐘也可進一步減少,更進一步提高數據傳輸的速度。基于以上兩點,還需要對本設計進一步優化,以期進一步提高性能與速度。
參考文獻
[1]何立明.I2C總線應用系統設計[M].北京:北京航天航空大學出版社,1995.
[2]曾繁泰,陳美金.VHDL程序設計[M].北京:清華大學出版社,2002.
評論