一,基礎知識
數據通信方式:
並行通信:利用多條數據線將數據的各位同時傳送。
串行通信:利用一條數據線將數據一位位地順序傳送。
異步通信:以一個字符爲傳輸單位,通信中兩個字符間的時間間隔是不固定的。
通信協議:通信雙方約定的一些規則,在異步通信時,對數據格式有如下約定:規定有空閒位,起始位,資料位,奇偶校驗位,停止位。
波特率:衡量數據傳輸速率標準
記錄每秒傳送的二進制位數,例如數據傳送速率爲120字符/秒,而每一位字符爲10位,則其傳送的波特率爲10*120=1200位/秒=1200波特
傳送方式:
單工方式:只能A向B發送數據
半雙工方式:A能向B發送,B能向A發送,當時A,B不能同時發送數據
全雙工方式:A,B能同時互相發送數據。
二,UART基本原理
通用異步收發器,用來串行傳輸數據,發送時:CPU將數據並行寫入UART,UART按照一定的格式在一根信號線上串行發出:接收時:UART檢測另一根信號線上的信號,
將串行數據放在緩衝區中,CPU可讀取UART獲得的這些數據。
從linux系統或者裸機程序中獲得數據送到發送緩衝區寄存器中,在FIFO方式,要發送的數據先寫入到FIFO寄存器,然後複製到發送移位器,通過發送數據引腳TxDn移位輸出,而接收數據從接收數據引腳RxDn輸入並移位,然後從接收移位器複製到FIFO寄存器。在非FIFO方式,要發送的數據先寫入發送保持寄存器,然後複製到發送移位器,通過TxDn引腳移位輸出,要接收的數據通過RxDn引腳並移位,然後從移位器複製到接收保持寄存器。
發送移位器是爲了讓數據一位一位的往外發送。
3.UART程序流程
1)UART初始化
設置波特率->設置數據傳輸格式->選擇通道工作模式
設置波特率:
UBRDIV=(int)(PCLK/(buad rate *16))-1
eg:波特率爲115200bps,UART時鐘PCK=40MHz,
UBRDIV=(int)(40000000/(115200*16))-1
設置數據傳輸格式:
ULCON,設置數據位,校驗位,奇校驗,還是偶校驗,停止位,流量控制
設置通道工作模式:
UCON,設置中斷模式,查詢模式或者DMA模式
2)發送數據
UTXHn
3)接收數據
URXHn