具有语音功能的水温控制系统设计_第1页
具有语音功能的水温控制系统设计_第2页
具有语音功能的水温控制系统设计_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、具有语音功能的水温控制系统设计摘要:SPCE061是一款具有语音处理功能的16位单片机。本方案利用SPCE061A集成 的ADCft接将采集到的模拟信号转化为数字信号;在控制方面采用数字PID可以控制 方案;在进行数据处理的同时将当前的温度结果直接通过串口传送至上位PC直接在P C端口温度的变化曲线,并根据需要进行相应的数据分析和处理。同时以SPCE061A为控制核心,实现了对当前的温度十进制的数码管 LED显示、语音播报温度。SPCE061A 片内集成了一个ICE (在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常 方便,而 ICE 接口不占用芯片上的硬件资源 , 结合凌阳科技提供的集

2、成开发环境(nSP IDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过 该接口进行下载。本设计方案综合使用了 SPCE061的 A/D、Timer、Time Base UART 等众多资源,发挥了 SPCE061A勺优异性能。关键词:SPCE061A温度采集 PID控制Pt1001 引言信号采集在系统控制中起着至关重要的作用,是控制技术的关键环节。在一个完 善的闭环控制系统中,首先要检测被控对象的当前状态,必须对被控对象的状态信息(比如常见的温度,流量,速度,液位等信息)进行采集,并能够将采集到的数据还 原为实际的状态信息,并以此作为控制的出发点。控制结果和目标的一致性也

3、必须通 过信号采集来衡量,只有采集当前的状态信息,并和设置的目标进行对比才能了解控 制过程的好坏。本设计以水温控制系统为载体,利用SPCE061自带的10位A/D转换器, 结合Pt100传感器完成对水温的采样,通过数字滤波等技术消除系统的干扰因素还原 当前的温度值,并且对采集到的温度值进行 PID运算处理,实现对水温的控制。以及 十进制的数码管LEE显示、语音播报温度等。2 系统设计分析2.1 设计任务和要求利用SPCE061单片机、LED显示和UAR模组设计一个数据采集系统(以水温控制系 统为载体),基本要求如下:1. 温度的实时采集显示和语音播报;2. 对温度的变化能够做出及时的处理,最好

4、能够使用 PID调节;3. 通过UAR实现上下位机通信,并在上位机上显示温度的变化曲线。2.2 系统设计组成模块整个系统以SPCE061为核心,前向通道包括传感器及其信号放大电路,按键输入 电路;后向通道包括:LED显示电路,语音播报电路,上位机通信电路以及控制加热 器的继电器驱动电路。SPCE061内部有8路10位精度的A/D转换器,可以直接将传感器 信号放大后输入其A/D转换通道。SPCE061实时采样温度,通过数码管将当前温度在 下位机端口显示出来,并根据采样结果控制加热器,调节平均加热功率大小;同时通 过UAR接口传送上位P(机。各模块说明如下:语音播放:播报整数温度变化。键盘设定:用

5、于温度设定。共三个按键。按 KEY键,温度值的十位会闪烁,通过 KEY1/KEY键修改十位的值的大小,每按一次 KEY键,十位的值加1,达到9之后自动 变为0;每按一次KEY键,十位的值就减1,达到0之后自动变为9;十位设置完成按KEY3 键切换至个位设置,通过 KEY1/KEY键修改个位值的大小;个位设置完成通过 KEY键 切换至小数位设置,方法同上。成功设置十位、个位和小数位后,按KEY键则系统会进入控制状态。控制状态下,数码管的显示内容为当前采样温度。重新设置目标温度: 可以通过KEY键重新设置目标温度,运行状态下按 KEY键进入设置模式,按照上面介 绍的方法重新设定目标温度水温采样:将

6、电压信号经AD专换后,换算成温度值,用于播报和显示。LEE显示:采用三位八段数码管显示,设置温度和测量温度,显示小数点后1位字。串行口传输:将采样温度值,上传至P(机,描绘曲线并打印。继电器/热电炉:通过三极管控制继电器的开关来完成对热电炉的功率控制图2.1系统整体框图2.3系统总体方案介绍根据水温控制系统的设计分析,了解了水温控制系统的组成。根据上述的介绍, 做出了主体系统整体硬件连接如图 2.2所示,8图2.2系统硬件连接图系统采用PID闭环控制方案,如图2.3所示,将预置初值和传感器反馈信号比较得 到偏差(e),对偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热 器的加热

7、时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势做出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量和波 动,在PID控制中,积分环节(I )具有很强的滞后效应,而微分环节(D)则具有预 见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。图2. 3系统PD控制方案3系统硬件设计3.1模块特性简介本系统采用SPCE061单片机作为主控制器,采用LED显示单元,同时利用UAR模组 将采集到的数据通过串口传送给上位机,下面介绍将会用到的主要器件:3.1.1 SPCE061A简介该芯片拥有8路10位精度的ADC其中一路为音频转换通道,另外7路

8、可作为普通的AD 专换通道。另外凌阳的十六位单片机具有易学易用的效率较高的一套指令系统和集 成开发环境。在此环境中,支持标准 C语言,可以实现C语言和凌阳汇编语言的互相调 用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音 录放,这些都为软件开发提供了方便的条件。 下图为SPCE061单片机的内部结构框图:IOA15 -0IOB15-0图3.1 SPCE061A内部结构图3.1.2 Pt100温度传感器简介温度传感器采用PT100型的铂电阻。铂的热电阻是一种稳定的高精度,并具有线性 响应和较好的长期稳定性的温度检测器。只要经过适当的数据处理就可以传输,显示 并记录其温度

9、输出。因为铂的电阻的阻值和温度呈正比关系,所以只需要将已知电流 流过该电阻就可以的得到和温度成正比的输出电压。根据已知的电阻-温度关系,就可以计算出被测的温度值。Pt100温度传感器为正温度系数热敏电阻传感器,主要技 术参数如下: 测量范围:-200 C+850C; 允许偏差值&: A级±( 0.15 + 0. 002 | t | ), Ba±( 0.30 + 0. 005 | t | ); 热响应时间30s; 最小置入深度:热电阻的最小置入深度200mm 允通电流w 5mA另外,Pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。 铂热电阻的线性较

10、好,在0至 100度之间变化时,最大非线性偏差小于 0.5度。铂热电 阻的阻值和温度关系为:(1) -200 C <t<0 C 时,RPt100=100*1+At+B*t + C*t *(t-100)(2) 0 Cw t w 85C 时,RPt100=100*(1+At+B*t)式中,A=0.0390802; B=-0.00000580; C=0.2735。可见 Pt100在常温 0至 100度之间变 化时线性度非常好,其阻值表达式可近似简化为: RPt=100( 1+At),当温度变化1摄 氏度,Pt100阻值近似变化0.39欧姆。3.2各个模块电路的设计传感器电路传感器电路包括

11、传感器测量电桥和放大电路两部分,如图3.2所示,AV接IOA4。PT100铂的热电阻在0C的额定电阻值是100欧,它是一种标准化的器件。由 PT10C热 电阻将加热器的现行温度信号转换为相应得电压信号,再经过放大和滤波之后输入到SPCE061A图3.2传感器放大电路R2 R3 R4和PtIOO组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电 桥的输入电压通过TL431稳至2.5V。从电桥获取的差分信号通过两级运放放大后输入 单片机。电桥的一个桥臂是采用可调电阻R3,通过调节R3可以调整输入到运放的差分 电压信号大小,通常用于调整零点。放大电路采用LM35集成运算放大器,为了防止单级放大

12、倍数过高带来的非线性误 差,放大电路采用两级放大,如图3.2所示,前一级约为10倍,后一级约为3倍。温度 在0至100度变化,当温度上升时,PtIOO阻值变大,输入放大电路的差分信号变大, 放大电路的输出电压Av对应升高。注意:虽然电桥部分已经经过TL431稳压,但是整个模块的电压VC&定要稳定, 否则随着VCC勺波动,运放LM358勺工作电压波动,输出电压Av随之波动,最后导致A/D 转换的结果波动,测量结果上下跳变。按键和显示电路按键直接使用61板自带的按键,其电路如下图所示,不需要连接硬件即可使用。VDD图3.3 1*3独立按键电路原理图显示采用LEDS盘模组6位数码管的其中3位

13、进行动态显示,电路原理如图3.4所示。在使用时,将 a至dp端接IOA8至I0A15, DIG4至DIG6接I0B3至IOB5oW10CTT 1nr 3cjnt3TIT 3CRTSJiTaw +crcri*JZfcT JCH7IJ£21 *DQ 工 «XU XUUI?IFJL11JF n11rra-图3.4显示电路原理图功率驱动电路模块系统的主要功率器件为一个交流 220V1000W勺电加热器,采用继电器来驱动该 加热器。继电器选择OMROG6B-1174理继电器,该继电器具有触发电压低(DC5V), 可控功率大(AC 8A250V,以及反应时间短等优点。采用 NPN805

14、三极管驱动继电 器,当其控制端Ctrl加载高电平信号时三极管导通,继电器工作,当其控制端Ctrl为低电平信号时三极管截止,继电器停止工作。继电器的周围有续流保护电路和工作指 示电路。功率驱动部分电路如图3.5所示。图3.5功率驱动模块电路原理图Ctrl为继电器控制信号输入端,通过单片机的I0A7空制。J2为控制加热器的开关接口324 UART转换模块电路系统上,下位机的数据传输通过UAR接 口完成,该部分的电路如图3.6所示。COM1COM2VCC1Nrrx2丄7NIRk2£NlTxlJJMRxlGNP6NgT1CON<5SLTB-B9"十VCCv+GNDCl-DOL

15、JT1C2+RIN1C2-ROUT1V-DINIDOUTDIN2RIN2ROUT21613+PI'xll1T PRxlIn12- MRxlJJ? MTxl 远 MTx2厂 MRx23.6 UART转换模块电路原理图系统设计要求控制系统能同PC联机通信,已利用PC图形处理能力打印显示温度曲线。由于SPCE061串行口为TTL电平,PC串行口为RS232&平,使用一片MAX23为电平转换 驱动。UAR模组的COM接口和P(机串口相连接,J1 口的VCC GND Tx1分别和61板的 “ +”“ - ”、IOB1(相连接。音频输出电路SPCE061舶置2路10位精度的DAC只需要外接

16、功放电路即可完成语音的播放。通过SPY0030功率放大器,驱动喇叭,完成语音播放。SPCE061A!过DAC1输出语音电流信号,为了把电流信号转换为电压信号,提高输出功率,推动扬声器,在电路中 接了一块SPY0030这是一块八引脚的专用语音信号放大芯片,其增益为:G=2*5000Q/( 5000+R1,改变R1(1k)的大小可以改变增益值。3.7、音频输出电路SPY0030简介:工作电压2.4V-6V 最高输出功率达到850mW4系统软件设计4.1软件总体设计程序的控制思想:设置目标温度后,系统采样水温,且将当前温度语音播报,并 通过预设温度,当前温度,历史偏差等进行 PID运算产生结果fou

17、t0,通过该参数控制 加热时间,从而调节加热器的平均功率,实现系统的PID控制。整体功能通过主程序和中断服务程序配合实现。主程序流程:系统首先初始化I/O,Timer,UAR等部件,之后进入主循环,进行 温度采样和相关处理。在系统运行过程中通过按 KEY键重新设置目标温度。返回fOut值中断服务程序:中断服务包括IRQ5_2H中断,IRQ5_4H中断,IRQ2_TimerB中断, IRQ6_TMB2(1024HZ中断,及语音播放中断FIQ-TMA中断。其中IRQ5_2H用以提供1s时 间以确定AD采样的时间间隔;IRQ5_4H中断控制数码管的闪烁,用于配合设置目标温 度;IRQ2_TimerB

18、提供溢出频率为64HZ勺中断信号,配合主程序的PID运算结果foutO 确定加热时间,实现加热器功率调节;IRQ6_TMB为1KHZ寸基,在此中断中完成LED勺 动态刷新;FIQ-TMA中断为当键盘扫描时,调用语音播报函数,实时播报当前温度。 Watch Dog是用来监视系统的正常运作。当系统正常运行时,每隔一定的周期就必须 清除Watch Dog计数器。如果在限定的时间内, Watch Dog计数器没有被清除,CPU就 会认为系统已经无法正常工作,将会进行系统复位(reset)。 SPCE061A的Watch Dog的清除时间周期为0.75秒。2HZ中断服务程18次AD转换1hz中断服务程序

19、调用显示子函数置AD完成标志清除中断标志中断返回LJ图4.5 1Khz中断服务程序清除中断标志V中断返回图4.4 2HZ中断服务4hz中断服务程序数码管对应的位闪烁清除中断标志*、中断返回图4.6 4hz中断服务程序图4.7 Timer B中断服务程图4.8语音播放中断序列4.2子程序设计温度转换实现A/D转换:每间隔1s执行一次温度采样操作,每次采样执行 18次A/D转换;在IRQ5_2H冲断 服务程序中完成。A/D处理:A/D处理包括两方面内容,一是A/D值的滤波处理,二是A/D值向实际温度转 换。由于干扰或者电路噪声的存在,在采样过程当中会出现采样信号和实际信号存在 偏差的现象,甚至会出

20、现信号的高低波动,为了减小这方面原因造成的测量误差,在 实际采样时采样18个点,然后再除去其中偏差较大的两个点,即一个最大值和一个最 小值,再对剩余的16个点取均值,这样得到的A/D转换结果比较接近实际值。在对数 值进行滤波操作之后,还要将A/D值转换为温度, 温度转换的C语言实现过程为:fT = (adc_data * K) - B ; / 换算成温度值本方案中取K=0.1166, B=32.4;虽然Pt100的线性很好,但是当测量范围比较大时, 非线性误差就会变大。这时可以采取分段取 Kfi的方法来实现非线性校正。4.2.2 PID 控制的实现PID工作基理:如图4.9所示,其实PID的实

21、质就是对偏差(e值)进行比例、积分、微分运算,根据运算结果控制执行部件的过程比例(P)设定-反馈积分(I)执行部件微分(D)图4.9模拟PID控制系统原理图数字PID的实现:由于计算机基于采样控制理论,计算方法也不能沿袭传统的模拟PID控制算法,所以必须将控制模型离散化,离散化的方法:以 T为采样周期,k为采样序号,用求和 的形式代替积分,用增量的形式(求差)代替微分,这样可以将连续的PID计算公式离散:这样就可以让计算机或者单片机通过采样的方式实现PID控制。具体的PID控制又分为位置式PID控制和增量式PID控制,若公式给出了控制量的 全部大小,所以称之为全量式的或者是位置式控制;如果计算

22、机只对相邻的两次作计 算,只考虑在前一次基础上,计算机输出量的大小变化,而不是全部输出信息的计算, 这种控制叫做增量式PID控制算法,其实质就是求卩的大小。温度控制PID算法设计本设计利用了上面所介绍的位置式 PID算法,将温度传感器采样输入作为当前输 入,然后和设定值进行相减得偏差,然后再对之进行 PID运算产生输出结果fOut ,然 后让fOut控制定时器的时间进而控制加热器。为了方便PID运算,首先建立一个PID的结构体数据类型,该数据类型用于保存PID 运算所需要的P、I、D系数,以及设定值,历史误差的累加和等信息。然后是PID运算的算法程序,通过PID运算返回fOut,fOut的值决

23、定是否加热,加热时间是多少。在实际运算时,由于水具有很大的热惯性,而且 PID运算中的I (积分项)具有非常明显 的延迟效应所以不能保留,我们必须把积分项去掉,相反D (微分项)则有很强的预见性,能够加快反应速度,抑制超调量,所以积分作用应该适当加强才能达到较佳的 控制效果,系统最终选择PD空制方案。温度控制实现通过温度的PID运算,产生结果fOut,该参数决定是否加热,加热时间是多长 加热时间由主函数计算,由Timer B中断控制。主程序中通过PID Calc函数得到fOut 参数,如果该参数大于“ 0”,则开启加热器。IRQ2_TM中断一直处于允许状态,每 进入一次IRQ2_TM中断,fO

24、ut参数减1,直到fOut=O,停止加热。如果PID Calc计算 结果比较大说明离目标温度相差较大,则加热时间比较长,如果计算结果比较小,说 明离目标温度相差较小,加热时间相对较短。上下位机的通信程序设计下位机程序设计:通信采用UAR接口实现,下位机的UAR通信代码包含UAR初始 化和UAR发送两部分。UAR发送每隔1s执行一次,以数据包格式发送:桢头(0xaa)、 桢尾(0x55),中间两个字节为温度部分,前一个字节为温度的整数部分,后一个字 节为温度的小数部分。上位机程序设计:上位机接收采用VC可视化编程设计,上位机接收部分程序分为初始化和接收两部分。对于数据接收部分:接收完数据首先判断

25、桢 头和桢尾是否正确,如果桢头和桢尾是正确的,则将接收到的中间数据还原为温度值 并传送给绘图程序,如果接收到的桢头和桢尾数据是错误的,则不进行处理绘图界面设计:绘图界面包括串行口设置、功能按钮、曲线输出窗口三部分,如 图4.10所示,在使用时选择正确的端口,上下位机的波特率,数据格式要一致。完成 以上操作,点击连接即可。图4.10绘图部分界面PID参数的整定:由PID控制原理知:比例(P)控制能迅速反应误差,减小稳态误差; 比例作用的加大,会引起系统的不稳定。积分(I)控制的作用,只要系统有偏差存 在,积分作用不断地积累,输出控制量以消除误差;积分作用太强会使系统超调加大, 甚至使系统出现振荡

26、。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性 提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。我们想要达到的目标就是:反应速度尽可能快,超调量尽可能的小,稳态误差趋 近于0。通过测量曲线分析,最终选择 KP=1.3、KD=2.0注意:PID参数的整定和加热器的功率,水的容积有很大关系,所以在一个系统下 整定的参数在另外一个系统下可能不适用。426语音播放的实现凌阳SPCE061是16位DS特色单片机,有很强的信息处理能力,最高时钟频率 可达49.152MHz具备运算速度高等优势。这为语音的播放、录放、合成及辨识提供 了条件。语音处理大致可分为存储、解码处理及

27、 D/A等,见下图4.11图4.11凌阳SPCE061A单片机对语音处理过程放音的编解码是靠调用库函数完成,凌阳公司提供了丰富的库函数,我们只要了 解库函数的使用,就能轻松完成语音录放,不需要我们设计硬件电路。凌阳公司提供 了多种音频编解码算法及其API函数库,即SACM-LIB该库将A/D、编码、解码、存储 及D/A做成相应的模块,对于每个模块都有其使用程序接口 API,设计人员只须了解每 个模块所要实现的功能及其参数的内容,然后调用该 API函数即可实现相应功能。其 中凌阳压缩算法中SACM_A2000SACM_S4和SACM_S24主要是用来放音,可用于语音 提示,SPCE061为音频输

28、出提供两个DAC1道:DAC和DAC2分别由经由DAC和DAC2 引脚输出。DAC勺输出范围从0x0000到0xFFFF如果DAC勺输出数据被处理成PCI数据, 必须让DA输出数据的直流电位保持为0x8000,且仅有高10位的数据有作用。DAC和 DAC2勺输出数据应写入P_DAC1写) ($7017)和P_DAC2写) ($7016)单元。本设计采用 DAC输出。5系统调试61板上配有凌阳的自行研发设计的16位单片机开发环境IDE。此工具在Windowj环境 下操作,支持标准C语言和汇编语言,集编译、编程、链接、调试和仿真于一体,使 用方便简单易学。同时还提供大量的编程函数库,大大加快了软件

29、开发的进程。集成 开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编 程、调试工作方便且高效。此外,它的软件仿真功能可以在不连接仿真板的情况下模 拟硬件的各项功能来调试程序。SPCE061片内集成了一个ICE (在线仿真电路)接口,使得对该芯片的编程、仿 真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成 开发环境(卩'nSPIDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧 写)也是通过该接口进行下载。 步骤一:根据电路连接示意图连接硬件,并连接下载线(Probe)。步骤二:打开电源。步骤三:启动u' nSP IDE。打开语音控制系统使用程序,编译、链接确认没有错误 步骤四:下载程序代码到 61 板上。步骤五:运行程序。结语基于SPCE061的 16位特性、DS功能以及快速的处理能力,使得该系统的数据采 集和运算处理十分的方便简单,另外由于IDE支持标准的C语言函数库,使得复杂的数 学运算变得轻而易举,大大减小了编程的难度。另外采用VC实现上下位机相互通信,在上位机可以直接显示温度的变化曲线,直接观察控制的性能,并根据曲线适当的修 改系统的PID参数,使控制达到最优

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论