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

STM32的USART串口通訊程序

STM32_USART 串口通訊

完成STM32的USART串口通訊程序

基礎(chǔ)實(shí)驗(yàn)13-USART串口接收實(shí)驗(yàn)

16 . USART 串口通信實(shí)驗(yàn)

STM32的USART串口通訊程序

STM32與串口(Usart)的通俗介紹與使用(例子:串口控制小燈)

USART的使用

使用STM32G4 ----串口發(fā)送數(shù)據(jù)USART_TX的使用

USART串口通信總結(jié)

評(píng)論