《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第1頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第2頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第3頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第4頁
《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

UART接口11串行口結(jié)構(gòu)和工作原理

Exynos4412串行口特點串行口專用寄存器應(yīng)用實例第11章UART接口11.1串行口結(jié)構(gòu)和工作原理

通用異步收發(fā)器(UniversalAsynchronousReceiverTransmitter,UART)用來傳輸串行數(shù)據(jù)。發(fā)送數(shù)據(jù)時,CPU將并行數(shù)據(jù)寫入發(fā)送緩沖區(qū),UART按照規(guī)定的幀格式,通過發(fā)送端口串行發(fā)出;接收數(shù)據(jù)時,UART檢測接收端口的信號,串行收集數(shù)據(jù)并暫時放在接收緩沖區(qū)中,之后,CPU即可從接收緩沖區(qū)中讀取這些數(shù)據(jù)。UART使用標準的CMOS邏輯電平(0~5?V、0~3.3?V、0~2.5?V或0~1.8?V四種)來表示數(shù)據(jù),高電平為1,低電平為0。為了增強數(shù)據(jù)的抗干擾能力,提高傳輸長度,通常將CMOS邏輯電平轉(zhuǎn)換為RS-232邏輯電平(3~15?V以0表示,-3~-15?V以1表示)。第11章UART接口TXD、RXD數(shù)據(jù)線以“位”為最小單位傳輸數(shù)據(jù),其數(shù)據(jù)傳輸流程如下:(1)平時數(shù)據(jù)線處于“空閉”狀態(tài)(1狀態(tài))。(2)當(dāng)要發(fā)送數(shù)據(jù)時,UART改變TXD數(shù)據(jù)線的狀態(tài)(變?yōu)?狀態(tài))并維持1位的時間,這樣,接收方檢測到開始位后,再等待1.5位的時間就開始一位一位地檢測數(shù)據(jù)線的狀態(tài),得到所傳輸?shù)臄?shù)據(jù)。(3)

UART一幀中可以有5、6、7或8位數(shù)據(jù),發(fā)送方一位一位地改變數(shù)據(jù)線的狀態(tài),將它們發(fā)送出去,首先發(fā)送最低位。第11章UART接口TXD、RXD數(shù)據(jù)線以“位”為最小單位傳輸數(shù)據(jù),其數(shù)據(jù)傳輸流程如下:(4)如果使用校驗功能,UART在發(fā)送完數(shù)據(jù)位后,還要發(fā)送1個校驗位。有兩種校驗方法,即奇校驗和偶校驗(數(shù)據(jù)位連同校驗位中“1”的數(shù)目分別等于奇數(shù)或偶數(shù))。(5)發(fā)送停止位,數(shù)據(jù)線恢復(fù)到“空閉”狀態(tài)(1狀態(tài))。停止位的長度有三種:1位、1.5位、2位。第11章UART接口UART使用不同的電平發(fā)送字符“A”,所對應(yīng)的波形:(a)?COMS邏輯電平下,傳輸大寫字母“A”的幀格式第11章UART接口(b)?R-S232邏輯電平下,傳輸大寫字母“A”的幀格式第11章UART接口11.2串行口特點Exynos4412的UART有4個獨立的通道(通道UART0~UART3),每個通道都可以工作于中斷模式或DMA模式,即UART可以發(fā)出中斷或DMA請求,以便在UART、CPU之間傳輸數(shù)據(jù)。另外,Exynos4412還提供了一個帶有GPS的串行通道(通道UART4)。Exynos4412的每個UART的通道包括2個FIFO(FirstInFirstOut)緩沖器,用于收/發(fā)數(shù)據(jù)。Exynos4412UART的每個通道支持的停止位有1位、2位,數(shù)據(jù)位有5位、6位、7位或8位,且支持校驗功能,另外還有紅外發(fā)送/接收功能。

