I2C总线的SDA和SCL
串行數據線SDA——負責在設備間傳輸串行數據?
串行時鐘線SCL——負責產生同步時鐘脈沖
SCL\SDA是I2C總線的信號線。
I2C總線是共享的總線系統,因此可以將多個I2C設備連接到該系統上。連接到I2C中總線上的設備既可以用作主設備,也可以用作從設備。
主設備負責控制通信,通過對數據傳輸進行初始化/終止化,來發送數據并產生所需的同步時鐘脈沖。從設備則是等待來自主設備的命令,并響應命令的接收。且同步時鐘信號只能由主設備產生。
當總線空閑時,SDA和SCL都處于高電平狀態,當主機要和某個從機通訊時,會先發送一個開始條件,然后發送從機地址和讀寫控制位,接下來傳輸數據秘數據傳輸結束時,主機會發送停止條件。傳輸的每個字節為8位,高位在前,低位在后。(SDA是雙向數據線,SCL是時鐘線SCL。在I2C總線上傳送數據,首先送最高位,由主機發出啟動信號,SDA在SCL高電平期間由高電平跳變為低電平,然后由主機發送一個字節的數據。數據傳送完畢,由主機發出停止信號,SDA在SCL高電平期間由低電平跳變為高電平。)
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據,數據傳輸過程中只有在SCL線為低電平期間,SDA上的電平允許變化。
從機地址:主機發送的第一個字節為從機地址,高7位表示地址,最低位為R/W讀寫控制位,1表示讀操作,0表示寫操作。
應答信號:每傳輸完成一個字節的數據,接收方就需要回復一個ACK(acknowledge)。寫數據時由從機發送ACK,讀數據時由主機發送ACK。當主機讀到最后一個字節時,可發送NACK然后跟結束信號。
數據:從機地址發送完后可能會發送一些指令,依從機而定,然后開始傳輸數據,由主機或者從機發送,每個數據為8位,數據的字節數沒有限制。在開始信號之后,SDA和SCL先都處于低電平,當要傳輸數據時SDA先為高,之后SCL再跳變為高,才可進行數據的傳輸:
重復開始信號:在一次通信過程中,主機可能需要和不同的從機傳輸數據或者需要切換讀寫操作時,主機可以再發送一個開始信號。
結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。
總結
以上是生活随笔為你收集整理的I2C总线的SDA和SCL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地铁与日本移动互联网
- 下一篇: 广东省科技进步奖二等奖!天翼物联NB-I