OMAPL138的光电任务载荷控制器设计

2016-06-24 02:37王马强王惠林边赟姜世洲冯涛
单片机与嵌入式系统应用 2016年6期

王马强,王惠林,边赟,姜世洲,冯涛

(西安应用光学研究所,西安 710065)

OMAPL138的光电任务载荷控制器设计

王马强,王惠林,边赟,姜世洲,冯涛

(西安应用光学研究所,西安 710065)

摘要:针对无人机光电任务载荷轻量化、小型化和高性能的需求,本文基于ARM+DSP的双核异构OMAPL138处理器,设计了一种兼具多任务管理和伺服稳定控制功能的光电任务载荷控制器。设计中扩展了8通道EMIF总线接口方式的串口,运用了GDB和CCS相结合的动态双核调试法,实现了利用消息队列和环形缓冲区的核间通信,完成了光电任务载荷的高效准确控制。该设计改善了控制器的体积和功耗,提高了核间通信的速度与可靠性,具有一定的工程应用价值。

关键词:OMAPL138;SysLink;双核通信;光电任务载荷控制器

引言

光电任务载荷作为无人机标准配置的任务单元,可对战区进行照相侦察、监视、目标测距、定位与跟踪,成为现代军事武器装备的千里眼[1]。光电任务载荷关键的技术问题之一是针对无人机的载荷能力限制,开展轻量化、小型化、高性能等方面的研究[2]。光电任务载荷控制器具有多任务管理和伺服稳定控制的功能,多任务管理包括处理地面站操控命令,控制光电传感器,切换光电任务载荷工作模式[3],伺服稳定控制实现光电传感器大范围转动或扇形搜索,并对目标定位与跟踪。控制器设计既要满足实时多任务管理和稳定伺服控制,还要尽可能体积小和功耗低。目前多数控制器采用PowerPC结合 DSP的方式,利用串口交换数据命令,体积与功耗较大,通信速度较低,易受干扰。

低功耗、高性能的OMAPL138芯片将以往分开工作的两个处理器集成为一个双核处理器。基于OMAPL138的光电任务载荷控制器双核分管工作,充分利用浮定点兼容的C6748 DSP 来支持高强度数据实时处理和伺服运动解算,同时将多任务管理交给ARM9内核负责,使用SysLink进行数据通信,充分发挥了ARM和DSP自身强大的优势,减小了控制器的体积和功耗,并且能够高效率的交换数据。

1OMAPL138

