·上一文章:基于ARM9的1553B与CAN总线转换卡的设计与实现
·下一文章:单片机STCl2C2052AD的比例遥控系统
在写状态时,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产生时间基准,用于数据编帧。