您好,登錄后才能下訂單哦!
這次來深入學習一下ARM串口通信的相關知識。
以三星公司的S5PV210系列為原型,通用異步接收機和發射機(UART)S5PV210提供四個獨立異步接口:串行輸入/輸出(I / O)端口。
所有的端口操作在一個基于中斷或DMA的模式。UART通過生成一個中斷或DMA請求在CPU和UART之間傳輸數據。
UART支持比特率3 mbps,每個UART通道包含兩個fif來接收和傳輸數據:
在通道0的FIFO里可以存256字節,通道1的FIFO里可以存64字節,通道2和通道3的FIFO里可以存16字節。
UART包括可編程的波特率;紅外(IR)發射器/接收器;一個或兩個停止位插入;6位,7位或8位數據寬度和奇偶校驗。
每個UART包含波特率發生器、發射機、接收機和一個控制單元,波特率的來源是PCLK或SCLK_UART。
發射機和接收機包含fifo和數據轉換器(uart shifter)。
要傳輸的數據被寫入Tx FIFO,并復制到數據轉換器(uart shifter)。然后,數據被通過Tx發送走。接收到的數據從接收數據處(RxDn)被復制到Rx FIFO。
uart異步收發裝置的特點:
RxD0、TxD0 RxD1、TxD1 RxD2,TxD2,RxD3和TxD3 是基于DMA或基于中斷操作的。
在通道0的FIFO里可以存256字節,通道1的FIFO里可以存64字節,通道2和通道3的FIFO里可以存16字節。(上面提到了)
至于流控啥的我們就不需要了解了,現在流控基本上也不需要了。
并且S5PV210芯片的串口裝置支持握手發射接收。
傳輸的數據幀是可編程的。它由一個起始位,五到八個數據位,一個可選則的奇偶校驗位,一到兩個停止位,這些東西由行控制位(ULCONn)來控制。
發送器也可以在一幀傳輸時間后產生一個中斷迫使串口輸出邏輯0狀態。這個模塊會在當前發送的數據完全發送完以后產生一個中斷信號。
中斷信號發送完之后,表示一幀數據已經成功發送了,發送器繼續發送數據到Tx FIFO(Tx保持寄存器,以防Non-FIFO模式)
類似于數據發送,接收的數據幀也可編程。它由一個起始位,五到八個數據位,一個可選的校驗位,一個兩個停止位,由行控制寄存器(ULCONn)來控制。
接收方檢測到溢出錯誤,奇偶校驗錯誤,誤幀和休息狀態,這些錯誤每一個都設置一個錯誤標志。
->溢出錯誤表明,新數據覆蓋舊數據之前舊的數據被讀取。
->奇偶校驗誤差表明,接收機已經探測到一個不期望的奇偶校驗結果。
->幀錯誤表明接收的數據沒有一個有效的停止位。
->休息狀態表明破壞條件表明RxDn處于邏輯0狀態超過了一幀的傳輸時間。
如果數據沒有在三個word接收的時間內被接收,則會產生收發超時。
在FIFO模式下,Rx FIFO不是空的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。