首页   个人简历  发表论文  个人书稿 行通讯   VC/C编程 机器人控制 MATLAB
 


多串口转换网关在嵌入式系统中的实现
Realizing of the Serial Ports Conversion Gateway on Embedded system
(上海大学)余成融 蔡皓昌 潘志浩

摘要:本文介绍了一种采用嵌入式系统米实现多串口转换网关的力一法。并结合C51F023单片机和MCF5272处理器的特点及其土作原理,对单片一机的编程策略进行了详尽的探讨。

 

引言


近此年,互联网以其便捷、高速传输数据的特点越米越受到人们的青睐互联网已经进入了世界的甸一个角落而在土业控制和通讯设备中,更多的却是符合RS-232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个待解决的问题。本文提出了一种基于嵌入式系统米实现串口和串口、串口和网口之间的数据相互转发的方案。
1总体设计方案
设计的总体方案如图1所示。
                              图1(点击可查看图,以下同)

本系统采用核心处理模块加协处理器的两级设计方案。这样设计的目的是利用协处理器缓解核心处理器的处理压力,并解决核心处理器数据接口数量相对不足和本系统多路数据量接入需求的矛盾
核心处理器采用摩托罗拉公司的MCF5272芯片。这款芯片在Motorola公司嵌入式处理器中属于中低档产品。但是低档不等于低效,在主频66M时可以达到63 MIPS,接近MPC860的MIPS。并且外围电路接口丰富,在摩托罗拉冷火系列芯片中集成度最高。该处理器集成了两个全双土的串口收发器,10/100M的以太网控制器,USB控制器,QSPI口等,非常适合于大量嵌入式应用的场合。核心处理器的外围扩展芯h一有FLASH,SDRAM,网卡芯片、USB驱动芯片等。这就组成了一个核心处理模块,同时我们在这个核心处理模块上移植了pLCLinux操作系统。利用pLCLinux操作系统中自带的TCP/IP协议栈能很方便地实现网络数据的收发。协处理器采用CYGNAL公司的C8051F023单片机。C8051F023单片一机自带有两个通用异步全双土串口和一个SPI口,同时可以用单片机内部的PCA模块米软件模拟第3个全双土串口。协处理器与核心处理器通过同步串行接口SPI口连接,进行数据的交换。在单片一机端三个串口不断地接收数据,同一化处理后通过SPI口线传递给MCF5272。核心处理模块接收米自SPI口线和自身两个串口的数据帧,根据数据帧头的标志位进行存储转发, 整套系统共有5个全双土串口和一个10/loom的以太网网口用米进行数据的收发,实现了串口和串口、串口和网口之间数据的相互转发。可以满足大多数土控设备和通信系统的需求。


2单片机中多任务调度的实现


  在C8051F023单片一机中需要实现三个串口的全双土收发以及与MCF5272的通讯土作。实现这ilh功能有两种方案,一种是采用定时轮询各个串口和SPI口特定寄存器,以判断是否有数据到达,并进行相应的处理,这种方案编程简单但实时性较差;另一种方案是采用中断机制,定义各串口的中断向量和中断处理程序进行处理,这种方案编程较复杂但实时性很好。根据我们的需求,各串口数据的收发,SPI口数据的收发,内部程序定时器的运行都是要求实时运行的不同任务,所以采用方案二可以获得更好的实时性。由于单片一机内部没有嵌入操作系统,所以这此多个不同的任务就要依靠多中断加上同步锁的策略米实现硬件串口、SPI口以及定时器都有各自的中断向量和中断处理程序模块,而软件串口的接收和发送中断则需要依赖于自定义的外部中断向量米实现中断机制。这此中断的中断级别都相同,如果发中断冲突,则根据51单片一机的中断向量表,先执行中断向量号小的中断处理程序,再执行中断向量号大的中断处理程序。
    如果在数据发送的同时,新的数据接收进米并冲入发送缓存区,则会发生不可避免的通信数据出错。类似这样的问题就需要同步锁定解决。考虑到实时效应,实现C8051F023同步锁的机制为:当需要发送的一帧数据帧进入发送缓存时,中断处理程序立刻加锁,不允许新的数据再进入发送缓存,直到该帧数据全部发送完毕再解锁,此时新的数据才被允许进入发送缓存区。与此同时,在单片一机内部划分出四块二级缓存区,将三个串口和一个SPI口接收到的数据先存入这四块二级缓存区中,以免数据丢失。

3单片机与MCF5272的连接与通讯


单片机与MCF5272之间采用SPI口进行通讯。硬件电路如图2所示

             图2

SPI为同步串行接口,要求收发同步,但是实际的运用中,指令信号的接收和米自各串口数据的发送显然是异步的。这就需要对SPI口进行异步化编程设计。
将MCF5272的QSPI口设置为主模式,为SPI时钟的发送方;而单片机的SPI口则设置为从模式。MCF5272在程序的运行中,不间断的通过QSPI口发送数据,在不发送指令帧数据时,就发送“0”数据;而单片机的SPI口就会不断的收到数据,在丢弃
"0”数据外,接收到米自MCF5272有用的指令帧数据。由于SPI的收发同步的特征,MCF5272不间断发送数据的同时,便可以不断的收到米自单片机SPI口的数据,同样,在丢弃没有任何意义的“0”数据后,将接收到通过各个串口传递而米各种不同的数据。这就实现了同步SPI口转变为异步全双工的工作。


4数据帧的同一化
单片机的三个串口所接收到的数据都将通过SPI接口传递至核心处理器MCF5272,同时核心处理器的数据也通过SPI口传递给单片机。这就需要单片机和MCF5272之间有一致的数据接口,以方便数据的分发和接收。我们需要对三个串口接收到和从SPI口接收到的数据帧重新定义帧格式,进行同一化处理。同一化帧格式见图三,其中串口源地址用米识别数据米自哪一个串口,串口目的地址用米识别数据将要发送至哪一个串口。

在MCF5272核心处理板上,从串口接收到的数据转发至网络同样需要进行同一化的处理。帧格式见图4
 

图3串行口数据帧发送格式 图4网口数据帧发送格式

5结束语

整套系统的五个全双土串口和一个网口对核心处理板来说是完全透明的。只需根据实际隋况中的具体要求在uCLinux下编写上层应用软件即可,因而适用于大多数的土控设备和通讯设备。如果在后端连接上无线传输模块,该力一案还适用于无线通信领域。

参考文献:

[1]((C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册》,潘琢金

[2]((MCF5272 Coldfire Integrated Microprocessor User' s Manual))
[3]((8051单片机C语言控制与应用》,陈龙三编著,清华大学出版社

(《微计算机信息》(测控自动化)2004年第20卷第10期)

 
 
 

新书:串口通信编程实践

 
 

转载本站原版内容,请注明作者并说明来自http://www.gjwtech.com   龚建伟技术主页

EMAIL