• 沒有找到結果。

MCF52233 AD模块编程实例——物理量采集回归系统

13.电压参考寄存器(Voltage Reference Register,CAL)

6.5 MCF52233 AD模块编程实例——物理量采集回归系统

模拟量数据采集的典型过程为:实际物理量→传感器→变换器→放大器→A/D 转换器

→计算机(MCU、DSP 或通用计算机)。按照这个流程,本节给出的物理量采集回归系统,

分为数据采集转换和 AD 值回归两个部分,分别由低端 MCU 方和高端 PC 方来完成。本 系统采用 MCF52233 内置的 ADC 模块配合各种传感器和相应的放大电路完成物理量的采 集和转换。MCF52233 的 ADC 模块有 AN0~AN7 共 8 路模拟量输入,首先依次采集这 8 路模拟量,并将这 8 个 12 位转换结果(在 MCU 中每个转换结果用 16 位变量存储)存入 内存;然后 MCU 和 PC 通过串口交换数据:MCU 向 PC 发送 0x56,表示 MCU 数据采集 转换完成,等待 PC 查询接收,PC 再发给 MCU 0x56 和 0x2F 两个字节,通知 MCU 可以 发送 AD 结果值;最后 MCU 将 8 个转换结果共 16 字节发送给 PC 进行处理。

6.5.1 低端软件设计

在模拟量数据采集过程中,不可避免地会受到随机噪声的干扰,造成采集的数字量不 准确,有时甚至很难满足实际的应用。为了防止脉冲干扰,可采用一些滤波方法,使得最 终传送给高端的结果更准确稳定。常用的滤波方法有中值滤波和均值滤波。本系统采用了 均值滤波,滤波次数取值为 200。

低端软件的主程序(main.c)的执行流程是:

(1)对运行指示灯、UART 模块和 AD 模块进行初始化;

(2)点亮运行指示灯;

(3)采用均值滤波,将 8 路模拟量进行 A/D 转换,结果存入 ADresult 数组;

(4)向 PC 发送握手信号 0x56;

(5)若接收到 PC 的应答信号:0x56 和 0x2F,则向 PC 发送 16 字节的 AD 转换值;

(6)熄灭运行指示灯,延迟;

(7)转第(2)步;

显然,按照构件的程序设计思想,在主程序的实现过程中,需调用 AD 构件、UART 构件以及 Light 构件的相关功能函数。具体代码如下:

//---*

// 工 程 名: AD * // 硬件连接: AN0~AN7接传感器的采样脚 * // 程序描述: 响应高端请求,获取8路AD转换结果,并均值滤波,通过串口发出去. * // 目 的: 掌握AD转换的基本编程方法 * //---苏州大学飞思卡尔嵌入式系统实验室2009年---*

第 6 章 MCF52233 的 AD 转换模块

uint16 ADresult[8]; //存放8路AD转换结果

uint8 i,flag; //是否接收到PC发送的应答信号的标志 uint8 RevData[2]; //存放PC发送的两个字节的应答信号 //1.关总中断

DisableInterrupts();

//2.模块初始化

Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //运行指示灯初始化 UartInit(0,SYSTEM_CLOCK,9600,0); //UART0初始化

ADinit(); //AD初始化 //3.主循环

while (1) {

//3.1 点亮Light_Run

Light_Control(Light_Run_PORT,Light_Run,Light_ON);

//3.2 采样8路模拟量并进行A/D转换

if((flag==0)&&(RevData[0]==0x56)&&(RevData[1]==0x2f)) {

UartSendN(0,16,(uint8 *)ADresult); //向PC方发送数据 }

//3.5 熄灭Light_Run

Light_Control(Light_Run_PORT,Light_Run,Light_OFF);

Delay(40);

151

屏蔽物理量至数字量之间通路的基础上,根据现场的需要,在线进行增加校正点,从校正 点开始,过该点的回归直线一分为二,重新进行最小二乘估计逐段拟合线性参数。

动态在线校正方式的目的是寻找实际物理量 y 与计算机所能识别的数字量 x 之间的相 邻校正点间的线性关系。不妨假设每个线性关系为 yi=aixi+bi,i=1,„,n(n 为分段直线 个数)。其中,xi,yi已知。xi可由数据采集系统获得,它表示一条回归直线段的起始点或 终点数字量值;yi可通过测量获得,它表示实际的物理量;ai和 bi是回归计算的参数。为 了很好的表示每个线性关系的结果以及方便的进行模拟量数据校正,本系统使用后台数据 库作为其数据结构以及数据存储的工具,具体格式如表 6-5 所示。

表 6-5 动态在线校正方式的数据结构及数据存储实例

变量 xi ai bi

数据1 0 0.2840695 0

数据2 403 0.2516545 0.9732352

数据3 814 0.2081001 0.6105005

数据4 1633 0.1810512 -6.610500

数据5 2453 0.1306861 8.910500

数据6 3700 0.0566861 0

数据7 4095 1 0

根据上述分析,PC 方软件功能主要包括输入当前该数字量对应的物理量、计算动态 在线校正的回归参数、将回归参数写入数据库以及计算某个具体数字量对应的物理量。PC 方软件的运行界面如图 6-1 所示。

PC 程序运行后,先选择采集路数,如第 3 路温度采集,采集的物理量对象是温度,

单击“开始”按钮,在界面左侧的图片框中会显示关于温度物理量和 AD 值的校正坐标系,

如果初始时在数据库中没有任何有关该路采集的校正数据,那么系统会要求用户输入初始 的最低和最高物理量和相应的 AD 值。当开始采集后,在界面右侧会用红字实时显示采集 来的 AD 和相应物理量值。单击“校准”按钮,则可实时校正某个 AD 值对应的物理量值。

如果之前的某次校准不准确,用户可以在删除选择下拉框中删除某次校准数据。

第 6 章 MCF52233 的 AD 转换模块

152 图6-1 高端程序运行界面