串口通訊基礎及S3C2410 UART控制器
ULCONn (UART Line Control Register)見(jiàn)圖5-13
本文引用地址:http://dyxdggzs.com/article/201612/341184.htm

圖5-13
Word Length :資料位長(cháng)度
Number of Stop Bit :停止位數
Parity Mode :奇偶校驗位類(lèi)型
Infra-Red Mode :UART/紅外模式選擇(當以UART模式工作時(shí),需設為“0”)
UCONn (UART Control Register)見(jiàn)圖5-14
Receive Mode :選擇接收模式。如果是采用DMA模式的話(huà),還需要指定說(shuō)使用的DMA信道。
Transmit Mode :同上。
Send Break Signal :選擇是否在傳1幀資料中途發(fā)送Break信號。
Loopback Mode :選擇是否將UART置于Loopback測試模式。
Rx Error Status Interrupt Enable :選擇是否使能當發(fā)生接收異常時(shí),是否產(chǎn)生接收錯誤中斷。
Rx Time Out Enable :是否使能接收超時(shí)中斷。
Rx Interrupt Type :選擇接收中斷類(lèi)型。
選擇0:Pulse(脈沖式/邊沿式中斷。非FIFO模式時(shí),一旦接收緩沖區中有資料,即產(chǎn)生一個(gè)中斷;為FIFO模式時(shí),一旦當FIFO中的資料達到一定的觸發(fā)水平后,即產(chǎn)生一個(gè)中斷)
選擇1:Level(電平模式中斷。非FIFO模式時(shí),只要接收緩沖區中有資料,即產(chǎn)生中斷;為FIFO模式時(shí),只要FIFO中的資料達到觸發(fā)水平后,即產(chǎn)生中斷)
Tx Interrupt Type :類(lèi)同于Rx Interrupt Type
Clock Selection :選擇UART波特率發(fā)生器的時(shí)鐘源。

圖5-14
UFCONn (UART FIFO Conrtol Register)見(jiàn)圖5-15
FIFO Enable :FIFO使能選擇。
Rx FIFO Reset :選擇當復位接收FIFO時(shí)是否自動(dòng)清除FIFO中的內容。
Tx FIFO Reset :選擇當復位發(fā)送FIFO時(shí)是否自動(dòng)清除FIFO中的內容。
Rx FIFO Trigger Level :選擇接收FIFO的觸發(fā)水平。
Tx FIFO Trigger Level :選擇發(fā)送FIFO的觸發(fā)水平。

圖5-15
UMCONn (UART Modem Control Register)見(jiàn)圖5-16
Request to Send :如果在A(yíng)FC模式下,該位將由UART控制器自動(dòng)設置;否則的話(huà)就必須由用戶(hù)的軟件來(lái)控制。
Auto Flow Control :選擇是否使能自動(dòng)流控(AFC)。

圖5-16
UTRSTATn (UART TX/RX Status Register)見(jiàn)圖5-17
Receive buffer data ready :當接收緩沖寄存器從UART接收端口接收到有效資料時(shí)將自動(dòng)置“1”。反之為“0”則表示緩沖器中沒(méi)有資料。
Transmit buffer empty :當發(fā)送緩沖寄存器中為空,自動(dòng)置“1”;反之表明緩沖器中正有資料等待發(fā)送。
Transmitter empty :當發(fā)送緩沖器中已經(jīng)沒(méi)有有效資料時(shí),自動(dòng)置“1”;反之表明尚有資料未發(fā)送。

圖5-17
UERSTATn (UART Error Status Register)見(jiàn)圖5-18
Overrun Error :為“1”,表明發(fā)生Overrun錯誤。
Frame Error :為“1”。表明發(fā)生Frame(幀)錯誤。

圖5-18
UFSTATn?。?UART FIFO Status Register)見(jiàn)圖5-19
Rx FIFO Count :接收FIFO中當前存放的字節數。
Tx FIFO Count :發(fā)送FIFO中當前存放的字節數。
Rx FIFO Full :為“1“表明接收FIFO已滿(mǎn)。
Tx FIFO Full :為“1“表明發(fā)送FIFO已滿(mǎn)。

圖5-19
UMSTATn?。?UART FIFO Status Register)見(jiàn)圖5-20
Clear to Send :為“0”表示CTS無(wú)效;為“1”表示CTS有效。
Delta CTS :指示自從上次CPU訪(fǎng)問(wèn)該位后,nCTS的狀態(tài)有無(wú)發(fā)生改變。
為“0”則說(shuō)明不曾改變;反之表明nCTS信號已經(jīng)變化了。

圖5-20
UTXHn 和 URXHn 分別是UART發(fā)送和接收資料寄存器
這兩個(gè)寄存器存放著(zhù)發(fā)送和接收的資料,當然只有一個(gè)字節8位資料。需要注意的是在發(fā)生溢出錯誤的時(shí)候,接收的資料必須要被讀出來(lái),否則會(huì )引發(fā)下次溢出錯誤
UBRDIVn :(UART Baud Rate Divisor Register)見(jiàn)圖5-21

圖5-21
關(guān)于UART波特率的計算方法,在前面的內容中已經(jīng)有詳細的闡述,此處不做多余說(shuō)明。
小結:讀寫(xiě)狀態(tài)寄存器UTRSTAT 以及錯誤狀態(tài)寄存UERSTAT,可以反映芯片目前的讀寫(xiě)狀態(tài)以及錯誤類(lèi)型。FIFO 狀態(tài)寄存器UFSTAT 和MODEM 狀態(tài)寄存器UMSTAT,通過(guò)前者可以讀出目前FIFO 是否滿(mǎn)以及其中的字節數;通過(guò)后者可以讀出目前MODEM 的CTS狀態(tài)。
評論