嵌入式体系结构实验4_第1页
嵌入式体系结构实验4_第2页
嵌入式体系结构实验4_第3页
嵌入式体系结构实验4_第4页
嵌入式体系结构实验4_第5页
全文预览已结束

下载本文档

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

文档简介

1、实验四UART通信实验1、实验目的掌握S3c2410UART串口通信的工作原理掌握s3c2419串口初始化的方法掌握使用串口进行数据收、发的程序结构。了解通过串口通信进行设备控制的方法。2、实验设备硬件:PC机,嵌入式系统实验箱软件:ADS1.2 或者 KEIL MDK3、实验内容3.1 s3c2410 的 UART 模块S3c2410处理器内部集成了 3个独立的UART通信接口,UART0、UART1和UART2, 具有以下特征:所有的UART接口都可以选择采用查询、中断或者DMA控制方式。各UART波特率的时钟源可以选择PCLK或者UCLK,通过配置波特率分频系数, 通信采用的波特率可调,

2、最高可达230.4KPS。每个UART通信模块都拥有16字节大小的收/发数据队列各一个。内置红外(IrDA)编码器和解码器,支持红外工作模式。UART0和UART1配有nRTS和nCTS信号,支持握手传输方式。内部可检测多种接收错误,包括帧覆盖错误、奇偶校验错、帧格式错、间断状态等, 并支持错误中断请求。可通过编程配置帧格式、工作模式(AFC、回环模式、红外模式)、FIFO、控制方 式选择等等。UART应用编程,包括两个部分,即UART初始化配置和UART通信控制。涉及的 底层特殊功能寄存器包括各种控制寄存器、状态寄存器和数据寄存器。UART初始化过 程就是针对各种控制寄存器的初始化配置。利用

3、查询方式进行通信控制方式,主要通过 查询状态寄存器,读写数据寄存器实现的。3.2 S3c2410 的 UART 模块相关 SFRSFR名称地址读写特性功能描述复位值控制寄存器ULCONnUARTn 基址+0读/写UART帧格式控制寄存器UCONnUARTn 基址+4UART控制寄存器UFCONnUARTn 基址+8UART收发队列FIFO控制寄存器UMCONnUARTn 基址+CUART Modem控制寄存器UBRDIVnUARTn 基址+28UART波特率分频系数寄存器状态寄存器UTRSTATnUARTn 基址+10只读UART发送/接收状态寄存器UERSTATnUARTn 基址+14UAR

4、T错误状态寄存器UFSTATnUARTn 基址+18UART收发队列FIFO状态寄存器UMSTATnUARTn 基址+1CUART Modem状态寄存器数据寄存器按字节访问,需要根据存储器的端序,采用不同的访问地址UTXH0UARTn基址+23 (大端对齐)UARTn基址+20 (小端对齐)只写发送数据缓冲寄存器URXH0UARTn基址+27(大端对齐)UARTn基址+24 (小端对齐)只读接收数据缓冲寄存器3.3 UART查询方式收发原理通过查询 UTRSTAT 寄存器的 Transmitter empty 位和 Receive buffer data ready 位,确定是否能够向UTXH

5、n写入数据和从URXHn读取数据。图2查询方式进行接收4、实验要求对给定的工程文件进行修改,逐步完成以下要求。4.1阅读、理解、测试给定代码重新编译UART的ADS工程文件,将生成的目标二进制文件system.bin,通过vivi 的下载命令:load flash ucos x下载到实验台的flash存储器ucos分区,然后执行命令boot smc ucos,执行刚刚下载的二进制文件。通过超级终端测试程序的执行情况,结合工程源文件的main.c源代码,分析程序中 的两个关键函数Uart_GetChn()和Uart_SendByten(),理解程序的实现原理。尝试修改 main.c文件,练习对这

6、两个函数的调用,尝试完善以上两个函数,以及熟悉ADS工程编 译。4.2 UART初始化程序的编写仔细分析给定的UART实验代码,会发现程序中并没有对UART进行初始化,就直 接使用了,这是因为系统启动时,vivi已经完成了对UART0 口的初始化,因此可以直接 使用UART0进行通信。修改实验代码,修改Uart_GetChn()和Uart_SendByten()的调用形式,改用UART1进 行数据的收、发。重新编译工程、下载、运行目标代码。在启动运行后,将PC与实验 台的连接口改到UART1,进行数据收、发,观察运行情况。是否能够进行字符的收发 呢?如果不能,那么是什么原因呢?设计一个UART

7、的初始化子程序,根据传递的参数,完成对指定的UART 口的初始 化。如果感觉有困难,那么请参考vivi代码archs3c2410Head.S文件中对UART进行 初始化的子程序InitUART,分析代码中对每个UART控制寄存器初始配置的含义,就 利用这些值对UART1进行初始化,而后再通过UART1进行通信,测试程序的运行情况。 完成你的初始化程序,通过传递参数,实现对指定口按参数要求进行初始化(考虑设 计一个结构体,表达串口的波特率、通信帧格式和流控制属性)。4.3编程实现字符串发送功能编写一个子程序,通过指定串口,发送字符串,用于串口打印调试信息。子程序的形式可以定义为:Uart_print(int UartNum, char * ptr);通过将字符串的首

温馨提示

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

评论

0/150

提交评论