清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(一)
I2C是一種雙向2線制同步串行通訊接口,是一類非常經典的串行總線通訊,理解好I2C通訊會幫助理解USB通訊、以太網通訊中的握手、數據幀等環節。
I2C的發展歷史:
SPI串行通訊主要是由MOTOROLA公司提出的,MOTOROLA公司的半導體部門獨立出來成為后來的freescale。I2C通訊是由PHILIPS公司提出的,PHILIPS公司的半導體部門獨立出來成為后來的NXP。2015年NXP公司并購freescale公司。
I2C(Inter IC Bus)的基本特征:
- 串行
- 同步(主機產生時鐘線)
- 單端(時鐘和數據線上的信號是單端而非差分,用3.3V或5V代表邏輯1)
- 雙向(但非雙工,因此需要有協議規定數據傳輸的方向)
- 主從(Mater/Slave)
- 總線(Bus)
I2C(Inter IC Bus)的電氣特性:
- SDA 串行數據線
- SCL 串行時鐘線
- 所有的SDA引腳,所有的SCL引腳,都是邏輯“與”的關系(只要總線上有任何一個主/從輸出邏輯0,則總線對地導通變為0電平)
- SDA和SCL都接了上拉電阻(Pull-Up)
- 總線空閑時,都是高電平(不消耗電流)
- 兼容性好,可以是5V或3.3V電平標準(需和主/從機支持的電平標準匹配)
如果將SDA和SCL的電平狀態看做是兩只小孩子玩的氫氣球,將氫氣球飄上去和拉下來的狀態看做是SDA或SCL線的先平狀態,飄起來的時候為高電平,拉下來的時候為低電平。然后將拉掛載在SDA和SCL線上的主/從設備看做是拉著氫氣球的孩子們。平時我們是將這兩只氫氣球拴著,這時候兩只氫氣球都是飄起來的,即SDA和SCL都為高電平。這時候有一些小朋友過來,他們共同用兩只手分別牽著這兩只氫氣球。當所有小孩都不往下拉的時候氫氣球是飄上去的(SDA或SCL為高電平),這時候小孩子們完全不用費力氣(總線空閑時不消耗電流)。當有一個小孩的任何一只手用力(SDA或SCL需消耗電流)往下拉時,對應的氫氣球就會被拉下來(SDA或SCL為低電平)。
I2C(Inter IC Bus)的優點:
I2C(Inter IC Bus)的電平邏輯:
I2C(Inter IC Bus)的起始和停止信號:
?
?
?
?
?
總結
以上是生活随笔為你收集整理的清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 12c缩容磁盘组,orac
- 下一篇: javascript --- [读书笔