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