基于PowerPC嵌入式内核的多串口通信扩展设计

2014-08-10 10:30李志宇肖莉萍
电子设计工程 2014年7期
关键词:跳线板卡中断

居 晓,李志宇,肖莉萍

(1.南京航空航天大学 自动化学院,江苏 南京 210016; 2.南京航空航天大学 无人机研究院,江苏 南京 210016)

在一些复杂的控制领域中,控制计算机往往需要与多个终端进行信息的交互通信。但由于工程现场环境的限制和应用设备的日渐增多,近距离集中式的通信管理已不再具有普遍适用性。

随着远程集散控制理念的出现,串行数据通信因其结构简单、设计方便、价格低廉、占用资源少[1]、传输距离远等优势而得到了广泛普及。而近年来串口通信正朝着带宽、速度、稳定性逐渐增加的方向发展[2],利用多个串口进行信号采集或数据传输为多设备分布式布局提供了可能。但一般的处理器板卡只有一至两个RS232串口,难以满足控制系统对串口数量和数据传输过程中抗干扰性能的要求,因此需要对串口进行扩展设计。

传统的串口扩展设计多以微控制器与串口芯片在板集成的方式实现,需单独设计其控制电路和外围接口电路,周期较长,灵活性低,且稳定性和抗干扰性仍有待验证。MPC565与EMM串口卡技术相对更加成熟,各性能指标已经过长期的实践验证,同样具有的PC/104总线结构使其能够以简单的插拔方式实现串口功能的扩展,使用灵活、方便。因此本文结合以PowerPC嵌入式处理器MPC565为核心的飞控计算机开发平台,介绍一种多串口通信在实际工程应用中的扩展方法。利用MPC565与EMM-8M-XT组成串口扩展系统,通过简单的搭积木方式实现8个通信方式可配置的串口扩展。

1 系统硬件结构设计

本文涉及的内容已成功应用于某型无人机飞控系统的预研开发。众所周知,无人机飞行控制系统是个典型的多输入、多输出系统,其多外设平台大多采用分布式布局[3],串行通信逐渐成为了各传感器及任务设备与飞控计算机内核之间的主要通信方式,高质量的数据传输尤其重要。

本文中飞控计算机内核采用具有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所示。

图1 多串口通信系统结构图Fig. 1 Schematic diagram of multi-serial ports communication system

本文应用的MPC565板卡设有3个RS232通信串口,主要用于程序装订和飞控参数的测试,因此需额外的串口模块来满足飞控计算机的基本功能。这里选用DIAMOND公司的EMM-8M-XT串口模块实现串口功能的扩展。

EMM-8M-XT串口模块集成了两个高性能的16C654控制芯片,8个独立的串口通道各有64字节的接收缓冲器和发送缓冲器,自动软硬件流程控制,最高配置波特率可达1.5 Mb/s,有10个不同的中断优先级可选。每个通道的状态可以通过CPU的操作读取寄存器。三态输出为双向数据总线和控制总线提供TTL驱动能力、优先级中断系统控制、可编程的串行接口特性[4-5]。串口基地址、中断号和通信模式(RS232/422/485可选)亦可通过硬件跳线灵活配置,如图2和图3所示。

图2 基地址和中断号跳线设置示意图Fig. 2 Sketch map of jumper configuration for base address and interrupt number

图3 通信模式跳线设置示意图Fig. 3 Sketch map of jumper configuration for communication mode

为防止与其他PC/104结构的板卡冲突,在这里把串口板的基地址设为200H,port1~port8共用3号中断。基地址跳线J9的A、B、C、D定义如图4所示,“In”表示放置跳线,“Out”表示不放置跳线。每个串行口的基地址和中断号信息均保存在EEPROM中,上电后板卡从中读取这些数据,自动完成基地址和中断号的初始配置。

图4 基地址跳线定义图Fig. 4 Definition chart of jumper for base address

2 应用软件设计

应用软件采用C语言编程,可读性好,主要分为串口板初始化软件和串口中断服务软件。EMM-8M-XT的8个串口相对独立。除共用中断级外,MPC565可对每个串口的特性进行单独控制,因此波特率、数据格式、缓冲区深度等需通过初始化软件依次设置。8串口初始化流程和中断处理流程如图5所示。

用中断方式实现芯片功能比查询方式能更有效地利用CPU,具有更好的实时性,大批量数据传输时中断方式更能显示出其优势。

图5 串口初始化流程图Fig. 5 Flow chart of serial port initialization

图6 中断处理函数流程图Fig. 6 Flow chart of interrupt service routine

