1 引言
C805lF系列单片机是Cygnal公司完全集成的混合信号系统级器件(SOC),其CIP一51内核运行速度高达25 MI/s,除具有标准805l的数字外设外,其内部还集成有数据采集和控制系统中常用的模数和数模转换器等元件,丰富的外设资源及高速指令运算能力大大简化系统设计。为此,给出了基于C8051F060单片机的数据采集存储系统设计方案,可实现外场试验中弹载振动传感器输出的3路振动信号的采集和存储,并将存储的数据通过串行接口上传至地面测试台,最终上传到上位机,从而实现现场数据的回放和分析。
2 系统硬件设计
图1给出系统整体框图,整个系统是由记录器,地面测试台,上位机及配套软件组成。其中,记录器包括电源模块,信号调理模块及采编存储模块,而电源模块可向记录器的各模块提供所需电源,信号调理模块用于滤波、调幅3路振动信号,采编存储模块用于采集、编帧和存储3路信号。系统存储选用SAMSUNG的NAND Flash K9K8G08UOM器件,而主控器件选用C8051F060。该主控器件除指令执行速度快,I/0端口配置灵活和在线调试功能外,还具有以下特点:①内部集成10位逐次逼近型A/D转换器,最高采样率可达200 KS/s,无需外接专用A/D转换器,降低成本,简化电路设计;②UARTI为增强型波特率发生器,最高波特率达系统时钟频率的1/2,可实现系统数据上传。该系统采用14.745 6MHz的晶体振荡器,最高通信波特率为7.372 8 Mb/s。③丰富的定时器资源,C805lF060内部具有5个定时/计数器,满足系统要求。④C805lF060内部4 K字节的XRAM可作为数据缓存。图2给出采编存储模块的结构框图,具体电路连接图如图3所示。
地面测试台主要完成外场试验环境各项参数的模拟生成以及在记录器回收后数据上传,与记录器的通信采用串口通信方式。上位机通过USB接口控制地面测试台完成对记录器的测试及记录器回收读数后的数据分析。从而该系统设计可满足:振动传感器输出幅值为0~5 V的3路电压信号;A/D转换器分辨率为10 bit;采集速率每路为5 KS/s,分时采集,存储容量为1 G字节;实现循环记录方式,系统上电后,当接收到一组特定串行数据后便开始记录,掉电后停止记录,其串行数据的波特率为921.6 Kb/s。
3 系统软件设计
3.1 开启采集方式
记录器上电初始化后,在1 s内循环判断串口0是否接收到一组数据,如果接收到数据,就进入写状态,否则转去判断读信号是否有效。如果有效则进入读状态,将数据从Flash中读出并通过串口l发送,否则返回再判断串口0是否接收到数据,如此循环。其总体流程如图4所示。
在写状态时,A/D转换数据的拾取通过中断函数完成,系统主程序能够轮流从两块RAM中读取数据并顺序写入Flash中。为了便于上位机软件分析,在存储前需要对A/D转换器转换后的数据,加入帧标志和时间信息。具体实现方法是:先将A/D转换器转换后的数据保存到内部RAM中,为满足Flash页编程的时间,利用双RAM实现乒乓缓存,将内部4 KB的XRAM分为2块,每块容量为2 048个字节,每块写满后分别置满标志,当CPU读取该RAM中所有数据并写入Flash后清除该RAM满标志,2块RAM交替进行,保证数据的读写操作。在采集状态下写Flash的流程图如图5所示。
3.2 编帧
为了快速提取数据,需在数据存储前对其编帧,3路信号总采样速率为15 KS/s,具体编帧格式如表1所列。
这样编帧后方便了上位机软件分析,可以方便提取所关心的信息,在软件绘出振动数据波形图后通过时间轴信息可快速定位到需要查找的区域。
3.3 内部XRAM操作
通过定义数组实现内部XRAM操作,数组定义方法为:unsigned char xdata s[4096],xdata标识符指定s的存储区为外部数据存储区,由于该数组只需4KB空间且系统中未使用外扩XRAM,所以必须设置存储器模式为只使用内部XRAM,即设置EMIOCF[3:2]为00。
3.4 定时器应用
单片机内部5个定时/计数器在该系统分别用于:TO产生1 s的循环定时;T1产生UARTl的波特率(7.372 8 Mb/s);T2产生UARTO的波特率(921.6 Kb/s);T3产生A/D转换器2的转换时钟。T4产生时间基准,用于数据编帧。
以下为A/D转换器2的初始化程序代码:
值得注意的是:由于C8051F060采用分页机制,对每个寄存器操作前必须先将SFRPAGE指向相应的特殊功能寄存器页,否则操作无效,而在中断发生时SFR页会自动切换到中断标志位所在页,使得软件无需对SFR页进行保护操作,降低程序消耗。
4 测试试验
该记录器在正式上弹前已经过两次炮击试验.炮击试验情况如表2所示。
两次炮击试验均是考核整个记录器的外部结构以及内部电路板的抗过载能力,试验后电路板正常无损坏。而外部晶体振荡器损坏,因此,该系统采用C8051F系列单片机,由于其内部集成可编程内部晶体振荡器,在记录器回收后读取数据时,系统可自动将时钟切换至内部晶体振荡器模式,这样避免回收后重新更换晶体振荡器。
C8051F系列单片机可灵活配置系统各功能模块时钟,例如:系统使用内部晶体振荡器,定时器和PCA等外部晶体振荡器,可改变内部晶体的频率,也可禁止,只使用外部晶体振荡器,只要内部晶体振荡器和外部晶体振荡器配置正确,系统可在任何时刻在两者之间迅速切换。值得注意的是:晶体振荡电路对PCB布局和外部噪声非常敏感,应将晶体振荡器尽可能地靠近XTAL引脚放置,布线应尽可能地短并用地平面屏蔽,以防止其他引线引入噪声或干扰;每个电源引脚处放置0.1μF和1μF的去耦电容,且尽可能地靠近该单片机放置,而未使用的模拟输入应接地(模拟地)。
5 结语
该设计的采编存储系统具有体积小、成本低、数据传输速度快等优点,经实验证明:该系统工作稳定,可以满足现场采集分析的要求。