久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4341|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

嵌入式s3c2410A UART部分中文解釋

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:350009 發(fā)表于 2018-6-12 09:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
異步串口通信

概述

S3C2410的UART提供3個獨立的異步串行通信端口,每個端口可以基于中斷或者DMA進行操作。換句話說,UART控制器可以在CPU和UART之間產(chǎn)生一個中斷或者DMA請求來傳輸數(shù)據(jù)。UART在系統(tǒng)時鐘下運行可支持高達230.4K的波特率,如果使用外部設(shè)備提供的UEXTCLK,UART的速度還可以更高。每個UART通道各含有兩個16位的接收和發(fā)送FIFO。
S3C2410的UART包括可編程的波特率,紅外 接收/發(fā)送,一個或兩個停止位插入,5-8位數(shù)據(jù)寬度和奇偶校驗。
每個UART包括一個波特率發(fā)生器、一個發(fā)送器、一個接收器和一個控制單元,如圖11-1所示。波特率發(fā)生器的輸入可以是PCLK或者UEXTCLK。發(fā)送器和接收器包含16位的FIFO和移位寄存器,數(shù)據(jù)被送入FIFO,然后被復(fù)制到發(fā)送移位寄存器準(zhǔn)備發(fā)送,然后數(shù)據(jù)按位從發(fā)送數(shù)據(jù)引腳TxDn輸出。同時,接收數(shù)據(jù)從接收數(shù)據(jù)引腳RxDn按位移入接收移位寄存器,并復(fù)制到FIFO。

特性

  • RxD0, TxD0, RxD1, TxD1, RxD2, TxD2基于中斷或者DMA操作
  • UART Ch 0, 1, 2 具有 IrDA 1.0 & 16 字節(jié) FIFO
  • UART Ch 0 1 具有 nRTS0, nCTS0, nRTS1, nCTS1
  • 支持發(fā)生/接收握手
圖11-1              UART方框圖

串口操作

下述部分描述了UART的一些操作,包括數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、中斷產(chǎn)生、波特率發(fā)生、loop-back模式、紅外模式和自動流控制。

數(shù)據(jù)發(fā)送
發(fā)送數(shù)據(jù)的幀結(jié)構(gòu)是可編程的,它由1個起始位、5-8個數(shù)據(jù)位、1個可選的奇偶位和1-2個停止位組成,這些可以在線控制寄存器ULCONn中設(shè)定。接收器可以產(chǎn)生一個斷點條件——使串行輸出保持1幀發(fā)送時間的邏輯0狀態(tài)。當(dāng)前發(fā)送字被完全發(fā)送出去后,這個斷點信號隨后發(fā)送。斷點信號發(fā)送之后,繼續(xù)發(fā)送數(shù)據(jù)到Tx FIFO(如果沒有FIFO則發(fā)送到Tx保持寄存器)。

數(shù)據(jù)接收
與數(shù)據(jù)發(fā)送一樣,接收數(shù)據(jù)的幀格式也是可編程的。它由1個起始位、5-8個數(shù)據(jù)位、1個可選的奇偶位和1-2個停止位組成,這些可以在線控制寄存器ULCONn中設(shè)定。接收器可以探測到溢出錯誤和幀錯誤。
  • 溢出錯誤:在舊數(shù)據(jù)被讀出來之前新的數(shù)據(jù)覆蓋了舊的數(shù)據(jù)
  • 幀錯誤:    接收數(shù)據(jù)沒有有效的停止位
當(dāng)在3個字時間(與字長度位的設(shè)置有關(guān))內(nèi)沒有接收到任何數(shù)據(jù)并且Rx FIFO非空時,將會產(chǎn)生一個接收超時條件。
自動流控制(AFC)
UART0和UART1通過nRTS and nCTS信號支持自動流控制,例如連接到外部UART時。如果用戶希望將UART連接到一個MODEM,可以在UMCONn寄存器中禁止自動流控位,并且通過軟件控制nRTS信號。
在AFC時, nRTS 由接收器的狀態(tài)決定,而nCTS信號控制發(fā)送器的操作。只有當(dāng)nCTS信號有效的時候(在AFC時,nCTS意味著其它UART的FIFO準(zhǔn)備接收數(shù)據(jù))UART發(fā)送器才會發(fā)送FIFO中的數(shù)據(jù)。在UART接收數(shù)據(jù)之前,當(dāng)它的接收FIFO多于2字節(jié)的剩余空間時nRTS必須有效,當(dāng)它的接收FIFO少于1字節(jié)的剩余空間時nRTS必須無效(nRTS意味著它自己的接收FIFO開始準(zhǔn)備接收數(shù)據(jù))。
圖11-2              UART AFC接口
注:UART2不支持AFC功能,因為S3C2410沒有nRTS2 和 nCTS2。

