基于ARM9的串行通讯设计.docx

上传人:b****6 文档编号:5258837 上传时间:2022-12-14 格式:DOCX 页数:10 大小:422.49KB
下载 相关 举报
基于ARM9的串行通讯设计.docx_第1页
第1页 / 共10页
基于ARM9的串行通讯设计.docx_第2页
第2页 / 共10页
基于ARM9的串行通讯设计.docx_第3页
第3页 / 共10页
基于ARM9的串行通讯设计.docx_第4页
第4页 / 共10页
基于ARM9的串行通讯设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于ARM9的串行通讯设计.docx

《基于ARM9的串行通讯设计.docx》由会员分享,可在线阅读,更多相关《基于ARM9的串行通讯设计.docx(10页珍藏版)》请在冰豆网上搜索。

基于ARM9的串行通讯设计.docx

基于ARM9的串行通讯设计

 

 

《嵌入式系统设计与应用》

课程设计

题目基于ARM9的串行通讯设计

学生姓名王郸

学号20131341003

学院信息与控制学院

专业测控技术与仪器

同组成员赵玉斌、马子涵

指导教师孙伟

 

二O一六年六月五日

 

基于ARM9的串行通讯设计

赵玉斌王郸马子涵

南京信息工程大学信息与控制学院,南京210044

摘要:

嵌入式是以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,随着嵌入式系统的发展和大规模应用,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通信。

本文通过基于FL2440的嵌入式串口通信的实现,较为详细地介绍了串口通信的硬件电路和软件实现方法。

通过与计算机串口间的连接,实现在ARM平台上,传输率115200bps,接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端,实现监测,与外部设备通信的基本功能。

关键词:

嵌入式系统、串口通信、ARM平台。

DesignofserialcommunicationbasedonARM9

YubinZhaoDanWangZihanMa

SchoolofInformationandControl,NanjingUniversityofInformationScienceandTechnology,Nanjing210044

Abstract:

Embeddedisapplication-centric,basedoncomputertechnology,hardwareandsoftwarecanbetailoredtoadaptapplicationfunctionality,reliability,cost,size,powerconsumption,demandingspecialcomputersystem,withthedevelopmentofembeddedsystemsandapplications,inordertoimprovetheoverallperformanceofthesystem,youmustimplementthecommunicationbetweenPCandembeddedcomputers.ThroughembeddedimplementationofserialportcommunicationbasedonFL2440,describesindetailthehardwareandsoftwareimplementationofserialcommunication.Throughtheconnectionwiththecomputerserialport,achievedonARMplatforms,transmissionrate115200bps,receivedfromtheserialport(viaHyperTerminal)charactersandcharactersthatwillreceivethemessagetoSuperTerminalandthemonitoring,thebasicfunctionofcommunicatingwithexternaldevices.

keywords:

EmbeddedSystem,serial communication,ARMplatform.

一、设计内容

1.1设计任务

编写串口程序,使开发板收到数据后再把数据发回。

本课程设计可以使同学们通过电路设计、安装、调试、整理资料等环节,对ARM920T的嵌入式串口通信系统的实际应用有深入的了解,培养了学生的软硬件动手能力,是对学生所学专业知识、理论、技能和培养学生独立完成基本科研任务能力的一个综合检验,具有一定的效果和意义。

1.2设计目的

(1)注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。

(2)了解所选择的ARM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。

(3)熟悉ADS集成开发环境的基本功能,熟悉FL2440寄存器配置方法,了解ARM920T的串行口工作原理。

(4)编程实现ARM的UART通讯,通过软硬件设计实现开发板与PC机之间的串行收发数据。

1.3设计要求

实现查询方式串口的收发功能。

接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。

(1)初步掌握电子电路分析和设计的基本方法。

(2)养一定自学能力和独立分析问题、解决问题能力。

(3)掌握安装、布线、调试等基本技能,巩固常用仪器的正确使用方法。

(4)通过严格的科学训练和工程设计实践,树立严肃认真、一丝不苟、实事求是的科学作风,并培养学生具有一定的生产观点、经济观点、全面观点及团结协作的精神。

 

二、设计方案

2.1系统组成

FL2440嵌入式系统开发板上包含串口电路、电源、晶振、复位电路,再通过RS232串口线将PC机和开发板连接到一起,这几部分共同作用实现了嵌入式系统与计算机的串行通信。