第11章UART接口Exynos4412UART的工作原理圖第11章UART接口第11章UART接口在使用UART和PC進行通信時,在PC端往往需要設(shè)置波特率、數(shù)據(jù)位、是否使用校驗位、有多少個停止位、是否使用流控等。要實現(xiàn)通信,Exynos4412的UART也要作相同的設(shè)置。其具體的設(shè)置過程如下:將所涉及的UART通道引腳設(shè)為UART功能。(2)選擇UART的時鐘源。選擇好時鐘源后,可以通過DIVUART0~4設(shè)置分頻系數(shù)進行分頻,通過CLK_DIV_PERIL0寄存器進行配置。第11章UART接口圖11.3Exynos4412UART時鐘源框圖Exynos4412UART的時鐘源有八種選擇:XXTI、XusbXTI、SCLK_HDMI27M、SCLK_USBPHY0/1、SCLK_HDMIPHY、SCLKMPLL、SCLKEPLL、SCLKVPLL

第11章UART接口(3)設(shè)置波特率??梢酝ㄟ^以下公式計算UBRDIVn寄存器(n為0~4,對應(yīng)5個UART通道)的值:注意:計算出來的UBRDIVn寄存器值不一定是整數(shù),UBRDIVn寄存器取其整數(shù)部分,小數(shù)部分由UFRACVALn寄存器設(shè)置。第11章UART接口(4)設(shè)置傳輸格式。傳輸格式由ULCONn寄存器(n?=

0~4)進行配置。(5)設(shè)置UART工作模式??蓞⒖糢CONn寄存器的各位域進行配置。(6)配置UFCONn寄存器、UFSTATn寄存器。UFCONn寄存器用于設(shè)置是否使用FIFO,設(shè)置各FIFO的觸發(fā)閾值,即發(fā)送FIFO中有多少個數(shù)據(jù)時產(chǎn)生中斷,接收FIFO中有多少個數(shù)據(jù)時產(chǎn)生中斷。并可以通過設(shè)置UFCONn寄存器來復(fù)位各個FIFO。(7)配置UTRSTATn寄存器(UART收/發(fā)狀態(tài)寄存器)。UTRSTATn寄存器用來表明數(shù)據(jù)是否已經(jīng)發(fā)送完畢,是否已經(jīng)接收到數(shù)據(jù)。第11章UART接口(8)配置UERSTATn寄存器(UART錯誤狀態(tài)寄存器)。UERSTATn寄存器用來表示各種錯誤是否發(fā)生,位[0]至位[3]為1時分別表示溢出錯誤、校驗錯誤、幀錯誤、檢測到“break”信號。(9)配置UTXHn寄存器(UART發(fā)送緩沖寄存器)。CPU將數(shù)據(jù)寫入UTXHn寄存器,UART即會將它保存到緩沖區(qū)中,并自動發(fā)送出去。(10)配置URXHn寄存器(UART接收緩沖寄存器)。當(dāng)UART接收到數(shù)據(jù)時,讀取URXHn寄存器,即可獲得數(shù)據(jù)。第11章UART接口11.3串行口專用寄存器串口時鐘源選擇寄存器該寄存器用于為各通道的UART選擇時鐘源,如表11.1所示。第11章UART接口表11.1串口時鐘源選擇寄存器(CLK_SRC_PERIL0)第11章UART接口2.時鐘分頻系數(shù)寄存器該寄存器用于為5路UART通道設(shè)置分頻系數(shù),如表11.2所示。表11.2時鐘分頻系數(shù)寄存器(CLK_DIV_PERIL0)第11章UART接口3.波特率分頻寄存器UBRDIVn(n?=?0~4)該類寄存器用于設(shè)置波特率分頻值。4.寄存器UFRACVALn(n=0~4)該類寄存器用來處理波特率分頻值的小數(shù)部分。第11章UART接口5.?UART控制寄存器ULCONn(n=0~4)該類寄存器主要用于配置串行數(shù)據(jù)幀的格式等,如表11.5所示。表11.5ULCONn(n

=?0~4)寄存器第11章UART接口6.

UART控制寄存器UCONn(n=0~4)該類寄存器主要用于配置UART的工作方式,如表11.6所示。第11章UART接口表11.6UART控制寄存器UCONn(n=0~4)第11章UART接口7.