TI公司的OMAPL138采用ARM926EJ-S内核和TMS320C674x内核的异构结构,浮点、定点能力兼备,内核频率高达375/456 MHz[4]。ARM926EJ-S内核是Jazelle 技术增强的32 位RISC CPU,采用流水线结构,TMS320C674x内核是每秒百万条指令(MIPS1/每秒百万个浮点运算(MFLOPS)的32位VLIW DSP,采用2级高速缓存架构。

OMAPL138将ARM和DSP集成于一块芯片中,在稳定性方面有着较强的优势;ARM核和DSP核都可以独立操作EDMA3、EMIFA、EMAC、SPI 等丰富的外设接口[5];先进的电源管理对实现可靠、高效运作至关重要;具有RISC技术和CISC高速数字信号处理性能的优点,适合在任务管理和高速运算并存时应用[6]。

2SysLink

由于OMAPL138独特的异构双核结构,系统启动后双核单独运行,这样就存在双核运行速度不协调的问题。利用异构多核软件开发工具包SysLink,可以使双核配合工作达到更好的状态,发挥其更强的处理能力。广义上的SysLink包含了运行在HLOS(Higher Level Operating System)上的SysLink Product和运行在RTOS(Real Time Operating System)上的IPC Product,SysLink提供了丰富的核间通信机制(如MessageQ、RingIO等)[7]。其中,MessageQ用于多核间的可变长度消息数据块通信,RingIO提供基于数据流的环形缓冲区。

图2 控制器总体框图

3双核调试

双核调试在开发过程中占据大量的时间[8],有效的调试方法会提高开发效率。 GDB和CCS相结合的动态调试法程序运行可控性强,调试时的静态界面如图1所示。 ARM端用GDB+GDBServer工具,DSP端采用CCS开发环境,调试主机LinuxPC和目标板之间用网口、串口和JTAG相连,CCS通过JTAG连接DSP端,使用二进制文件进行DSP端子程序调试;GDB通过网络与ARM端运行的GDBServer交互,获取ARM子程序运行状态,使用二进制文件进行调试,更进一步,可以通过Console端口配置CCS对ARM子程序进行调试。

图1 双核调试静态界面

调试具体流程是:①ARM加载SysLink模块;②ARM用slaveloader启动DSP程序;③PC用CCS加载DSP程序的Debug符号symbols;④ARM启动GDBServer并加载ARM程序;⑤PC连接GDBServer并加载ARM程序的Debug符号symbols;⑥PC通过GDB和CCS在适当位置设置断点开始调试。

4控制器设计

4.1控制器系统

ARM926EJ-S内核为主处理器,运行Linux操作系统,引导、加载从处理器DSP、驱动外围设备,负责任务调度、数据指令的接收与分发、热像和激光上电。TMS320C674x内核运行实时操作系统SYSBIOS和复杂的控制算法,输出信号控制电机,与系统其他单元共同实现稳定瞄线、搜索、跟踪目标。有了ARM主控制器,DSP就从复杂的系统控制中解脱出来,处理更复杂的算法和大量的数据运算。

控制器总体框图如图2所示。

NAND Flash采用512M、8位K9F4G08U0D,用于存储bootloader、启动时系统环境变量、Linux内核、文件系统;DDR2采用128 MB、16位400 MHz MT47H64 M16HR,用于软件运行空间;双串口扩展芯片TL16CP754CIPM的8通道 RS422串口具有EMIF总线接口方式,传输速度快、实时性高。GPIO给热像、激光上电;专用芯片AD2S80采集旋变信号,16位、8通道AD7606采集测速机和陀螺的信号,精度高、噪声低;输出PWM经过放大驱动模块控制电机;接口有仿真调试JTAG、串口终端、调试RS232、RJ45 网口。

4.2共享内存通信

核间消息传递与数据交换采用共享内存的方式实现。OMAPL138用makefile机制与XDC构建系统,Linux在运行时通过内核启动参数来配置由内核管理的内存空间,SYSBIOS在构建时采用XDC配置文件进行数据区、代码区等内存区的分配[9]。系统构建与运行时需要对各个核所使用的内存以及共享内存进行划分。128 MB DDR2物理内存划分和映射情况如图3所示,16 MB的ARM/DSP共享内存用于核间通信。

图3 双核通信内存分配

图4 跟踪模式流程图

设置内核启动参数为:setenv bootargs root=/dev/nfs rw,nfsroot=192.168.115.131:/home/smile/omapl138/nfs,

nfsaddrs=192.168.115.123:192.168.115.131:192.168.115.2:255.255.255.0,console=ttys2,115200n8 mem=32M@

0xc0000000mem=64M@0xc4000000。

核间通信使用SysLink的MessageQ进行消息传输,RingIO进行数据传输。MessageQ是单向传输,每个消息队列可以有多个写者,但只能有一个读者。划分SR0Ipc用于双方消息传输,建立一个从ARM到DSP的消息队列和一个从DSP到ARM的消息队列;RingIO也是单向传输,仅支持一个读和一个写,分配SR1内存用于ARM到DSP的数据缓存,SR2用于DSP到ARM的数据缓存。

4.3跟踪模式实现

光电任务载荷具有收藏、手动、扫描、跟踪、锁定、搜索等模式,跟踪模式的工作过程复杂,通信数据量大,下面以跟踪模式的实现为例。

控制器基于CS架构(客户端服务器模型),ARM端是客户端,DSP是服务端。ARM端为数据管理中心,接收和分发电视、热像传感器的视场、跟踪器跟踪偏差、地面站操控指令、旋变俯仰方位位置量。DSP端采集测速机转速信号、陀螺速率信号、旋变位置信号,处理数据并运行先进的稳定控制算法和自抗扰控制算法。核间通信MessageQ接收消息,调用相应的处理函数进行分发,接收消息后RingIO把数据写入缓存区或从缓存区读取数据。跟踪模式流程如图4所示。

具体步骤如下:

① ARM端初始化,接收电视、热像的视场值、地面站的跟踪指令,发送跟踪指令到跟踪器,接收跟踪偏差量,将跟踪指令、视场、漂移补偿、跟踪偏差量、传感器切换写入SR1;DSP端初始化,等待接收ARM端发送的消息;

② ARM端将从SR1读取数据、使能指令写入Host Message queue消息队列,发送到DSP端,等待接收DSP端发送的消息;

③ DSP端接收消息,伺服使能,采集旋变、测速机、陀螺信号,从SR1读取数据;

④ DSP端进入跟踪模式,获得自动跟踪角偏差量,自动跟踪控制运算,将跟踪量、速率量、转速量和位置量利用加法器求和,运行稳定控制算法,通过陀螺稳定回路和位置稳定回路控制内环,测速控制回路和位置控制回路控制外环,并输出电机控制量;

⑤ DSP端将跟踪模式、视场值、位置量写入SR2中;

⑥ DSP端将从SR2读取数据指令写入Slave Message queue消息队列,发送给ARM端;

⑦ ARM端接收消息,从SR2中读取数据,将数据发送到地面站和跟踪器;双核循环执行这个步骤。

4.4控制器性能

OMAPL138控制器与PowerPC+DSP控制器性能对比如表1所列,双核通信过程中 MessageQ单向发送时间约80 μs。

表1 控制器性能对比结果

结语

本文采用OMAPL138设计的光电任务载荷控制器,

参考文献

[1] 王惠林.从技术发展谈光电系统工程在无人平台装备建设中应发挥的作用[C]//无人平台光电信息技术与装备发展研讨会论文集,北京:2014.

[2] 王小鹏.军用光电技术与系统概论[M].北京:国防工业出版社,2011.

[3] 高贤娟.无人机光电系统实时多任务管理软件技术研究[D].西安:西安工业大学, 2013.

[4] Texas Instruments.OMAP-L138 C6000 DSP+ARM Processor,2014.

[5] Texas Instruments.OMAP-L138 Applications Processor System Reference Guide,2010.

[6] 谢维波, 贺文强.基于OMAPL138的视频监控烟雾检测系统[J].计算机工程与应用, 2015(20):183-187.

[7] Texas Instruments.SysLink User Guide,2010.

[8] 栾小飞.OMAPL138双核系统的调试方案设计[J].单片机与嵌入式系统应用, 2012, 12(1):16-19.

[9] 国常义, 李超群, 刘峰.达芬奇异构多核处理器核间通信技术研究[J].电视技术, 2015, 39(7).

王马强(助理工程师),主要从事光电系统总体设计。

Photoelectric Payload Controller Based on OMAPL138

Wang Maqiang,Wang Huilin,Bian Yun,Jiang Shizhou,Feng Tao

(Xi’an Institute of Applied Optics,Xi’an 710065,China)

Abstract:Aiming at the requirements of lightweight,miniaturization and high performance of UAV photoelectric payload,a photoelectric payload controller with multi-task management and servo control function is designed, which is based on dual-heterogeneous OMAPL138 DSP+ARM processor.The 8-channel serial port is extended with the EMIF bus interface.the dynamic dual core debugging method is used which combines GDB and CCS,and the inter-core communication is realized by message queue and circular buffer.The design completes the efficient and accurate control of the photoelectric payload.On one hand, the design improves the volume and power consumption of the controller,on the other hand,it improves the speed and reliability of the communication.It has certain engineering application value.

Key words:OMAPL138;Syslink;dual-core communication;photoelectric payload controller

中图分类号:TP273.5

文献标识码:A

收稿日期:(责任编辑:杨迪娜2016-02-02)