當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 串口基本知識及串口協(xié)議詳解
一:串口基本知識
1.傳輸模式
單工/半雙工/全雙工:
單工:任何時候數(shù)據(jù)只能朝一個方向傳輸
半雙工:數(shù)據(jù)可以向兩個方向傳輸,任何同一時刻只能朝同一方向傳輸
全雙工:數(shù)據(jù)可以同時向兩個方向傳輸
2.CPU感知外接硬件變化通常有3種方式:
1> 輪詢;
// 定時對各種設(shè)備輪流詢問一遍有無處理要求,有要求就處理,處理完回歸CPU日常工作。- 適合硬件變化頻繁的狀況
2> 中斷;
// 當(dāng)有硬件設(shè)備處理要求是,CPU啟動輸入輸出設(shè)備存檔準(zhǔn)備數(shù)據(jù),I/O完成發(fā)出中斷信號,接收中斷處理數(shù)據(jù),隨后某個時刻繼續(xù)工作。 - 適合硬件變化不是特別頻繁的狀況
3>DMA;
// 直接內(nèi)存存取,direct memory access,數(shù)據(jù)在內(nèi)存與I/O設(shè)備間直接進(jìn)行成塊傳輸。
再來就是串口協(xié)議:通信協(xié)議
UART是通用異步收發(fā)傳輸器,使用RxD和TxD兩根線實現(xiàn)異步全雙工通信;為確保通信可靠,可以在通信兩邊接共地;因此,完整的UART通信只需最少3根線即可。
RxD是發(fā)送數(shù)據(jù)線,TxD是接收數(shù)據(jù)線,通信雙方使用交叉互聯(lián),RxD接對方TxD,TxD接對方RxD。UART使用標(biāo)準(zhǔn)的TTL/CMOS電平(0~5V,0~3.3V,0~2.5V,0~1.8V)來表示數(shù)據(jù),高電平表示1,低電平表示0.為了增強(qiáng)抗干擾能力,提高傳輸長度,可將TTL/CMOS 電平轉(zhuǎn)換為RS232電平邏輯電平,3~12V表示0,-3~-12V表示1(RS232為負(fù)邏輯)
1)UART平時處于空閑狀態(tài),邏輯1狀態(tài)。
2)當(dāng)有數(shù)據(jù)發(fā)送時,先發(fā)送起始位,即將TxD拉低并維持1位時間,接收方在檢測到起始位下降沿,等待1.5位后開始一位一位檢測數(shù)據(jù)。
3)發(fā)送數(shù)據(jù),UART數(shù)據(jù)一幀可以是5,6,7,8位等,一般是8bit,一個字節(jié)。數(shù)據(jù)發(fā)送是先發(fā)送低位,依次發(fā)送,直到最高位。
4)可以使用0或者1bit的校驗位,校驗位可以是奇校驗或者偶檢驗。奇校驗:數(shù)據(jù)加校驗位中1的個數(shù)為奇數(shù);偶校驗:數(shù)據(jù)加校驗位中1的個數(shù)為偶數(shù)。
5)最后是停止位,數(shù)據(jù)線恢復(fù)到空閑狀態(tài),停止位可以是1,1.5,2位。
2.串口定義
引腳1:DCD 載波檢測
引腳2:RXD 接收數(shù)據(jù)
引腳3:TXD 發(fā)送數(shù)據(jù)
引腳4:DTR 數(shù)據(jù)終端準(zhǔn)備好
引腳5:SG 信號地
引腳6:DSR 數(shù)據(jù)準(zhǔn)備好
引腳7:RTS 請求發(fā)送
引腳8: CTS 清除發(fā)送
引腳9: RI 振鈴提示