<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 藍牙串口通訊總線(xiàn)——I2C/SPI/UART

藍牙串口通訊總線(xiàn)——I2C/SPI/UART

發(fā)布人:美迅物聯(lián)網(wǎng) 時(shí)間:2024-01-22 來(lái)源:工程師 發(fā)布文章

嵌入式工程師在做串口通信調試工作的時(shí)候,會(huì )經(jīng)常用到I2C、SPI、UART這3條總線(xiàn),I2C、SPI、UART這三種通信總線(xiàn)在嵌入式領(lǐng)域很常見(jiàn),目前主流的SOC芯片都內置了這三種總線(xiàn)的控制器,各種Sensor、Touch、藍牙模塊、WIFI模塊等也都兼容這三種通信協(xié)議的1種以上。那么這三條通信總線(xiàn)有什么區別呢?工業(yè)物聯(lián)網(wǎng)無(wú)線(xiàn)通信專(zhuān)業(yè)廠(chǎng)商為您一一細說(shuō)——

  I2C:半雙工、同步、串行傳輸,物理上只有兩根線(xiàn)(SDA/SCL);傳輸數據必須8位8位的傳輸。

  I2C串口通信傳輸步驟

  1.在SCL線(xiàn)為高電平時(shí),主機通過(guò)將SDA線(xiàn)從高電平切換到低電平來(lái)啟動(dòng)總線(xiàn)通信;

  2.主機向總線(xiàn)發(fā)送要與之通信的從機的7位或10位地址,以及讀/寫(xiě)位;

  3.每個(gè)從機將主機發(fā)送的地址與其自己的地址進(jìn)行比較。如果地址匹配,則從機通過(guò)將SDA線(xiàn)拉低一位返回一個(gè)ACK位。如果主機的地址與從機的地址不匹配,則從機將SDA線(xiàn)拉高。

  4.主機發(fā)送或接收數據幀;

  5.傳輸完每個(gè)數據幀后,接收設備將另一個(gè)ACK位返回給發(fā)送方,以確認已成功接收到該幀;

  6.隨后主機將SCL切換為高電平,然后再將SDA切換為高電平,從而向從機發(fā)送停止條件。

  SPI:全雙工、同步、串行傳輸,收發(fā)獨立,傳輸速率高,但是沒(méi)有指定的流控制,沒(méi)有應答機制確認是否接收到數據。物理上4根線(xiàn)(CLK/SDI/SDO/CS),因為是全雙工,并且不需要尋址,所以速度要比I2C快,但是占用的物理線(xiàn)的數量要比I2C多;通信時(shí)可以一位一位的傳輸數據。

  SPI串口通信傳輸步驟:

  1.主機輸出時(shí)鐘信號;

  2.主機拉低SS/CS引腳,激活從機;

  3.主機通過(guò)MOSI將數據發(fā)送給從機;

  4.如果需要相應,則從機通過(guò)MISO將數據返回給從機。

  UART:全雙工、異步、串行傳輸,收發(fā)獨立,UART總線(xiàn)并沒(méi)有時(shí)鐘線(xiàn),所以需要提前約定對應的波特率,傳輸速度較慢,物理上4根線(xiàn)(VCC/TX/RX/GND),雖然速度慢,但是可用于不同主機間的通信,通常用于debug調試非常方便;傳輸時(shí)數據位可以5、6、7、8位。

  UART串口通信傳輸步驟:

  1.發(fā)送UART從數據總線(xiàn)并行接收數據;

  2.發(fā)送UART將起始位、奇偶校驗位和停止位添加到數據幀;

  3.整個(gè)數據包從發(fā)送UART串行發(fā)送到接收UART。接收UART以預先配置的波特率對數據線(xiàn)進(jìn)行采樣;

  4.接收UART丟棄數據幀中的起始位、奇偶校驗位和停止位;

  5.接收UART將串行數據轉換回并行數據,并將其傳輸到接收端的數據總線(xiàn)。

  單工、半雙工、全雙工

  單工:數據只能在一個(gè)方向上傳輸。

  半雙工:數據可以在兩個(gè)方向上進(jìn)行傳輸,但是同一時(shí)刻,只允許數據在一個(gè)方向上傳輸,相當于單工通信的分時(shí)復用。

  全雙工:數據可以同時(shí)在兩個(gè)方向上傳輸,相當于兩個(gè)單工通信的結合。

  同步通信和異步通信

  同步是阻塞模式,異步是非阻塞模式。

  同步通信要求發(fā)收雙方具有同頻同相的同步時(shí)鐘信號(一般共用一個(gè)時(shí)鐘),同步通信效率高。

  異步通信的收發(fā)雙方?jīng)]有同步時(shí)鐘,比如UART,收發(fā)雙方僅僅是約定,你按照什么樣的速率發(fā),而我也按照這樣的速率去接收,這樣如果速度越快,那么信號寬度越窄,誤差就越大,所以異步通信效率較低。

  綜上所述,工業(yè)物聯(lián)網(wǎng)無(wú)線(xiàn)通信專(zhuān)業(yè)廠(chǎng)商要說(shuō)的是I2C、SPI、UART這三條總線(xiàn)在通信速度上,SPI最快,UART最慢;通信距離上,I2C和SPI通常用于片上通信,而UART通常用于設備間通信,比如PC機和我們要調試的產(chǎn)品設備。




*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: 總線(xiàn) 串口

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>