亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

S3C2410中文芯片手冊-11.串口

2024-06-28 13:21:44
字體:
來源:轉載
供稿:網友
S3C2410中文芯片手冊-11.串口

February 28, 2015 4:57 PM

[TOC]

11 UARTOverview

S3C2410x 提供3個獨立的異步串行I/O接口,每一個都可以工作在中斷或是 DMA 模式。UART 最高可以支持230.

4K bps波特率,通過使用系統時鐘。如果有外部設備給 UART 提供 UCLK, 那么 UART 可以達到更高的速度。每個 UART 通道包含2個16個字節的 FIFO 用于接收和發送數據。

S3C2410 的 UART 包括 可編程波特率,infra-red 發送/接收, 1~2個停止位, 5~8位數據位和奇偶校驗。

每個 UART 由波特率發生器、發送器、接收器和控制單元組成,如圖11-1所示。波特率發生器可以由 PCLK 或是 UCLK 提供時鐘。數據發送器和接收器包含16字節的 FIFO 和數據緩沖器。數據首先被寫入 FIFO 中,然后在發送前被拷貝到發送數據緩沖器中。這些數據之后被數據發送引腳(TxDn)發送。同時從接收引腳接收數據,然后將數據從緩沖器復制到 FIFO。

Featrues
  • RxD0, TxD0, RxD1, TxD1, RxD2 和 TxD2 帶有 DMA 和中斷操作。
  • UART 通道 0,1和2,帶有 IrDA 1.0 & 16-byte FIFO
  • UART 通道 0和1,帶有 nRTS0,nCTS0,nRTS1 和 nCTS1
  • 支持硬件握手發送/接收

選區_001.png

UART Operation

接下來的章節描述了 UART 的操作,包括數據發送、數據接收、中斷產生、波特率產生,回環模式,紅外模式和自動流控制。

Data Transmission

傳送的數據結構是可編程的。它包括一位起始位、5~8位數據位、一位可選的奇偶校驗位和1~2位停止位,這些都可以通過線性控制寄存器(ULCONn)來指定。發送器也可以通過強制串行口在一幀發送數據時間里輸出邏輯0來產生中止條件。這塊發送中止信號出現在發送字發送完之后。在發送中止信號之后,將繼續發送數據到 Tx 的 FIFO 中(Tx 將保持寄存器對于 Non-FIFO 模式來說)。

Data Reception

與發送一樣,接收到的數據結構同樣是可編程的。它包括一位起始位、5~8位數據位、一位可選的奇偶校驗位和1~2位停止位在線性控制寄存器中(ULCONn)。接收器可以探測 overrun error,parity error,frame error和break condition,每種錯誤都有相應的錯誤標志位。

  • overrun error 代表在舊數據被讀取前新數據已經將舊數據重寫。
  • parity error 代表接收器已經探測到不期望的奇偶校驗值。
  • frame error 代表接收到的數據沒有默認的停止位。
  • break condition 代表 RxDn 輸入保持在邏輯0的時間比一幀發送數據的時間長

當在3個字長時間內沒有接收到任何數據并且 Rx FIFO 在 FIFO 模式下非空,將會產生接收超時(Receive time-out condition)。

Auto Flow Control(AFC)

S3C2410X 的串口0和串口1支持自動流控制,并帶有 nRTS 和 nCTS信號。如果用戶想連接串口到終端,那么需要在 UMCONn 寄存器中取消自動流控制位并且用軟件控制 nRTS 信號。

在 AFC 模式中, nRTS 根據接收器的狀態和 nCTS 信號來控制發送器的操作。當 nCTS 信號被激活時(在 AFC 中,nCTS 代表其他串口的 FIFO 已經準備好接收數據),串口的發送器發送 FIFO 中的數據。在接收數據前,如果接收器的 FIFO 有超過兩個字節的空閑,那么 nRTS 信號將被激活;如果接收器的 FIFO 中空閑少于一個字節時, nRTS 信號將停止激活(在 AFC 模式中, nRTS 代表它本身的接收FIFO 已經準備好接收數據)。

選區_002.png

NOTE: 串口2不支持 AFC 功能,因為 S3C2410X 沒有 nRTS2 和 nCTS2。

