ARM串口实验报告_第1页
ARM串口实验报告_第2页
ARM串口实验报告_第3页
ARM串口实验报告_第4页
ARM串口实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 APM串口实验 实验报告课程名称: 嵌入式微处理器技术 班 级: 电 信 0901 姓 名: 地 点: 嵌入式系统基础实训室指导教师: 王瑾 ARM的串行口实验一、实验目的 掌握ARM 的串行口工作原理。 学习编程实现ARM 的UART 通讯。 掌握CPU 利用串口通讯的方法。 二、实验内容 学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART 相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。编程实现ARM 和计算机实现串行通讯:ARM 监视串行口,将接收到的字符再发送给串口(计算机与开发平台是通过超级终端通讯的), 即按PC 键盘通过超级终端发送数

2、据,开发平台将接收到的数据再返送给PC, 在超级终端上显示。 三、预备知识 1、 1用ARM SDT 2.5或ADS1.2 集成开发环境,编写和调试程序的基本过程。 2、 2ARM 应用程序的框架结构。 3、 3了解串行总线 四、实验设备及工具 硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。 软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。 五、实验原理及说明 1异步串行IO 异步串行方式是将传输数据的每个字符一位接一位(

3、例如先低位、后高位地传送。数据的各不同位可以分时使用同一传输通道,因此串行IO 可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行IO 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步,字符和字符间还可能有长度不定的空闲时间,因此效率较低。 图2-1 串行通信字符格式 图2-1 给出异步串行通信中一个字符的传送格式。开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“”

4、 作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1” 信号,这个停止位可以约定持续1 位、1.5位或2 位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。 每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为50, 95,110,150,300,600,12

5、00,2400,4800,9600, 等。 接收方按约定的格式接收数据,并进行检查,可以查出以下三种错误: 1)奇偶错:在约定奇偶检查的情况下,接收到的字符奇偶状态和约定不符。 2)帧格式错:一个字符从起始位到停止位的总位数不对。 3) 溢出错:若先接收的字符尚未被微机读取,后面的字符又传送过来,则产生溢出错。每一种错误都会给出相应的出错信息,提示用户处理。 串行接口的物理层标准 通用的串行IO 接口有许多种,现仅就最常见的两种标准作简单介绍。 1)EIA RS232C 这是美国电子工业协会推荐的一种标准(Electronic industries Association Recoil-men

6、ded Standard。它在一种25 针接插件(DB 25上定义了串行通信的有关信号。这个标准后来被世界各国所接受并使用到计算机的IO 接口中。 信号连线 在实际异步串行通信中,并不要求用全部的RS232C 信号,许多PCXT 兼容机仅用15 针接插件(DB15来引出其异步串行IO 信号,而PC 中更是大量采用9 针接插件(DB9来担当此任,因此这里也不打算就RS232C 的全部信号作详细解释。图2-2 给出两台微机利用RS232C 接口通信的联线(无M ODEM,我们按DB25 的引脚号标注各个信号。 下面对图2-2 中几个主要信号作简要说明。 保护地:通信线两端所接设备的金属外壳通过此线

7、相联。当通信电缆使用屏蔽线时,常利用其外皮金属屏蔽网来实现。由于各设备往往已通过电源线接通保护地,因此,通信线中不必重复接此地线(图中用虚线表示。例如使用9 针插头(DB9的异步串行IO 接口就没有引出保护地信号。 TXDRXD: 是一对数据线,TXD称发送数据输出,RXD称接收数据输入。当两台微机以全双工方式直接通信(无MODEM 方式时,双方的这两根线应交叉联接(扭接。 信号地:所有的信号都要通过信号地线构成耦合回路。通信线有以上三条(TXD、RXD 和信号地就能工作了。其余信号主要用于双方设备通信过程中的联络(握手信号,而且有些信号仅用于和MODEM 的联络。若采取微型机对微型机直接通信

8、,且双方可直接对异步串行通信电路芯片编程,若设置成不要任何联络信号,则其它线都可不接。有时在通信线的同一端将相关信号短接以“自握手”方式满足联络要求。这就是如图2-2(a所示的情况。 图2-2 实用RS-232C 连线 RTSCTS: 请求发送值号RTS 是发送器输出的准备好信号。接收方准备好后送回清除发送信号CTS 后, 发送数据开始进行,在同一端将这两个信号短接就意味着只要发送器准备好即可发送。 DCD:载波检测(又称接收线路信号检测。本意是MODEM 检测到线路中的载波信号后,通知终端准备接收数据的信号,在没有接MODEM 的情况下,也可以和RTS、CTS短接。相对于MODEM 而言,微

9、型机和终端机一样被称为数据终端DTE(Data Terminal Equipment 而MODEM 被称为数据通信装置DCE(Data Communications Equipment,DTE 和DCE 之间的连接不能像图2-2 中有“ 扭接” 现象,而应该是按接插件芯号,同名端对应相接。此处介绍的RS232C 的信号名称及信号流向都是对DTE 而言的。 DTRDSR: 数据终端准备好时发DTR 信号,在收到数据通信装置装备好DSR 信号后, 方可通信。图2-2(a中将这一对信号以“自握手”方式短接。 R1:原意是在MODEM 接收到电话交换机有效的拨号时,使RI 有效,通知数据终端准备传送。

10、在无MODEM 时也可和DTR 相接。 图2 -2(b给出了无MODEM 情况下,DTE 对DTE 异步串行通信线路的完整连接,它不仅适用于微型机和微型机之间的通信,还适用于微型机和异步串行外部设备(如终端机、绘图仪、数字化仪等的连接。 信号电平规定 RS232C 规定了双极性的信号逻辑电平: -3V 到-25V 之间的电平表示逻辑“1”。 +3V 到+25V 之间的电平表示逻辑“0”。 因此这是一套负逻辑定义。 以上标准称为EIA 电平。PCXT 系列使用的信号电平是-12V和+12V,符合EIA 标准, 但在计算机内部流动的信号都是TTL 电平,因此这中间需要用电平转换电路。常用芯片MCl

11、488 或SN75150 将TTL 电平转换为EIA 电平,MCl489 或SN75154 将EIA 电平转换为TTL 电平。PCXT 系列以这种方式进行串行通信时,在波特率不高于9600 的情况下,理论上通信线的长度限制纽为15 米。 2)20mA 电流环 20mA 电流环并没有形成一套完整的标准,主要是将数字信号的表示方法不使用电子的高低,而改用20mA 电流的有无:“1” 信号在环路中产生20mA 电流;“0” 信号无电流产生。当然也需要有电路来实现TTL 电平和20mA 电流之间的转换。图2-3 是PCXT 微机中使用的一种20mA 电流环接口。当发送方SOUT1 时,便有20mA 电

12、流灌入接收方的光耦合器,于是光耦合器导通,使S IN1。反之当发送方SOUT0 时环路电流为零,接收方光耦合器截止,SIN 0。显然,当要求双工方式通信时,双方都应各有收发电路,通信联线至少要4 根。由于通信双方利用光耦合器实现电气上隔离,而且信号又是双端回路方式,故有很强的抗干扰性,可以传送远至1 千米的距离。 图2-3 20mA 电流环接口“0”、“1” 信号的表示方法不同外,其他方面(如字符的传输格式常借用RS232C 标准。因此PCXT 微机中的异步串行信道接口往往将这两种标准做在一起,实际通过跨接线从二者中择一使用。 3ARM 自带的串行口寄存器 ARM 自带两个串行口,各带有16

13、字节的F IFO(先入先出寄存器),最大波特率115.2K。每个UART 有7 种状态:溢出错误、校验错误、帧错误、暂停态、接收缓冲区准备好、发送缓冲区空、发送移位缓冲器空,这些状态可以由相应的UTRSTATn/UERSTATn 表示,并且与发送接收缓冲区相对应的有错误缓冲区。波特率的可以通过控制波特率寄存器(UBRDIVn )控制, 与UART 有关的寄存器主要有以下几个: (1) UART 线性控制寄存器ULCONn,其地址和各位的意义参见表2-1: 表2-1 ULCONn 功能定义 ULCONn 位描述初始化状态保留 7 0 红外模式 6 红外模式位决定是否使用红外模式:0正常模式;1红

14、外模式 0 奇偶校验模式 5:3 奇偶校验模式指定当UART执行发送和接收操作时如何进行奇偶校验的产生和检查: 0xx无奇偶校验;100奇校验; 110 = 奇偶校验强制为1;111 = 奇偶校验强制为 0 000 停止位个数 2 每帧停止位的个数:01位;1两位。 0 数据位长度 1:0 字长位决定每帧发送或接收的数据位数:005位;016 位;107位;118位; 00 由上表可以看出,该寄存器的第6 位决定是否使用红外摸式,位53 决定校验方式,位2 决定停止位长度,位1 和决定每帧的数据位数。 参考:普通模式,无奇偶校验,1位停止位,8为数据长度。 (2)UART 控制寄存器UCONn

15、,该寄存器决定UART 的各种摸式。UART FIFO控制寄存器UFCONn,UART MODEM 控制寄存器,分别决定UART FIFO 和MODEM 的模式。其中UFCONn 的第0 位决定是否启用FIFO,UMCONn 的第0 位是请求发送位,对我们来说是比较重要的。控制寄存器UCONn 的功能定义如表2-2 所示。 表2-2 UCONn 功能定义 UCONn 位描述初始化状态发送中断类型 9 中断请求类型 0 = Pulse (在发放缓冲区变空时立即引发中断 1 = Level (在发送缓冲区为空进引发中断 0 接收中断类型 8 中断请示类型 0= Pulse (接收缓冲区接收到数据时

16、立即引发中断 1=Level (I接收缓冲区正在接收数据时引发中断 0 接收超收中断使能 7 在UART的FIFO使能的情况下,使能/禁止接收超时中断 0 =禁止 1 = 使能 0 接收错误状态中断使能 6 在接收操作时有跳变、帧错误、奇偶校验错误和溢出错误时,使能UART产生中断 0 = 不产生接收错误状态中断 1 = 产生接收错误状态中断t 0 回送模式5 设置回送位为1, 使得UART 进入回送模式。这个模式只是为了检测。0=标准操作 1=回送模式。0 发送中止信号4 设置这个位使得UART 在1 帧的时间里发送一个终止信号。在发送完终止信号后该位自动清零。0=标准传输 1=发送终止信号

17、。0 传输模式3:2 这两个位决定了目前哪个操作过程可以将Tx数据写入到UART 传输保持寄存器。00= 不可以 01= 中断请求或查询模式10=BDMAO 请求(只对于UART0) 11=BDMA1请求(只对于UART1)。00 接收模式 1:0 这两个位决定了目前哪个操作过程可以从UAR T接收缓冲寄存器读取数据。00 =不可以 01= 中断请求或查询模式 10=BDMAO 要求 11=BDMA1请求。00 参考:Tx电平触发,Rx边沿触发,禁止接收超时中断,允许接收错误中断,发送和接受模式均为01。 (3) 读写状态寄存器UTRSTAT 以及错误状态寄存UERSTAT, 可以反映芯片目前

18、的读写状态以及错误类型。FIFO 状态寄存器UFSTAT 和MODEM 状态寄存器UMSTAT, 通过前者可以读出目前FIFO 是否满以及其中的字节数;通过后者可以读出目前MODEM 的CTS 状态。UTRSTATn和UERSTATn 的功能定义分别如表2-3、2-4 所示。 表2-3 UTRSTATn 功能定义 UTRSTATn 位描述初始化状态传输移位器空2 当传输移位寄存器无有效数据去传输时,该位自动设为1,传输移位寄存器为空。0=非空 1=传输保持和移位寄存器空。1 传输缓冲器空1 当传输FIFO/ 缓冲寄存器无有效值数据, 该位自动设置为1. 0=缓冲寄存器非空 1=空。如果UART

19、使用FIFO,使用者不用看这位,只需检查UFSTAT寄存器的TxFIFO计数位和Tx FIFO所有位1 接收缓冲数据准备0 无论何时,当接收缓冲寄存器在RXDn端口接收到有效值时,该位自动置为1。0=全空 1=缓冲寄存器收到数据。1 字节FIFO 16 字节/缓冲寄存器接收到数据。如果UART 使用FIFO,使用者不需看这位,只要检查UFSTAT寄存器的Rx FIFO计数位。 0 表2-4 UERSTATn 功能定义 UERSTATn 位描述初始化状态中止检测3 该位自动设置为1表明接收到中止信号。0=没有收到中止 1=收到中止0 帧错误2 无论何时,在接收操作中发生帧错误时,该位自动设置为1

20、.0=在接收中无帧错误 1=帧错误0 奇偶错误1 无论何时,当接收操作中有奇偶发生时,该位自动设置为1.0=在接收中无奇偶错误发生 1=奇偶错误0 溢出错误0 无论何时,当接收操作中发生溢出错时,该位自动设置为1.0=接收中无溢出错发生 1=溢出错。0 (4) 发送寄存器UTXH 和接收寄存器URXH, 这两个寄存器存放着发送和接收的数据,当然只有一个字节位数据。需要注意的是在发生溢出错误的时候,接收的数据必须要被读出来,否则会引发下次溢出错误。 (5)最后是波特率引子寄存器UBRDIV。该寄存器为十六位,算法参见上页的部分。 计算公式如下: UBRDIVn = (round_off(MCLK

21、/(bps 16 -1 其中MCLK 是系统频率,例如在40MHz 的情况下,当波特率取 时, UBRDIVn = (int(/( 16+0.5 -1= (int(21.7+0.5 -1= 22 -1 = 21注意: 由于ARM 工作时存在小端和大端两种工作模式,所以同样一个寄存器在不同模式时地址也不一样,需要加以区别。 六、实验步骤1新建工程,将“Exp2 ARM 串口实验”中的文件添加到工程中,这些是启动时所需要的文件。2定义与UART 有关的各个寄存器地址和一些特殊的位命令。主要有以下各寄存器(44b.h):/* UART 的全部功能寄存器 */#define rULCON0 (*(vo

22、latile unsigned *0x1d00000#define rULCON1 (*(volatile unsigned *0x1d04000#define rUCON0 (*(volatile unsigned *0x1d00004#define rUCON1 (*(volatile unsigned *0x1d04004#define rUFCON0 (*(volatile unsigned *0x1d00008#define rUFCON1 (*(volatile unsigned *0x1d04008#define rUMCON0 (*(volatile unsigned *0x1

23、d0000c#define rUMCON1 (*(volatile unsigned *0x1d0400c#define rUTRSTAT0 (*(volatile unsigned *0x1d00010#define rUTRSTAT1 (*(volatile unsigned *0x1d04010#define rUERSTAT0 (*(volatile unsigned *0x1d00014#define rUERSTAT1 (*(volatile unsigned *0x1d04014#define rUFSTAT0 (*(volatile unsigned *0x1d00018#de

24、fine rUFSTAT1 (*(volatile unsigned *0x1d04018#define rUMSTAT0 (*(volatile unsigned *0x1d0001c#define rUMSTAT1 (*(volatile unsigned *0x1d0401c#define rUBRDIV0 (*(volatile unsigned *0x1d00028#define rUBRDIV1 (*(volatile unsigned *0x1d04028#ifdef _BIG_ENDIAN /大端摸式#define rUTXH0 (*(volatile unsigned cha

25、r *0x1d00023#define rUTXH1 (*(volatile unsigned char *0x1d04023#define rURXH0 (*(volatile unsigned char *0x1d00027#define rURXH1 (*(volatile unsigned char *0x1d04027#define WrUTXH0(ch (*(volatile unsigned char *(0x1d00023=(unsigned char(ch#define WrUTXH1(ch (*(volatile unsigned char *(0x1d04023=(uns

26、igned char(ch#define RdURXH0( (*(volatile unsigned char *(0x1d00027#define RdURXH1( (*(volatile unsigned char *(0x1d04027#define UTXH0 (0x1d00020+3 /byte_access address by BDMA#define UTXH1 (0x1d04020+3#define URXH0 (0x1d00024+3#define URXH1 (0x1d04024+3#else /小端摸式#define rUTXH0 (*(volatile unsigned char *0x1d00020#define rUTXH1 (*(volati

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论