本例中8个串口共用3号中断,由内部硬件机制完成板级中断状态寄存器相应位的置位与清零。在中断处理子程序中,首先要关闭 CPU 响应其他中断的能力,以免造成多层中断嵌套可能导致的程序死机[6-7]。这样即使中断同时到来各串口也能正常工作,不会出现抢占现象,亦不会产生中断阻塞或丢失情况。8个串口共用3号中断,具体哪一个通道产生中断由位于202H的中断状态寄存器指示(bit0~bit7分别代表1~8号串口)。中断发生后,CPU将“一视同仁”,按照3号中断处理函数内设置的中断状态查询次序,对到来的中断依次响应。数据接收或发送时,各串口采用相同的中断处理流程,下面以串口中断服务程序为例,对软件设计思路进行描述。

串口中断处理程序EMMComInterrupt:

3 性能验证

多串口通信扩展系统实物图如图7所示。实际应用中分别对8个串口进行了局部测试和系统测试,如图8所示。在115200bps的高波特率下,长时间的通信验证未出现帧格式错误和丢帧现象。中断的收发方式亦同时保证了较高的传输速度和对其它任务的实时响应。

图7 多串口通信系统实物图Fig. 7 Real picture of multi-serial ports communication system

图8 多串口通信系统实物图Fig. 8 Real picture of multi-serial ports communication system

4 结 论

文中利用PC/104总线结构的PowerPC嵌入式处理器MPC565和串口模块EMM-8M-XT成功构建了多串口通信扩展系统。各串口在带有校验机制的长时间连续串行通信测试中,RS232、RS422、RS485 3种工作模式下均收发正常,帧格式正确且误码率极低。系统测试中,8个串口工作于无人机机载复杂电磁环境和温变循环(-40℃、+85℃)等恶劣条件下,能够长时间连续稳定的进行数据传输,具有较强的抗干扰能力和良好的实时性能。

该多串口通信系统结构简单,插拔式的PC/104总线结构使其具备了丰富的资源扩展能力。该设计方法已成功应用于某型无人机相似余度结构飞控计算机的原理样机开发中,对工业控制领域的其它类似应用可提供参考和借鉴。

[1]兰立荣,闫继英,林海土, 等.基于 ARM 处理器设备的多串口设计与实现[J]. 仪表技术,2011(5):19-21.LAN Li-rong, YAN Ji-ying,LIN Hai-tu,et al.Design and implementation of multi-channel UART based on ARM apparatus[J]. Instrumentation Technology,2011(5):19-21.

[2]Chen Z H,Shi M, Yi Q M.A method for DSP asynchronous serial port expansion based on TL16C752B[C]//Business Management and Electronic Information (BMEI),2011 International Conference on.IEEE, 2011(1):844-847.

[3]李志宇,肖前贵.应用PC/104模块实现多串口通讯扩展设计[J].工业控制计算机,2004,17(9): 43-44.LI Zhi-yu,XIAO Qian-gui.Design of extending multi-serial ports communication by applying PC/104 modules[J].Industrial Control Computer, 2004,17(9):43-44.

[4]林为传,韩晓晨,陈觉之.基于MPC860与ST16C654的串行通信设计[J].电子设计工程,2010,18(7):158-160.LIN Wei-chuan, HAN Xiao-chen, CHEN Jue-zhi. Design of serial communications based on MPC860 and ST16C654[J].Electronic Design Engineering, 2010, 18(7): 158-160.

[5]宋宇,于耀,周余,等.智能配电数字终端的转串口芯片驱动设计[J].电子测量技术,2013, 36(2): 68-71.SONG Yu,YU Yao, ZHOU Yu, etc. Serial chip driver design of digital terminal for intelligent power distribution[J].Electronic Measurement Technology,2013,36(2):68-71.

[6]李伟. 基于中断方式的TL16C754B的串口通信驱动程序的开发[J]. 测控技术,2012,31(4): 93-95.LI Wei.Driver program development of TL16C754B based on interrupt[J].Measurement & Control Technology,2012,31(4):93-95.

[7]吴春瑜,李璟,王相森. 通用异步收发器TL16C554分析[J].辽宁大学学报: 自然科学版,2007,34(4):315-318.WU Chun-yu,LI Jing, WANG Xiang-sen.Analysis of UART TL16C554[J].Journal of Liaoning University: Natural Sciences Edition, 2007,34(4):315-318.

猜你喜欢
跳线板卡中断
基于线性拟合和差值补偿的跳线计算方法研究
基于PCI9054的多总线通信板卡的研制
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
基于FPGA的中断控制器设计*
特高压线路垂直排列耐张塔的跳线支架高度研究
跟踪导练(二)(5)
千里移防,卫勤保障不中断
一种基于光纤数据传输的多板卡软件程序烧写技术
一种通用模拟量及开关量信号采集板卡的设计
FPGA内嵌PowerPC的中断响应分析