1. 引言
随着装备作战试验任务在我军陆续开展,针对作战单元信息采集相关技术研究日益紧迫。目前,车载类武器平台作为最小作战本体,需要在真实的作战环境下对其使用过程中的车电、火控等参数进行精确测量并实时传输。基于此,本文以某自行高炮武器系统作为研究对象,重点分析了其总线结构和协议,设计并开发了双CAN总线状态参数采集系统,为装备的作战效能、作战适应性和生存性,以及体系贡献率评估提供精确的测试数据支撑。
2. 系统总体及硬件设计
2.1. 系统总体设计
系统主要由车载采集终端和数据处理服务器组成。所有的采集终端由统一的时统进行控制。各终端通过专用的试验通讯网络将数据汇总到上位机的数据处理服务器中。为确保采集终端能够满足耐低温、三防等军用标准,设计采用飞思卡尔MC9S12XEP100MAL单片机作为核心处理器。该芯片内部集成PLL电路同时具有倍频功能,通过外部加装4 M晶振,能够倍频到48 M,满足电磁兼容要求 [1] 。电路外围搭配W5100芯片实现数据的透明传输,其功能是接收两路CAN总线数据并将数据封装到一个数据包中,在采集卡上以TXT文件的形式存储在板载SD卡中,同时将该数据包以UDP协议的方式通过网口发送给数据采集服务器。同时系统还应具备总线数据接收状态指示、电源状态指示、断电数据保护、关键通信参数在线编程、数据筛选等功能,如图1所示。
在系统工作的时候,先对总线差分信号进行处理,将双端输入的差分信号通过总线驱动器或差分接收器转换成单端口的高低电平信号,然后送到单片机的CAN总线接口,由协处理器XGATE以中断方式进行接收,一个通信周期(80 ms)相关数据采集完毕后进行封装,在周期定时器中断控制下,由主控制器HC12X通过SPI总线接口存储到板载SD卡中,同时通过并行总线利用W5100芯片转换成UDP数据,发往数据处理服务器 [2] 。利用4个LED灯指示采集卡工作状态,使用4个拨码开关选择系统的工作方式等。
2.2. 单片机外围电路设计
该部分电路主要包括程序下载电路、时钟电路、单片机输入电源滤波、工作状态指示电路以及最小系统所需的外围电路。时钟电路采用4 MHz晶振,电源滤波电路,外部输入电源采用100 UH电感、10 UF

Figure 1. System principle block diagram
图1. 系统原理框图
钽电容、103陶瓷电容、104陶瓷电容共同构成LC滤波电路,内部电源采用102陶瓷电容和220 NF陶瓷电容滤波 [3] 。工作状态指示电路共有四个LED指示灯。PORTE5、PORTE6以及PORTE7通过3.3 K电阻下拉到地。单片机核心电路如图2所示。
2.3. 电源电路设计
目前通用轮式车辆底盘都提供DC12V接口用于车载设备供电,因此本系统电源采用直接从车内取电的方式工作。为确保设备在密闭空间内能够稳定工作,系统选择开关电源代替传统的LDO电源芯片,将终端电源转换效率提高到95%以上 [4] [5] 。终端内部设计两个供电电路,首先采用N7805模块将DC12V转换为DC5V,用于给单片机及CAN收发芯片等核心电路供电;之后采用N7803模块将DC12V转换为DC3V,给网络芯片和SD卡供电。由于开关电源芯片存在纹波大的缺点,本系统在芯片后端增加多级滤波电容,能够将纹波控制到20 mV以内。同时DC12V电路处设计电源开关,DC5V、DC3V输出分别放置500 MA和300 MA可恢复保险做过流保护,放置两个LED灯指示电源状态。如图3所示。
2.4. CAN总线接口电路设计
CAN总线节点采用MC9S12XEP100单片机做控制器,其集成有6个CAN总线接口,CAN总线收发器采用AD公司的ADM3053芯片,其内部集成了隔离DC/DC电源,是一种自隔离的CAN总线收发器 [6] 。节点电路设计有EMI滤波电路以及ESD静电保护电路,其节点硬件电路如图4所示。
3. 系统软件设计
3.1. 程序流程设计
整个程序主要分为两种模式,一种参数设置模式,一种正常工作模式,两种模式通过拨码开关进行选择。参数设置模式主要用于板卡的网络参数以及数据采集服务器网络参数设置。正常工作模式主要用于正常CAN总线数据采集。程序主程序流程如图5所示。

