李祖博,陈昌鑫,马铁华,张志伟
(中北大学 电子测试技术国家重点实验室 仪器科学与动态测试教育部重点实验室,太原 030051)
装甲车辆动力舱在运动过程中的动态参数[1]的获取对于舱的设计和合理布局起着至关重要的作用。随着当今科技工业的快速发展,装甲车辆动力系统的设计已经由原来单一的动力源发展到了现在的混合动力源[2-4],动力舱的设计越来越复杂,舱内的各种器件配合也更加紧密,舱的内部结构紧凑、空间狭小、存在较强的电磁干扰。传统的引线电测法将传感部件置于测试现场,信号记录器及计算机等设备置于远离现场的掩体内,测试信号通过电缆传输,对于动力舱这种特殊环境,存在布线不灵活,易引入噪声等问题[5-6]。20世纪90年代出现的存储测试技术,将传感器、适配电路、A/D变换器、控制器、存储器、接口电路以及电源集成在一个装置里置于测试现场,测试完毕后回收装置进行数据处理[7]。该技术在信号源处进行数据存储,解决了引线过程带来的干扰,但是存在测试系统布设不便,测试装置需要回收读数等不足。
针对以上问题,提出了一种基于光纤传输的存储测试技术,实现测试点和远端的多组数据同时存储,测试点存储数据做备份,远端数据方便读取。选用MSP430单片机作控制器实现了低功耗、微体积设计[8],光纤传输数字信号抗电磁干扰能力强。在此,重点进行系统分析,提升采样频率,采用等时无缝传输方法,成功实现多个参数的数据存储。
以光纤为界,系统分为发送端(本地)和接收端(远端)两部分。发送端位于舱内,包括模拟传感电路、信号调理电路、信号采集电路、接口电路、电光信号转换电路等[8]。接收端位于舱外可靠近的地方,包括数字控制电路、光电信号转换电路、接口电路等。测试原理框图如图1所示。
图1 测试原理框图Fig.1 Diagram of the test
为了验证测试系统的可行性,模拟测试4路信号(1路温度信号和三轴加速度的3路电压信号)。本地模块感知温度和加速度变化,在MSP430的控制下一方面将数据存储在测点本地存储单元,另一方面通过光纤向远端传输数据,接收端在MSP430的控制下将本地传来的数据存储在外置Flash芯片中。本地和远端模块都可以通过上位机读取数据,远端模块在容易接近的地方,方便读数,当远端模块发生故障或光纤传输数据过程异常,可取出本地模块读取备份数据,保证了数据的可靠性。
针对双冗余存储系统来说,可选的存储方法:方法1,本地存储完毕,再远端存储;方法2,两边同时进行存储。选用方法1,系统的存储时间明显较长,不利于长时间工作,而且在测试过程中本地电路发生问题,导致无法向远端传输数据,之前测得的数据将成为无用数据。因此,从系统节能和可靠性方面考虑,选用方法2更适合。方法2的存储模式如图2所示。
图2 存储模式Fig.2 Storage mode
车舱温度和加速度是缓变量,频率很低,不超过300 Hz,根据奈奎斯特定律,采样频率大于信号频率的2倍才可以还原信号,工程应用中一般5~10倍,为了提高信号品质,可以通过提高采样频率的办法。由于本地系统的每个采样周期既要完成数据的存储,又要完成数据的传输以及远端系统完成接收数据的存储,提高系统采样频率很困难,以下重点分析主要影响因素——Flash和光纤。
本地系统选用MSP430为控制器,利用其内置AD进行模数转换,将转换的数据存储在Samsung公司的K9WAG08U1A芯片中[9]。将AD设置为序列通道单次转换模式,系统通过定时器中断的方式来控制AD的采样频率,每个采样周期内既要完成AD的转换还要完成对Flash的写操作。AD最高转换速率可达200 ks/s,其与Flash的写操作时间相比很小,令其转换时间忽略不计,则1个定时器周期至少要完成对Flash的写操作[10]。
1个定时器周期内要转换4路模拟信号,由于采用MSP430内置AD,每路模拟信号转换为数字量需要2 B,所以每个定时周期产生8 B的数据需要写入Flash。由Flash的页写时序可知,如图3所示,数据先存放在页寄存器中,每个写周期时间tw,c时间存入1 B,当寄存器中的数据存满2048 B时,开始进行页编程,此时页寄存器不再接收数据,数据源仍有数据将导致数据丢失,页写框图如图4所示。由于 tw,c的时间很短,而页编程典型时间 200 μs,故两次采样之间的间隔不得小于200 μs,即定时器周期t>200 μs,否则会造成数据丢失,所以系统采样频率f=t-1<5 kHz,故用MSP430直接将转换数据存入Flash要求系统采样频率不得大于5 kHz。
图3 Flash页写时序Fig.3 Flash page write timing
图4 Flash页写框图Fig.4 Block diagram of Flash page writing
采取在单片机内部建缓存的方式,如图5所示,则仍可以在页编程的200 μs时间内进行AD转换,故AD的采样频率不再仅由页编程时间决定,而且还与缓存的大小有关。
图5 建缓存的页写框图Fig.5 Block diagram of page writing with built cache
表1给出了系统最大采样频率在不建缓存和建立缓存2种情况下的大小关系。考虑到C程序每条语句本身执行需要时间,系统实际所能达到的最大频率都要比表中的小。
表1 系统最大采样频率与建缓存和不建缓存的关系Tab.1 Relationship of the maximum sampling frequency between the buffered and uncached buffers
为了减少引线和简化电路,采用了单根光纤串行通信,选用武汉原创公司的光纤收发模块。发送模块是实现数字电信号转换为光信号适合光纤传输数据,接收模块是将光信号转换为电信号,满足远端控制电路对数据处理的要求[11]。该模块具有SC/FC插拔式或FC尾纤型光接口,接口电平兼容标准TTL电平和CMOS电平,发射器件的工作波长为1310 nm或850 nm,传输速率低至直流,上限速率可选,最高可达10 Mb/s,通过将其SD和TD与单片机串口收发管脚连接即可实现光纤通信[12-13]。
对于模块提供的最高10 Mb/s传输速度,系统利用率远远不足。其主要限制因素是单片机串口的传输速度,串口是按帧格式传输的,采用10 b的帧格式,如图6所示。
图6 帧格式Fig.6 Frame format
在此涉及2个变量,一个是串口的波特率baud,另一个是串口2次传输数据的间隔时间t(假设每次传输的时间间隔是相同的),则系统数据传输速率 s=10/[10(baud+t)-1]。 为了提高数据的传输速率,令t=0,则s=baud。对于常用的波特率有9600,19200,56000,115200 b/s 等,根据系统每次转换需要传输8 B数据,按8帧80 b数据计算,系统最高采样频率fmax=baud/80,表2列出了系统最高采样频率和常用串口波特率之间的对应关系。
表2 系统最高采样频率和常用串口波特率的对应关系Tab.2 Correspondence between system maximum sampling frequency and common serial port Baud rate
可见,通过提高串口波特率有助于提高系统采样频率,为了最大化提高光纤利用率,将MSP430串口配置为过采样模式,使波特率达到460800 b/s,系统最高采样频率理论上应该为fmax=460800 b·s-1/80 b=5.76 kHz,考虑到串口每发送1 B需要的时间为t=(10/460800)μs=21.7 μs,只有当发送缓存为空时才能发送下一个字节,所以为了减小误码率和提高系统的稳定性,给每个字节留出大于21.7 μs的发送时间,故系统采样频率不应高于5.76 kHz。
由2.2分析可知,限制系统采样频率的关键因素是光纤通信速度。串口每次只能发送1 B,且发送时间的长短与波特率有关,系统每次AD转换需要传输8 B,而只有一根光纤串行传输数据,当波特率一定的情况下,提出了等时无缝光纤传输方法。所谓等时无缝,是指将8 B分成8个连续相等的时间段发送,将字节的发送时间平铺整个采样周期,这样可以保证每个字节都有足够的发送时间,没有缝隙可以最大化利用时间资源。
系统的时间资源分配框图如图7所示,每个定时器A周期包括定时器A中断的时间和8个定时器B的周期,在定时器A中断里判断AD转换完成并设置数据标志位以区分不同通道数据,在中断结束的时候打开定时器B中断,每隔相同时间进一次中断,实现1 B的发送,总共8次中断,在最后一次关闭定时器B中断使能,防止定时器A和B发生中断嵌套。这样就实现了8帧数据依次等间隔光纤传输,且可以最大限度地将剩余时间用来对Flash写操作。
图7 系统时间资源分配Fig.7 Allocation map of time system resources
通过试验,对测试方法进行验证,温度传感器中途置入热水中,一段时间后取出,给装置施加若干次振动。本地数据在上位机中读取,如图8所示。
图8 本地数据上位机读数图Fig.8 Reading figure of local data
通道4是温度的变化情况,通道1,2,3分别是x,y,z轴加速度的变化情况。图8的横轴(时间)表示采样点,纵轴(幅值)是AD转换后的电压。由图可见,温度曲线随着时间的增加先升高后下降,加速度随着时间的增加出现若干次尖峰,与理论相符。将远端数据同样在上位机中读取,结果与图8一致。然而,对比二者的data文件,才能验证该系统的正确性。如图9所示,通过对比data文件,本地和远端数据完全一样,从而验证了测试方法的正确性。
图9 本地与远端Flash存储数据的对比Fig.9 Storing data of local Flash and distal Flash
基于光纤传输的双冗余存储测试技术在信号源头进行数据存储,光纤进行传输,采用等时无缝的传输方法,使本、地远端同时存储多组数据,保证了数据的可靠性。系统选用MSP430单片机作控制器和单根光纤传输数据,一方面减小电路体积、降低功耗,另一方面抗电磁干扰。通过模拟实验,验证了基于光纤传输的双冗余存储测试方法的正确性,对于像动力舱这种空间狭小、电磁干扰强烈的场合低频参数测试具有重要的参考价值。
[1]顾强.动力舱动态参数测试与抗干扰设计研究[D].太原:中北大学,2014.
[2]范锦彪.存储测试技术在坦克装甲车辆中的测试研究[D].太原:华北工学院,2001.
[3]金松涛,刘青松.混合动力汽车电磁兼容技术研究[J].客车技术与研究,2010,32(2):45-47.
[4]田丽媛.双电机混合动力系统电磁干扰分析及FlexRay网络设计[D].吉林:吉林大学,2015.
[5]马铁华,祖静.冲击波超压存储测试技术研究[J].仪器仪表学报,2004,25(S1):134-135,146.
[6]石正全,李新娥,郝晓剑.一体化瞬态高温智能存储测试系统设计[J].解放军理工大学学报:自然科学版,2014,15(5):434-439.
[7]王健,裴东兴,王薇.XXX爆炸威力场远距离多参数数据采集系统[J].传感技术学报,2013,26(4):516-519.
[8]冯彦君.基于大容量Flash的微型应变测试仪的设计[D].太原:中北大学,2012.
[9]陈国,高杨.NAND Flash在大容量存储技术中的应用[J].航空计算技术,2009,39(2):113-116.
[10]李晴.高速大容量NAND Flash存储系统的设计与实现[D].北京:北京理工大学,2015.
[11]韩晗.基于FPGA的实时数字化光纤传输方案研究[D].杭州:浙江大学,2010.
[12]龚华军,严小军,黄子安,等.时分复用多路光纤传输在飞控系统中的应用[J].数据采集与处理,1998,13(1):37-41.
[13]李岩.基于同步时分复用技术的数字光纤传输系统[D].长春:中国科学院研究生院 (长春光学精密机械与物理研究所),2006.