- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多串口转换网关在嵌入式系统中的实现
导语:?嵌入式系统|C51F023|MCF5272|转换网关 摘 要:本文介绍了一种采用嵌入式系统来实现多串口转换网关的方法。并结合C51F023单片机和MCF5272处理器的特点及其工作原理,对单片机的编程策略进行了详尽的探讨。
关键词:嵌入式系统;C51F023; MCF5272; 转换网关
引言
近些年,互联网以其便捷、高速传输数据的特点越来越受到人们的青睐。互联网已经进入了世界的每一个角落。而在工业控制和通讯设备中,更多的却是符合RS-232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。本文提出了一种基于嵌入式系统来实现串口和串口、串口和网口之间的数据相互转发的方案。
总体设计方案
设计的总体方案如图一所示。
图一 多串口转换网关总体设计方案
本系统采用核心处理模块加协处理器的两级设计方案。这样设计的目的是利用协处理器缓解核心处理器的处理压力,并解决核心处理器数据接口数量相对不足和本系统多路数据量接入需求的矛盾。
核心处理器采用摩托罗拉公司的MCF5272芯片。这款芯片在Motorola公司嵌入式处理器中属于中低档产品。但是低档不等于低效,在主频66M时可以达到63MIPS,接近MPC860的MIPS。并且外围电路接口丰富,在摩托罗拉冷火系列芯片中集成度最高。该处理器集成了两个全双工的串口收发器,10/100M的以太网控制器,USB控制器,QSPI口等,非常适合于大量嵌入式应用的场合。核心处理器的外围扩展芯片有FLASH、SDRAM、网卡芯片、USB驱动芯片等。这就组成了一个核心处理模块,同时我们在这个核心处理模块上移植了micro;CLinux操作系统。利用micro;CLinux操作系统中自带的TCP/IP协议栈能很方便地实现网络数据的收发。
协处理器采用CYGNAL公司的C8051F023单片机。C8051F023单片机自带有两个通用异步全双工串口和一个SPI口,同时可以用单片机内部的PCA模块来软件模拟第3个全双工串口。协处理器与核心处理器通过同步串行接口SPI口连接,进行数据的交换。 在单片机端三个串口不断地接收数据,同一化处理后通过SPI口线传递给MCF5272。核心处理模块接收来自SPI口线和自身两个串口的数据帧,根据数据帧头的标志位进行存储转发。 整套系统共有5个全双工串口和一个10/100M的以太网网口用来进行数据的收发,实现了串口和串口、串口和网口之间数据的相互转发。可以满足大多数工控设备和通信系统的需求。
单片机中多任务调度的实现
在C8051F023单片机中需要实现三个串口的全双工收发以及与MCF5272的通讯工作。实现这些功能有两种方案,一种是采用定时轮询各个串口和SPI口特定寄存器,以判断是否有数据到达,并进行相应的处理,这种方案编程简单但实时性较差;另一种方案是采用中断机制,定义各串口的中断向量和中断处理程序进行处理,这种方案编程较复杂但实时性很好。根据我们的需求,各串口数据的收发,SPI口数据的收发,内部程序定时器的运行都是要求实时运行的不同任务,所以采用方案二可以获得更好的实时性。由于单片机内部没有嵌入操作系统,所以这些多个不同的任务就要依靠多中断加上同步锁的策略来实现。
硬件串口、SPI口以及定时器都有各自的中断向量和中断处理程序模块,而软件串口的接收和发送中断则需要依赖于自定义的外部中断向量来实现中断机制。这些中断的中断级别都相同,如果发中断冲突,则根据51单片机的中断向量表,先执行中断向量号小的中断处理程序,再执行中断向量号大的中断处理程序。
如果在数据发送的同时,新的数据接收进来并冲入发送缓存区,则会发生不可避免的通信数据出错。类似这样的问题就需要同步锁来解决。考虑到实时效应,实现C8051F023同步锁的机制为:当需要发送的一帧数据帧进入发送缓存时,中断处理程序立刻加锁,不允许新的数据再进入发送缓存,直到该帧数据全部发送完毕再解锁,此时新的数据才被允许进入发送缓存区。与此同时,在单片机内部划分出四块二级缓存区,将三个串口和一个SPI口接收到的数据先存入这四块二级缓存区中,以免数据的丢失。
单片机与MCF5272的连接与通讯
单片机与MCF5272之间采用SPI口进行通讯。硬件电路如图二所示。
图二 单片机与MCF5272连接原理图
SPI为同步串行接口,要求收发同步,但是实际的运用中,指令信号的接收和来自各串口数据的发送显然是异步的。这就需要对SPI口进行异步化编程设计。
将MCF5272的QSPI口设置为主模式,为SPI时钟的发
文档评论(0)