ARM的UART实验

2020-04-14 01:46

实验二 ARM的UART实验

一、实验目的

1. 了解并熟悉UART的概念及其工作原理; 2. 掌握ARM相应的寄存器配置; 3. 能够用C编写出相应的串口程序;

二、实验内容

1. 在实验箱的CPU板上运行程序,在超级终端上回显发送的数据!

三、实验设备

1. EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆,串口直连电缆。 2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,

仿真调试驱动程序。

四、UART的工作原理

通用的串行I/O 接口有许多种,最常见的一种标准是美国电子工业协会推荐的一种标准,即,RS—232C。这种标准在PC系列中大量采用9 针接插件。在ARM的处理器中,也采用了这种标准。具体的硬件机械、电气特性请参阅有关RS232串口通信的书籍。

S3C2410的UART(Universal Asynchronous Receiver and Transmitter,通用异步收发器)单元提供3个独立的异步串行I/O口,都可以运行于中断模式或DMA模式。也就是说,UART可以产生中断请求或DMA请求,以便在CPU和UART之间传递数据。它最高可支持115200bps的传输速率。S3C2410中每个UART通道包含两个用于接收和发送数据的16位FIFO队列。

S3C2410的每个UART都有波特率发生器、数据发送器、数据接收器,及控制单元。内部数据通过并行数据总线到达发送单元后,进入FIFO队列,或不进入FIFO队列,通过发送移相器TXDn引脚发送出去,送出的数据通过一个电压转换芯片将3.3V的TTL/COMS电平转换成EIA (Electronic industries Association)电平,送进PC的串口。

数据接收的过程刚好相反,外部串口信号需要先把EIA 电平经电压转换芯片把电平转换3.3V的TTL/COMS电平,然后由RXDn管脚进入接收移相器,经过转换后放到并行数据总线上,由CPU进行处理或直接送到存储器中(DMA方式下)。

在正确使用S3C2410的串口进行收发实验前,首先,要配置相关的寄存器组。见表2-8-1。表2-8-1为串口0和串口1的线性控制寄存器的配置说明,推荐使用值:0X03; infra-Red Mode:红外、正常模式选择:

[6] 0 正常模式, 1 红外模式

表2-8-1

Parity Mode:奇偶校验模式选择:

[5:3] 0XX 无奇偶校验

100 奇校验 101 偶校验

110 强制校验/校验1 111 强制校验/校验0

Number of stop bit:停止位选择:

[2] 0 1个停止位, 1 2个停止位 Word length: 字长

[1:0] 00 5位, 01 6位,10 7位, 11 8位

表2-8-2为串口0和串口1的控制寄存器的配置说明,推荐使用值:0X245; Clock Selection 选择使用的时钟

[10] 0: 使用PCLK, 1:使用UCLK引脚引入的时钟 Tx interrupt type 发送中断请求类型

[9] 0 =边沿, 1 =电平

Rx interrupt type 接收中断请求类型

[8] 0 =边沿, 1 =电平

Rx time out enable 允许/不允许Rx超时中断

[7] 0 =禁止 1 =使能

Rx error status interrupt enable 允许/不允许UART错误中断

[6] 0 =不允许 1 =允许

表2-8-2

Loop-back Mode: 该位为1使UART进入loop back 模式

[5]

0 = 正常模式, 1 = Loop-back 模式

Send Break Signal: 该位为1使UART发送一个暂停条件,该位在发送一个暂停信号

后自动清除

[4]

Transmit Mode: 这两位确定哪个模式可以写TX数据到UART发送保持寄存器

[3:2] 00 = 禁止

01 = 中断请求或查询模式 10 = BDMA0 请求 (仅为 UART0) 11 = BDMA1 请求 (仅为 UART1)

Receive Mode: 这两位确定哪个模式可以从UART接收缓冲寄存器读数据

00 = 禁止

01 = 中断请求或查询模式 10 = BDMA0 请求 (仅为 UART0) 11 = BDMA1 请求 (仅为 UART1)

表2-8-3为串口0和串口1的FIFO控制寄存器的配置说明,推荐使用值:0X00;

0 = 正常发送, 1 = 发送断点信号

表2-8-3

Tx FIFO Trigger Level: 这两位确定发送FIFO的触发条件

[7:6] 00 =空, 01 =4字节, 10 =8字节, 11 =12字节

Rx FIFO TriggerLevel 这两位确定接收FIFO的触发条件

[5:4] 00 =空, 01 =4字节, 10 =8字节, 11 =12字节

Reserved [3]

保留

Tx FIFO Reset TX FIFO复位位,该位在FIFO复位后自动清除

[2] 0 =正常,

1= Tx FIFO 复位

Rx FIFO Reset Rx FIFO复位位,该位在FIFO复位后自动清除

[1] 0 = 正常,

1= Rx FIFO 复位

FIFO Enable FIFO模式选择

[0] 0 = 禁止FIFO 1 = FIFO 模式

表2-8-3为串口0和串口1的模式控制寄存器的配置说明,推荐使用值:0X00; AFC(Auto Flow Control AFC是否允许

[4] 0 = 禁止 1 = 使能 Request to Send: 如果AFC允许,该位忽略

[0] 0 = 高电平(禁止 nRTS) 1 = 低电平(激活 nRTS)

表2-8-4

这是需要用程序配置的有关串口的寄存器,其他的是一些状态寄存器,如UART TX/RX状态寄存器, UART 错误状态寄存器, UART FIFO状态寄存器, UART MODEM状态寄存器, UART 接收缓冲寄存器和FIFO寄存器。

当然,关于UART 波特率设置,则有专门的分频寄存器进行设置。计算公式具体如下:

UBRDIVn = (int)(PCLK / (bps x 16) ) –1 或者 UBRDIVn = (int)(UCLK / (bps x 16) ) –1

PCLK是外围总线频率,UCLK是UCLK引脚引入的时钟频率。例如在PCLK=50.7MHz下,当波特率取115200时,

UBRDIVn = int(50700000 / 115200 / 16) – 1 = 26 根据具体的程序要求,正确配置各寄存器。

详细具体设置应用,请参见HARDWARE\\ADS\\实验八目录下的UART.mcp项目文件。请详细阅读代码注释。

五、实验步骤

1. 本实验使用实验教学系统的CPU板,串口。在进行本实验时,LCD电源开关、音频

的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。

2.在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。使用串口线连接PC机串口1和实验箱CPU板的串口,使用直连线连接底板串口2和PC机上的串口2之间的电缆。

3.打开超级终端,配置串口的属性(如COM1),配置波特率为115200,校验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上电,同时按住“空格”键,进入VIVI状态。

4.打开ADS1.2开发环境,从里面打开\\实验程序\\HARDWARE\\ADS\\实验八\%uart.mcp项目文件,进行编译。

5.编译通过后,进入ADS1.2调试界面,加载实验程序\\HARDWARE\\ADS\\实验八\\UART_Data\\Debug中的映象文件程序映像UART.axf。

6.再打开一个超级终端1,进行设置(115200,8位数据,1位停止位,无奇偶校验); 7.在ADS调试环境下,全速运行映象文件。激活超级终端0,敲键盘,观察超级终端0,超级终端1的内容显示!所敲键盘的字符应该在两个超级终端上显示出来。实验的原理就是把键盘敲击的字符通过PC机的串口发送给实验箱上的ARM的CPU板的串口0,ARM的CPU板上的串口得到字符后,通过ARM把它送给CPU板上的串口0输出给PC,以及通过底板上的串口1,送给PC机。这样,就完成了串口间的收发数据。


ARM的UART实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:GPU(CPU)版安装gromacs完整步骤

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: