![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第1頁](http://file4.renrendoc.com/view6/M00/07/14/wKhkGWdz2siAAkSUAADGPPBXCfA207.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第2頁](http://file4.renrendoc.com/view6/M00/07/14/wKhkGWdz2siAAkSUAADGPPBXCfA2072.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第3頁](http://file4.renrendoc.com/view6/M00/07/14/wKhkGWdz2siAAkSUAADGPPBXCfA2073.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第4頁](http://file4.renrendoc.com/view6/M00/07/14/wKhkGWdz2siAAkSUAADGPPBXCfA2074.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第十一章_第5頁](http://file4.renrendoc.com/view6/M00/07/14/wKhkGWdz2siAAkSUAADGPPBXCfA2075.jpg)
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氧化鋁基負載型金屬催化劑鄰位氫中心構(gòu)筑及加氫性能研究
- 秸稈回收加工廠項目可行性研究報告
- 2025版物業(yè)管理區(qū)域綠化安全管理服務(wù)合同3篇
- 基于相似理論的船用耐壓設(shè)備縮比模型設(shè)計方法研究
- 2025版高校食堂營養(yǎng)膳食承包合作協(xié)議2篇
- 異地辦公與遠程工作管理
- 二零二五年度倉儲物流用地買賣合同樣本3篇
- 2025版選礦廠承包合同附設(shè)備更新改造計劃書3篇
- 營銷行業(yè)助理職責(zé)概述
- 熱情溫暖的社區(qū)活動中心三篇
- 《鋼筋焊接及驗收規(guī)程》(JGJ18)
- 醫(yī)藥高等數(shù)學(xué)知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學(xué)
- 2024年濰坊工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完美版
- GB/T 44823-2024綠色礦山評價通則
- 《共情的力量》課件
- 2022年中國電信維護崗位認證動力專業(yè)考試題庫大全-上(單選、多選題)
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項目 投標方案(技術(shù)標)
- 水泥采購?fù)稑朔桨福夹g(shù)標)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 廣州市勞動仲裁申請書
評論
0/150
提交評論