![嵌入式系統(tǒng):第七章 通用異步收發(fā)器(UART)_第1頁(yè)](http://file4.renrendoc.com/view/b6bd0fb99f8d3097829e0d9f136bd643/b6bd0fb99f8d3097829e0d9f136bd6431.gif)
![嵌入式系統(tǒng):第七章 通用異步收發(fā)器(UART)_第2頁(yè)](http://file4.renrendoc.com/view/b6bd0fb99f8d3097829e0d9f136bd643/b6bd0fb99f8d3097829e0d9f136bd6432.gif)
![嵌入式系統(tǒng):第七章 通用異步收發(fā)器(UART)_第3頁(yè)](http://file4.renrendoc.com/view/b6bd0fb99f8d3097829e0d9f136bd643/b6bd0fb99f8d3097829e0d9f136bd6433.gif)
![嵌入式系統(tǒng):第七章 通用異步收發(fā)器(UART)_第4頁(yè)](http://file4.renrendoc.com/view/b6bd0fb99f8d3097829e0d9f136bd643/b6bd0fb99f8d3097829e0d9f136bd6434.gif)
![嵌入式系統(tǒng):第七章 通用異步收發(fā)器(UART)_第5頁(yè)](http://file4.renrendoc.com/view/b6bd0fb99f8d3097829e0d9f136bd643/b6bd0fb99f8d3097829e0d9f136bd6435.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、通用異步收發(fā)器(UART)LPC1700系列Cortex-M3微控制器目 錄 UART簡(jiǎn)介1 UART功能應(yīng)用2UART基本操作3UART簡(jiǎn)介 通用異步收發(fā)器(UART)是實(shí)現(xiàn)設(shè)備間異步串行通信的關(guān)鍵模塊,LPC1700系列ARM具有4個(gè)符合16C550工業(yè)標(biāo)準(zhǔn)的異步串口。16字節(jié)收發(fā)FIFO 內(nèi)置小數(shù)分頻器 支持DMA發(fā)送接收UART1增加Modem和RS-485/EIA-485模式UART0、UART2、UART3增加IrDA接口目 錄 UART簡(jiǎn)介1 UART功能應(yīng)用2UART基本操作3UART功能應(yīng)用 RS-232是PC機(jī)與設(shè)備通信里應(yīng)用最廣泛的一種串行接口。它被定義為一種在低速率串行
2、通訊中增加通訊距離的單端標(biāo)準(zhǔn),由于其最大通信距離的限制,因此它常用于本地設(shè)備之間的通信。 最高速率約為20kb/s 傳輸最大距離約為15m 共模抑制比能力差RS-232特性打印機(jī)PCRS-232電平轉(zhuǎn)換UART功能應(yīng)用 與TTL電平兼容 傳輸距離實(shí)際達(dá)1200m 共模抑制比能力強(qiáng) RS-485是一種常用遠(yuǎn)距離和多機(jī)通信的串行接口。RS-485只是定義電壓和阻抗,編程方式和普通串口類(lèi)似,與RS-232主要區(qū)別在于其特性。RS-485特性UART功能應(yīng)用 成本低 體積小、功耗低 數(shù)據(jù)傳輸干擾較小 LPC1700系列ARM的UART0/2/3可以工作在UART模式,也可以工作在IrDA模式,這兩種不
3、同的工作模式不能在各自的應(yīng)用里互換。IrDA是一種利用紅外進(jìn)行點(diǎn)對(duì)點(diǎn)無(wú)線(xiàn)通信的技術(shù)。IrDA的優(yōu)點(diǎn)UART功能應(yīng)用 LPC1700系列ARM僅有UART1具有Modem接口,通過(guò)該接口可以接入電話(huà)線(xiàn)網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)距離通信。目 錄 UART簡(jiǎn)介1 UART功能應(yīng)用2UART基本操作3UART基本操作引腳配置波特率設(shè)置幀格式設(shè)置FIFO設(shè)置UnLCR字符長(zhǎng)度停止位、校驗(yàn)位UART的初始化 1UnDLL、UnDLM、手動(dòng)波特率 UnFCRFIFO自動(dòng)復(fù)位 Rx觸發(fā)點(diǎn)選擇UART基本操作波特率設(shè)置 PCLKUnDLL波特率發(fā)生器UnDLMUnFDR目標(biāo)波特率:Baud = FPCLK / (16xUnDL
4、M:UnDLL)假設(shè)APB時(shí)鐘為24MHz,UART0要得到的目標(biāo)波特率為9600:U0LCR = 0 x83;usFdiv = (FPCLK / 16) / 9600;U0DLM = usFdiv / 256;U0DLL = usFdiv % 256;U0LCR = 0 x03;操作示例:允許設(shè)置波特率設(shè)置波特率鎖存波特率手動(dòng)波特率配置模式: UART波特率發(fā)生器的時(shí)鐘源是APB時(shí)鐘,APB時(shí)鐘經(jīng)過(guò)16分頻后將該值保存在除數(shù)鎖存寄存器DLM與DLLUART基本操作幀格式設(shè)置 UART通信時(shí)需保證收發(fā)兩端的幀格式一致,否則會(huì)出現(xiàn)通信錯(cuò)誤停止位2奇偶設(shè)置3奇偶選擇5 : 4字長(zhǎng)功能1 :0位Un
5、LCR可有可無(wú) 12位操作示例:要求UART0的工作模式為:8位字符長(zhǎng)度,1個(gè)停止位,無(wú)奇偶校驗(yàn)0 0U0LCR = 0 x03;001 1UART基本操作FIFO設(shè)置位75:3210功能Rx觸發(fā)選擇保留Tx FIFO復(fù)位Rx FIFO復(fù)位FIFO使能 FIFO的初始化比較簡(jiǎn)單,主要設(shè)置包括Rx的觸發(fā)深度,Tx FIFO與Rx FIFO的復(fù)位,以及FIFO的使能。UnFCR操作示例:U0FCR = 0 x83; UART0接收緩沖區(qū)觸發(fā)點(diǎn)為8字節(jié),同時(shí)使能并復(fù)位發(fā)送和接收FIFOUART基本操作UART的數(shù)據(jù)收發(fā)2UART數(shù)據(jù)收發(fā)UnLSR UnIIR查詢(xún)發(fā)送狀態(tài)查詢(xún)接收狀態(tài)UnLSR UnI
6、IR接收數(shù)據(jù)UnRBR 發(fā)送數(shù)據(jù)UnTHR發(fā)送過(guò)程接收過(guò)程UART基本操作 在數(shù)據(jù)收發(fā)的過(guò)程中,通常采用查詢(xún)和中斷兩種方式來(lái)進(jìn)行。它們的基本原理如下:中斷方式:通過(guò)中斷實(shí)現(xiàn)對(duì)數(shù)據(jù)的收發(fā),然后查詢(xún)中斷標(biāo)志寄存器(UnIIR)來(lái)進(jìn)行不同處理。查詢(xún)方式:通過(guò)查詢(xún)線(xiàn)狀態(tài)寄存器(UnLSR)來(lái)獲得數(shù)據(jù)發(fā)送和接收的狀態(tài),然后進(jìn)行相應(yīng)操作。 UART數(shù)據(jù)收發(fā)原理UART基本操作 UART發(fā)送單元 UnTHR是發(fā)送FIFO的最高字節(jié)。它包含了TX FIFO中的最新字符,可以通過(guò)總線(xiàn)接口對(duì)其操作UnTSRTxFIFO發(fā)送單元內(nèi)部結(jié)構(gòu)THR發(fā)送單元發(fā)送移位寄存器(UnTSR)發(fā)送保持寄存器(UnTHR)發(fā)送FIF
7、OUART基本操作 UART查詢(xún)方式發(fā)送 UnTSR151413121110987654321UnTHR0 xAAFIFOCPU向發(fā)送保持寄存器(UnTHR)寫(xiě)數(shù)據(jù),數(shù)據(jù)進(jìn)入發(fā)送FIFO,然后通過(guò)發(fā)送移位寄存器將數(shù)據(jù)從TXD引腳發(fā)送出去 UnLSR5UnLSR5反映發(fā)送FIFO中是否包含數(shù)據(jù)。FIFO有數(shù)據(jù) U0THR = ucDat; while (U0LSR & 0 x20) = 0); TXDUART基本操作 UART接收單元接收單元接收移位寄存器(UnRSR)接收保持寄存器(UnRBR)接收FIFOUnRSRRxFIFO接收單元內(nèi)部結(jié)構(gòu)RBR UnRBR是接收FIFO的最高字節(jié),它包含
8、了最高接收到的字符,可以通過(guò)總線(xiàn)接口讀取它。UART基本操作 UART查詢(xún)方式接收 UnRSR151413121110987654321UnRBRFIFOdataUnLSR0UnLSR0反映接收FIFO中是否包含數(shù)據(jù)。移位寄存器(RSR)從RXD引腳接收串行數(shù)據(jù)后,送入接收FIFO;CPU從接收保持寄存器(UnRBR)將收到的數(shù)據(jù)讀出 while (U0LSR & 0 x01) = 0); ucRcvData = U0RBR; FIFO有數(shù)據(jù)若無(wú)數(shù)據(jù),則始終查詢(xún),浪費(fèi)CPU的資源UART基本操作 UART中斷寄存器中斷狀態(tài)0中斷標(biāo)志3 : 1功能位UnIIR位0: 表示中斷是否掛起 0:至少1
9、個(gè)中斷掛起 1:沒(méi)有掛起中斷位31:表示中斷狀態(tài) 001:發(fā)送中斷 010:接收數(shù)據(jù)中斷 110:字符超時(shí)中斷 其他:略UART基本操作 UART中斷方式接收 UnRSR151413121110987654321UnRBRFIFO觸發(fā)點(diǎn)data當(dāng)RX FIFO中數(shù)據(jù)未達(dá)8個(gè)字節(jié),且在一斷時(shí)間內(nèi)未放入數(shù)據(jù),會(huì)產(chǎn)生接收器超時(shí)中斷;當(dāng)RX FIFO中寄存器字節(jié)數(shù)達(dá)到8個(gè)時(shí),觸發(fā)RDA中斷。收到8個(gè)字符,到達(dá)預(yù)設(shè)值,產(chǎn)生RDA中斷產(chǎn)生字符超時(shí)中斷(CTI)假設(shè)此時(shí)UnFCR7:6為10,則RX的觸發(fā)點(diǎn)設(shè)置為8個(gè)字節(jié)等待3.5-4.5個(gè)字節(jié)的時(shí)間可以一次讀取多個(gè)數(shù)據(jù),當(dāng)對(duì)UnRBR執(zhí)行讀操作,中斷標(biāo)志被
10、清除。仍然沒(méi)有接收到數(shù)據(jù)UART基本操作 RDA中斷服務(wù)程序 switch(U0IIR & 0 x0f) case 0 x04: /* 發(fā)生 RDA 中斷 */ for(i = 0; i 8; i+) /* 連續(xù)讀取 U0RBR 寄存器 8 次 */ RvBufi=U0RBR; /*將接收到的數(shù)據(jù)保存到接收緩沖區(qū) RcvBuf中 */ UART基本操作 CTI中斷服務(wù)程序 switch(U0IIR & 0 x0f) case 0 x0c: /* 發(fā)生超時(shí)中斷CTI */ while(U0LSR & 0 x01) = 1) /* 如果接收 FIFO 中含有數(shù)據(jù), 就讀取 UnRBR 寄存器 */
11、RcvBuf i+ = U0RBR; /* 將數(shù)據(jù)保存到接收緩沖區(qū) RcvBuf中 */ break UART基本操作 初始化例程#define UART_BPS 115200 /* 定義通訊波特率 */ /*/* 函數(shù)名稱(chēng): UART0_Ini * 函數(shù)功能: 初始化串口 0。設(shè)置為 8 位數(shù)據(jù)位, 1 位停止位,無(wú)奇偶校驗(yàn), 波特率為 115200 */void UART0_Ini(void) uint32_t Fdiv = 0; U0LCR = 0 x83; /* DLAB = 1,可設(shè)置波特率 */ Fdiv = (Fpclk / 16) / UART_BPS; /* 設(shè)置波特率 */
12、 U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03; /* 鎖定除數(shù)訪(fǎng)問(wèn) */ U0FCR = 0 x07; /* 使能并復(fù)位 FIFO */ UART基本操作 查詢(xún)方式發(fā)送例程/* 函數(shù)名稱(chēng): UART0_SendByte * 函數(shù)功能: 向串口發(fā)送字節(jié)數(shù)據(jù),并等待發(fā)送完畢 * 入口參數(shù): data 要發(fā)送的數(shù)據(jù) * 出口參數(shù):無(wú) */void UART0_SendByte(uint8 data) U0THR = data; /* 發(fā)送數(shù)據(jù) */ while ( (U0LSR&0 x40)=0 ); /* 等待數(shù)據(jù)發(fā)送完畢 */ UART基本操作 查詢(xún)方式接收例程/* 函數(shù)名稱(chēng): U
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初級(jí)銀行業(yè)法律法規(guī)與綜合能力-初級(jí)銀行從業(yè)資格考試《法律法規(guī)與綜合能力》押題密卷2
- DB31T1110.1-食品和食用農(nóng)產(chǎn)品全鏈條信息追溯 第1部分:追溯編碼與標(biāo)識(shí)規(guī)范編制說(shuō)明
- 特困人員申請(qǐng)書(shū)
- 設(shè)計(jì)用戶(hù)友好的RESTful接口
- 2024-2025學(xué)年浙江省溫州市高二(上)期末地理試卷(B卷)
- 電大政治學(xué)原理考試題答案
- DB2111-T 0028-2023 植保無(wú)人飛機(jī)噴施農(nóng)藥防治水稻病蟲(chóng)害技術(shù)規(guī)程
- 煙草零售許可證申請(qǐng)書(shū)
- 編外勞動(dòng)合同(2篇)
- 四川省眉山市仁壽縣2024-2025學(xué)年高一上學(xué)期1月期末聯(lián)考物理試題(解析版)
- 烈士褒揚(yáng)課件教學(xué)課件
- 公務(wù)用車(chē)分時(shí)租賃實(shí)施方案
- 《論語(yǔ)》原文-翻譯-完整版
- 退休延期留用崗位協(xié)議書(shū)
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 壓瘡的預(yù)防和護(hù)理
- 《手衛(wèi)生知識(shí)培訓(xùn)》培訓(xùn)課件
- 算力時(shí)代全光網(wǎng)架構(gòu)研究報(bào)告(2024年)
- 2024年江蘇省淮安市中考英語(yǔ)試題卷(含答案解析)
- 2025屆高考作文素材:《黑神話(huà) 悟空》高考作文和素材運(yùn)用
- 譯林版八年級(jí)英語(yǔ)下冊(cè)英語(yǔ)單詞(帶默寫(xiě)版)
評(píng)論
0/150
提交評(píng)論