摘要:本文设计了一种基于PowerPC嵌入式内核MPC565和串口模块EMM-8M-XT的多串口通信系统,给出了系统总体的硬件架构和软件设计流程,详述了串口卡跳线及寄存器的设置方法,实现了8个RS232/422/485工作模式可任意配置的全双工通信串口。MPC565通过PC/104总线对串口卡进行读写控制,体积小,使用方便。经大量长时间的通信测试和考机验证,串口系统工作稳定,实时性好,抗干扰性强,在不同应用环境中采用特定通信模式能有效保证信息交换的可靠性,适用于具有多路串行数据传输需求的复杂控制场合。
在一些复杂的控制领域中,控制计算机往往需要与多个终端进行信息的交互通信。但由于工程现场环境的限制和应用设备的日渐增多,近距离集中式的通信管理已不再具有普遍适用性。
随着远程集散控制理念的出现,串行数据通信因其结构简单、设计方便、价格低廉、占用资源少、传输距离远等优势而得到了广泛普及。而近年来串口通信正朝着带宽、速度、稳定性逐渐增加的方向发展,利用多个串口进行信号采集或数据传输为多设备分布式布局提供了可能。但一般的处理器板卡只有一至两个RS232串口,难以满足控制系统对串口数量和数据传输过程中抗干扰性能的要求,因此需要对串口进行扩展设计。
传统的串口扩展设计多以微控制器与串口芯片在板集成的方式实现,需单独设计其控制电路和外围接口电路,周期较长,灵活性低,且稳定性和抗干扰性仍有待验证。MPC565与EMM串口卡技术相对更加成熟,各性能指标已经过长期的实践验证,同样具有的PC/104总线结构使其能够以简单的插拔方式实现串口功能的扩展,使用灵活、方便。因此本文结合以PowerPC嵌入式处理器MPC565为核心的飞控计算机开发平台,介绍一种多串口通信在实际工程应用中的扩展方法。利用MPC565与EMM-8M-XT组成串口扩展系统,通过简单的搭积木方式实现8个通信方式可配置的串口扩展。
1 系统硬件结构设计
本文涉及的内容已成功应用于某型无人机飞控系统的预研开发。众所周知,无人机飞行控制系统是个典型的多输入、多输出系统,其多外设平台大多采用分布式布局,串行通信逐渐成为了各传感器及任务设备与飞控计算机内核之间的主要通信方式,高质量的数据传输尤其重要。
本文中飞控计算机内核采用具有PC/104结构的MPC565板卡。PowerPC系列的MPC565处理器具有较高的硬件稳定性和抗干扰性,工作频率可达50 MHz以上,在无操作系统的情况下也能可靠、灵活的直接操作硬件,运算处理能力强大,可靠性高,工作温度范围-40℃~+85℃,同时应用PC/104总线结构还可以外接串口、A/D、D/A、I/O等功能组件,为其提供了方便的资源扩展能力,且有利于功能的模块化集成。
MPC565可通过简单的插拔方式与同样具有PC/104结构的EMM-8M-XT实现串口功能的扩展。EMM-8M-XT串口板提供8个通信模式可配置的串行接口,分别连接磁罗盘、大气机、GPS、惯导等设备,完成不同的任务功能。扩展串口通信后飞控系统结构如图1所示。
本文应用的MPC565板卡设有3个RS232通信串口,主要用于程序装订和飞控参数的测试,因此需额外的串口模块来满足飞控计算机的基本功能。这里选用DIAMOND公司的EMM-8M-XT串口模块实现串口功能的扩展。
EMM-8M-XT串口模块集成了两个高性能的16C654控制芯片,8个独立的串口通道各有64字节的接收缓冲器和发送缓冲器,自动软硬件流程控制,最高配置波特率可达1.5 Mb/s,有10个不同的中断优先级可选。每个通道的状态可以通过CPU的操作读取寄存器。三态输出为双向数据总线和控制总线提供TTL驱动能力、优先级中断系统控制、可编程的串行接口特性。串口基地址、中断号和通信模式(RS232/422/485可选)亦可通过硬件跳线灵活配置,如图2和图3所示。
为防止与其他PC/104结构的板卡冲突,在这里把串口板的基地址设为200H,port1~port8共用3号中断。基地址跳线J9的A、B、C、D定义如图4所示,“In”表示放置跳线,“Out”表示不放置跳线。每个串行口的基地址和中断号信息均保存在EEPROM中,上电后板卡从中读取这些数据,自动完成基地址和中断号的初始配置。
2 应用软件设计
应用软件采用C语言编程,可读性好,主要分为串口板初始化软件和串口中断服务软件。EMM-8M-XT的8个串口相对独立。除共用中断级外,MPC565可对每个串口的特性进行单独控制,因此波特率、数据格式、缓冲区深度等需通过初始化软件依次设置。8串口初始化流程和中断处理流程如图5所示。
用中断方式实现芯片功能比查询方式能更有效地利用CPU,具有更好的实时性,大批量数据传输时中断方式更能显示出其优势。
本例中8个串口共用3号中断,由内部硬件机制完成板级中断状态寄存器相应位的置位与清零。在中断处理子程序中,首先要关闭CPU响应其他中断的能力,以免造成多层中断嵌套可能导致的程序死机。这样即使中断同时到来各串口也能正常工作,不会出现抢占现象,亦不会产生中断阻塞或丢失情况。8个串口共用3号中断,具体哪一个通道产生中断由位于202H的中断状态寄存器指示(bit0~hit7分别代表1~8号串口)。中断发生后,CPU将“一视同仁”,按照3号中断处理函数内设置的中断状态查询次序,对到来的中断依次响应。数据接收或发送时,各串口采用相同的中断处理流程,下面以串口中断服务程序为例,对软件设计思路进行描述。
3 性能验证
多串口通信扩展系统实物图如图7所示。实际应用中分别对8个串口进行了局部测试和系统测试,如图8所示。在115200bps的高波特率下,长时间的通信验证未出现帧格式错误和丢帧现象。中断的收发方式亦同时保证了较高的传输速度和对其它任务的实时响应。
4 结论
文中利用PC/104总线结构的PowerPC嵌入式处理器MPC565和串口模块EMM-8M-XT成功构建了多串口通信扩展系统。各串口在带有校验机制的长时间连续串行通信测试中.RS232、RS422、RS485 3种工作模式下均收发正常,帧格式正确且误码率极低。系统测试中,8个串口工作于无人机机载复杂电磁环境和温变循环(-40℃、+85℃)等恶劣条件下,能够长时间连续稳定的进行数据传输,具有较强的抗干扰能力和良好的实时性能。