Example of Non Auto-Flow control(controlling nRTS and nCTS by software)

Rx operation with FIFO

  1. 選擇接收模式(Interrupt or DMA mode)。
  2. 在 UFSTATn 寄存器中檢查 Rx FIFO 中當前的字節數。如果數值少于15,用戶需要將 UMCONna[0] 的值設為1(激活 nRTS);如果大于等于15,用戶應把值設為0(取消 nRTS)。
  3. 重復執行第二步。

Tx operation with FIFO

  1. 選擇發送模式(Interrupt or DMA mode)。
  2. 檢查 UMSTATn[0] 的值。如果值為1(激活 nCTS),用戶可以將數據寫到 Tx FIFO 寄存器中。
RS-232C interface

如果用戶想把串口連接到終端上, nRTS, nCTS, nDSR, nDTR, DCD 和 nRI 信號是必須的。由于 AFC 不支持 RS-232C 接口,如果用戶要使用這種接口,需要通過軟件控制通用 I/O 接口來控制這些信號。

Interrupt/DMA Request Genration

S3C2410X 的每個串口有7種狀態:Overrun error, Parity error, Frame error, Break, Receive buffer data ready, Transmit buffer empty 和 Transmit shifter empty。所有這些狀態都通過相應的串口狀態寄存器(UTRSTATn/UERSTATn)表現出來。

Overrun error, parity error, frame error 和 break condition 是接收錯誤狀態,它們都能引發接收錯誤狀態中斷請求,如果接收錯誤狀態中斷使能位(receive-error-status-interrupt-enable)被設置成1在 UCONn 中。當接收錯誤狀態中斷請求(receive-error-status-interrupt-request)被檢測到,導致請求的信號可以通過讀取 UERSTSTn 的值來被識別。

如果在接收模式下控制寄存器(UCONn)中的值被設為1(Interrupt request or polling mode),在 FIFO 模式下,當接收器將接收緩沖器中的數據發送到接收 FIFO 中并且接收到的數據量達到 Rx FIFO 的觸發等級,Rx 中斷將會產生。在 Non-FIFO 模式中,如果設置為 Interrupt request and polling 模式,當把接收緩沖器中的數據發送到接收保持寄存器將會引起 Rx 中斷。

如果在發送模式下控制寄存器被設置為 Interrupt request or polling 模式,當發送器將發送 FIFO 中的數據發送到發送緩沖器并且發送 FIFO 中剩余的數據量達到 Tx FIFO 的觸發等級, Tx 中斷將會產生。在 Non-FIFO 模式中,如果設置為 Interrupt request and polling 模式,當把發送保持寄存器中的數據發送到發送緩沖器時將會引起 Tx 中斷。

如果控制寄存器被設為 DMAn request 模式,那么在上面提到的發送模式和接收模式中,DMAn 請求將會取代 Rx 或 Tx 中斷。

選區_003.png

UART Error Status FIFO

除了 Rx FIFO 寄存器,串口還有錯誤狀態隊列(error status FIFO)。這個錯誤狀態隊列記錄了 FIFO 寄存器中接收到的哪個數據是錯誤的。當帶有錯誤的數據準備被讀出時,錯誤中斷將會產生。為了清除錯誤狀態隊列(error status FIFO),需要讀取 URXHn 和 UERSTATn 寄存器。

For example

假設 UART Rx FIFO 連續地收到了 A,B,C,D 和 E 五個字符,并且當接收到 ‘B’ 時發生 frame error,接收到 ‘D’ 時發生 parity error。

實際上串口接收到錯誤將不會產生任何錯誤中斷,因為收到的錯誤字符還沒有被讀出來。當錯誤字符被讀出時發生錯誤中斷。

Figure 11-3 shows the UART receiving the five characters including the two errors.

TimeSequence FlowError InterruptNote
#0When no character is read out--
#1A,B,C,D,and E is received--
#2After A is read outThe frame error (in B) interrupt occurs.The 'B' has to be read out
#3After B is read out--
#4After C is read outThe parity error (in D) interrupt occurs.The 'D' has to be read out
#5After D is read out--
#6After E is read out--

選區_004.png

Baud-Rate Generation

