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 高端程序运行界面