250 likes | 426 Views
实验 4 串口通信实验. 1 实验目的 2 实验设备 3 实验内容 4 实验原理 5 实验操作步骤. 1 实验目的. 通过实验了解 S3C44B0x 处理器串行口( UART )的结构,串行通讯的原理。 掌握 ARM 处理器串行通信的编程方法。. 2 试验设备. 硬件: Embest S3CEV40 实验平台, Embest ARM 标准 / 增强型仿真器套件, PC 机。 软件: Embest IDE 2003 集成开发环境, Windows 98/2000/NT/XP 。. 3 实验内容.
E N D
实验4 串口通信实验 • 1实验目的 • 2实验设备 • 3实验内容 • 4实验原理 • 5实验操作步骤
1实验目的 • 通过实验了解S3C44B0x处理器串行口(UART)的结构,串行通讯的原理。 • 掌握ARM处理器串行通信的编程方法。
2试验设备 • 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 • 软件:Embest IDE 2003集成开发环境,Windows 98/2000/NT/XP。
3实验内容 • 学习S3C44B0X的UART相关寄存器的功能,熟悉S3C44B0X系统硬件的UART相关接口。编写S3C44B0X处理器的串口通信程序。 • S3CEV40监视串行口,并将接收到的字符回送。
4实验原理 • S3C44B0X串行通讯(UART)单元 • S3C44B0X UART 单元提供两个独立的异步串行通信口,皆可工作于中断和DMA模式。最高波特率达115.2Kbps。每一个UART单元包含一个16字节的FIFO,用于数据的接收和发送。 • S3C44B0X UART包括可编程波特率,红外发送/接收,一个或两个停止位,5bit/6bit/ 7bit/或8bit数据宽度和奇偶校验。
实验原理 • UART操作简介 • 发送数据帧和接受数据帧都是是可编程的。一个数据帧包含一个起始位,5到8个数据位,一个可选的奇偶校验位和1到2位停止位,停止位通过行控制寄存器ULCONn配置。 • 接收器还可以检测过速错,奇偶校验错,帧错误和传输中断,每一个错误均可以设置一个错误标志。
实验原理 • 与UART有关的寄存器 • UART行控制寄存器ULCONn • UART控制寄存器UCONn • 发送寄存器UTXH和接收寄存器URXH • 波特率分频寄存器UBRDIV
波特率的产生 • 波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,计算公式如下: • UBRDIVn = (round_off)(MCLK/(bps x 16) ) -1 • 其中:MCLK是系统时钟。UBRDIVn的值必须在1到(216-1)之间。 • 例如:在系统时钟为40MHz,当波特率为115200时, • UBRDIVn = (int)(40000000/(115200 x 16)+0.5 ) -1 • = (int)(21.7+0.5) –1 • = 22 -1 = 21
实验原理 • RS232接口电路 • 在本实验中,串口电路如下图所示,开发板上提供两个串口DB9。其中UART1为主串口,可与PC或MODOM进行串行通迅。UART0只采用二根接线RXD和TXD,因此只能进行简单的数据传输及接收功能。全接口的UART1采用MAX3243E作为电平转换器,简单接口的UART0则采用MAX3221E作为电平转换器。
5实验操作步骤 • 准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。 • 在PC机上运行windows自带的串口通信程序超级终端程序,或者其它串口通信程序(如:串口精灵等。超级终端配置如下图所示)。 • 使用EmbestIDE通过Embest仿真器连接实验板,打开实验例程目录下uart_test子目录下的Uart_Test.ews例程,下载并运行它。
Embest S3CEV40 > Embest S3CEV40 >Hello, Word!<CR> Hello, Word! Embest S3CEV40 > 实验操作步骤 • 在PC上观察超级终端程序主窗口,可以看到如下界面: • 通过PC机键盘输入字符,可以看到相应的字符显示在超级终端主窗口,输入回车,所有字符一次性回显出来。 • 理解和掌握实验后,完成实验练习题。
实验练习 • 1.熟悉整个程序结构和寄存器配置 • 2.改写例程实现: • 在超级终端显示: • nEmbest Teach Kit III boot success • UART Test?(Y/N) • >Y • Enter User Name: • >qiutie • Enter Password> • >****** • Start Test: • Receive: • >123456 • Send to display: • 123456 • 如果用户与密码不一致提示重新登录! • 程序运行结果在超级终端上显示! • 可以调用程序块骨的子程序