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