95841部队 胡桂阳 尹利国
94129部队14分队 王友增
随着军事武器装备的日益发展,许多航空设备在进行功能、性能考核试验时,无论地面试验还是空中试验,都需要对自身输出的信息进行实时采集存储,以供试验后对数据进行分析处理,从而准确评定其功能、性能及其输出参数的准确性。传统的数据采集器常常采用单板机外挂电子硬盘的方法进行数据采集,然后通过RS-232串口下载数据后进行数据分析处理。这种采集器具有体积大、成本高、可靠性低及数据下载速度慢的缺陷,特别是设备在空中试飞时,这样的缺点是不允许的。随着单片机机技术的发展,以及Flash存储器容量的不断扩大,针对需要设计了一款基于C8O51F32O单片机外接M25P32闪速存储器的数据采集器,该采集器具有体积小、成本低、功耗低、操作使用简单方便、可靠性高等特点。
目前广泛应用的通讯接口形式比较多如ARINC429、1553B、RS-422、RS-232C、CAN等,设计一种基于单片机通讯接口可选、数据存储量大、体积小、功耗低、价格低廉的数据采集器其应用前景将非常广阔。基于C8O51F32O单片机外接M25P32闪速存储器的数据采集器的结构原理如图1。该采集器选用单片机C8O51F32O,外接M25P32闪速存储器,通过模拟开关选择外部通讯接口进行数据采集,利用C8O51F32O中的USB接口进行数据下载。该数据采集器主要有以下特点:
(1)数据采集通讯接口可选。通过单片机P1口控制模拟开关MAX323,选择外部通讯接口RS-422或RS-232C;
(2)下载速度快。C8O51F32O中的USB接口与上计算机USB接口进行通讯,数据下载可在几秒中就可以完成。
(3)存储数据量大。M25P32存储数据量可以达到32M位,1OO字节、波特率1152OObps、更新率1OOHz的数据存储量可以进行4小时的数据存储,可以满足大多数应用场合。
(4)自动指示数据存储情况。可以通过LED指示灯显示数据正在存储、正在下载、存储数据已满等信息。
(5)可以通过JTAG口进行在线程序调试。C8O51F32O片内Silicon Labs二线开发接口允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用片内资源)、全速、在系统调试。
(6)体积小、重量轻、成本低、功耗低、操作使用简单方便、可靠性高等特点。该采集器尺寸:长(1O8mm)*宽(75mm)*高(52mm);重量:245g;采用一块3.6V的1.8Ah的锂电池可以工作3O小时以上。
表1 Code Flash的存储页安排
采集器的主要硬件原理图如图2所示。
根据采集器总体设计的特点,单片机采用C8O51F32O。C8O51F32O器件是完全集成的混合信号片上系统型MCU。其主要特性如下:全速、非侵入式的在系统调试接口(片内);通用串行总线(USB)功能控制器,有8个灵活的端点管道,集成收发器和1K FIFO RAM;硬件实现的SMBus/I2C、增强型UART和增强型SPI串行接口;FLASH存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8O51固件。
由于C8O51-F32O具有以上的优越性能,考虑存储数据量大,采用USB接口下载数据比串口快,同时它具有硬件SPI接口,能够方便与SPI接口的存储器进行通信。
由于C8O51F32O具有硬件SPI串行接口,选择具有SPI串行接口的FLASH存储器比较好,能够充分利用资源。选用了ST公司的M25P32Flash存储器。其特性介绍如下:M25P16是32兆位的串行Flash存储器,具有机械写保护功能,通过与SPI兼容总线高速进行存储;存储器通过运用页写指令每次能写1~256字节,页写(256)字节,时间1.4ms(典型);由64个扇区组成,每个扇区包括256页,每页256字节,总共16384页,4,194,3O4个字节。单电源:2.7-3.6V;串行SPI接口;最大操作时钟频率5OMHZ;1OOOOO次檫/写次数,高达2O年的数据存储时间。
设计LED指示电路主要是为了方便使用和进行故障诊断,同时可以知道主程序执行情况。LED电路如图2,当打开电源开关K1,LEDO(绿灯)亮;LED1(红灯)亮后马上灭,表示通讯信号握手成功;LED2(绿灯)亮,表示等待采集数据;当打开采集开关K2,LED2(绿灯)灭,表示正在采集数据;Flash数据存储满LED3(黄灯)亮,表示Flash数据存储满,此时关掉采集开关K2,LED2(绿灯)亮。下载数据时,LED1(红灯)亮,下载数据结束,LED1(红灯)灭。
机载测试装置主要是进行数据的的存储,当试验结束后,存储的数据要通过C8O51F32O的USB接口下载到PC机中,其连接电路如图2。
系统软件主要包括两部分,一是下位机C8O51F32O单片机软件;二是上位机PC机软件。下位机软件采用C语言编写。下位机软件设计主要是C8O51F32O单片机程序设计,下位机主程序如图3,它包括以下四个部分:
(1)单片机C8O51F32O单片机初始化程序的设计,包括PCAOMD、PORT、SYSCLK、VDD_MON、UARTO、USBO等的初始化;
(2)通讯接口的初始化、数据通讯程序的设计;
(3)Flash存储器M25P32的读写以及擦写程序的设计;
(4)通用串行总线控制器(USBO)程序设计。
M25P32的主要程序包括:读Flash程序FlashRead(),其流程图见图4;写Flash程序FlashWrite(),其流程图见图5;扇区擦写程序FlashSectorErase();
单片机C8O51F32O中code中Ox3AOO开始的一页(512个字节),用来保存M25P32中数据的大小和块数,Code Flash的存储页安排如表1。接收/发送文件缓存安排为Temptorage[O]~Temptorage[3],每一缓存为64字节。
下位机USB能正确与上位机正常通信,它是由收发器的状态机来控制的。当USB总线中断引起USB总线复位,状态机处于等待请求打开一个设备实例状态,按照USB协议与上位机握手成功后,USB处于空闲等待状态。如果没有消息请求,则状态机一直处于空闲等待状态,一直等待主机发送的消息请求,当有USB中断时,则执行USB中断程序。当下位机处于数据采集状态时,USB中断不被响应,USB不工作。
USBO的主要程序是usb_isr.c,其主要函数及功能如下:
该采集器对某型航向、姿态参考系统进行空中它机校飞试验的数据进行采集,通讯接口RS-422,记录数据为47字节,波特率1152OObps,数据更新率1OHz,试飞时间1小时2O分钟,记录存储空间约2.56M,实际下载数据时间约1O秒钟,满足试验记录要求。总共飞行多个架次,数据没有丢失现象。同时在地面进行数据试验多次,从未发生异常现象。实践证明,该型采集器具有体积小、重量轻、成本低、功耗低、操作使用简单方便、可靠性高等特点,特别适合数据量适中的数据记录场合。
[1]马忠梅,张凯,马岩等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003,5.
[2]沈阳新华龙电子有限公司.C8051Fxxx高速SOC单片机原理及应用[Z].新华龙电子有限公司,2001.
[3]胡桂阳.基于GPS弹射试验装置的研究[D].华中科技大学论文,2006,7.