AFC的例子

通過FIFO操作Rx
  • 選擇接收模式(中斷還是DMA模式)。
  • 檢查UFSTATn寄存器中Rx FIFO的值。如果值小于15,用戶必須將UMCONn[0]1(nRTS生效),如果大于等于15,用戶必須將UMCONn[0]0(nRTS無效)
  • 重復(fù)第2步。

通過FIFO操作Tx
  • 選擇發(fā)送模式(中斷還是DMA模式)。
  • 檢查UMCONn[0]的值,如果為1,寫數(shù)據(jù)到Tx FIFO

RS-232C接口
如果希望將UART連接到MODEM,nRTS, nCTS, nDSR, nDTR, DCD 和nRI信號是必須的。這種情況下用戶可以通過GPIO控制這些信號因為AFC不支持RS-232C接口。

中斷/DMA請求的產(chǎn)生
每個UART有5個狀態(tài)(Tx/Rx/Error)信號:溢出錯誤、幀錯誤、接收緩沖滿、發(fā)送緩沖空和發(fā)送移位寄存器空。這些狀態(tài)體現(xiàn)在UART狀態(tài)寄存器中的相關(guān)位(UTRSTATn/UERSTATn)。
溢出錯誤和幀錯誤與接收錯誤狀態(tài)相關(guān),每個錯誤可以產(chǎn)生一個接收錯誤狀態(tài)中斷請求,如果控制寄存器UCONn中的receive-error-status-interrupt-enable位被置1的話。如果探測到一個receive-error-status-interrupt-enable位,通過讀UERSTSTn的值可以識別這一中斷請求。
控制寄存器UCONn的接收器模式為1(中斷或者循環(huán)檢測模式):當(dāng)接收器在FIFO模式下將一個數(shù)據(jù)從接收移位寄存器寫入FIFO時,如果接收到的數(shù)據(jù)到達了Rx FIFO的觸發(fā)條件,Rx中斷就產(chǎn)生了。在無FIFO模式下,每次接收器將數(shù)據(jù)從移位寄存器寫入接收保持寄存器都將產(chǎn)生一個RX中斷請求。
如果控制寄存器的接收和發(fā)送模式選擇為DMAn請求模式,在上面的情況下則是DMAn請求發(fā)生而不是RX/Tx中斷請求產(chǎn)生。
UART錯誤狀態(tài)FIFO
UART除了Rx FIFO外還有錯誤狀態(tài)FIFO。錯誤狀態(tài)FIFO指示接收到的哪個數(shù)據(jù)有錯誤。只有當(dāng)有錯誤的數(shù)據(jù)準(zhǔn)備讀出的時候才會產(chǎn)生錯誤中斷。要清除錯誤狀態(tài)FIFO,URXHn和UERSTATn必須被讀出。
例如:假設(shè)UART Rx FIFO順序接收到ABCD4個字符,在接收B的時候發(fā)生了幀錯誤。事實上UART接收錯誤并未產(chǎn)生任務(wù)錯誤中斷,因為錯誤的數(shù)據(jù)B還沒有被讀出,只有當(dāng)讀B字符的時候才會發(fā)生錯誤中斷。圖11-3描述了這一例子。

波特率發(fā)生器
每個UART的波特率發(fā)生器提供串行時鐘給接收器和發(fā)送器。波特率發(fā)生器的時鐘源可以選擇呢不系統(tǒng)時鐘或者UEXTCLK。換句話說,通過設(shè)置UCONn的時鐘選擇被除數(shù)是可選的。波特率時鐘通過對時鐘源(PCLK OR UEXTCLK)進行16分頻,然后進行一個16位的除數(shù)分頻得到,這個分頻數(shù)由波特率除數(shù)寄存器UBRDIVn指定。UBRDIVn可由下式得出:
UBRDIVn = (int)(PCLK/(bps * 16) ) -1
此除數(shù)應(yīng)該在1-(2的16方-1)之間。
為了UART的精確性,S3C2410還支持UEXTCLK作為被除數(shù)。
如果使用UEXTCLK(由外部UART設(shè)備或者系統(tǒng)提供),串行時鐘能夠精確地和UEXTCLK同步,因此用戶可以得到更精確的UART操作,UBRDIVn由下式?jīng)Q定:                            UBRDIVn = (int)(UEXTCLK / (bps x 16) ) –1
此除數(shù)應(yīng)該在1-(2的16方-1)之間,且UEXTCLK要比PCLK低。
例如,如果波特率為115200bps,而PCLK或者UEXTCLK為40MHz,則UBRDIVn為:
UBRDIVn              = (int)(40000000/(115200 x 16)) -1
= (int)(21.7) -1
= 21 -1 = 20