每個串口的波特率發生器給發送器和接收器提供串行時鐘。波特率發生器的時鐘源可以選擇 S3C2410S 的內部系統時鐘或 UCLK。換句話說,分頻因子是可以選擇的通過設置 UCONn 中的時鐘選項。波特率時鐘是通過在串口波特率分頻因子寄存器(UART baud-rate divisor register) UBRDIVn 中設置16位的分頻因子來分頻時鐘源(PCLK or UCLK)。 UBRDIVn 可以通過下面的公式確定:

UBRDIVn = (int)(PCLK/(bps * 16)) - 1

分頻因子的范圍1~(2^16^-1)。

為了準確地操作串口,S3C2410X 還支持使用 UCLK 作為分頻源。如果 S3C2410X 使用外部串口設備或系統提供的額 UCLK,那么串口的串行時鐘將和 UCLK 同步。因此用戶可以更加準確的操作串口。UBRDIVn 可以通過下面公式確定:

UBRDIVn = (int)(UCLK/(bps * 16)) - 1

分頻因子的范圍1~(2^16^-1),并且 UCLK 應該比 PCLK 小。

For example:如果波特率是115200 bps 并且 PCLK 和 UCLK 是 40 MHz, UBRDIVn 如下確定:

UBRDIVn = (int)(40000000/(115200 * 16)) - 1        = (int)(21.7) - 1        = 21 - 1 = 20
UART baud-rate generator error tolerance

串口10位數據的時間錯誤(time error)應該小于 1.87%(3/160)

tUPCLK = (UBRDIVn + 1) * 16 * 10 / PCLK        tUPCLK:Real UART 10-bit timetUEXACT = 10 / baud-rate        tUEXACT:Ideal UART 10-bit timeUART error = (tUPCLK - tUEXACT) / tUEXACT * 100%
Loopback Mode

S3C2410X 的串口提供了一個測試模式能夠幫助隔離通信線路中的錯誤,叫做回環模式。這個模式能開啟串口中 RXD 和 TXD 的連接。因此在這個模式中,發送的數據能夠經過自身的 RXD 接收到接收器中。這個特性可以允許處理器檢驗內部發送和接收數據的頻道路徑。這個模式可以在串口控制寄存器(UCONn)中回環位(loopback bit)進行設置。

Break Condition

Break 信號被定義為一幀發送數據時間內輸出的發送數據中連續的低電平信號。

Infra-Red(IR) Mode

S3C2410X 的串口模塊可以通過設置串口線性控制器(ULCONn)的紅外模式位(Infra-red-mode bit)來支持紅外發送和接收。 Figure 11-4 舉例說明如何執行 IR 模式。

在 IR 發送模式中,發送脈沖發出正常的串行發送率 3/16;在 IR 接收模式中,接收器一定要在 3/16 脈沖期間去識別出 0 值。

選區_005.png選區_006.png選區_007.png選區_008.png

UART SPECIAL REGISTERSUART LINE CONTROL REGISTER

在串口模塊中有3個串口線性控制寄存器,分別是 ULCON0,ULCON1 和 ULCON2。

選區_009.png

UART CONTROL REGISTER

在串口模塊中有3個串口控制寄存器,分別是 UCON0,UCON1 和 UCON2。

選區_010.png

UART CONTROL REGISTER(CONTINUED)

選區_011.png

NOTE: 在帶有 FIFO 的 DMA 模式下,當串口沒有達到 FIFO 的觸發等級并且在3個字的時間內(接收超時)沒有收到數據, Rx 中斷將會產生同時用戶應該檢查 FIFO 的狀態并把剩下的數據讀完。

UART FIFO CONTROL REGISTER

在串口模塊中有3個串口 FIFO 控制寄存器,分別是 UFCON0,UFCON1 和 UFCON2。

選區_012.png

NOTE: 在帶有 FIFO 的 DMA 模式下,當串口沒有達到 FIFO 的觸發等級并且在3個字的時間內(接收超時)沒有收到數據, Rx 中斷將會產生同時用戶應該檢查 FIFO 的狀態并把剩下的數據讀完。

UART MODEM CONTROL REGISTER

在串口模塊中有2個串口終端控制寄存器,分別是 UMCON0 和 UMCON1。

