摘要 (2)1、绪论 (2)1.1目的和意义 (2)1.2设计内容 (2)2、设计方案 (3)2.1方案选择 (3)2.1.1S3C2410X 串行通讯(UART)单元 (3)2.1.2 波特率的产生 (3)2.1.3 UART 通信操作 (4)2.1.4 UART 控制寄存器 (4)2.1.5 RS232 接口电路 (5)3、硬件设计 (6)3.1Embest EduKit-III 实验平台 (6)3.2ULINK2 仿真器套件,PC 机 (6)4、软件设计 (6)4.2程序流程图设计 (7)4.3调试运行结果 (7)5、总结与体会 (8)参考文献 (9)摘要为了掌握嵌入式技术,就应该学习以ARM 微处理器为核心的嵌入式开发环境和开发平台。
本设计采用ARM原理和C语言程序设计的,设置S3C2410X 处理器 UART 相关控制寄存器和ARM 处理器系统硬件电路中 UART 接口,利用Embest EduKit-III 实验平台实现S3C2410X处理器和PC机的结合。
关键字: Embest EduKit-III 实验平台;S3C2410X 串行通讯(UART)单元;UART 控制寄存器;串口通信1、绪论1.1目的和意义串口通信是目前单片机和 DSP 等嵌入式系统之间,以及嵌入式系统与 PC 机或无线模块之间的一种非常重要且普遍使用的通信方式。
在嵌入式系统的硬件结构中,通常只有一个8位或 16位的 CPU, 不仅要完成主流程的工作, 同时还要处理随时发生的各种中断, 因而嵌入式系统中的串口通信程序设计与 PC 机有很大的不同。
为了顺应当今世界技术革新的潮流,了解、学习和掌握嵌入式技术,就必然要学习和掌握以ARM 微处理器为核心的嵌入式开发环境和开发平台。
1.2设计内容本设计采用Embest EduKit-III 实验平台实现,通过EmbestIDE Pro for ARM 软件编写程序,仿真调试。
实现实验平台与PC的串口通信。
通过PC的超级终端显示接受的结果。
2、设计方案2.1方案选择本设计只用了Embest EduKit-III 实验平台的部分模块。
其中包括ARM核心芯片S3C2410X以及串口通信模块。
如图1所示,下面描述了所用模块的具体设置。
图1 总体设计框图2.1.1S3C2410X 串行通讯(UART)单元S3C2410X UART 单元提供三个独立的异步串行通信接口,皆可工作于中断和DMA 模式。
使用系统时钟最高波特率达230.4Kbps,如果使用外部设备提供的时钟,可以达到更高的速率。
每一个UART 单元包含一个 16 字节的FIFO,用于数据的接收和发送。
S3C44B0X UART 支持可编程波特率,红外发送/接收,一个或两个停止位,5bit/6bit/ 7bit/ 或 8bit 数据宽度和奇偶校验。
2.1.2 波特率的产生波特率由一个专用的UART 波特率分频寄存器(UBRDIVn )控制,计算公式如下:UBRDIVn = (int)(ULK/(bps x 16) ) –1或者UBRDIVn = (int)(PLK/(bps x 16) ) –1其中:时钟选用 ULK 还是 PLK 由 UAR控制寄存器 UCONn[10]的状态决定。
如果 UCONn[10]=0,用PLK 作为波特率发生,否则选用ULK 做波特率发生。
UBRDIVn 的值必须1到(162-1)之间。
例如:ULK 或者PLK 等于40MHz,当波特率为 115200 时,UBRDIVn = (int)(40000000/(115200 x 16) ) -1= (int)(21.7) -1= 21-1 = 202.1.3 UART 通信操作下面简略介绍 UART 操作,关于数据发送,数据接收,中断产生,波特率产生,轮流检测模式,红外模式和自动流控制的详细介绍,请参照相关教材和数据手册。
发送数据帧是可编程的。
一个数据帧包含一个起始位,5 到8 个数据位,一个可选的奇偶校验位和 1 到2 位停止位,停止位通过行控制寄存器ULCONn 配置。
与发送类似,接收帧也是可编程的。
接收帧由一个起始位,5 到8 个数据位,一个可选的奇偶校验和1 到2 位行控制寄存器ULCONn 里的停止位组成。
接收器还可以检测溢出错,奇偶校验错,帧错误和传输中断,每一个错误均可以设置一个错误标志。
溢出错误(Overrun error)是指已接收到的数据在读取之前被新接收的数据覆盖。
奇偶校验错是指接收器检测到的校验和与设置的不符。
帧错误指没有接收到有效的停止位。
传输中断表示接收数据RxDn 保持逻辑0 超过一帧的传输时间。
在FIFO 模式下,如果RxFIFO 非空,而在3 个字的传输时间内没有接收到数据,则产生超时。
2.1.4 UART 控制寄存器1) UART 行控制寄存器 ULCONn该寄存器的第6 位决定是否使用红外模式,位 5~3 决定校验方式,位2 决定停止位长度,位 1 和0决定每帧的数据位数。
2)UART 控制寄存器 UCONn该寄存器决定UART 的各种模式。
UCONn[10]= 1 : ULK 做比特率发生;0:PLK 做比特率发生。
UCONn[9] = 1: Tx 中断电平触发;0:Tx 中断脉冲触发。
UCONn[8] = 1: Rx 中断电平触发;0:Rx 中断脉冲触发。
UCONn[7] = 1: 接收超时中断允许;0:接收超时中断不允许。
UCONn[6] = 1: 产生接收错误中断;0:不产生接收错误中断。
UCONn[5] = 1: 发送直接传给接收方式(Loopback);0:正常模式。
UCONn[4] = 1: 发送间断信号;0:正常模式发送。
UCONn[3:2]: 发送模式选择00:不允许发送;01:中断或查询模式10:DMA0 请求(UART0 )DMA3 请求(UART2 )11: DMA1 请求(UART1 ).UCONn[1:0] : 接收模式选择00 :不允许接收01 :中断或查询模式10 :DMA0 请求(UART0 )DMA3 请求(UART2 )11: DMA1 请求(UART1 )3) UART FIFO 控制寄存器 UFCONnUFCONn[7:6] = 00:Tx FIFO 寄存器中有0 个字节就触发中断01:Tx FIFO 寄存器中有4 个字节就触发中断10:Tx FIFO 寄存器中有8 个字节就触发中断11:Tx FIFO 寄存器中有0 个字节就触发中断UFCONn[5:4] = 00: Rx FIFO 寄存器中有0 个字节就触发中断01:Rx FIFO 寄存器中有4 个字节就触发中断10:Rx FIFO 寄存器中有8 个字节就触发中断11:Rx FIFO 寄存器中有0 个字节就触发中断UFCONn[3]:保留。
UFCONn[2] =1:FIFO 复位清零Tx FIFO; 0:FIFO 复位不清零Tx FIFOUFCONn[1] =1:FIFO 复位清零 Rx FIFO; 0:FIFO 复位不清零 Rx FIFOUFCONn[0] =1:允许 FIFO 功能; 0:不允许FIFO 功能4) UART MODEM 控制寄存器 UMCONn(n=0 或 1)UMCONn[7:5] 保留,必须全为 0UMCONn[4] =1:允许使用AFC 模式; 0:不允许使用AFCUMCONn[3:1] 保留,必须全为 0UMCONn[0] =1:激活nRTS; 0:不激活 nRTS5) 发送寄存器 UTXH 和接收寄存器 URXH这两个寄存器存放着发送和接收的数据,当然只有一个字节8位数据。
需要注意的是在发生溢出错误的时候,接收的数据必须被读出来,否则会引发下次溢出错误。
2.1.5 RS232 接口电路UART0 串口电路如图4-4-1 所示,UART0 只采用二根接线 RXD0 和TXD0,因此只能进行简单的数据传输及接收功能。
UART0 则采用MAX3221E作为电平转换器。
3、硬件设计3.1Embest EduKit-III 实验平台采用双CPU子板,ARM7 S3C44B0子板,ARM9 S3C2410子板,16M NandFlash;4Kbit IIC BUS 的串行EEPROM ,2个串口,两个中断按钮,4个LED, 320*240 STN 彩色 LCD及TSP触摸屏,4×5键盘,20针JTAG接口,PS/2接口, 2个USB 主口;1个USB从口, Sd卡,VGA接口,双PCI扩展接口,双以太网接口,8段数码管,双CAN总线模块,A/D 、D/A 模块,IDE 硬盘 +CF 卡模块;固态硬盘 16M × 8bit,MICROPHONE 输入口,IIS 音频信号输出口,GPRS 模块(选配),GPS 模块(选配)。
多外扩模块支持:提供 GPRS 模块、提供 GPS 模块、步进电机模块、摄像模块、PCI外部焊接板核心模块:基于ARM7架构的嵌入式芯片三星S3C44B0x芯片(或ARM9架构的嵌入式芯片三星S3C2410V6),整套系统可通过CPU子板可自由更换变化为ARM7或者ARM9电源:外部5V电源供电或者由USB接PC供电,电源指示LED以及500mA保险丝2M×16bit Flash;4M×16bit SDRM复位开关Embest EDUKIT-III软件配置:uCosII 实时操作系统移植例子以及源代码,uClinux实时操作系统移植例子以及源代码,Linux实时操作系统移植例子以及源代码,WinCE实时操作系统移植例子*,Vxworks实时操作系统移植例子,GNU toolchain including ARM cross compiler, Linker, Assembler, and Utilities,基于Embest IDE Pro for ARM环境和Embest EDUKIT-III实验箱实验源程序。
3.2ULINK2 仿真器套件,PC 机ULINK2不仅具有ULINK仿真器的所有功能,还增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。
开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD 和OCDS)、Flash编程。
4、软件设计4.1软件设备Embest IDE for ARM 集成开发环境,Windows 98/2000/NT/XP4.2程序流程图设计图2程序流程图4.3调试运行结果如果输入就会马上显示在超级终端上(假设输入为abcdefg),输入回车符后打印一整串字符:按回车键就会显示:abcdefg 串口通信成功完成。