【總線】UART、Modbus、I2C、SPI、RS232、RS485及串口通訊常用參數


1、UART
UART
異步收發傳輸,作為集成於微處理器中的周邊設備,把並行輸入信號轉成串行輸出信號,(一般是RS-232C規格的,與類似Maxim的MAX232之類的標准信號幅度變換芯片進行搭配)作為連接外部設備的接口。
該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用於主機與輔助設備通信,如與PC機通信包括與監控調試器和其它器件,如EEPROM通信。
一個字符接着一個字符傳輸,一個字符的信息由起始位、數據位、奇偶校驗位和停止位組成。

傳輸時低位在前高位在后。

發送端和接收端必須按照相同的字節幀格式和波特率進行通信。
 
UART的設計采用模塊化的設計思想,主要分為 3個模塊:數據發送模塊、數據接收模塊及波特率發生器控制模塊。發送模塊實現數據由並行輸入到串行輸出,接收模塊實現數據由串行輸入到並行輸出,波特率發生器模塊控制產生UART時鍾頻率。
發送邏輯對從發送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)區別

1)傳輸方式不同。 RS-232采取不平衡傳輸方式,即所謂單端通訊(即所謂單端通訊.收、發端的數據信號是相對於信號地). 而RS485則采用平衡傳輸,即差分傳輸方式。
2)傳輸距離不同。RS-232適合本地設備之間的通信,傳輸距離一般不超過20m。而RS-485的傳輸距離
為幾十米到上千米。
3)RS-232 只允許一對一通信,而RS-485 接口在總線上是允許連接多達128個收發器。
4)rs232是全雙工的,也就是可以同時收發;
rs485是半雙工的,某一時刻只能收或只能發數據,否則,總線將癱瘓

 

 4、I2C

采用的是主從式通信方式,通信的過程完全由主設備仲裁。在通信之前,必須由主設備發送一個起始信號,決定數據是否可以開始傳送,並且在結束通信時,必須再由主設備發送一個結束信號,以表示通信已經結束。先傳輸高位。

 

5、SPI

主從方式工作,可以用全雙工通信方式同時發送和接收8(16)位數據。
MSB 先行或 LSB 先行並沒有作硬性規定,但要保證兩個 SPI通訊設備之間使用同樣的協定,一般都會采用圖 2 中的 MSB先行模式。
NSS 信號線由高變低,是 SPI 通訊的起始信號。NSS 是每個從機各自獨占的信號線,當從機在自己的 NSS 線檢測到起始信號后,就知道自己被主機選中了,開始准備與主機通訊。在圖中的標號6處,NSS 信號由低變高,是 SPI 通訊的停止信號,表示本次通訊結束,從機的選中狀態被取消。
MOSI及 MISO的數據在 SCK的上升沿期間變化輸出,在SCK 的下降沿時被采樣。即在 SCK 的下降沿時刻,MOSI 及 MISO 的數據有效
SPI 一共有四種通訊模式,它們的主要區別是總線空閑時 SCK 的時鍾狀態以及數據采樣時刻。

 

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、串口通訊常用參數

串口是一種非常通用的設備通信的協議(不要與 通用串行總線Universal Serial Bus(USB)混淆)。
串口通信的概念非常簡單,串口按位(bit)發送和接收字節。盡管比按字節(byte)的並行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。
典型地,串口用於ASCII碼字符的傳輸。通信使用3根線完成:
(1)地線(2)發送(3)接收
由於串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。
對於兩個進行通行的端口,這些參數必須匹配:
波特率
數據位
停止位
奇偶校驗
 
8、串口發送數據類型都有哪些?
(1)字符串
(2)十六進制數據

 https://blog.csdn.net/u010216127/article/details/9311975?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduend~default-1-9311975.nonecase&utm_term=串口下發的數據類型&spm=1000.2123.3001.4430

 

 

學習網址:https://blog.csdn.net/zhaoguanghua0407/article/details/78383619


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM