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