1、什么是串口?
USART是全雙工通用同步/異步收發器,是一種串行的通信設備。在嵌入式開發設計中經常被使用到,廣泛的被應用于主機與外圍設備的通信交互中,應用相當的廣泛。
1.1、串口中的 UART 和 USART有什么不同?
UART:指的是通用異步收發器;
USART:指的是通用同步和異步收發器。
當只使用異步通信功能時,這兩者是沒有區別的,區別在于USART比UART多了同步(時鐘)通信功能。
2、通信方式有哪些?
2.1、并行通信
并行通信指的是數據同時在多根數據線上進行發送或者接收。如下所示:
并行通信的優點:控制方式簡單,傳輸速度快,適用于距離比較近的傳輸。
并行通信的缺點:占用的數據線較多,對MCU資源少的單片機而言不是很友好,線路布局變復雜。
2.2、串行通信
串行通信指的是數據在同一根數據線上依次按位(bit)進行發送或者接收。如下圖所示:
串行通信方式的優點:占用數據線少,適合用于遠距離傳輸,系統布線簡單;
串行通信方式的缺點:控制方式復雜,傳輸速度較并行通信的方式要慢。
3、串行通信方式中的兩種方式
3.1、同步串行通信方式
同步通信的方式是發送方和接收方都必須采用同一個時鐘,收發雙方利用時鐘信號來確定每個信號位。如下圖所示:
這種方式把多個字符組成一個信息幀,每幀的開頭用同步字符來指示,是一種連續傳送數據的通信方式。即使在傳輸中沒有信息需要傳輸時,因為同步傳輸不允許中間有空隙,所以也要填上空字符。如下圖所示:
3.2、異步串行通行方式
異步串行通信方式是指通信的雙方使用各自的時鐘,以一個字符作為數據傳輸單元并且發送方發送字符的時間間隔不一定,是一種不規則數據段傳送的通信方式。如下圖所示:
4、串行通信方式的傳送方向
根據串行數據的傳輸方向,可以將通信分為單工、半雙工、全雙工。
1)單工:是指數據傳輸僅能沿一個方向,不能實現反向傳輸。
2)半雙工:是指數據傳輸可以沿兩個方向,但需要分時進行傳輸。
3)全雙工:是指數據可以同時進行雙向傳輸。
5、常用到的 USART 通信方式
在嵌入式中最常使用到的就是異步全雙工的USART通信方式,收發兩方各自使用自身的時鐘,收發可以相互獨立的進行。數據傳輸的示意圖如下:
異步串行通信是將一個字節數據加上起始位、校驗位、停止位,構成的字符幀。由于異步通信沒有同步時鐘,所以接收端要時刻處于接收狀態。
起始位: 在沒有數據需要傳送時,此時通信線上為邏輯“1”狀態。當發送端要發送一個字符時,首先發送一個邏輯“0”信號,即起始位,告訴接收端要開始發送一幀數據了。接收端檢測到這個低電平時,就開始準備接收數據信息了。
數據位: 在起始位發送完畢之后,發送端發出的就是數據位了,數據位一般是沒有嚴格的規定的,5~9位都可以。一般是低位先發,高位后發,按位依次進行傳輸。平時使用中一般都是選擇8bit的。
校驗位: 數據位發送完成之后,為了檢驗數據在傳輸過程中是否有出錯,可以選擇發送一個位進行校驗。使用的是奇偶校驗,當然也可以選擇不進行檢驗。
波特率: 是指數據傳輸的速率。表示每秒鐘傳送的bit位數。比如,一秒鐘傳送了120個字符,每個字符傳送10個bit(1個起始位 + 8個數據位 + 1個停止位),那么:波特率 = 10x120 = 1200 (bit/s)。平常使用中常用的波特率有9600、115200、19200、25600等。
6.1、USART編號上的差異
通過對比GD32和STM32同樣內核已經同樣引腳數的MCU手冊可以知道,兩者是有區別的。如下圖:
6.2、通信協議上的細微差異
GD在連續發送數據的時候每兩個字節之間會有一個Bit的Idle,而STM32沒有,如下圖為GD的發送波形:
GD的串口在發送的時候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
GD 和STM32 USART的這兩個差異對通信基本沒有影響,只是GD的通信時間會加長一點。
-
收發器
+關注
關注
10文章
3437瀏覽量
106065 -
通信設備
+關注
關注
3文章
338瀏覽量
32099 -
嵌入式開發
+關注
關注
18文章
1033瀏覽量
47607 -
USART
+關注
關注
1文章
195瀏覽量
30897
發布評論請先 登錄
相關推薦
評論