為了實現串口通信,需要在嵌入式linux下編寫相應的驅動程序。在嵌入式系統中,串口被看做終端設備tty。終端設備是unix體系中一個非常重要的對象,內容非常復雜,它是整個unix人機交互的基礎,其地位並不亞於文件系統在操作系統中的作用。筆者muge0913在此對uart驅動進行整理。
一、串口概述
串口分為:同步傳輸(usrt)和異步傳輸(uart),其中異步傳輸是嵌入系統中最長用的通信設備,串口常被當做控制台使用。
①同步傳輸:發送端和接收端使用同一個時鐘。其時序如下:
②異步傳輸:在數據傳輸過程中,接收時鐘和發送時鐘是不同步的,即在串行總線上並沒有時鐘線。
傳輸前有相應的起始位,然後緊接著發送數據位(5~8位有用戶定義),最後是奇偶校驗位和停止位。如圖:
二、串口物理層連接問題
因為串口電纜有交叉和直連接之分,其接口有公頭和母頭之分,所以其連接有6中連接方式:
①兩頭公頭的直線電纜
②兩頭母頭的交叉線
③兩頭公頭的交叉線
④兩個母頭的直線電纜
⑤一公頭一母頭的直線電纜
⑥一公頭一母頭的交叉線
在大多數的異步通信中不需要流的控制,所以3根線就能滿座嵌入式設備通信的要求,但是為了保持兼容常常使用下面的連接方法:
三、arm11中的uart
①概述:
S3C6410X的UART提供四個獨立的異步串行I / O(SIO)端口。異步串行I / O(SIO)端口,每個都可以在基於中斷或基於DMA模式。換句話說,UART可以產生中斷或DMA請求MEM和UART之間的數據傳輸。UART也可支持最大3Mbps的比特率。每個UART通道包含兩個64字節的FIFO的接收和傳輸的。
②特點