1 引 言
在科学研究及其他各种领域中,数据采集" title="数据采集">数据采集和监测已经成为日益重要的检测技术。
在许多工业测控机械、医疗仪器以及消费电子产品中,都对数据采集系统的实时性与功耗提出了更高的要求:即在满足微功耗、微型化的总体设计原则的基础上,又要能实时反映现场采集数据的变化。这就对系统的功耗、采样速度、数据存储和传输速度等提出了更高的要求。然而,随着开云棋牌官网在线客服与微控制器技术的飞速发展,各种微电子器件性能不断提升,功耗却不断降低。技术的进步使得高速度、低功耗的数据采集系统得以实现。
本文设计的数据采集与显示系统采用 TI公司研制的MSP430系列超低功耗单片机作为核心控制元件,实现了数据的高速采集与显示。
系统主要特点:
功耗低所有器件均采用低功耗器件全速工作时,总体功率小到1W。
速度高由于单片机内置DMA控制器,可以显著提高系统的速度。
2 系统硬件结构
系统在兼顾成本的同时,尽量采用集成度高、功耗低、速度快的器件。系统结构如图1所示。
核心采用MSP430F169单片机,MSP430系列单片机是TI公司研发的16位超低功耗单片机,非常适合各种功率要求低的场合。MSP430F169单片机全部单周期指令,速度高,内部自带的12化A/D和DMA控制单元可以分别为系统采样电路和数据传输部分采用,使得系统的硬件电路更加集成化、小型化。
系统的显示部分采用点阵式LCD,实现对现场采集数据波形的实时监测。LCD选用最新COG技术的点阵式单色黑白LCD,3.3 V 工作电压,内部自带显示控制器。他的特点是体积小,厚度仅为2 mm;功耗低,不用时可进入睡眠模式;速度快,指令操作周期<1 μs;外围电路简单,只须外接几个电容即可,特别适合于数字化仪表、便携式仪表及智能化家电和嵌入式应用系统中,他的核心控制器采用三星公司的S6B0724芯片,可以直接与单片机进行8位并行或串行通信,具有很高的爽活性。
3 系统各模块介绍及软件设计
限于篇幅,仅对系统几个主要模块的功能与工作过程做介绍。
3.1 A/D模块及其子程序设计
MSP430F169内部的ADC12模块能够实现12位精度的模数转换,具有高速和通用的特性。其主要特点有:12位转换精度;内置采样与保持电路;有多种时钟源可提供给ADC12模块,且模块本身内置时钟发生器;内置温度传感器;配有8路外部通道与4路内部通道;内置参考电源,且参考电压有6种可编程的组合;模数转换有4种模式,可灵活应用以节省软件量及时间;可以关闭ADC12模块以节省系统能耗。
本次实验ADC12时钟源选择为MCLK=8 MHz,采样频率最大可以达到200 k/s,采用单通道多次转换模式。限于篇幅,仅给出ADC12初始化子程序:
3.2 DMA模块及其程序设计
DMA(Direct Memory Access)是直接存储器访问的意思。DMA控制器不需要CPU的干预即可提供最先进的可配置的数据传输能力,从而可以解放CPU,使其不是将更多的时间浪费在等待上,而是将更多的时间用于处理数据。DMA控制器可在内存与内部及外部硬件之间进行精确的传输控制。DMA消除了数据传输延迟时间以及CPU等待等各种开销,从而提高了MCU利用率,使信号处理能力更强。
MSP430F169的DMA控制器具有如下特性:
(1)拥有3个独立的DMA通道。
(2)可以配置通道的优先权。
(3)每个字/字节传送只需要2个MCLK时钟周期。
(4)字节和字可以混合传送:字节到字节、字节到字、字到字节、字到字。
(5)可配置多种触发源。
(6)可配置DMA触发方式:边沿触发或电平触发。
(7)4种寻址模式:固定地址到固定地址、固定地址到块地址、块地址到固定地址、块地址到块地址。
当A/D在单通道上执行时,ADC12IFGx标志置位表示转化结束继而触发DMA操作,同时将A/D转换后的数据存储到定义在RAM中的数组r_data[]。采用DMA通道0进行数据传输时的初始化程序如下所示:
关键字:MSP430单片机 数据采集系统
3.3 单片机与LCD的接口设计
由于此CPU与LCD均采为3.3 V 工作电压,因此单片机与LCD之间的接口不存在电平匹配问题,由于显示器只需要接受指令,所以不需要大功率驱动,因此单片机可以直接与LCD连接。单片机I/O引脚丰富,为了提高显示速度,采用并行接口,单片机的P4口与P5口的三根线分别作为数据线和控制线与LCD相连接,接口电路如图2所示。 LCD接口是一种任务寄存器结构,所有输入输出操作均通过读写相应寄存器来完成。按功能分为控制寄存器和数据寄存器,通过读写控制寄存器,控制显示器工作的方式与显示方式等。数据寄存器是单片机与LCD进行数据交换的寄存器,用以改变LCD中显存的内容,从而改变最终显示的内容。 软件初始化流程图如图3所示。 3.4 图形显示程序设计 为了保证显示的及时性与连续性,同时不能超出单片机速度限制和程序容量限制,系统中显示部分的软件设计就显得比较重要,所以程序设计要从算法的时间复杂度和空间复杂度综合考虑。 相对于现在的PC机,单片机的速度还是比较低的,若采用复杂曲线插补算法,CPU的速度显然是不够的,所以波形曲线的画法采用逐点画直线的方式实现,即相邻两点之间采用画一条直线,虽然波形稍有失真,但可以保证速度。对显示曲线的线宽、线形等也不予设置以节省CPU的计算量。 生成直线的算法中,又有逐点比较法、数值微分法和Bresenham算法等,而各种算法的计算量又与具体显示设备和显示数据有关系。本系统采用了128×64点阵的显示器,屏幕比较小;同时由于数据在X轴方向的增长是一种固定关系,直线的长度最大为64点(Y轴方向),且只存在从左下到右上和从左上到右下两种情况。经过理论分析与试验验证,我们采用了改进的数值微分算法,即直线每向下一步,按照要画直线的斜率计算下一点的位置,这样一步一步逼近直线。X方向主动递增时的公式如下:
其中:dy/dx为要画直线的斜率;xi为X方向增量;yi为Y方向坐标点。 所有值采用整数运算,以达到节省计算量的目的,缺点是图形失真度较大。 限于篇幅,给出画直线的程序框图见图4。 4 实 验 利用该系统对一种振动信号进行采集。并观察显示波形图的变化,验证了在保证画图实时性要求的前提下系统能够达到其最高采样频率。图5为本系统采集的一个实际振动信号随着时间变化的波形图。 5 结 语 实验表明以MSP430F169单片机实现的数据采集系统,具有体积小、结构简单、功耗低、速度快等优点,不仅可以实现单通道、单波形显示,而且可以通过修改软件实现多通道数据采集系统。该系统可以推广到对多种振动信号和电压信号采集中去。 |