今天介紹I2C串行總線(xiàn),相比較之前的一些內容,這個(gè)相對難理解一些。常用的串行總線(xiàn)有很多,現只簡(jiǎn)單地說(shuō)一下I2C總線(xiàn)。
本文引用地址:http://dyxdggzs.com/article/201611/322444.htmI2C總線(xiàn)總線(xiàn)是PHLIPS公司推出的一種串行總線(xiàn),是具備多主機系統所需的包括總線(xiàn)裁決和高低速器件同步功能的高性能串行總線(xiàn)。
I2C總線(xiàn)只有兩根雙向信號線(xiàn)。一根是數據線(xiàn)SDA,另一根是時(shí)鐘線(xiàn)SCL。

I2C總線(xiàn)通過(guò)上拉電阻接正電源。當總線(xiàn)空閑時(shí),兩根線(xiàn)均為高電平。連到總線(xiàn)上的任一器件輸出的低電平,都將使總線(xiàn)的信號變低,即各器件的SDA及SCL都是線(xiàn)“與”關(guān)系。

I2C總線(xiàn)進(jìn)行數據傳送時(shí),時(shí)鐘信號為高電平期間,數據線(xiàn)上的數據必須保持穩定,只有在時(shí)鐘線(xiàn)上的信號為低電平期間,數據線(xiàn)上的高電平或低電平狀態(tài)才允許變化。

SCL線(xiàn)為高電平期間,SDA線(xiàn)由高電平向低電平的變化表示起始信號;SCL線(xiàn)為高電平期間,SDA線(xiàn)由低電平向高電平的變化表示終止信號。

起始和終止信號都是由主機發(fā)出的,在起始信號產(chǎn)生后,總線(xiàn)就處于被占用的狀態(tài);在終止信號產(chǎn)生后,總線(xiàn)就處于空閑狀態(tài)。連接到I2C總線(xiàn)上的器件,若具有I2C總線(xiàn)的硬件接口,則很容易檢測到起始和終止信號。
接收器件收到一個(gè)完整的數據字節后,有可能需要完成一些其它工作,如處理內部中斷服務(wù)等,可能無(wú)法立刻接收下一個(gè)字節,這時(shí)接收器件可以將SCL線(xiàn)拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準備好接收下一個(gè)字節時(shí),再釋放SCL線(xiàn)使之為高電平,從而使數據傳送可以繼續進(jìn)行。
基本上就是這么多,最重要的是實(shí)踐。
評論