波特率錯誤容差
UART的幀錯誤應(yīng)該少于1.87%(3/160)。
UART Frame error should be less than 1.87%(3/160).
tUPCLK = (UBRDIVn + 1) x 16 x 1Frame / PCLK               tUPCLK : Real UART Clock
tUEXACT = 1Frame / baud-rate                                           tUEXACT : Ideal UART Clock
UART error = (tUPCLK – tUEXACT) / tUEXACT x 100%
注意:1、1幀=起始位+數(shù)據(jù)位+奇偶位+停止位
                    2、在特定條件下,波特率上限可達921.6K,例如當(dāng)PCLK為60MHZ時,可以使用921.6K的波特率而誤差為1.69%

loop-back模式
為了識別通訊連接中的故障,UART提供了一種叫l(wèi)oop-back模式的測試模式。這種模式結(jié)構(gòu)上使能了UART的TXD和RXD連接,因此發(fā)送數(shù)據(jù)被接收器通過RXD接收。這一特性允許處理器檢查每個SIO通道的內(nèi)部發(fā)送到接收的數(shù)據(jù)路徑。可以通過設(shè)置UART控制寄存器UCONn中的loopback位選擇這一模式。

紅外(IR)模式
UART支持紅外 (IR)接收和發(fā)送,可以通過設(shè)置UART線控制寄存器ULCONn的Infra-red-mode位來進入這一模式。圖11-4闡述了如何實現(xiàn)IR模式。
在IR發(fā)送模式下,發(fā)送脈沖的比例是3/16——正常的發(fā)送比率(當(dāng)發(fā)送數(shù)據(jù)位為0的時候);在IR接收模式下,接收器必須檢測3/16的脈沖來識別0值(見圖11-6和11-7所示的幀時序)。



UART SFR

UART線控制寄存器ULCONn
有3個UART線控制寄存器:ULCON0, ULCON1, and ULCON2



UART控制寄存器UCONn
有3個UART控制寄存器:UCON0, UCON1, and UCON2
注意:DMA接收有FIFO模式下,當(dāng)UART沒有達到FIFO觸發(fā)條件而且3個字時間沒有接收到數(shù)據(jù)時,Rx中斷會產(chǎn)生,用戶應(yīng)該檢查FIFO的狀態(tài)并讀出其它數(shù)據(jù)。

UART FIFO控制寄存器UFCONn







波特率除數(shù)寄存器UBRDIVn
有3個波特率除數(shù)寄存器:UBRDIV0,UBRDIV1,UBRDIV2,存儲于里面的值用于設(shè)置串口波特率:
UBRDIVn = (int)(PCLK / (bps x 16) ) –1                                                      
或              UBRDIVn = (int)(UEXTCLK / (bps x 16) ) –1
此除數(shù)應(yīng)該在1-(2的16方-1)之間,且UEXTCLK要比PCLK低。
例如,如果波特率為115200bps,而PCLK或者UEXTCLK為40MHz,則UBRDIVn為:
UBRDIVn              = (int)(40000000/(115200 x 16)) -1
= (int)(21.7) -1
= 21 -1 = 20


完整的Word格式文檔51黑下載地址(內(nèi)含清晰圖片):
S3C2410中文手冊第11章-UART.doc (2.33 MB, 下載次數(shù): 12)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 日韩电影在线 | 中文字幕99 | 久草欧美 | 国产高清免费 | 中文字幕在线观看成人 | 欧美一二区 | 久久婷婷色 | 欧美激情视频一区二区三区免费 | 91在线精品视频 | 国产日产欧产精品精品推荐蛮挑 | 亚洲精品麻豆 | 亚洲成av人片在线观看无码 | 欧美日韩一二三区 | 久久久无码精品亚洲日韩按摩 | 成人av一区 | 黄色片在线 | 特黄特色大片免费视频观看 | 国产色片 | 久久久久91 | а天堂中文最新一区二区三区 | 日韩中文字幕 | 伊人91在线 | 免费黄色av | 黄色三级免费 | 国产午夜精品一区二区三区四区 | 99久久国产综合精品麻豆 | 国产欧美综合在线 | 欧州一区 | 综合婷婷 | 在线观看av网站永久 | 亚洲欧美激情精品一区二区 | 粉嫩粉嫩芽的虎白女18在线视频 | 国产精品视频一区二区三区 | 青久草视频 | www.蜜桃av.com| 一区二区三区四区不卡 | 久草免费视| 91视频三区 | 国产精品欧美一区二区三区 | 久草中文在线 |