




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 19 页 共19页具有语音功能的水温控制系统设计摘要:SPCE061A是一款具有语音处理功能的16位单片机。本方案利用SPCE061A集成的ADC直接将采集到的模拟信号转化为数字信号;在控制方面采用数字PID可以控制方案;在进行数据处理的同时将当前的温度结果直接通过串口传送至上位PC,直接在P C端口温度的变化曲线,并根据需要进行相应的数据分析和处理。同时以SPCE061A为控制核心,实现了对当前的温度十进制的数码管LED显示、语音播报温度。SPCE061A片内集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源 ,结合凌阳科技提供的集成开发环境(nSP IDE)用户可以利用它对芯片进行真实的仿真;而程序的下载(烧写)也是通过该接口进行下载。本设计方案综合应用了SPCE061A的A/D、Timer、Time Base、UART等众多资源,发挥了SPCE061A的优异性能。关键词:SPCE061A 温度采集 PID控制 Pt1001 引言信号采集在系统控制中起着至关重要的作用,是控制技术的关键环节。在一个完善的闭环控制系统中,首先要检测被控对象的当前状态,必须对被控对象的状态信息(比如常见的温度,流量,速度,液位等信息)进行采集,并能够将采集到的数据还原为实际的状态信息,并以此作为控制的出发点。控制结果与目标的一致性也必须通过信号采集来衡量,只有采集当前的状态信息,并与设置的目标进行对比才能了解控制过程的好坏。 本设计以水温控制系统为载体,利用SPCE061A自带的10位A/D转换器,结合Pt100传感器完成对水温的采样,通过数字滤波等技术消除系统的干扰因素还原当前的温度值,并且对采集到的温度值进行PID运算处理,实现对水温的控制。以及十进制的数码管LED显示、语音播报温度等。2 系统设计分析2.1 设计任务与要求利用SPCE061A单片机、LED显示和UART模组设计一个数据采集系统(以水温控制系统为载体),基本要求如下:1.温度的实时采集显示和语音播报;2.对温度的变化能够做出及时的处理,最好能够应用PID调节;3.通过UART实现上下位机通信,并在上位机上显示温度的变化曲线。2.2 系统设计组成模块整个系统以SPCE061A为核心,前向通道包括传感器及其信号放大电路,按键输入电路;后向通道包括:LED显示电路,语音播报电路,上位机通信电路以及控制加热器的继电器驱动电路。SPCE061A内部有8路10位精度的A/D转换器,可以直接将传感器信号放大后输入其A/D转换通道。SPCE061A实时采样温度,通过数码管将当前温度在下位机端口显示出来,并根据采样结果控制加热器,调节平均加热功率大小;同时通过UART接口传送上位PC机。各模块说明如下:语音播放:播报整数温度变化。键盘设定:用于温度设定。共三个按键。按KEY3键,温度值的十位会闪烁,通过KEY1/KEY2键修改十位的值的大小,每按一次KEY2键,十位的值加1,达到9之后自动变为0;每按一次KEY1键,十位的值就减1,达到0之后自动变为9;十位设置完成按KEY3键切换至个位设置,通过KEY1/KEY2键修改个位值的大小;个位设置完成通过KEY3键切换至小数位设置,方法同上。成功设置十位、个位和小数位后,按KEY3键则系统会进入控制状态。控制状态下,数码管的显示内容为当前采样温度。重新设置目标温度:可以通过KEY3键重新设置目标温度,运行状态下按KEY3键进入设置模式,按照上面介绍的方法重新设定目标温度水温采样:将电压信号经AD转换后,换算成温度值,用于播报和显示。LED显示:采用三位八段数码管显示,设置温度与测量温度,显示小数点后1位字。串行口传输:将采样温度值,上传至PC机,描绘曲线并打印。继电器/热电炉:通过三极管控制继电器的开关来完成对热电炉的功率控制 SPCE061A16bit CPU串行接口PC热电炉LED显示继电器语音播报水温采集键盘设定图2.1系统整体框图 2.3系统总体方案介绍根据水温控制系统的设计分析,了解了水温控制系统的组成。根据上述的介绍,做出了主体系统整体硬件连接如图 2.2 所示,383AVPT100传感器信号放大调理电路KEY1KEY KEY3IOA815IOB35IOB10IOA4GNDIOA0 IOA7SEGLED DIGMAX232继电器PC热电器SPCE061A图2.2 系统硬件连接图系统采用PID闭环控制方案,如图2.3所示,将预置初值与传感器反馈信号比较得到偏差(e),对偏差(e)进行PID运算处理得到控制量(u),通过此量来控制加热器的加热时间,从而控制加热功率。由于水本身具有很大的热惯性,所以必须对水温的变化趋势做出预测,并且根据需要及时反方向抑制,以防止出现较大的超调量和波动,在PID控制中,积分环节(I)具有很强的滞后效应,而微分环节(D)则具有预见性,所以该方案最终采用PD算法,能够很好的控制超调,并且稳态误差也很小。 设 定+euPD运算执行部件被控对象传感器反馈反馈图 2. 3系统PD控制方案 3 系统硬件设计3.1模块特性简介本系统采用SPCE061A单片机作为主控制器,采用LED显示单元,同时利用UART模组将采集到的数据通过串口传送给上位机,下面介绍将会用到的主要器件:3.1.1 SPCE061A简介该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,另外7路可作为普通的AD转换通道。另外凌阳的十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。下图为SPCE061A单片机的内部结构框图:图3.1 SPCE061A内部结构图 3.1.2 Pt100温度传感器简介温度传感器采用PT100型的铂电阻。铂的热电阻是一种稳定的高精度,并具有线性响应和较好的长期稳定性的温度检测器。只要经过适当的数据处理就可以传输,显示并记录其温度输出。因为铂的电阻的阻值和温度呈正比关系,所以只需要将已知电流流过该电阻就可以的得到与温度成正比的输出电压。根据已知的电阻-温度关系,就可以计算出被测的温度值。Pt100温度传感器为正温度系数热敏电阻传感器,主要技术参数如下:测量范围:-200+850;允许偏差值:A级(0.150.002t),B级(0.300.005t);热响应时间30s;最小置入深度:热电阻的最小置入深度200mm; 允通电流5mA。另外,Pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。铂热电阻的线性较好,在0至100度之间变化时,最大非线性偏差小于0.5度。铂热电阻的阻值与温度关系为:(1)-200t0时,RPt100=100*1+At+B*t + C*t *(t-100)(2)0t85时,RPt100=100*(1+At+B*t)式中,A=0.0390802;B=-0.00000580;C=0.000000000042735。可见Pt100在常温0至100度之间变化时线性度非常好,其阻值表达式可近似简化为:RPt=100(1+At),当温度变化1摄氏度,Pt100阻值近似变化0.39欧姆。3.2各个模块电路的设计3.2.1传感器电路传感器电路包括传感器测量电桥和放大电路两部分,如图3.2所示,AV接IOA4。PT100铂的热电阻在0 的额定电阻值是100欧,它是一种标准化的器件。由PT100热电阻将加热器的现行温度信号转换为相应得电压信号,再经过放大和滤波之后输入到SPCE061A。图3.2 传感器放大电路 R2、R3、R4和Pt100组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过TL431稳至2.5V。从电桥获取的差分信号通过两级运放放大后输入单片机。电桥的一个桥臂是采用可调电阻R3,通过调节R3可以调整输入到运放的差分电压信号大小,通常用于调整零点。放大电路采用LM358集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图3.2所示,前一级约为10倍,后一级约为3倍。温度在0至100度变化,当温度上升时,Pt100阻值变大,输入放大电路的差分信号变大,放大电路的输出电压Av对应升高。注意:虽然电桥部分已经经过TL431稳压,但是整个模块的电压VCC一定要稳定,否则随着VCC的波动,运放LM358的工作电压波动,输出电压Av随之波动,最后导致A/D转换的结果波动,测量结果上下跳变。3.2.2按键和显示电路按键直接使用61板自带的按键,其电路如下图所示,不需要连接硬件即可使用。图 3.3 1*3独立按键电路原理图显示采用LED键盘模组6位数码管的其中3位进行动态显示,电路原理如图3.4所示。在使用时,将a至dp端接IOA8至IOA15,DIG4至DIG6接IOB3至IOB5。图3.4 显示电路原理图3.2.3 功率驱动电路模块系统的主要功率器件为一个交流220V1000W的电加热器,采用继电器来驱动该加热器。继电器选择OMRON G6B-1174P型继电器,该继电器具有触发电压低(DC 5V),可控功率大(AC:8A250V),以及反应时间短等优点。采用NPN8050三极管驱动继电器,当其控制端Ctrl加载高电平信号时三极管导通,继电器工作,当其控制端Ctrl为低电平信号时三极管截止,继电器停止工作。继电器的周围有续流保护电路和工作指示电路。功率驱动部分电路如图3.5所示。 图3.5功率驱动模块电路原理图Ctrl为继电器控制信号输入端,通过单片机的IOA7控制。J2为控制加热器的开关接口。3.2.4 UART转换模块电路系统上,下位机的数据传输通过UART接口完成,该部分的电路如图3.6所示。 3.6 UART转换模块电路原理图 系统设计要求控制系统能同PC联机通信,已利用PC图形处理能力打印显示温度曲线。由于SPCE061A串行口为TTL电平,PC串行口为RS232电平,使用一片MAX232为电平转换驱动。UART模组的COM1接口与PC机串口相连接,J1口的VCC、GND、Tx1分别与61板的“+”“-”、IOB10相连接。3.2.5 音频输出电路SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。通过SPY0030功率放大器,驱动喇叭,完成语音播放。SPCE061A通过DAC1输出语音电流信号,为了把电流信号转换为电压信号,提高输出功率,推动扬声器,在电路中接了一块SPY0030,这是一块八引脚的专用语音信号放大芯片,其增益为:G=2*50000(5000+R1),改变R1(1k)的大小可以改变增益值。 3.7、音频输出电路SPY0030简介:工作电压2.4V-6V最高输出功率达到850mW4 系统软件设计 4.1软件总体设计 程序的控制思想:设置目标温度后,系统采样水温,且将当前温度语音播报,并通过预设温度,当前温度,历史偏差等进行PID运算产生结果fout0,通过该参数控制加热时间,从而调节加热器的平均功率,实现系统的PID控制。整体功能通过主程序和中断服务程序配合实现。主程序流程:系统首先初始化I/O,Timer,UART等部件,之后进入主循环,进行温度采样和相关处理。在系统运行过程中通过按KEY3键重新设置目标温度。YN需要设置温度?系 统 初 始 化 设置温度温度相关处理清看门狗开 始图4.1系统主程序PID算法PID算法初始化 PID运算处理设置PID调解参数 返回fOut值图4.2PID算法的流程图YNYNNYYNNY计算该数据的小数位播放“0”播放“0”计算该数据的个位计算该数据的十位位播放个位播放十位播放小数位输入三位整数返 回小数位是否为0个位是否为0十位是否为0十位是否为0十位是否为0个位是否为04.3 语音播放三位数流程图YN中断服务程序:中断服务包括IRQ5_2Hz中断,IRQ5_4Hz中断,IRQ2_TimerB中断,IRQ6_TMB2(1024Hz)中断,及语音播放中断FIQ-TMA中断。其中IRQ5_2Hz用以提供1s时间以确定AD采样的时间间隔;IRQ5_4Hz中断控制数码管的闪烁,用于配合设置目标温度;IRQ2_TimerB提供溢出频率为64Hz的中断信号,配合主程序的PID运算结果fout0确定加热时间,实现加热器功率调节;IRQ6_TMB2为1KHz时基,在此中断中完成LED的动态刷新;FIQ-TMA中断为当键盘扫描时,调用语音播报函数,实时播报当前温度。Watch Dog是用来监视系统的正常运作。当系统正常运行时,每隔一定的周期就必须清除Watch Dog计数器。如果在限定的时间内,Watch Dog计数器没有被清除,CPU就会认为系统已经无法正常工作,将会进行系统复位(reset)。 SPCE061A的Watch Dog的清除时间周期为0.75秒。 NY18次AD转换置AD完成标志清除中断标志2HZ中断服务程序1Hz?到?/?图4.4 2HZ中断服务程序系统主程序 中断返回数码管对应的位闪烁清除中断标志4hz中断服务程序中断返回图4.6 4hz中断服务程序调用显示子函数1hz中断服务程序清除中断标志中断返回图4.5 1Khz中断服务程序NYOUT-关闭加热器清除中断标志Timer B中断服务程序FOUT=0?中断返回图4.7 Timer B中断服务程序语音数据解码填充语音序列退出 FIQ-TMA中断图4.8语音播放中断序列4.2 子程序设计4.2.1温度转换实现A/D转换:每间隔1s执行一次温度采样操作,每次采样执行18次A/D转换;在IRQ5_2Hz中断服务程序中完成。A/D处理:A/D处理包括两方面内容,一是A/D值的滤波处理,二是A/D值向实际温度转换。由于干扰或者电路噪声的存在,在采样过程当中会出现采样信号与实际信号存在偏差的现象,甚至会出现信号的高低波动,为了减小这方面原因造成的测量误差,在实际采样时采样18个点,然后再除去其中偏差较大的两个点,即一个最大值和一个最小值,再对剩余的16个点取均值,这样得到的A/D转换结果比较接近实际值。在对数值进行滤波操作之后,还要将A/D值转换为温度,温度转换的C语言实现过程为:fT = (adc_data * K) B; /换算成温度值 本方案中取K=0.1166,B=32.4;虽然Pt100的线性很好,但是当测量范围比较大时,非线性误差就会变大。这时可以采取分段取K值的方法来实现非线性校正。4.2.2 PID控制的实现PID工作基理:如图4.9所示,其实PID的实质就是对偏差(e值)进行比例、积分、微分运算,根据运算结果控制执行部件的过程。e(t)+-反馈设定e (t)比例(P)积分(I)微分(D)执行部件图4.9模拟PID控制系统原理图数字PID的实现:由于计算机基于采样控制理论,计算方法也不能沿袭传统的模拟PID控制算法,所以必须将控制模型离散化,离散化的方法:以T为采样周期,k为采样序号,用求和的形式代替积分,用增量的形式(求差)代替微分,这样可以将连续的PID计算公式离散:这样就可以让计算机或者单片机通过采样的方式实现PID控制。具体的PID控制又分为位置式PID控制和增量式PID控制,若公式给出了控制量的全部大小,所以称之为全量式的或者是位置式控制;如果计算机只对相邻的两次作计算,只考虑在前一次基础上,计算机输出量的大小变化,而不是全部输出信息的计算,这种控制叫做增量式PID控制算法,其实质就是求的大小。4.2.3 温度控制PID算法设计本设计利用了上面所介绍的位置式PID算法,将温度传感器采样输入作为当前输入,然后与设定值进行相减得偏差,然后再对之进行PID运算产生输出结果f0ut ,然后让f0ut控制定时器的时间进而控制加热器。为了方便PID运算,首先建立一个PID的结构体数据类型,该数据类型用于保存PID运算所需要的P、I、D系数,以及设定值,历史误差的累加和等信息。然后是PID运算的算法程序,通过PID运算返回f0ut,f0ut的值决定是否加热,加热时间是多少。在实际运算时,由于水具有很大的热惯性,而且PID运算中的I(积分项)具有非常明显的延迟效应所以不能保留,我们必须把积分项去掉,相反D(微分项)则有很强的预见性,能够加快反应速度,抑制超调量,所以积分作用应该适当加强才能达到较佳的控制效果,系统最终选择PD控制方案。4.2.4 温度控制实现通过温度的PID运算,产生结果f0ut,该参数决定是否加热,加热时间是多长。加热时间由主函数计算,由Timer B中断控制。主程序中通过PID Calc函数得到f0ut参数,如果该参数大于“0”,则开启加热器。IRQ2_TMB中断一直处于允许状态,每进入一次IRQ2_TMB中断,f0ut参数减1,直到f0ut=0,停止加热。如果PID Calc计算结果比较大说明离目标温度相差较大,则加热时间比较长,如果计算结果比较小,说明离目标温度相差较小,加热时间相对较短。4.2.5 上下位机的通信程序设计下位机程序设计:通信采用UART接口实现,下位机的UART通信代码包含UART初始化和UART发送两部分。UART发送每隔1s执行一次,以数据包格式发送:桢头(0xaa)、桢尾(0x55),中间两个字节为温度部分,前一个字节为温度的整数部分,后一个字节为温度的小数部分。上位机程序设计:上位机接收采用VC可视化编程设计,上位机接收部分程序分为初始化和接收两部分。对于数据接收部分:接收完数据首先判断桢头和桢尾是否正确,如果桢头和桢尾是正确的,则将接收到的中间数据还原为温度值并传送给绘图程序,如果接收到的桢头和桢尾数据是错误的,则不进行处理绘图界面设计:绘图界面包括串行口设置、功能按钮、曲线输出窗口三部分,如图4.10所示,在使用时选择正确的端口,上下位机的波特率,数据格式要一致。完成以上操作,点击连接即可。图4.10绘图部分界面PID参数的整定:由PID控制原理知:比例(P)控制能迅速反应误差,减小稳态误差;比例作用的加大,会引起系统的不稳定。积分(I)控制的作用,只要系统有偏差存在,积分作用不断地积累,输出控制量以消除误差;积分作用太强会使系统超调加大,甚至使系统出现振荡。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。我们想要达到的目标就是:反应速度尽可能快,超调量尽可能的小,稳态误差趋近于0。通过测量曲线分析,最终选择KP=1.3、KD=2.0注意:PID参数的整定和加热器的功率,水的容积有很大关系,所以在一个系统下整定的参数在另外一个系统下可能不适用。4.2.6语音播放的实现 凌阳SPCE061A是16位DSP特色单片机,有很强的信息处理能力,最高时钟频率可达49.152MHz,具备运算速度高等优势。这为语音的播放、录放、合成及辨识提供了条件。语音处理大致可分为存储、解码处理及D/A等,见下图4.11编解码处理D/A转换存 储喇叭输出图4.11 凌阳SPCE061A单片机对语音处理过程放音的编解码是靠调用库函数完成,凌阳公司提供了丰富的库函数,我们只要了解库函数的使用,就能轻松完成语音录放,不需要我们设计硬件电路。凌阳公司提供了多种音频编解码算法及其API函数库,即SACM-LIB。该库将A/D、编码、解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API,设计人员只须了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现相应功能。其中凌阳压缩算法中SACM_A2000、SACM_S480和SACM_S240主要是用来放音,可用于语音提示,SPCE061A为音频输出提供两个DAC通道:DAC1和DAC2,分别由经由DAC1和DAC2引脚输出。DAC的输出范围从0x0000 到0xFFFF。如果DAC的输出数据被处理成PCM数据,必须让DAC输出数据的直流电位保持为0x8000,且仅有高10位的数据有作用。DAC1和DAC2的输出数据应写入P_DAC1(写) ($7017)和P_DAC2(写) ($7016)单元。本设计采用DAC1输出。5 系统调试61板上配有凌阳的自行研发设计的16位单片机开发环境IDE。此工具在Windows环境下操作,支持标准C语言和汇编语言,集编译、编程、链接、调试和仿真于一体,应用方便简单易学。同时还提供大量的编程函数库,大大加快了软件开发的进程。集成开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编程、调试工作方便且高效。此外,它的软件仿真功能可以在不连接仿真板的情况下模拟硬件的各项功能来调试程序。SPCE061A片内集成了一个ICE(在线仿真电路)接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教育行业人才流失原因与吸引机制创新路径研究报告
- 2025年植物基因编辑技术在转基因植物抗病虫害育种中的应用成果鉴定报告
- 自卸吊车买卖合同协议书
- 泵车转卖合同协议书范本
- 防尘布工地销售合同范本
- 理疗店合伙协议合同范本
- 物业小区的广告合同协议
- 法院婚内财产协议书模板
- 竹制半成品采购合同范本
- 罗非鱼鱼苗订购合同范本
- 2025年施工员-土建方向-岗位技能(施工员)考试题库
- 河南省安阳市林州市2024-2025学年八年级下学期期末历史试卷 (含答案)
- 胸痛单元建设课件介绍
- 2025年广西中考语文试题卷(含答案)
- 2024广西专业技术人员继续教育公需科目参考答案(97分)
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 湘少版小学全部英语单词
- 小学数学西南师大四年级下册八平均数小学数学西师版四年级下册《平均数》教学设计
- T-SDDA 0002-2021 住宅装饰装修工程质量验收标准
- 智慧机场贵宾厅建设方案
- CTPAT反恐文件1. 货物单据和文件记录安全控制程序
评论
0/150
提交评论