異步收發傳輸,作為集成於微處理器中的周邊設備,把並行輸入信號轉成串行輸出信號,(一般是RS-232C規格的,與類似Maxim的MAX232之類的標准信號幅度變換芯片進行搭配)作為連接外部設備的接口。
該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用於主機與輔助設備通信,如與PC機通信包括與監控調試器和其它器件,如EEPROM通信。
傳輸時低位在前高位在后。
發送端和接收端必須按照相同的字節幀格式和波特率進行通信。
發送邏輯對從發送FIFO讀取的數據執行“並→串”轉換。控制邏輯輸出起始位在先的串行位流,並且根據控制寄存器中已編程的配置,后面緊跟着數據位(注意:最低位 LSB 先輸出)、奇偶校驗位和停止位。
在檢測到一個有效的起始脈沖后,接收邏輯對接收到的位流執行“串→並”轉換。此外還會對溢出錯誤、奇偶校驗錯誤、幀錯誤和線中止(line-break)錯誤進行檢測,並將檢測到的狀態附加到被寫入接收FIFO的數據中。
https://www.cnblogs.com/smartjourneys/p/7218390.html
百度百科:https://baike.baidu.com/item/UART/4429746
2、Modbus
1、ASCII模式與RTU模式的區別
(1)ASCII:消息中每個ASCII字符都是一個十六進制字符組成
(2)RTU:消息中每個8位域都是兩個十六進制字符組成
在同樣波特率下,RTU可比ASCII方式傳輸更多的數據
Modbus 通信協議詳解:https://www.cnblogs.com/txwtech/p/11104428.html
MODBUS通訊協議及編程:https://wenku.baidu.com/view/04c11bd380eb6294dd886cd6.html
Modbus 通訊協議幀數據之間的時間停頓間隔 “3.5字符”定義:http://www.51hei.com/stm32/3859.html
3、RS232、RS485
(1)RS232
RS232接口可以實現點對點的通信方式,但這種方式不能實現聯網功能。
個人計算機上的通訊接口之一,異步傳輸標准接口。
在串行通訊時,要求通訊雙方都采用一個標准接口,使不同的設備可以方便地連接起來進行通訊。
對於一般雙工通信,僅需幾條信號線就可實現,工業控制的RS-232口一般只使用RXD、TXD、GND三條線。
(2)RS485
RS485/MODBUS是現在流行的一種布網方式,實施簡單方便 ,支持RS485的儀表很多。
有兩線制和四線制兩種接線,四線制只能實現點對點的通信方式,現很少采用,現在多采用的是兩線制接線方式。
在RS485通信網絡中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來,而忽略了信號地的連接。RS-485接口采用差分方式傳輸信號方式,並不需要相對於某個參照點來檢測信號,系統只需檢測兩線之間的電位差就可以了。
(3)區別
2)傳輸距離不同。RS-232適合本地設備之間的通信,傳輸距離一般不超過20m。而RS-485的傳輸距離
為幾十米到上千米。
3)RS-232 只允許一對一通信,而RS-485 接口在總線上是允許連接多達128個收發器。
rs485是半雙工的,某一時刻只能收或只能發數據,否則,總線將癱瘓
4、I2C
采用的是主從式通信方式,通信的過程完全由主設備仲裁。在通信之前,必須由主設備發送一個起始信號,決定數據是否可以開始傳送,並且在結束通信時,必須再由主設備發送一個結束信號,以表示通信已經結束。先傳輸高位。
5、SPI
MSB 先行或 LSB 先行並沒有作硬性規定,但要保證兩個 SPI通訊設備之間使用同樣的協定,一般都會采用圖 2 中的 MSB先行模式。
MOSI及 MISO的數據在 SCK的上升沿期間變化輸出,在SCK 的下降沿時被采樣。即在 SCK 的下降沿時刻,MOSI 及 MISO 的數據有效
6、Modbus 、SPI,IIC,CAN和RS232,RS485區分
MODBUS協議是一種軟件協議,而RS232,RS485是一種電平標准,關系是在一種電平關系下應用一種MODBUS協議。MODBUS協議是一種人為約定的協議,他和SPI,IIC,CAN總線協議還是有些不同的,SPI,IIC,CAN總線這些協議必須是設備在硬件上支持的,可以說SPI,IIC,CAN總線是一種軟硬件的結合體,也就是常分為兩層物理層和協議層,MODBUS本身就是類似於協議層的東西,而RS232和RS485就是一種物理層電平的東西。
7、串口通訊常用參數
學習網址:https://blog.csdn.net/zhaoguanghua0407/article/details/78383619