基于SPCE061A单片机的数据采集系统设计.docx
《基于SPCE061A单片机的数据采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于SPCE061A单片机的数据采集系统设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于SPCE061A单片机的数据采集系统设计
基于SPCE061A单片机的数据采集系统设计
作者:
魏海波
摘要:
本文介绍了一个以凌阳公司提供的61板为主控板,以SPCE061A为控制核心,附加一些外围电路组成的数据采集系统。
该系统以水温控制系统为载体,利用SPCE061A自带的10位A/D转换器,结合Pt100传感器完成对水温的采样,通过数字滤波等技术消除系统的干扰因素还原当前的温度值,并且对采集到的温度值进行PID运算处理,实现对水温的控制。
关键词:
SPCE061A单片机;硬件描述;数据采集系统;温度控制系统
1引言
随着市场对控制技术的需求,基于控制技术的产品的普及程度也就越来越高。
而控制技术的关键环节就是数据采集,它不仅是系统控制的根本出发点也是最终衡量系统控制性能的重要依据。
在一个完善的闭环控制系统中,首先要检测被控对象的当前状态,必须对被控对象的状态信息(比如常见的温度,流量,速度,液位等信息)进行采集,并能够将采集到的数据还原为实际的状态信息,并以此作为控制的出发点。
只有采集当前的状态信息,并与设置的目标进行对比才能了解控制过程的好坏。
所以说数据采集在系统控制中起着至关重要的作用。
2概述
基于单片机的种种优势,本文介绍了一个以凌阳公司开发的61板为平台,以SPCE061A芯片为控制核心,附加传感器电路,键盘和显示电路,继电器控制电路和UART通信电路组成的数据采集系统(一水温控制系统为载体)。
2.1系统设计思路
针对数据采集系统的特点,本文结合了单片机技术的优点来进行设计。
该设计分硬件设计和软件设计两部分,首先进行硬件设计,然后编写出相应的控制程序,可以通过在线调试器PROBE将程序烧写在SPCE061A芯片中,直接在目标电路板上的CPU—SPCE061A调试、运行用户编制的程序。
程序的正确与否直接影响着设计结果,以此在本设计中软件部分是最为重要的环节,在后续章节有详细说明。
在软件设计中秉承C语言的特点-便于编写,首先编写顶层控制程序,然后编写各个单独的控制模块的程序,最后综合在一起,构成完整的数据采集系统控制程序。
2.2数据采集系统的技术要求
随着自动控制技术的发展和应用,对数据采集系统的要求也越来越高,用户不仅要求数据采集系统的稳定,采集的数据准确,同时还要具备数据采集、数据传输、数据删除和系统管理等功能。
通常,设计数据采集器的基本要求如下:
(1)温度的实时采集显示;
(2)对温度的变化能够做出及时的处理,最好能够应用PID调节;
(3)通过UART实现上下位机通信,并在上位机上显示温度的变化曲线。
2.3数据采集系统的技术指标
(1)单片机部分采用DC5V供电;
(2)加热部分采用1KW电热器(容量为2L)加热;
(3)温度控制指标静态误差:
T<=0.5摄氏度;
分辨率:
0.1摄氏度;
超调量:
0.5摄氏度。
3总体设计
(1)系统整体硬件设计如图
(1)所示,整个系统以SPCE061A为核心,前向通道包括传感器及其信号放大电路,按键输入电路;后向通道包括:
LED显示电路,上位机通信电路以及控制加热器的继电器驱动电路。
图1
SPCE061A内部有8路10位精度的A/D转换器,可以直接将传感器信号放大后输入其A/D转换通道。
SPCE061A实时采样温度,通过数码管将当前温度在下位机端显示出来,并根据采样结果控制加热器,调节平均加热功率大小;同时通过UART接口传送上位PC机。
(2)系统采用PID闭环控制方案如图
(2):
图
(2)
将预置初值与传感器反馈信号比较得到偏差(e),对偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。
由于水本身具有很大的热惯性,所以必须对水温的变化趋势作出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量和波动,在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)则具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。
4硬件设计说明
系统的整体硬件电路主要有以下几个模块:
以SPCE061A为核心控制器,包括传感器电路,键盘和显示电路,电器控制电路和UART通信电路4大模块,下面逐个模块介绍。
4.1传感器电路
传感器电路包括传感器测量电桥和放大电路两部分,如图(3)所示:
图(3)
R2、R3、R4和Pt100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过TL431稳至2.5V。
从电桥获取的差分信号通过两级运放放大后输入单片机。
电桥的一个桥臂采用可调电阻R3,通过调节R3可以调整输入到运放的差分电压信号大小,通常用于调整零点。
放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图上图所示,前一级约为10倍,后一级约为3倍。
温度在0~100度变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压Av对应升高。
4.2按键和显示电路
按键直接使用61板自带的按键,其电路如图(4)所示,不需要连接硬件即可使用。
图(四)
显示采用LED键盘模组6位数码管的其中3位进行动态显示,电路原理如图(5)所示。
在使用时,将a~dp接IOA8~IOA15,DIG4~DIG6接IOB3~5。
图(5)
4.3功率驱动模块电路
系统的主要功率器件为一个交流220V~1000W的电加热器,采用继电器来驱动该加热器。
继电器选择OMRONG6B-1174P型继电器,该继电器具有触发电压低(DC5V),可控功率大(AC:
8A250V),以及反应时间短等优点。
采用NPN8050三极管驱动继电器,当控制端Ctrl加载高电平信号时三极管导通,继电器工作,当控制端Ctrl为低电平信号时三极管截止,继电器停止工作。
继电器的周围有续流保护电路和工作指示电路,功率驱动部分电路如图(6)所示。
图(6)
4.4UART转换模块电路
系统上、下位机的数据传输通过UART接口完成,该部分的电路如图(7)所示。
图(7)
UART模组的COM1接口与PC机串口相连接,J1口的VCC、GND、Tx1分别与61板的“+”、“-”、IOB10相连接。
5软件设计说明
5.1软件总体设计
程序的控制思想:
设置目标温度后,系统采样水温,并通过预设温度,当前温度,历史偏差等进行PID运算产生fOut输出参数,通过该参数控制加热时间,从而调节加热器的平均功率,实现系统的PID控制。
整体功能通过主程序和中断服务程序配合实现。
主程序流程:
系统首先初始化I/O,Timer,UART等部件,之后进入主循环,进行温度采样和相关处理。
在系统运行过程中通过按KEY3键重新设置目标温度。
如图(8)
图(8)
中断服务程序:
中断服务包括IRQ5_2Hz中断,IRQ5_4Hz中断,IRQ2_TimerB中断以及IRQ6_TMB2(1024Hz)中断。
其中IRQ5_2Hz用以提供1s时间以确定AD采样的时间间隔,程序流程如图(9)所示;IRQ5_4Hz中断控制数码管的闪烁,用于配合设置目标温度;程序流程如图(10)所示;IRQ2_TimerB提供溢出频率为64Hz的中断信号,配合主程序的PID运算结果fOut确定加热时间,实现加热器功率调节,程序流程如图(11)所示;IRQ6_TMB2为1KHz时基,在此中断中完成LED的动态刷新,程序流程如图(12)所示。
图(9)2Hz中断服务子程序图(11)TimerB中断服务子程序
图(10)4Hz中断服务子程序图(12)1KHz中断服务子程序
5.2子程序设计
5.2.1温度转换子程序
A/D转换:
每间隔1s执行一次温度采样操作,每次采样执行18次A/D转换;在IRQ5_2Hz中断服务程序中完成。
A/D转换子程序如下:
ADC_Value:
r1=0
L_AD:
r2=[P_ADC_MUX_Ctrl]//读寄存器[P_ADC_MUX_Ctrl]的B15位
testr2,0x8000//判断是否转换完毕
jzL_AD//否,继续转换
r3=[P_ADC_MUX_Data]//是,则读出[P_ADC_MUX_DATA]转换结果
r3=r3lsr4
r3=r3lsr2//高10位数据移到低10位
r2=r1+_giADC_DataSave
[r2]=r3//将转换结果保存到数组giADC_DataSave[]
r1=r1+1
cmpr1,18//是否完成18次转换
jneL_AD//否,继续转换
r1=1
[_G_ADC_flag]=r1//是,置转换成功标志G_ADC_flag
5.2.2温度控制PID运算的算法子程序
floatPIDCalc(PID*pp,intNextPoint)
{
intdError,Error;
Error=pp->SetPoint*10-NextPoint;//偏差,设定值减去当前采样值
pp->SumError积分,历史偏差累加
dError=Error-当前微分,偏差相减
pp->PrevError=pp->LastError;//保存
pp->LastError=Error;
return(pp->Proportion*Error//比例项
pp->SumErr积分项
-pp->DerivatidErro//微分项
);
}
5.2.3上下位机的通信程序设计
UART发送子程序:
voidSend_temperature(void)
{
*P_UART_0x//桢头
while((*P_UART_Command2&0x0040)==0);//Wait
*P_UART_//整数部分
while((*P_UART_Command2&0x0040)==0);
*P_UART_Data=guiLED_Value[2];//小数部分
while((*P_UART_Command2&0x0040)==0);
*P_UART_0x55//桢尾
5.3绘图界面设计:
绘图界面包括串行口设置、功能按钮、曲线输出窗口三部分,
在使用时选择正确的端口,上下位机的波特率,数据格式要一致。
PID参数的整定:
由PID控制原理知:
比例(P)控制能迅速反应误差,减小稳态误差;比例作用的加大,会引起系统的不稳定。
积分(I)控制的作用,只要系统有偏差存在,积分作用不断地积累,输出控制量以消除误差;积分作用太强会使系统超调加大,甚至使系统出现振荡。
微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。
我们想要达到的目标就是:
反应速度尽可能快,超调量尽可能的小,稳态误差趋近于
下面是不同的PID参数的测量曲线:
1.Kp=1.5、Kd=1.0(温升:
20℃~40℃)对应的曲线如图(13)所示,由图形可以看出来,由于Kp过大,造成超调量过大。
2.Kp=1.2、Kd=1.0(温升:
40℃~60℃)对应的曲线如图(14)所示,由图形可以看出来,由于Kp过小,系统的快速性不好,系统反应迟钝。
3.Kp=1.3、Kd=1.0(温升:
30℃~50℃)对应的曲线如图(15)所示,,由图形可以看出来,由图形可以看出来,由于Kd过小,系统的超调量比较大,而且预测性不好,造成温度长时间超调。
4.Kp=1.3、Kd=2.0(温升:
50℃~70℃)对应的曲线如图(16)所示,由图形观察可知:
Kd选择适中,系统的超调量很小,而且超调维持时间很短就会恢复平衡点。
图(13)图(14)
图(15)图(16)
通过以上几次的测量曲线分析,最终选择Kp=1.3、Kd=2.0。
注意:
PID参数的整定和加热器的功率,水的容积有很大关系,所以在一个系统下整定的参数在另外一个系统下可能不适用。
6结论
本文提出的数据采集系统的设计经过软、硬件结合的实验验证,对该芯片设计有如下几点结论:
该设计整合了单片机和C语言的优点,使得整个数据采集系统简便且易于实现。
在硬件的设计中,单片机的应用使得该系统集成度高、可靠性好、且具有较强的中断处理能力。
而在软件设计中,C语言简单灵活、清晰易读、模块化较好、可移植性最好,从而克服了汇编语言耗时多且效率低的缺点。
且61单片机具有语言识别功能,但由于该设计准备时间较多,语音识别功能没有设计,在后续的设计中会将其加进去,以完善整个设计
参考文献
[1]DavidKarlins,BuildYourOwnWebSite[J],McGraw-HillOsborneMedia,2003.1.
[2]罗亚非等.凌阳16位单片机应用基础[M].北京:
北京航空航天大学出版社,2003.
[3]饶晓燕.基于单片机数据采集器的开发[D].中国农业大学,2002.
[4]张培仁,高修峰等.十六位单片机微处理器原理及应用[M].北京:
清华大学出版社,2008.
[5]袁运周,宋鲁韬.一种单片机控制的数据采集器[J].河南科技;1987年08期
[6]陈杰,黄鸿等.传感器与检测技术[M],高等教育出版社,2006.
[1].张春峰,邹新杰,余张国.基于ATMEGA16的智能控制器的开发研制[J].微计算机信息,2007,23(8):
123-124.
[2].张震宇,王华.基于凌阳单片机的语音识别技术及应用.微计算机信息,2007,8-2:
23.
[10].KonradKing.SQL编程实用大全[M].杜大鹏,译.北京:
中国水利水电出版社,2005.
[11].侯振鹏.嵌入式C语言程序设计—使用MCS-51[M].北京:
人民邮电出版社,2006.
TheDesignofDataCollectingSystemBasedonSPCE061A
WEIHaibo
Abstract:
ThispaperintroducesaSunplusoffers61boardsasthemaincontrolboards,toSPCE061Aforthecontrolofthecore,additionalperipheralcircuitscomposedofanumberofdataacquisitionsystem.Thesystemwatertemperaturecontrolsystemasthecarrier,theuseofSPCE061Anative10-bitA/Dconverter,withPt100temperaturesensortocompletethesampling,digitalfilteringtechniquestoeliminateinterferencefactorsinthesystemtorestorethecurrenttemperaturevalue,andtherightcollectionthetemperaturevaluetothePIDoperationprocessing,andrightwatertemperaturecontrol.
Keywords:
SPCE061ASCM;hardwaredescription;dataacquisitionsystem;TemperatureControlSystem