1、嵌入式系统设计与应用课程设计 题 目 基于ARM9的串行通讯设计 学生姓名 王郸学 号 20131341003 学 院 信息与控制学院专 业 测控技术与仪器同组成员 赵玉斌、马子涵指导教师 孙伟二一六年六 月五 日基于ARM9的串行通讯设计赵玉斌 王郸 马子涵南京信息工程大学信息与控制学院,南京 210044摘要:嵌入式是以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,随着嵌入式系统的发展和大规模应用,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通信.本文通过基于FL2440的嵌入式串口通信的实现,较为详细地介
2、绍了串口通信的硬件电路和软件实现方法。通过与计算机串口间的连接,实现在ARM平台上,传输率115200bps,接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端,实现监测,与外部设备通信的基本功能。关键词:嵌入式系统、串口通信、ARM平台。Design of serial communication based on ARM9Yubin Zhao Dan Wang Zihan MaSchool of Information and Control, Nanjing University of Information Science and Technology, Nanjing
3、210044Abstract:Embedded is application-centric, based on computer technology, hardware and software can be tailored to adapt application functionality, reliability, cost, size, power consumption, demanding special computer system, with the development of embedded systems and applications, in order t
4、o improve the overall performance of the system, you must implement the communication between PC and embedded computers . Through embedded implementation of serial port communication based on FL2440, describes in detail the hardware and software implementation of serial communication。 Through the co
5、nnection with the computer serial port, achieved on ARM platforms, transmission rate 115200bps, received from the serial port (via HyperTerminal) characters and characters that will receive the message to Super Terminal and the monitoring, the basic function of communicating with external devices.ke
6、ywords:Embedded System, serialcommunication, ARM platform.一、设计内容1。1 设计任务编写串口程序,使开发板收到数据后再把数据发回。本课程设计可以使同学们通过电路设计、安装、调试、整理资料等环节,对ARM920T的嵌入式串口通信系统的实际应用有深入的了解,培养了学生的软硬件动手能力,是对学生所学专业知识、理论、技能和培养学生独立完成基本科研任务能力的一个综合检验,具有一定的效果和意义。1.2 设计目的(1)注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练.(2)了解所选择的ARM芯
7、片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。(3)熟悉ADS集成开发环境的基本功能,熟悉FL2440寄存器配置方法,了解ARM920T的串行口工作原理。(4)编程实现ARM的UART通讯,通过软硬件设计实现开发板与PC机之间的串行收发数据。1。3 设计要求实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。(1)初步掌握电子电路分析和设计的基本方法。(2)养一定自学能力和独立分析问题、解决问题能力。(3)掌握安装、布线、调试等基本技能,巩固常用仪器的正确使用方法。(4)通过严格的科学训练和工程设计实
8、践,树立严肃认真、一丝不苟、实事求是的科学作风,并培养学生具有一定的生产观点、经济观点、全面观点及团结协作的精神。二、设计方案2.1 系统组成FL2440嵌入式系统开发板上包含串口电路、电源、晶振、复位电路,再通过RS232串口线将PC机和开发板连接到一起,这几部分共同作用实现了嵌入式系统与计算机的串行通信。图1系统设计框图2。2 系统工作原理2。2。1 S3C2410X串行通信(UART)单元S3C2410X UART单元提供三个独立的异步串行通信接口,皆可工作于中断和DMA模式,使用系统时钟最高波特率达256Kbps,如果使用外部设备提供的时钟,可以达到更高的速率.每一个UART单元包含一
9、个16字节的FIFO用于数据的接收和发送。系统中采用RS232的电平转换芯片实现串口的通信。TTL/CMOS输入输出信号与ARM的UART输入/输出口对接1.UART的接收/发送模式在控制寄存器UCONn被设置成中断请求方式2。CMOS是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,是电脑主板上的一块可读写的RAM芯片。因为可读写的特性,所以在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,这个芯片仅仅是用来存放数据的。TTL逻辑门电路由晶体三极管和电阻构成,具有速度快的特点3.2。2.2波特率的产生波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,计算
10、公式如下:UBRDIVn=(int)(ULK/(bps -16)或者UBRDIVn=(int)(PLK/(bps 16)-1)其中:时钟选用ULK还是PLK有UART控制寄存器UCONn10的状态决定.如果UCONn10=0用PLK作为波特率发生,否则选用ULK做波特率发生.UBRDIVn的值必须是1到()之间。例如:ULK或者PLK等于40MHz,当波特率为115200时,UBRIVn=(int)(40000000/115200 16)-1=(int)(21.7)1=202。2.3电气特性要完成基本的通信功能,实际上值需要 RXD、TXD和GND即可,但由于RS232C标准所定义的高、低电平
11、信号于S3C2440A系统的LVTTL电路定义的高、低电平信号完全不同,LVTTL的标准逻辑“1”对应 23.3V,标准逻辑“0”对应00。4V,而RS232C标准采用负逻辑方式,逻辑“1”对应515V,标准逻辑“0”对应515V。显然两者间要进行通信,必须经过电平的转换,转换芯片采用max2024。2。2.4串口通信的原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据.串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须释
12、放资源(关闭串口).2。2.5数据发送与接收据发送帧的格式是可编程的,它包含一个开始位,5到8个数据位,一个可选的奇偶位和一个或两个停止位,这些可以通过线性控制器(UCONn)来设置.发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑0状态,这种状态保持一个传输帧的时间长度.通常在一帧传输数据完整地传输完之后,在通过这个全0的状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到FIFO中(在不使用FIFO 模式下,将被放到输出保持寄存器)。数据发送一样,数据接收的帧也是可以编程的,它包含一个开始位,5到8个数据,一个可选的奇偶位和一位到两位停止位,他们是通过线性控制器(ULC
13、ONn)来设置的。接收器能 够检测溢出错误,奇偶检验错误,帧错误和中止状况,每种情况下都将会产生一个错误标志置位。三、硬件设计3.1 设计思路采用FL2440开发板,核心板6层,底板2层,可稳定运行在400MHz.接口丰富,功能强大,适用与各种设备。开发板有一个3通道UART,可以基于DMA模式或中断模式工作。支持5位、6位、7位或者8位串行数据发送/接收。支持外部时钟作为UART的运行时钟(UEXTCLK)。波特率可编程,支持IrDA 1。0,具有测试用的回还模式.每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO。通过一根RS232串口线将FL2440开发板和PC机连接在一起
14、,实现数据的收发。在嵌入式多串口服务器中,硬件的核心任务是:实现多串口的以太网转换网关,它能连接多个RS232串口设备,并将串口数据进行选择和处理,把RS232接口的数据流转换成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化,从而在原有的网路基础上简化布线复杂度5。3.2 系统电路设计如图所示,RS232接口通过连接DTR、RTS、CTS、RI来控制收发状态,而TXD为发送数据线,RXD为接收数据线,分别控制着数据的发送与接收。只要给该电路上以5V的电源,保证接地端正常接地,电路就可以正常运行。图2系统电路图四、软件设计4.1 设计思路首先设置定时器寄存器、端口寄存器,然后
15、等待ARM发送请求,当收到请求时,发送一个应答信号,并进行校验和清零,然后发送数据并求校验和,当数据发送完成时,发送校验和,检验ARM是否接受正确,如果接受正确,则返回.图3系统程序流程图4。2 程序清单(1)程序初始化AREA |DATA|,CODE,READONLYENTRYldr r13,=0x1000IMPORT TSmainb TSmainEND(2)主程序#define ULCON0 ((volatile unsigned )0X50000000) /UART线控制寄存器define UCON0 (*(volatile unsigned )0X50000004) /UART控制寄存
16、器define UFCON0 (volatile unsigned *)0X50000008) /FIFO控制寄存器define UTRSTAT0 (*(volatile unsigned )0X50000010) /UART状态寄存器define UBRDIV0 ((volatile unsigned )0X50000028)/波特率define UTXH0 (*(volatile unsigned )0X50000020)define URXH0 ((volatile unsigned )0X50000024)#define GPBDAT ((volatile unsigned )0X58
17、000054)int TSmain()char buf;ULCON0 =0XFFFFFF00;ULCON0 |=0X03; /1位起始位,8位数据位UCON0 =0X0805; /串口时钟PCLK,查询方式UBRDIV0 =0X1A; /波特率115200while(1) if(UTRSTAT0 & 0X01) /接收是否完毕 =1结束buf=URXH0; /读取数据while(!(UTRSTAT0 0X04);/是否允许发送 =1允许UTXH0=buf; return 0;五、实验调试及结果5.1 实验调试(1)通读开发板使用手册;(2)硬件连接,将电源线、USB线、串口线分别接好;(3)安
18、装好USB驱动、并口驱动、JLINK驱动;(4)配置超级终端;图4超级终端的配置(5)使用ADS1。2集成开发环境将事先编写好的程序烧录到FL2440开发板上;(6)在超级终端输入信息,按下回车键,查看超级终端上的返回值。5。2 实验结果图5 超级终端发送数据截图如果输入就会马上显示在超级终端上,假设输入为abcdefg,按下回车后打印一整串字符:图6 超级终端接收数据截图串口通信得以实现.六、课程设计总结 在刚拿到课题的时候,脑子里对嵌入式系统并不明晰。进过了一个学期的学习,看似掌握了不少东西,但是去做实际课题的时候,才发现功夫不到家.所以在调试之前,我们组进行了大量的准备学习工作。提前熟悉
19、了FL2440开发板,并对设计流程进行了重点学习.即便如此,在调试时候依然出现了数不清的问题。串口线硬件有问题、无法成功连接com口、无法接受数据,等等等等。经过了我们一天的调试,最终在晚上将课程设计完成.在实验成功后,我们对串行通讯(UART)单元结构的知识有了更加深刻的理解,而且对其用法掌握的更加熟练.通过本次课程设计,使我们对ARM嵌入式开发有了一定的掌握和理解,巩固了我在嵌入式系统设计课程中所学的基本理论知识和实验技能,使我对嵌入式系统设计课程有了更深入的了解。这次课程设计让我们懂得了“纸上得来终觉浅,绝知此事要躬行”。看似简单的设计,每一步都能看懂,但连接起来之后却出现了许许多多未知
20、的问题。理论知识储备再充足,不亲自去实验那么学到的东西也终究是镜花水月,无法运用.在以后的学习中,我们一定会谨记“实践出真知”,将理论和实践完美地结合起来。参考文献1 刘刚洋,任世锦。基于ARM9的嵌入式串口网络接口转换卡设计J。ScienceTechnology Information,2008,16:6161.2 张腾达, 张良祖。 基于ARM9的S3C2410X异步串行通信设计J。 仪器仪表用户, 2005,12(2)67-69。3阎石。数字电子技术基础M。第5版.北京:高等教育出版社。2006。4王海勇.基于ARM9的嵌入式多串口服务器设计J.化工自动化及仪表,2013,40(3)372376。5范炜。基于ARM的嵌入式多串口网络服务器的设计与实现J.北京交通大学,2007.