已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔ARM的串行口實(shí)驗(yàn)報(bào)告班級(jí): 電信091 學(xué)號(hào): 200916022121 姓名: 指導(dǎo)教師: 陶福壽 日期: 2011年10月12日 目錄一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)內(nèi)容3三、預(yù)備知識(shí)3四、實(shí)驗(yàn)設(shè)備及工具3五、實(shí)驗(yàn)原理及說(shuō)明4六、實(shí)驗(yàn)步驟4七、思考題71232串行通訊的數(shù)據(jù)格式是什么?72串行通訊最少需要幾根線,分別如何連接?83ARM的串行口有幾個(gè),相應(yīng)的寄存器是什么?84用中斷方式實(shí)現(xiàn)串口驅(qū)動(dòng)。9ARM的串行口實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康?掌握ARM的串行口工作原理。 學(xué)習(xí)編程實(shí)現(xiàn)ARM的UART通訊。 掌握CPU利用串口通訊的方法。 二、實(shí)驗(yàn)內(nèi)容 學(xué)習(xí)串行通訊原理,了解串行通訊控制器,閱讀ARM芯片文檔,掌握ARM的UART相關(guān)寄存器的功能,熟悉ARM系統(tǒng)硬件的UART相關(guān)接口。編程實(shí)現(xiàn)ARM和計(jì)算機(jī)實(shí)現(xiàn)串行通訊: ARM監(jiān)視串行口,將接收到的字符再發(fā)送給串口(計(jì)算機(jī)與開發(fā)板是通過(guò)超級(jí)終端通訊的),即按PC鍵盤通過(guò)超級(jí)終端發(fā)送數(shù)據(jù),開發(fā)板將接收到的數(shù)據(jù)再返送給PC,在超級(jí)終端上顯示。 三、預(yù)備知識(shí) 1、用EWARM集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過(guò)程。 2、ARM應(yīng)用程序的框架結(jié)構(gòu)。 3、了解串行總線 四、實(shí)驗(yàn)設(shè)備及工具 硬件:ARM嵌入式開發(fā)平臺(tái)、PC機(jī)Pentium100以上、用于ARM920T的JTAG仿真器、串口線。 軟件:PC機(jī)操作系統(tǒng)Win2000或WinXP、EWARM集成開發(fā)環(huán)境、仿真器驅(qū)動(dòng)程序、超級(jí)終端通訊程序。 五、實(shí)驗(yàn)原理及說(shuō)明 異步串行IO 異步串行方式是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位(例如先低位、后高位)地傳送。數(shù)據(jù)的各不同位可以分時(shí)使用同一傳輸通道,因此串行IO可以減少信號(hào)連線,最少用一對(duì)線即可進(jìn)行。接收方對(duì)于同一根線上一連串的數(shù)字信號(hào),首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。在微型計(jì)算機(jī)中大量使用異步串行IO方式,雙方使用各自的時(shí)鐘信號(hào),而且允許時(shí)鐘頻率有一定誤差,因此實(shí)現(xiàn)較容易。但是由于每個(gè)字符都要獨(dú)立確定起始和結(jié)束(即每個(gè)字符都要重新同步),字符和字符間還可能有長(zhǎng)度不定的空閑時(shí)間,因此效率較低。 六、實(shí)驗(yàn)步驟 1編寫串口驅(qū)動(dòng)函數(shù) 2在主函數(shù)中實(shí)現(xiàn)將從串口0接收到的數(shù)據(jù)發(fā)送到串口0(Main.c): 3. 啟動(dòng)H-JTAG 仿真器并進(jìn)行初始化配置。 4. 啟動(dòng)EWARM新建工程,將“Exp1 ARM串口實(shí)驗(yàn)”中的文件添加到工程中并調(diào)試運(yùn)行七、思考題 1232串行通訊的數(shù)據(jù)格式是什么?答:開始前,線路處于空閑狀態(tài),送出連續(xù)“1”。傳送開始時(shí)首先發(fā)一個(gè)“”作為起始位,然后出現(xiàn)在通信線上的是字符的二進(jìn)制編碼數(shù)據(jù)。每個(gè)字符的數(shù)據(jù)位長(zhǎng)可以約定為5 位、6 位、7 位或8 位,一般采用ASCII 編碼。后面是奇偶校驗(yàn)位,根據(jù)約定,用奇偶校驗(yàn)位將所傳字符中為“1”的位數(shù)湊成奇數(shù)個(gè)或偶數(shù)個(gè)。也可以約定不要奇偶校驗(yàn),這樣就取消奇偶校驗(yàn)位。最后是表示停止位的“1”信號(hào),這個(gè)停止位可以約定持續(xù)1 位、1.5 位或2 位的時(shí)間寬度。至此一個(gè)字符傳送完畢,線路又進(jìn)入空閑,持續(xù)為“1”。經(jīng)過(guò)一段隨機(jī)的時(shí)間后,下一個(gè)字符開始傳送才又發(fā)出起始位。每一個(gè)數(shù)據(jù)位的寬度等于傳送波特率的倒數(shù)。微機(jī)異步串行通信中,常用的波特率為50,95,110,150,300,600,1200,2400,4800,9600 等。接收方按約定的格式接收數(shù)據(jù),并進(jìn)行檢查,可以查出以下三種錯(cuò)誤:1)奇偶錯(cuò):在約定奇偶檢查的情況下,接收到的字符奇偶狀態(tài)和約定不符。2)幀格式錯(cuò):一個(gè)字符從起始位到停止位的總位數(shù)不對(duì)。3)溢出錯(cuò):若先接收的字符尚未被微機(jī)讀取,后面的字符又傳送過(guò)來(lái),則產(chǎn)生溢出錯(cuò)。每一種錯(cuò)誤都會(huì)給出相應(yīng)的出錯(cuò)信息,提示用戶處理。2串行通訊最少需要幾根線,分別如何連接?答:TXDRXD 是一對(duì)數(shù)據(jù)線,TXD 稱發(fā)送數(shù)據(jù)輸出,RXD 稱接收數(shù)據(jù)輸入。當(dāng)兩臺(tái)微機(jī)以全雙工方式直接通信(無(wú)MODEM 方式)時(shí),雙方的這兩根線應(yīng)交叉聯(lián)接(扭接)。所有的信號(hào)都要通過(guò)信號(hào)地線構(gòu)成耦合回路。通信線有以上三條(TXD、RXD 和信號(hào)地)就能工作了。其余信號(hào)主要用于雙方設(shè)備通信過(guò)程中的聯(lián)絡(luò)(握手信號(hào)),而且有些信號(hào)僅用于和MODEM 的聯(lián)絡(luò)。若采取微型機(jī)對(duì)微型機(jī)直接通信,且雙方可直接對(duì)異步串行通信電路芯片編程,若設(shè)置成不要任何聯(lián)絡(luò)信號(hào),則其它線都可不接。有時(shí)在通信線的同一端將相關(guān)信號(hào)短接以“自握手”方式滿足聯(lián)絡(luò)要求。3ARM的串行口有幾個(gè),相應(yīng)的寄存器是什么?答:ARM 自帶三個(gè)UART 端口,每個(gè)UART 通道都有16 字節(jié)的FIFO(先入先出寄存器)用于接受和發(fā)送。用系統(tǒng)時(shí)鐘最大波特率可達(dá)230.4K,如果用外部時(shí)鐘(UCLK)UART 可以以更高的波特率運(yùn)行。UART線控制寄存器包括ULCON0,ULCON1和ULCON2,主要用來(lái)選擇每幀數(shù)據(jù)位數(shù)、停止位數(shù),奇偶校驗(yàn)?zāi)J郊笆欠袷褂眉t外模式。UART控制寄存器包括UCON0, UCON1 and UCON2,主要用來(lái)選擇時(shí)鐘,接收和發(fā)送中斷類型(即電平還是脈沖觸發(fā)類型),接收超時(shí)使能,接收錯(cuò)誤狀態(tài)中斷使能,回環(huán)模式,發(fā)送接收模式等。UART錯(cuò)誤狀態(tài)寄存器包括UERSTAT0, UERSTAT1 and UERSTAT2,此狀態(tài)寄存器的相關(guān)位表明是否有幀錯(cuò)誤或溢出錯(cuò)誤發(fā)生。UART 模塊中有三個(gè)接收/發(fā)送狀態(tài)寄存器,包括UTRSTAT0,UTRSTAT1 和UTRSTAT2。在UART 模塊中有3 個(gè)UART 發(fā)送緩沖寄存器,包括UTXH0,UTXH1 和UTXH2,UTXHn 有8位發(fā)送數(shù)據(jù)。在UART 模塊中有3 個(gè)UART 接收緩沖寄存器,包括URXH0,URXH1 和URXH2,URXHn 有8位接收數(shù)據(jù)。UART包括三個(gè)波特率因子寄存器UBRDIV0, UBRDIV1 and UBRDIV2,存儲(chǔ)在波特率因子寄存器(UBRDIVn)中的值決定串口發(fā)送和接收的時(shí)鐘數(shù)率(波特率)4用中斷方式實(shí)現(xiàn)串口驅(qū)動(dòng)。 答:/*Copyright (c) 2004-2007 , All rights reserved.by threewter2004.5.12*/* #說(shuō)明: C main 函數(shù),ucos-ii初始化等定義- Bug - TODO list -修正-2004-5-12創(chuàng)建*/#include./ucos-ii/includes.h /* uC/OS interface */#include ./ucos-ii/add/osaddition.h/#include ./inc/drivers.h/#include ./inc/sys/lib.h/#include ./src/gui/gui.h#define U8 unsigned char#include #include #define TRUE 1#define FALSE 0#pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting #define rUTRSTAT0(*(volatile unsigned *)0x50000010)#define rUTRSTAT1(*(volatile unsigned *)0x50004010)#define WrUTXH0(ch)(*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)#define WrUTXH1(ch)(*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)#define RdURXH0()(*(volatile unsigned char *)0x50000024)#define RdURXH1()(*(volatile unsigned char *)0x50004024)/void Uart_SendByten(int Uartnum, U8 data);void Uart_SendByten(int,U8);char Uart_Getchn(char* Revdata, int Uartnum, int timeout);void ARMTargetInit(void);void hudelay(int time);int main(void) /int ndev; char c11;char input11; char input21; char input31; char err;ARMTargetInit(); / do target (uHAL based ARM system) initialisation / /err=Uart_Getchn(c1,0,0);/從串口采集數(shù)據(jù) /Uart_SendByten(0,c10);/顯示采集的數(shù)據(jù)while(1) Uart_SendByten(0,0xa);/換行Uart_SendByten(0,0xd);/回車 do err=Uart_Getchn(input1,0,0);/從串口采集數(shù)據(jù) if(input10=a) err=Uart_Getchn(input2,0,0);/從串口采集數(shù)據(jù) if(input20=b) err=Uart_Getchn(input3,0,0);/從串口采集數(shù)據(jù) if(input30=c) Uart_SendByten(0,input10); Uart_SendByten(0,input20); Uart_SendByten(0,input30); else continue; else continue; else continue; Uart_SendByten(0,0xa);/換行Uart_SendByten(0,0xd);/回車 while(1); err=Uart_Getchn(c1,0,0);/從串口采集數(shù)據(jù) Uart_SendByten(0,c10);/顯示采集的數(shù)據(jù)void Uart_SendByten(int Uartnum, U8 data)/ok eric rong /int i;if(Uartnum=0) while(!(rUTRSTAT0 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH0(data); else while(!(rUTRSTAT1 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH1(data); char Uart_Getchn(char* Revdata, int Uartn
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年護(hù)理查對(duì)制度專項(xiàng)考核試題題庫(kù)及答案
- 2025云南保山九隆街道辦事處招聘公益性崗位工作人員3人筆試模擬試題及答案解析
- 2026云南普洱市數(shù)據(jù)局招聘城鎮(zhèn)公益性崗位工作人員2人考試備考題庫(kù)及答案解析
- 培訓(xùn)師課程開發(fā)與效果評(píng)估
- 職業(yè)中學(xué)技能競(jìng)賽組織方案
- 2025廣東中山職業(yè)技術(shù)學(xué)院附屬幼兒園招聘筆試備考題庫(kù)及答案解析
- 2026江西省第五人民醫(yī)院招聘編制外人員1人筆試參考題庫(kù)及答案解析
- 美術(shù)培訓(xùn)班課程設(shè)計(jì)與教學(xué)案例
- 室內(nèi)石材鋪貼施工規(guī)范與方法
- 建筑工程復(fù)工申請(qǐng)及審核流程
- 墻壁維護(hù)施工方案(3篇)
- 骨外科護(hù)理年度工作總結(jié)范文
- 東北大學(xué)《大學(xué)物理》2024 - 2025 學(xué)年第一學(xué)期期末試卷
- 人工智能安全風(fēng)險(xiǎn)測(cè)評(píng)白皮書(2025年)
- 2025下半年貴州遵義市第一人民醫(yī)院招聘事業(yè)單位65人筆試備考重點(diǎn)試題及答案解析
- 圍麻醉期應(yīng)激反應(yīng)的調(diào)控策略
- 2025年外貿(mào)實(shí)習(xí)合同協(xié)議
- 集成電路封裝測(cè)試廠建設(shè)項(xiàng)目可行性研究報(bào)告
- 醫(yī)院服務(wù)禮儀培訓(xùn)
- 亞朵酒店管理分析
- 個(gè)人簡(jiǎn)歷模版(三頁(yè))帶封面(可編輯)大學(xué)畢業(yè)生版
評(píng)論
0/150
提交評(píng)論