Figure 2. SCM core circuit schematic
图2. 单片机核心电路原理图
3.2. 中断分配
为确保系统能够及时响应接收到的数据,整个程序设计了4个中断。同时为确保中断通道不会互相干扰,对不同中断分配相应的优先级。一个80 MS的周期定时中断,分配给主核处理;两个CAN接口中断、一个SCI串口中断,分配给XGATE处理。中断流程如图6所示。
4. 双缓冲区周期交换法
4.1. 主核与辅核XGATE数据共享
系统辅核XGATE负责处理接收数据中断,采集CAN总线数据、时间信息且完成数据装帧。主核负

Figure 4. Schematic diagram of CAN interface circuit
图4. CAN接口电路原理图

Figure 5. System master program flow chart
图5. 系统主程序流程图
责将采集到的数据按80 ms的周期保存数据以及将数据发送给上位机服务器。因此,必须保证数据和各种标志要在主核与辅核XGATE之间实时可靠共享。本系统通过设计双缓冲区标志位的方法,通过周期判断缓冲区使用状态,以保证主辅核直接操作两个缓冲区数据,算法流程如图7所示。
4.2. 数据采集策略
本系统包括两个CAN总线接口,能够同时接收数据,通过双缓冲区周期交换法实现双CAN口的不间断采集,当单片机的辅核XGATE通过CAN口接收到有效数据帧,经解码处理后,依照数据帧的先后顺序存入BUFF1中,此时主核HC12X对存储在BUFF2中的数据进行处理,80 ms后,再收到CAN数据依次存入BUFF2中,此时主核HC12X对存储在BUFF1中的数据进行处理,再过80 ms再存到BUFF1中,如此循环,这样使得使用的缓冲区以80 ms为周期,进行交换使用,如图8所示,图中深色的表示CAN口2接收到的数据,浅色的表示CAN口1接收到的数据。在每个缓冲区的第8个字节到第44个字节用于存放时间,每个通信周期填充一次。
为便于存储,需将接收到的数据转换成ASCII码,因此,为保证CAN口中断处理函数的响应速度,减少中断服务程序消耗的总线时钟数,系统采用转换查表的方式进行,即先计算好十六进制数对应的ASCII码,制作一个二维数组,其数组索引号即为16进制数,数组的元素就是其对应的ASCII码,这样就将一个16进制数变为两个字符。之后采用位左移操作代替乘法操作,用位右移操作代替除法操作,减少时钟周期消耗,提高效率。比如计算CAN扩展帧ID,如图9所示。

Figure 6. SCI3 interrupt service program flow chart
图6. SCI3中断服务程序流程图
5. 实验结果及分析
将系统两路CAN接收端接入被试装备预留监测接口,通过调整装备火控计算机总线数据,对系统性能进行测试。验证结果表明,当边采集边存储时,极限速度为每秒3000帧左右,如不需存储,采集速度可达每秒5000帧。将SD卡中保存的数据与总线发送数据进行比对,结果完全一致。终端板卡如图10所示。
在数据记录的同时,采集到的数据通过网口发送给中心上位机数据,数据处理服务器通过IP抓包工具进行抓包,将数据进行解码处理,解码结果与CAN总线数据一致。且源IP地址、源端口号、目的IP地址、目的端口号、网关IP地址均正确无误。采集卡的采集、转发、存储功能均正常,且长时间工作稳定。

Figure 7. Data sharing algorithm for primary and secondary nuclear data
图7. 主辅核数据共享算法
图8. BUFF1, BUFF2轮流存储

Figure 9. Calculate CAN extended frame ID
图9. 计算CAN扩展帧ID
6. 结束语
本文以某自行高炮武器系统装备作战试验鉴定过程中总线数据采集作为研究对象,针对该武器系统双CAN总线的特点以及对采集设备高机动、高实时性的测试需求,开发了基于双总线的武器状态参数采集系统,利用装备自带总线及各分部件预留监测接口,设计了主核与辅核XGATE数据共享方法以及双缓冲区周期交换策略,完成了双CAN口数据的不间断采集。实际试验表明,该系统能够实现了火控系统工作时各类控制信息、工作状态信息及装药参数等数据的快速实时采集和传输,为装备作战试验鉴定提供了可靠的试验数据。