選區_013.png

NOTE:串口2不支持 AFC 功能,因為 S3C2410X 沒有 nRTS2 和 nCTS2。

UART TX/RX STATUS REGISTER

在串口模塊中有3個串口 TX/RX 狀態寄存器,分別是 UTRSTAT0,UTRSTAT1 和 UTRSTAT2。

選區_014.png

UART ERROR STATUS REGISTER

在串口模塊中有3個串口 Rx 錯誤狀態寄存器,分別是 UERSTAT0,UERSTAT1 和 UERSTAT2。

選區_015.png

NOTE:當串口錯誤狀態寄存器被讀過之后,這些位將會自動被清0。

UART FIFO STATUS REGISTER

在串口模塊中有3個串口 FIFO 狀態寄存器,分別是 UFSTAT0,UFSTAT1 和 UFSTAT2。

選區_016.png

UART MODEM STATUS REGISTER

在串口模塊中有2個串口終端狀態寄存器,分別是 UMSTAT0 和 UMSTAT1。

選區_017.png

UART TRANSMIT BUFFER REGISTER(HOLDING REGISTER & FIFO REGISTER)

在串口模塊中有3個串口發送緩沖寄存器,分別是 UTXH0,UTXH1 和 UTXH2。UTXHn 有8位發送數據。

選區_018.png

NOTE:(L):The endian mode is Little endian.     (B):The endian mode is Big endian.
UART RECEIVE BUFFER REGISTER(HOLDING REGISTER & FIFO REGISTER)

在串口模塊中有3個串口接收緩沖寄存器,分別是 URXH0,URXH1 和 URXH2。URXHn 有8位接收數據。

選區_019.png

NOTE:當發生 overrun error 時,需要讀取 URXHn 寄存器。否則,即使清空 UERSTATn 中的 overrun 標志位,當再次接收到數據時同樣將產生 overrun error。

UART BAUD RATE DIVISOR REGISTER

在串口模塊中有3個串口波特率分頻寄存器,分別是 UBRDIV0,UBRDIB1 和 UBRDIV2。存儲在波特率分頻寄存器(UBRDIVn)中的值如下確定串行 Tx/Rx 的時鐘頻率:

     UBRDIVn = (int)(PCLK / (bps * 16)) - 1     or     UBRDIVn = (int)(UCLK / (bps * 16)) - 1

分頻因子的范圍1~(2^16^-1),并且 UCLK 應該比 PCLK 小。

For example:如果波特率是115200 bps 并且 PCLK 和 UCLK 是 40 MHz, UBRDIVn 如下確定:

UBRDIVn = (int)(40000000/(115200 * 16)) - 1        = (int)(21.7) - 1        = 21 - 1 = 20

