关键词:远程控制;嵌入式处理器 X-BOARD;以太网;光电跟踪
1 引言
随着嵌入式计算技术的发展, 嵌入式处理器和实时操作系统得到了广泛的应用。控制系统不仅对小型化、模块化、数据处理的实时性提出了进一步要求,并且往往还要求能实现远距离操控。以太网的远距离传输、高数据传输带宽等优点使其逐步进入传统的控制领域,而嵌入式系统以其本身体积小,功能多,高可靠性等优点,成为工控领域中的新热点。
VxWorks是美国风河公司推出的一个实时操作系统,它以其良好的可靠性和卓越的实时性被广泛地应用在通信、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、飞机导航等。X-BOARD是德国控创公司推出的下一代嵌入式处理器模块,功能十分强大,它几乎集成了当今所有需要的应用接口,如USB、以太网、PCI、LPC等[1]。其优异的嵌入式特性表现在低功耗、小尺寸、无须外加散热装置、对各种架构CPU具有相当的开放性、便于性能升级等。
光电跟踪控制系统是一种典型的嵌入式系统应用,针对其进行远程控制的研究具有较大意义。本文采用客户端、服务器模式,基于嵌入式X-BOARD<861>处理器和VxWorks实时操作系统,实现了远端主控计算机与DSP的实时通信与控制。
2 控制系统构成
该远程控制系统是基于某光电跟踪控制平台,其系统结构如图1:
在整个远程控制系统中,远端主控计算机上运行客户端程序,通过以太网进行DSP动态程序加载、系统运行状态监控、实时控制参数传递、报告网络连接情况等;在嵌入式子模块上运行服务器程序,负责远端主控计算机与DSP的实时数据交换;DSP采用TI公司的低功耗高速DSP TMS320C5416,工作频率可达到160MHZ。 为了保证整个系统工作的实时性,采用如下机制:DSP上运行实时控制算法,而嵌入式子模块和远端主控计算机只进行系统后台操控。
快速反射镜是一种精密跟踪技术手段,它与大惯量机架结构的主轴系统共同构成复合轴跟踪系统,主要用于校正主轴系统的跟踪误差及风矩、地基、机架和大气等干扰引起的视轴抖动[5,6]。快速反射镜的位置信息通过采样电涡流传感器电压输出值获得,而快速反射镜的转动由音圈电机驱动。
由以上论述我们可以看出,嵌入式子模块设计是整个远程控制系统的关键,其硬件结构原理如图2:
X-BOARD<861>嵌入式处理器模块具有128Mbyte SDRAM,采用AMD Geode SC1200 CPU,该CPU基于X86架构,具有266Mhz主频,为系统的及时响应提供了有利保障。经过实测,由FPGA发起中断,到中断得到响应只需要大约750ns,并且在VxWorks操作系统系统下最多能处理20KHz的中断。X-BOARD通过PCI 9054桥接芯片进行总线扩展,FPGA作为PCI 本地端。由于PCI总线与DSP接口速率的不一致性,所有数据交换经由FPGA内部定义的双端口SRAM进行缓冲。
3 软件设计
Socket 是BSD UNIX定义的一种应用程序使用TCP协议的接口,许多操作系统包括VxWorks都采用socket接口[3]。在本远程控制系统中采用基于TCP协议的可靠数据流SOCK_STREAM,它能提供有序双向字节流和带外数据传输能力,每一次完整的传输都要经历建立连接、使用连接、中止连接的过程,从而保证了数据传输的可靠性。
除了确定底层网络传输协议外,在整个客户端和服务器端软件中还应设计自己的数据传输协议,以解析复杂的控制命令,调试参数,程序加载数据和控制参数等。在本系统软件设计中所有数据采用1001字节的数据包进行传输,其中有效数据为后1000字节,第一个字节为控制字。当接收到一包数据时,首先提取第一个字节,解析应该对该帧数据进行何种处理。
软件设计主要集中在客户端软件和服务器端软件的设计。客户端软件开发在VC++6.0集成开发环境中完成,其软件结构设计如图3所示。子线程接收服务器端发送的数据并通过消息队列传递到主线程,主线程分别处理本地命令和子线程传递的数据。本地命令指操作人员通过客户端人机界面发出的命令,主要有DSP程序加载、复位控制、PWM封锁与开放、控制参数调整、后台数据记录等。以DSP程序加载过程为例,详细说明客户端与服务器如何进行命令与数据交互。首先将加载文件读入缓冲区,然后将数据打包发送到服务器端,服务器端收到数据包后首先提取控制字,识别出为加载程序数据包后,通过握手信号XF与BIO对DSP进行程序加载。子线程接收的数据包主要包括4路调试参数以及4路误差数据,主线程接收到子线程传递的数据包后,也是首先提取控制字,然后判断应采取何种操作。
服务器端软件开发在VxWorks集成开发环境Tornado 2.2 下完成。相比客户端软件,服务器端软件需要完成更多的工作,如中断处理、PCI驱动、协议解析、与DSP握手等,但是由于Tornado 2.2开发工具强大的功能,所有需求都能方便的进行开发。服务器端软件结构设计如图4。
图4服务器端软件设计流程图
由图4可看出,服务器端软件基于多任务设计,主任务首先初始化PCI驱动和网络,然后以循环方式接受客户端连接并孵化相应的数据接收和发送子任务。数据接收子任务接收来自客户端的数据和命令,经过协议解析后进行相应处理;PCI中断服务程序只进行信号量释放操作,用以通知数据发送子任务从双端口RAM中读取数据并发送到客户端。
4 实际控制试验
图5为试验平台结构示意图,经过实际控制验证,本系统能实现约20米距离的点对点数据传输,工作时的网络数据流量达到1.25Mbps,后台一次可记录达30MB容量的运行数据以供事后分析。客户端可同时监控4路调试参数、四路误差数据以及网络数据流量变化趋势,并能实时调整四个控制参数。
图5 试验平台结构示意图
图6是根据该远程控制系统客户端所记录数据,绘制的快速反射镜X方向通过电涡流信号位置闭环的过程。图中上半部分为电涡流变化曲线,下半部分为控制量变化曲线。经过测试在10K采样率的情况下,系统运行稳定,数据传输无丢包。
图6 快速反射镜位置闭环测试
5 结束语
本文作者的创新点在于充分利用VxWorks操作系统的高实时性,控创X-BOARD<861>嵌入式处理器模块的小体积、高性能以及传统以太网的远距离、高数据传输带宽等特点构建了一个完整的远程控制系统,每年产生经济效益约50万元。文中详细论述了整个系统的软硬件设计及后期的试验平台架构,并给出了实际控制结果。该系统具有良好的通用性,可以很方便的应用到大部分需要远程控制的场合。
经测试验证,该系统能完全满足当前的控制需求,保证了各种功能的实现,为光电跟踪设备的进一步小型化、模块化提供了新途径。
参考文献:
[1] X-board 861 Manual R120 [Z],2004,Kontron。
[2] VxWorks network programmers guide 5.5[Z], 2003, WindRiver System Inc。
[3] 李方敏,VxWorks高级程序设计[M].北京:清华大学出版社,2004。
[4] 李峰,应宏, 张军.利用TCP/IP实现Windows与VxWorks的通信[J].微计算机信息,2006,22卷第5期:21-23。
[5] 马佳光,捕获跟踪与瞄准系统的基本技术问题[J].光电工程,1989年3月,16卷第3期:1-41。
[6] 傅承毓,姜凌涛,任戈等.快速反射镜成像跟踪系统[J].光电工程,1994年3月,21卷第3期:1-8。