版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
UART接口11串行口結(jié)構(gòu)和工作原理
Exynos4412串行口特點(diǎn)串行口專用寄存器應(yīng)用實(shí)例第11章UART接口11.1串行口結(jié)構(gòu)和工作原理
通用異步收發(fā)器(UniversalAsynchronousReceiverTransmitter,UART)用來傳輸串行數(shù)據(jù)。發(fā)送數(shù)據(jù)時(shí),CPU將并行數(shù)據(jù)寫入發(fā)送緩沖區(qū),UART按照規(guī)定的幀格式,通過發(fā)送端口串行發(fā)出;接收數(shù)據(jù)時(shí),UART檢測(cè)接收端口的信號(hào),串行收集數(shù)據(jù)并暫時(shí)放在接收緩沖區(qū)中,之后,CPU即可從接收緩沖區(qū)中讀取這些數(shù)據(jù)。UART使用標(biāo)準(zhǔn)的CMOS邏輯電平(0~5?V、0~3.3?V、0~2.5?V或0~1.8?V四種)來表示數(shù)據(jù),高電平為1,低電平為0。為了增強(qiáng)數(shù)據(jù)的抗干擾能力,提高傳輸長(zhǎng)度,通常將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í)數(shù)據(jù)線處于“空閉”狀態(tài)(1狀態(tài))。(2)當(dāng)要發(fā)送數(shù)據(jù)時(shí),UART改變TXD數(shù)據(jù)線的狀態(tài)(變?yōu)?狀態(tài))并維持1位的時(shí)間,這樣,接收方檢測(cè)到開始位后,再等待1.5位的時(shí)間就開始一位一位地檢測(cè)數(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)如果使用校驗(yàn)功能,UART在發(fā)送完數(shù)據(jù)位后,還要發(fā)送1個(gè)校驗(yàn)位。有兩種校驗(yàn)方法,即奇校驗(yàn)和偶校驗(yàn)(數(shù)據(jù)位連同校驗(yàn)位中“1”的數(shù)目分別等于奇數(shù)或偶數(shù))。(5)發(fā)送停止位,數(shù)據(jù)線恢復(fù)到“空閉”狀態(tài)(1狀態(tài))。停止位的長(zhǎng)度有三種:1位、1.5位、2位。第11章UART接口UART使用不同的電平發(fā)送字符“A”,所對(duì)應(yīng)的波形:(a)?COMS邏輯電平下,傳輸大寫字母“A”的幀格式第11章UART接口(b)?R-S232邏輯電平下,傳輸大寫字母“A”的幀格式第11章UART接口11.2串行口特點(diǎn)Exynos4412的UART有4個(gè)獨(dú)立的通道(通道UART0~UART3),每個(gè)通道都可以工作于中斷模式或DMA模式,即UART可以發(fā)出中斷或DMA請(qǐng)求,以便在UART、CPU之間傳輸數(shù)據(jù)。另外,Exynos4412還提供了一個(gè)帶有GPS的串行通道(通道UART4)。Exynos4412的每個(gè)UART的通道包括2個(gè)FIFO(FirstInFirstOut)緩沖器,用于收/發(fā)數(shù)據(jù)。Exynos4412UART的每個(gè)通道支持的停止位有1位、2位,數(shù)據(jù)位有5位、6位、7位或8位,且支持校驗(yàn)功能,另外還有紅外發(fā)送/接收功能。
第11章UART接口Exynos4412UART的工作原理圖第11章UART接口第11章UART接口在使用UART和PC進(jìn)行通信時(shí),在PC端往往需要設(shè)置波特率、數(shù)據(jù)位、是否使用校驗(yàn)位、有多少個(gè)停止位、是否使用流控等。要實(shí)現(xiàn)通信,Exynos4412的UART也要作相同的設(shè)置。其具體的設(shè)置過程如下:將所涉及的UART通道引腳設(shè)為UART功能。(2)選擇UART的時(shí)鐘源。選擇好時(shí)鐘源后,可以通過DIVUART0~4設(shè)置分頻系數(shù)進(jìn)行分頻,通過CLK_DIV_PERIL0寄存器進(jìn)行配置。第11章UART接口圖11.3Exynos4412UART時(shí)鐘源框圖Exynos4412UART的時(shí)鐘源有八種選擇:XXTI、XusbXTI、SCLK_HDMI27M、SCLK_USBPHY0/1、SCLK_HDMIPHY、SCLKMPLL、SCLKEPLL、SCLKVPLL
第11章UART接口(3)設(shè)置波特率??梢酝ㄟ^以下公式計(jì)算UBRDIVn寄存器(n為0~4,對(duì)應(yīng)5個(gè)UART通道)的值:注意:計(jì)算出來的UBRDIVn寄存器值不一定是整數(shù),UBRDIVn寄存器取其整數(shù)部分,小數(shù)部分由UFRACVALn寄存器設(shè)置。第11章UART接口(4)設(shè)置傳輸格式。傳輸格式由ULCONn寄存器(n?=
0~4)進(jìn)行配置。(5)設(shè)置UART工作模式??蓞⒖糢CONn寄存器的各位域進(jìn)行配置。(6)配置UFCONn寄存器、UFSTATn寄存器。UFCONn寄存器用于設(shè)置是否使用FIFO,設(shè)置各FIFO的觸發(fā)閾值,即發(fā)送FIFO中有多少個(gè)數(shù)據(jù)時(shí)產(chǎn)生中斷,接收FIFO中有多少個(gè)數(shù)據(jù)時(shí)產(chǎn)生中斷。并可以通過設(shè)置UFCONn寄存器來復(fù)位各個(gè)FIFO。(7)配置UTRSTATn寄存器(UART收/發(fā)狀態(tài)寄存器)。UTRSTATn寄存器用來表明數(shù)據(jù)是否已經(jīng)發(fā)送完畢,是否已經(jīng)接收到數(shù)據(jù)。第11章UART接口(8)配置UERSTATn寄存器(UART錯(cuò)誤狀態(tài)寄存器)。UERSTATn寄存器用來表示各種錯(cuò)誤是否發(fā)生,位[0]至位[3]為1時(shí)分別表示溢出錯(cuò)誤、校驗(yàn)錯(cuò)誤、幀錯(cuò)誤、檢測(cè)到“break”信號(hào)。(9)配置UTXHn寄存器(UART發(fā)送緩沖寄存器)。CPU將數(shù)據(jù)寫入U(xiǎn)TXHn寄存器,UART即會(huì)將它保存到緩沖區(qū)中,并自動(dòng)發(fā)送出去。(10)配置URXHn寄存器(UART接收緩沖寄存器)。當(dāng)UART接收到數(shù)據(jù)時(shí),讀取URXHn寄存器,即可獲得數(shù)據(jù)。第11章UART接口11.3串行口專用寄存器串口時(shí)鐘源選擇寄存器該寄存器用于為各通道的UART選擇時(shí)鐘源,如表11.1所示。第11章UART接口表11.1串口時(shí)鐘源選擇寄存器(CLK_SRC_PERIL0)第11章UART接口2.時(shí)鐘分頻系數(shù)寄存器該寄存器用于為5路UART通道設(shè)置分頻系數(shù),如表11.2所示。表11.2時(shí)鐘分頻系數(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)用實(shí)例
通過本實(shí)例講解UART的配置和使用方法。該實(shí)例中使用了UART0,程序中僅對(duì)該串口進(jìn)行了設(shè)置。目的是自串口輸入一個(gè)字符,再從串口終端原樣輸出。代碼如下:第11章UART接口定義指向寄存器物理地址的變量//GPA0口將被設(shè)置為功能接口,用于UART的收/發(fā)#defineGPA0CON
(*(volatileunsignedint*)0x11400000)//UART時(shí)鐘相關(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對(duì)應(yīng)的GPIO為UART功能
GPA0CON|=((0x2<<0)|(0x2<<4));/*2.設(shè)置UART時(shí)鐘源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*寄存器的值如下計(jì)算:*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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國(guó)市政工程中南設(shè)計(jì)研究總院限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)農(nóng)科院質(zhì)標(biāo)所公開招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)東方電氣集團(tuán)限公司面向全社會(huì)招聘部分二級(jí)企業(yè)總法律顧問4人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年福建寧德市市直及部分縣(區(qū))事業(yè)單位招聘340人筆試高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年江蘇省鹽城射陽縣部分事業(yè)單位招聘34人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年安徽馬鞍山市直事業(yè)單位招聘工作人員人選及高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川達(dá)州市招聘衛(wèi)生類事業(yè)單位工作人員630人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年電影貼片廣告合同3篇
- 2025上半年貴州黔東南州水利投資(集團(tuán))限責(zé)任公司招聘8人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年江西九江市事業(yè)單位招考和考試選調(diào)擬正式聘用人員(三)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 國(guó)家開放大學(xué)《土木工程力學(xué)(本)》形考作業(yè)1-5參考答案
- 《千里江山圖》演示文稿
- 職業(yè)規(guī)劃樣本
- 五年級(jí)數(shù)學(xué)公式(共4頁)
- 食堂食品定點(diǎn)采購詢價(jià)記錄表
- 國(guó)家開放大學(xué)電大專科《獸醫(yī)基礎(chǔ)》2023-2024期末試題及答案試卷編號(hào):2776
- 示教機(jī)械手控制系統(tǒng)設(shè)計(jì)
- 氧化鋁生產(chǎn)工藝教學(xué)(拜耳法)
- 選礦學(xué)基礎(chǔ)PPT課件
- 初中數(shù)學(xué)思維訓(xùn)練給你一個(gè)活的數(shù)學(xué)大腦任勇課堂PPT
- 安利食品經(jīng)銷商合同協(xié)議范本模板
評(píng)論
0/150
提交評(píng)論