UARTFIFO控制寄存器UFCONn(n=0~4)該類寄存器用于配置UARTFIFO緩沖器的大小和觸發(fā)水平等,如表11.7所示。第11章UART接口表11.7UARTFIFO控制寄存器UFCONn(n

=

0~4)第11章UART接口8.發(fā)送寄存器UTXHn(n?=?0~4)該類寄存器用于存放待發(fā)送的數(shù)據(jù)。9.接收寄存器URXHn(n?=?0~4)該類寄存器用于存放接收到的數(shù)據(jù)。第11章UART接口11.4應(yīng)用實例

通過本實例講解UART的配置和使用方法。該實例中使用了UART0,程序中僅對該串口進行了設(shè)置。目的是自串口輸入一個字符,再從串口終端原樣輸出。代碼如下:第11章UART接口定義指向寄存器物理地址的變量//GPA0口將被設(shè)置為功能接口,用于UART的收/發(fā)#defineGPA0CON

(*(volatileunsignedint*)0x11400000)//UART時鐘相關(guān)寄存器#defineCLK_SRC_PERIL0 (*(volatileunsignedint*)0x1003C250)#defineCLK_DIV_PERIL0 (*(volatileunsignedint*)0x1003C550)//UART相關(guān)寄存器#defineUART_BASE 0x13800000#defineULCON0 (*(volatileunsignedint*)UART_BASE+0x0000)#defineUCON0 (*(volatileunsignedint*)UART_BASE+0x0004)#defineUFCON0 (*(volatileunsignedint*)UART_BASE+0x0008)#defineUTRSTAT0 (*(volatileunsignedint*)UART_BASE+0x0010)#defineUTXH0 (*(volatileunsignedint*)UART_BASE+0x0020)#defineURXH0 (*(volatileunsignedint*)UART_BASE+0x0024)

#defineUBRDIV0 (*(volatileunsignedint*)UART_BASE+0x0028)#defineUFRACVAL0 (*(volatileunsignedint*)UART_BASE+0x002c)第11章UART接口2.?UART初始化voiduartInit(?){

/*1.配置GPA0位[0]、[1]為串口UART_0_RXD、UART_0_TXD功能*/

GPA0CON&=~(0xff);

//設(shè)置UART0對應(yīng)的GPIO為UART功能

GPA0CON|=((0x2<<0)|(0x2<<4));/*2.設(shè)置UART時鐘源SCLK_UART*/

CLK_SRC_DMC|=(0x1<12);

CLK_SRC_TOP1|=(0x1<12);

CLK_SRC_PERIL0&=~(0xf);

//UART0_SEL=6

CLK_SRC_PERIL0|=(0x6<<0); //所以,MOUTUART0即等于MPLL的輸出,800MHzCLK_DIV_PERIL0&=~(0xf);

CLK_DIV_PERIL0|=(7<<0);

第11章UART接口/*3.設(shè)置串口0相關(guān)*/UFCON0&=~((0x7<<0)|(0x7<<4)|(0x7<<8));UFCON0|=((0x1<<0)|(0x1<<4)|(0x2<<8));ULCON0&=~((0x3<<0)|(0x1<<2)|(0x3<<3));ULCON0|=((0x3<<0)|(0x0<<2)|(0x0<<3));UCON0&=~((0x3<<0)|(0x3<<2));UCON0|=((0x1<<0)|(0x1<<2));/*SCLK_UART0=100MHz,波特率設(shè)置為115200*寄存器的值如下計算:*DIV_VAL=100000000/(115200×16)-1=53.25*UBRDIVn0=整數(shù)部分=53*UFRACVAL0=小數(shù)部分×16=0.25*16=4*/UBRDIV0=53;UFRACVAL0=4;

}第11章UART接口3.收發(fā)字符/字符串函數(shù)chargetc(void){

charc;

while(!(UTRSTAT0&(1<<0)));//查詢狀態(tài)寄存器,直到接收完有效數(shù)據(jù)

c=URXH0; //

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論