图1系统设计框图

2.2系统工作原理

2.2.1S3C2410X串行通信(UART)单元

S3C2410XUART单元提供三个独立的异步串行通信接口,皆可工作于中断和DMA模式,使用系统时钟最高波特率达256Kbps,如果使用外部设备提供的时钟,可以达到更高的速率。

每一个UART单元包含一个16字节的FIFO用于数据的接收和发送。

系统中采用RS-232的电平转换芯片实现串口的通信。

TTL/CMOS输入输出信号与ARM的UART输入/输出口对接[1]。

UART的接收/发送模式在控制寄存器UCONn被设置成中断请求方式[2]。

CMOS是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,是电脑主板上的一块可读写的RAM芯片。

因为可读写的特性,所以在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,这个芯片仅仅是用来存放数据的。

TTL逻辑门电路由晶体三极管和电阻构成,具有速度快的特点[3]。

2.2.2波特率的产生

波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,计算公式如下:

UBRDIVn=(int)(ULK/(bps×-16))

或者UBRDIVn=(int)(PLK/(bps×16)-1)

其中:

时钟选用ULK还是PLK有UART控制寄存器UCONn[10]的状态决定。

如果UCONn[10]=0用PLK作为波特率发生,否则选用ULK做波特率发生。

UBRDIVn的值必须是1到(

)之间。

例如:

ULK或者PLK等于40MHz,当波特率为115200时,

UBRIVn=(int)(40000000/115200×16)-1=(int)(21.7)-1=20

2.2.3电气特性

要完成基本的通信功能,实际上值需要RXD、TXD和GND即可,但由于RS-232-C标准所定义的高、低电平信号于S3C2440A系统的LVTTL电路定义的高、低电平信号完全不同,LVTTL的标准逻辑“1”对应2-3.3V,标准逻辑“0”对应0-0.4V,而RS-232C标准采用负逻辑方式,逻辑“1”对应-5――15V,标准逻辑“0”对应+5-+15V。

显然两者间要进行通信,必须经过电平的转换,转换芯片采用max202[4]。

2.2.4串口通信的原理

串行端口的本质功能是作为CPU和串行设备间的编码转换器。

当数从CPU经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

2.2.5数据发送与接收

据发送帧的格式是可编程的,它包含一个开始位,5到8个数据位,一个可选的奇偶位和一个或两个停止位,这些可以通过线性控制器(UCONn)来设置。

发送器也能够产生发送中止条件。

中止条件迫使串口输出保持在逻辑0状态,这种状态保持一个传输帧的时间长度。

通常在一帧传输数据完整地传输完之后,在通过这个全0的状态将中止信号发送给对方。

中止信号发送之后,传送数据连续放到FIFO中(在不使用FIFO模式下,将被放到输出保持寄存器)。

数据发送一样,数据接收的帧也是可以编程的,它包含一个开始位,5到8个数据,一个可选的奇偶位和一位到两位停止位,他们是通过线性控制器(ULCONn)来设置的。

接收器能够检测溢出错误,奇偶检验错误,帧错误和中止状况,每种情况下都将会产生一个错误标志置位。

三、硬件设计

3.1设计思路

采用FL2440开发板,核心板6层,底板2层,可稳定运行在400MHz。

接口丰富,功能强大,适用与各种设备。

开发板有一个3通道UART,可以基于DMA模式或中断模式工作。

支持5位、6位、7位或者8位串行数据发送/接收。

支持外部时钟作为UART的运行时钟(UEXTCLK)。

波特率可编程,支持IrDA1.0,具有测试用的回还模式。

每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO。

通过一根RS232串口线将FL2440开发板和PC机连接在一起,实现数据的收发。

在嵌入式多串口服务器中,硬件的核心任务是:

实现多串口的以太网转换网关,它能连接多个RS232串口设备,并将串口数据进行选择和处理,把RS232接口的数据流转换成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化,从而在原有的网路基础上简化布线复杂度[5]。

3.2系统电路设计

如图所示,RS232接口通过连接DTR、RTS、CTS、RI来控制收发状态,而TXD为发送数据线,RXD为接收数据线,分别控制着数据的发送与接收。

只要给该电路上以5V的电源,保证接地端正常接地,电路就可以正常运行。

图2系统电路图

四、软件设计

4.1设计思路

