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