選區_020.png


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合中文字幕在线观看| 亚洲自拍偷拍视频| 91chinesevideo永久地址| 久久亚洲精品毛片| 日韩精品福利网站| 日韩av在线直播| 久久久久久91| 韩国三级日本三级少妇99| 8x海外华人永久免费日韩内陆视频| 国内免费久久久久久久久久久| 精品一区电影国产| xvideos国产精品| 中文字幕av日韩| 久久久久久久久久国产精品| 这里只有精品在线播放| 中文字幕欧美精品日韩中文字幕| 欧美精品日韩www.p站| 国产精品丝袜久久久久久不卡| 色悠悠久久88| 亚洲一区av在线播放| 久久久亚洲欧洲日产国码aⅴ| 久久久电影免费观看完整版| 国产免费亚洲高清| 久久久久久久久网站| 78m国产成人精品视频| 久久久久亚洲精品成人网小说| 国产综合在线视频| 久久影视三级福利片| 久久综合免费视频影院| 欧美日韩综合视频| 色婷婷亚洲mv天堂mv在影片| 久久综合九色九九| 欧美性xxxx极品高清hd直播| 欧美另类老肥妇| 欧美激情网友自拍| 亚洲视频国产视频| 亚洲人成电影网站色| www国产91| 2024亚洲男人天堂| 国产精品福利网| 久久久久久久爱| 亚洲欧美另类人妖| 亚洲精品aⅴ中文字幕乱码| 日韩欧美国产一区二区| 欧美极度另类性三渗透| 欧美一区视频在线| 欧美午夜性色大片在线观看| 国产精品久久久久久av福利软件| 中文字幕亚洲综合| 色狠狠久久aa北条麻妃| 国产成人av网| 国产精品一二区| 欧美成人精品一区| 国产亚洲欧美日韩美女| 日本视频久久久| 久热在线中文字幕色999舞| 欧美激情手机在线视频| 亚洲欧美在线第一页| 久久久久久久久久久亚洲| 在线不卡国产精品| 亚洲91精品在线| 国产91成人在在线播放| 欧美一级电影免费在线观看| 欧美国产视频日韩| 一本久久综合亚洲鲁鲁| 中文字幕av一区二区| 色悠悠国产精品| 疯狂蹂躏欧美一区二区精品| 欧美限制级电影在线观看| 欧美性猛交视频| 国产黑人绿帽在线第一区| 国产精品福利无圣光在线一区| 欧美成人自拍视频| 欧美最猛性xxxxx(亚洲精品)| 国产91在线视频| 欧美成人在线网站| 国产亚洲精品成人av久久ww| 亚洲天堂免费在线| 国产精品中文字幕在线| 日韩毛片在线看| 亚洲二区在线播放视频| 两个人的视频www国产精品| 久久久精品在线| 美女啪啪无遮挡免费久久网站| 日本亚洲欧洲色α| 亚洲第一在线视频| 欧美一区三区三区高中清蜜桃| 一本大道久久加勒比香蕉| 精品久久久久久中文字幕一区奶水| 久久久久久久999| 91在线观看免费观看| 亚洲www在线观看| 久久久亚洲精品视频| 欧美亚洲国产视频小说| 国产精品第8页| 777777777亚洲妇女| 国产黑人绿帽在线第一区| 久久色在线播放| 中文字幕日韩有码| 91欧美日韩一区| 自拍偷拍亚洲欧美| 欧美激情精品久久久久久蜜臀| 欧美裸体xxxx极品少妇| 日本久久久久久久久| 日韩欧美精品在线观看| 亚洲第一福利在线观看| 国产精品久久999| 国产亚洲美女久久| 欧美成人一区在线| 亚洲另类欧美自拍| 91精品久久久久久久| 在线播放国产一区二区三区| 91国产美女视频| 亚洲精品久久久久久久久久久| 欧美电影在线免费观看网站| 国产ts人妖一区二区三区| 97视频在线观看视频免费视频| 久久久久久久久久久91| 日韩中文在线观看| 亚洲午夜女主播在线直播| 日韩视频免费在线| 国产精品久久久久91| 国产一区二区三区在线| 人人做人人澡人人爽欧美| 国产精品日韩av| 国产精品96久久久久久| 国产精品v日韩精品| 欧美与黑人午夜性猛交久久久| 欧美另类极品videosbestfree| 国产午夜精品麻豆| 中文字幕亚洲国产| 亲爱的老师9免费观看全集电视剧| 欧美亚洲午夜视频在线观看| 中文字幕无线精品亚洲乱码一区| 欧美日韩综合视频网址| 青青草精品毛片| 日韩精品久久久久久久玫瑰园| 欧美精品videosex牲欧美| 亚洲精品国精品久久99热| 久久精品中文字幕一区| 精品人伦一区二区三区蜜桃网站| 日韩成人免费视频| 日韩精品在线影院| 欧美国产乱视频| 欧美诱惑福利视频| 亚洲无线码在线一区观看| 亚洲欧美精品伊人久久| 一本久久综合亚洲鲁鲁| 久久久久久999| 亚洲精品欧美日韩专区| 国产99久久精品一区二区 夜夜躁日日躁| 欧美精品第一页在线播放| 国产成人亚洲精品| 最近2019免费中文字幕视频三| 欧美激情一级二级| 午夜美女久久久久爽久久| 久久噜噜噜精品国产亚洲综合| 久久久久久久国产精品| 日韩电视剧免费观看网站| 亚洲人在线观看| 久久影院中文字幕| 在线观看日韩欧美| 91tv亚洲精品香蕉国产一区7ujn| 国产一区二区三区在线播放免费观看|