首先设置定时器寄存器、端口寄存器,然后等待ARM发送请求,当收到请求时,发送一个应答信号,并进行校验和清零,然后发送数据并求校验和,当数据发送完成时,发送校验和,检验ARM是否接受正确,如果接受正确,则返回。

图3系统程序流程图

4.2程序清单

(1)程序初始化

AREA|DATA|,CODE,READONLY

ENTRY

ldrr13,=0x1000

IMPORTTSmain

bTSmain

END

(2)主程序

#defineULCON0(*(volatileunsigned*)0X50000000)//UART线控制寄存器

#defineUCON0(*(volatileunsigned*)0X50000004)//UART控制寄存器

#defineUFCON0(*(volatileunsigned*)0X50000008)//FIFO控制寄存器

#defineUTRSTAT0(*(volatileunsigned*)0X50000010)//UART状态寄存器

#defineUBRDIV0(*(volatileunsigned*)0X50000028)//波特率

#defineUTXH0(*(volatileunsigned*)0X50000020)

#defineURXH0(*(volatileunsigned*)0X50000024)

#defineGPBDAT(*(volatileunsigned*)0X58000054)

intTSmain()

{

charbuf;

ULCON0&=0XFFFFFF00;

ULCON0|=0X03;//1位起始位,8位数据位

UCON0=0X0805;//串口时钟PCLK,查询方式

UBRDIV0=0X1A;//波特率115200

while

(1)

{

if(UTRSTAT0&0X01)//接收是否完毕=1结束

{

buf=URXH0;//读取数据

while(!

(UTRSTAT0&0X04));//是否允许发送=1允许

UTXH0=buf;

}

}

return0;

}

五、实验调试及结果

5.1实验调试

(1)通读开发板使用手册;

(2)硬件连接,将电源线、USB线、串口线分别接好;

(3)安装好USB驱动、并口驱动、JLINK驱动;

(4)配置超级终端;

图4超级终端的配置

(5)使用ADS1.2集成开发环境将事先编写好的程序烧录到FL2440开发板上;

(6)在超级终端输入信息,按下回车键,查看超级终端上的返回值。

5.2实验结果

图5超级终端发送数据截图

如果输入就会马上显示在超级终端上,假设输入为abcdefg,按下回车后打印一整串字符:

图6超级终端接收数据截图

串口通信得以实现。

六、课程设计总结

在刚拿到课题的时候,脑子里对嵌入式系统并不明晰。

进过了一个学期的学习,看似掌握了不少东西,但是去做实际课题的时候,才发现功夫不到家。

所以在调试之前,我们组进行了大量的准备学习工作。

提前熟悉了FL2440开发板,并对设计流程进行了重点学习。

即便如此,在调试时候依然出现了数不清的问题。

串口线硬件有问题、无法成功连接com口、无法接受数据,等等等等。

经过了我们一天的调试,最终在晚上将课程设计完成。

在实验成功后,我们对串行通讯(UART)单元结构的知识有了更加深刻的理解,而且对其用法掌握的更加熟练。

通过本次课程设计,使我们对ARM嵌入式开发有了一定的掌握和理解,巩固了我在嵌入式系统设计课程中所学的基本理论知识和实验技能,使我对嵌入式系统设计课程有了更深入的了解。

这次课程设计让我们懂得了“纸上得来终觉浅,绝知此事要躬行”。

看似简单的设计,每一步都能看懂,但连接起来之后却出现了许许多多未知的问题。

理论知识储备再充足,不亲自去实验那么学到的东西也终究是镜花水月,无法运用。

在以后的学习中,我们一定会谨记“实践出真知”,将理论和实践完美地结合起来。

参考文献

[1]刘刚洋,任世锦.基于ARM9的嵌入式串口——网络接口转换卡设计[J].Science&TechnologyInformation,2008,16:

61-61.

[2]张腾达,张良祖.基于ARM9的S3C2410X异步串行通信设计[J].仪器仪表用户,2005,12

(2)67-69.

[3]阎石.数字电子技术基础[M].第5版.北京:

高等教育出版社.2006.

[4]王海勇.基于ARM9的嵌入式多串口服务器设计[J].化工自动化及仪表,2013,40(3)372-376.

[5]范炜.基于ARM的嵌入式多串口网络服务器的设计与实现[J].北京交通大学,2007.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1