已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档ARM的串行口实验报告班级: 电信091 学号: 200916022121 姓名: 指导教师: 陶福寿 日期: 2011年10月12日 目录一、实验目的3二、实验内容3三、预备知识3四、实验设备及工具3五、实验原理及说明4六、实验步骤4七、思考题71232串行通讯的数据格式是什么?72串行通讯最少需要几根线,分别如何连接?83ARM的串行口有几个,相应的寄存器是什么?84用中断方式实现串口驱动。9ARM的串行口实验 一、实验目的 掌握ARM的串行口工作原理。 学习编程实现ARM的UART通讯。 掌握CPU利用串口通讯的方法。 二、实验内容 学习串行通讯原理,了解串行通讯控制器,阅读ARM芯片文档,掌握ARM的UART相关寄存器的功能,熟悉ARM系统硬件的UART相关接口。编程实现ARM和计算机实现串行通讯: ARM监视串行口,将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按PC键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。 三、预备知识 1、用EWARM集成开发环境,编写和调试程序的基本过程。 2、ARM应用程序的框架结构。 3、了解串行总线 四、实验设备及工具 硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T的JTAG仿真器、串口线。 软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序。 五、实验原理及说明 异步串行IO 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行IO可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行IO方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 六、实验步骤 1编写串口驱动函数 2在主函数中实现将从串口0接收到的数据发送到串口0(Main.c): 3. 启动H-JTAG 仿真器并进行初始化配置。 4. 启动EWARM新建工程,将“Exp1 ARM串口实验”中的文件添加到工程中并调试运行七、思考题 1232串行通讯的数据格式是什么?答:开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“”作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600 等。接收方按约定的格式接收数据,并进行检查,可以查出以下三种错误:1)奇偶错:在约定奇偶检查的情况下,接收到的字符奇偶状态和约定不符。2)帧格式错:一个字符从起始位到停止位的总位数不对。3)溢出错:若先接收的字符尚未被微机读取,后面的字符又传送过来,则产生溢出错。每一种错误都会给出相应的出错信息,提示用户处理。2串行通讯最少需要几根线,分别如何连接?答:TXDRXD 是一对数据线,TXD 称发送数据输出,RXD 称接收数据输入。当两台微机以全双工方式直接通信(无MODEM 方式)时,双方的这两根线应交叉联接(扭接)。所有的信号都要通过信号地线构成耦合回路。通信线有以上三条(TXD、RXD 和信号地)就能工作了。其余信号主要用于双方设备通信过程中的联络(握手信号),而且有些信号仅用于和MODEM 的联络。若采取微型机对微型机直接通信,且双方可直接对异步串行通信电路芯片编程,若设置成不要任何联络信号,则其它线都可不接。有时在通信线的同一端将相关信号短接以“自握手”方式满足联络要求。3ARM的串行口有几个,相应的寄存器是什么?答:ARM 自带三个UART 端口,每个UART 通道都有16 字节的FIFO(先入先出寄存器)用于接受和发送。用系统时钟最大波特率可达230.4K,如果用外部时钟(UCLK)UART 可以以更高的波特率运行。UART线控制寄存器包括ULCON0,ULCON1和ULCON2,主要用来选择每帧数据位数、停止位数,奇偶校验模式及是否使用红外模式。UART控制寄存器包括UCON0, UCON1 and UCON2,主要用来选择时钟,接收和发送中断类型(即电平还是脉冲触发类型),接收超时使能,接收错误状态中断使能,回环模式,发送接收模式等。UART错误状态寄存器包括UERSTAT0, UERSTAT1 and UERSTAT2,此状态寄存器的相关位表明是否有帧错误或溢出错误发生。UART 模块中有三个接收/发送状态寄存器,包括UTRSTAT0,UTRSTAT1 和UTRSTAT2。在UART 模块中有3 个UART 发送缓冲寄存器,包括UTXH0,UTXH1 和UTXH2,UTXHn 有8位发送数据。在UART 模块中有3 个UART 接收缓冲寄存器,包括URXH0,URXH1 和URXH2,URXHn 有8位接收数据。UART包括三个波特率因子寄存器UBRDIV0, UBRDIV1 and UBRDIV2,存储在波特率因子寄存器(UBRDIVn)中的值决定串口发送和接收的时钟数率(波特率)4用中断方式实现串口驱动。 答:/*Copyright (c) 2004-2007 , All rights reserved.by threewter2004.5.12*/* #说明: C main 函数,ucos-ii初始化等定义- Bug - TODO list -修正-2004-5-12创建*/#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);/从串口采集数据 /Uart_SendByten(0,c10);/显示采集的数据while(1) Uart_SendByten(0,0xa);/换行Uart_SendByten(0,0xd);/回车 do err=Uart_Getchn(input1,0,0);/从串口采集数据 if(input10=a) err=Uart_Getchn(input2,0,0);/从串口采集数据 if(input20=b) err=Uart_Getchn(input3,0,0);/从串口采集数据 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);/从串口采集数据 Uart_SendByten(0,c10);/显示采集的数据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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年影视制作与发行代理合同
- 2024年度计算机软件开发及技术支持服务合同2篇
- 2024版设备租赁与维护年度合同3篇
- 2024年度企业员工出差与住宿安排及劳动合同规定合同6篇
- 2024年分包商劳务合同3篇
- 2024版实验室空调设备采购及安装合同3篇
- 2024年房产买卖合同违约责任3篇
- 2024年度软装设计效果图合同
- 2024年户外墙面租赁协议范本版B版
- 2024年书画经纪业务合同范本3篇
- 《 早 晚 课 诵 集》
- 中国文化英语教程Unit 4
- 《银行业重要信息系统突发事件应急管理规范试行》
- 体检中心工作章程制度和岗位职责
- 翡翠基础知识ppt课件
- 机房UPS及蓄电池巡检记录表
- 教师对学校管理满意度调查表
- 新《政府会计制度》对事业单位资产核算的影响
- 世界的气候类型特征及其气温和降水图[清晰归纳)(共1页)
- 水闸水力计算.xls
- 9第九章细胞质遗传
评论
0/150
提交评论