1胸懈、UART基本概念
UART(Universal Asynchronous Receiver/Transmitter)即通用異步收發(fā)器,是串行通信一種通信技術(shù)腐芍,常用于單片機(jī)和電腦之間以及單片機(jī)和單片機(jī)之間的板級(jí)通信秦躯。是一種異步收發(fā)傳輸器,也是設(shè)備間進(jìn)行異步通信的關(guān)鍵模塊件蚕。UART負(fù)責(zé)處理數(shù)據(jù)總線和串行口之間的串/并郑叠、并/串轉(zhuǎn)換夜赵,并規(guī)定了幀格式;通信雙方只要采用相同的幀格式和波特率乡革,就能在未共享時(shí)鐘信號(hào)的情況下寇僧,僅用兩根信號(hào)線(Rx 和Tx)就可以完成通信過程摊腋,因此也稱為異步串行通信。
2嘁傀、UART通信協(xié)議
UART工作原理是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位地在UART總線上傳輸兴蒸。
串口配置基本屬性如下:
(1)波特率:每秒鐘發(fā)送的符號(hào)數(shù)
(2)起始位:先發(fā)出一個(gè)邏輯0的信號(hào),表示傳輸數(shù)據(jù)的開始
(3)數(shù)據(jù)位:衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)细办。標(biāo)準(zhǔn)的數(shù)據(jù)位可以是5橙凳、7、8位蟹腾,從最低位開始傳輸
(4)奇偶校驗(yàn)位:UART發(fā)送時(shí)痕惋,檢查發(fā)送數(shù)據(jù)中1的個(gè)數(shù)区宇,自動(dòng)在奇偶校驗(yàn)位上添上1或0娃殖,用于發(fā)送數(shù)據(jù)的校驗(yàn)數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn))议谷,以此來校驗(yàn)數(shù)據(jù)傳送的正確性炉爆。就比如傳輸“A”(01000001)為例:
當(dāng)為奇數(shù)校驗(yàn):”A”字符的8個(gè)bit位中有兩個(gè)1,那么奇偶校驗(yàn)位為1才能滿足1的個(gè)數(shù)為奇數(shù)(奇校驗(yàn));
當(dāng)為偶數(shù)校驗(yàn):”A”字符的8個(gè)bit位中有兩個(gè)1,那么奇偶校驗(yàn)位為0才能滿足1的個(gè)數(shù)為偶數(shù)(偶校驗(yàn))卧晓;
(5)停止位:數(shù)據(jù)結(jié)束的標(biāo)志芬首,可以是1位、1.5位逼裆、2位的高電平
(6)空閑位:處于邏輯1的狀態(tài)郁稍,表示當(dāng)前線路上無數(shù)據(jù)傳輸
3、UART的物理引腳
UART有4個(gè)pin(VCC胜宇,GND耀怜,RX,TX)桐愉,用的TTL電平财破,低電平為0(0V),高電平為1(3.3V或以上)从诲。
VCC:供電pin左痢,一般是3.3v
GND:接地pin,一般也可不接系洛,但是如果rx接收的數(shù)據(jù)有問題俊性,就要接上這個(gè)pin
RX:接收數(shù)據(jù)pin
TX:發(fā)送數(shù)據(jù)pin
4、UART的數(shù)據(jù)發(fā)送和接收
發(fā)送數(shù)據(jù)過程:空閑狀態(tài)描扯,線路處于高電平磅废,當(dāng)收到發(fā)送數(shù)據(jù)指令后,拉低電平一個(gè)數(shù)據(jù)位的時(shí)間荆烈,接著數(shù)據(jù)按低位到高位依次發(fā)送拯勉,數(shù)據(jù)位發(fā)送完畢竟趾,接著發(fā)送奇偶校驗(yàn)位和停止位,停止位為高電平宫峦,一幀數(shù)據(jù)發(fā)送結(jié)束岔帽;
接收數(shù)據(jù)過程:空閑狀態(tài),線路處于高電平导绷,當(dāng)檢測(cè)到線路的下降沿犀勒,說明線路有數(shù)據(jù)傳輸,按照約定的波特率從低位到高位接收數(shù)據(jù)妥曲,數(shù)據(jù)接收完畢后接著接收奇偶校驗(yàn)位并比較贾费,看奇偶校驗(yàn)位是否正確,如果正確則通知接收端設(shè)備準(zhǔn)備接收數(shù)據(jù)檐盟;
當(dāng)我們使用putty褂萧、SecureCRT等串口工具接收串口數(shù)據(jù)時(shí)出現(xiàn)異常,可能是在終端設(shè)置了流控葵萎,將流控關(guān)閉即可导犹。