基于DSP的空调综合测控仪研究改进.docx
- 文档编号:23035785
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:24
- 大小:233.21KB
基于DSP的空调综合测控仪研究改进.docx
《基于DSP的空调综合测控仪研究改进.docx》由会员分享,可在线阅读,更多相关《基于DSP的空调综合测控仪研究改进.docx(24页珍藏版)》请在冰豆网上搜索。
基于DSP的空调综合测控仪研究改进
DSP原理与应用
大作业
题目:
基于DSP的空调综合测控仪研究改进
学院名称:
电气工程学院
专业班级:
电气F1101
学生姓名:
**********
学号:
201123910305
目录
1概述2
1.1研究背景2
1.2研究意义及研究内容2
2系统硬件的设计和构建3
2.1TMS320F240的电源电路3
2.2TMS320F240的时钟电路3
2.3TMS320F240的复位电路4
2.4系统的模数转换(A/D)部分4
2.5系统的脉宽调变(PWM)输出部分5
2.6系统的键盘输入部分5
2.7系统的RS--232串行输出部分5
2.8系统的液晶显示部分6
3温度测控部分的硬件及算法实现7
3.1温度测控部分的硬件电路7
3.2温度的智能PID控制算法及实现方案8
4系统的软件编程和实现9
4.1系统的软件设计方案9
4.2TMS320F240初始化子程序10
4.3按键处理和复位看门狗子程序10
4.4温度信号PWM方波输出子程序11
4.5液晶显示子程序12
4.6SCI通信子程序14
5总结与改进16
5.1系统硬件改进16
5.2噪声采集的电路及算法实现16
5.3小结17
参考文献17
基于DSP的空调综合测控仪研究改进
1概述
1.1研究背景
目前大部分工业测控仪器仪表仍然主要以传统的通用MCU(8位或16位单片机)为核心,它们价格便宜、性能稳定而且在控制方面应用也已相当成熟,但在高速数字信号处理方面功能较弱、较难实现复杂的处理算法,于是研究和开发一种能对多种类型信号进行实时采集和高速数字化处理,同时又能充分利用微处理器片上丰富外设,最大程度简化外围电路的高速高性能测控系统十分必要。
在这方面国内外已有很多工作成果,但在国内的空调测控领域,具备上述高性能的产品并不多见,为此本文研究并设计了一种新型的能满足上述要求的基于TI公司TMS320F240DSP的空调多参数综合测控仪,并给出了系统组成和软硬件的实现方案。
1.2研究意义及研究内容
因为单片嵌入式DSP芯片在高速高性能嵌入式系统应用中发挥着无可替代的作用,在工业自动化领域更是具有强大的应用潜力和远大的发展前景,同时,针对在国内空调测控领域当中,具备土述高速高性能特点的产品并不多见,所以本文着力于研究和开发一种以TI公司的TMS320F240DSP为控制和数字化处理核心的空调综合测控仪,并给出系统组成和软、硬件的设计方案,本文的具体研究内容如下:
1.首先针对空调综合测控仪所需实现的功能制定系统的整体设计方案,空调综合测控仪所需实现的功能包括:
一路空调运行噪声的实时采集和计权声压级测量及倍频程分析,两路室内温度的测量和模糊逻辑在线调整PID的方案以实现温度的闭环连续控制,以及相关的测试数据送液晶显示屏显示和由RS-232串行通信接口的输出。
2.对空调综合测控仪所需实现的运行噪声采集和A计权声压级测量及倍频程分析的功能,针对传统的噪声测量和分析过多依赖于硬件带通滤波网络和计权网络的弱点,采用一种新型的基于软件512点FFT的方法,将合成噪声分解成不同频率的多个纯音源之和,分别进行数字计权后再合成来实现。
3.对空调综合测控仪所需实现的室内温度的实时测量和PID调节输出,针对温度场的精确数学模型无法确定而且具有时滞、时变、大惯性和非线性的特性,采用一种新型的模糊逻辑FLC在线调整PID的智能温控方案来进行温度的PWM闭环连续控制。
2系统硬件的设计和构建
2.1TMS320F240的电源电路
基于TMS320F240的空调综合测控仪是独立于计算机的脱机控制系统,所以需要有自己的独立电源:
而且在本系统设计中,空调运行噪声信号和室内温度信号的模数转换都需要由F24O内部的两个10位模数转换模块ADC来完成。
对于本测试控来说,因为采用的TMS320F24O其数字核心电路、内部数字1/0电路、内部模拟电路以及内部ADC电路高准位参考的供给电压均要求为稳定的+5.OV,出于经济性和简便性考虑,在此就不考虑TI公司的DSP专用电源解决方案,而以MAX8869EUE50芯片为核心来构建F24O的电源电路。
另外还需要注意电源噪声问题。
为此,F240的所有电源引脚(CVdd、DVdd、VecA、VreHri、Vecp)及地线引脚(CVss、Vss、VssA、vreLfo)要确实接好,并在引脚旁接上O.ulF滤波电容,来降低电源噪声;并在F24O的模拟电源引脚VccA和ADC高准位参考电压引脚VreHri接入稳定的二形LC滤波网络,这里取L=ulH和C二10uF。
上述电源电路经过实际调试后,可以使F24O正常工作。
图2.1TMS320F240电源电路
2.2TMS320F240的时钟电路
因为DSP工作以时钟为基准,需要精度高和稳定性好的时钟来保证F240可靠稳定的工作,所以这里就不采用它的片内振荡器而采用外加振荡源的方法(CLKIN)。
为此把/OSCBYP引脚接地,表示旁路F24O的内部振荡器而使用外部时钟,外频由XTALI(CLKIN)引脚输入,使XTALZ引脚悬空,具体的时钟电路如图2.2所示。
图2.2TMS320F240的时钟电路
2.3TMS320F240的复位电路
对于上电复位,在前面提到过F240供电电源芯片MAx8869EuESO还具有一个/RST复位输出引脚,能提供持续3ms的低电平Reset输出,所以把该引脚接到F240的/RS复位端作为复位信号的输入,完全能满足F24O上电时正确初始化所必须的/RS端复位低电平必须保持至少8个时钟周期(当F240运行时钟频率为20MHz时即为400ns)的要求。
同时考虑到上电后,DSP的晶振往往需要几百毫秒的稳定期,一般为100ms一300ms,这可由延迟时间t。
由电阻R和电容C所组成的RC延时网络来解决。
整个上电复位电路如图2.3所示。
图2.3F240的上电复位电路
2.4系统的模数转换(A/D)部分
基于10位的精度已满足要求,因此本系统中温度信号和噪声信号的A/D转换采用TMS32OF240内的两组独立10位模数转换器ADC完成,它可将输入的模拟电压信号转换为10位的数字数据。
因为本系统中,需要同时使用两个独立的ADC模块分别进行一路噪声和两路温度信号的模数转换,它们对应的信道分别为8和0、1,而且都采用执行效率较好的中断法来读取A/D转换数值,所以使ADCTRLI=oxBBOOH(当选择信道8和O时)或ADCTRLI=OxBB02H(当选择信道8和1时)。
在A/D转换过程中,通过读取ADCTRLZ的位7和位6即D7D6以及位4和位3即D4D3来可以分别判断ADCFIF01和ADCFIF02中是否已存放A/D转换数据。
2.5系统的脉宽调变(PWM)输出部分
功能要求温度信号经智能PID运算后,得到20ms内占空比可调的PWM丈波输出,作为固态继电器阀门的控制信号,这可由TMS320F240的计时比较/脉宽调变器TxCMP/TxPWM(x=1,2,3)来实现。
完成控制类寄存器的具体设置后,以通用计时比较/脉宽调变器TICMP/T1PWM为例,就产生如下工作过程:
当比较输出响应位TCOMPOE=I的情况下,一开始,计数寄存器T1CNT=0,此时输出引脚T1CMP/T1PWM=1即高电平的无操作准位,当计数寄存器上数到T1CNT=T1CMPR时,就会自动改变输出引脚T1CMP/T1PWM=0即进入低电平的有操作准位,实现了输出的极性改变,直到T1CNT=T1PR时才又恢复成高电平的无操作准位。
所以在连续增计时模式中,TIPR决定输出脉冲周期,T1CMPR则决定输出脉冲周期内有操作准位active的时间。
要做到占空比可调,也就是在每获取到一个温度信号经智能PID计算的数据后就加载到TICMPR中,通过TICNT的上数计时过程与T1CMPR和T1PR中的内容进行比较,一旦产生比较匹配和周期匹配就产生边沿触发,改变引脚T1CMPIT1PWM的输出准位,完成占空比可调的温度脉宽调变PWM波形输出。
2.6系统的键盘输入部分
根据系统需要,通过五按键的键盘进行系统功能选择。
这五个按键对应的功能分别为:
复位开始,第一路温度测量,第二路温度测量,两路温度轮流测量和噪声采集。
这需要分配DSP的1/0口资源作为键盘的按键输入。
TMS320F240提供28个双向性数字1/0引脚,它们大多数与片内功能模块引脚共享,可作为普通1/0引脚也可作为其它功能引脚。
可以把它们分成两组:
(l)20个专门1/0端口A、B和c的数字1/0与其它基本功能共享引脚。
(2)8个内置1/0功能引脚,如Scl和PLL等引脚,也可编程作为1/0引脚。
因本系统的键盘只需5个按键,数量较少,为减少电路和软件编写的复杂性,不采用矩阵式键盘,而采用独立式键盘即5个按键分别对应5个数字1/0引脚作为输入。
2.7系统的RS--232串行输出部分
系统的RS--232串行通信部分实现温度和噪声等测试数据的串行输出,这通过TMs320F240的串行通信接口SCI来进行。
因为RS一232传输电压准位是士12V的负逻辑信号,因此必须通过电压转换电路,实际连线如图2.7所示。
图2.7Rs一232实际连线图
2.8系统的液晶显示部分
系统的液晶部分采用128x64点阵的自带东芝“T6963C”LCD控制芯片和32KRAM的液晶显示模块OCM12864。
其工作电压Vdd是+SV,所需的负驱动电压Vee=一7.8V由Mxaim的LCD偏置电源芯片MAX749(工作电压是+SV)配合数字电位器的调节来提供,所需的4.IV左右的背光电源(接入图中K和A两端之间)也通过数字电位器来获得。
液晶与TMS32OF240通过查询/忙的握手方式进行指令和数据的发送,硬件接口如图2.8所示。
图2.812864与F240的硬件接口
3温度测控部分的硬件及算法实现
3.1温度测控部分的硬件电路
温度测控部分要求测量两路0一50℃范围内的室内温度,由TMS320F240内部的一个10位ADC模块作A/D转换,再进行后续的恒温控制和输出控温信号的处理。
因此温度测控部分的硬件电路除了起模数转换作用的F240内部10位ADC以外,还应该包括前端调理和后端处理电路。
基于F240内部10位ADC的工作原理和特点以及在温度信号模数转换中的具体设置和工作过程在此不再介绍。
下面针对温度信号的特点、F240内的10位ADC对输入模拟信号的要求以及F24O内的脉宽调变器(PWM)的输出特点,分别介绍温度测量的前端调理电路和后端处理电路的设计和构建。
温度测量的前端调理电路如图3.1:
图3.1温度测量的前端调理电路
温度测量部分的前端调理电路主要用于温度一电压的转换和调理,从而使F24O内部的10位ADC模块能对温度信号作模数转换。
在这里,温度传感器采用PT100型正温度系数的铂热电阻,它测量范围是0℃~600℃,分辨率为0.1。
实际测量时将铂热电阻和合适电阻组成三线制接法电桥来感测温度。
通过低噪音、低温漂、高精度运放0P07对铂热电阻R100三线制接法电桥感测的毫伏级热电势进行差动放大、滤波后,变换成F24O内部的10位ADC模块所能接受的O一+SV的输入模拟电压信号,再进行A/D转换。
温度测量的后端处理电路用于实现PWM波形转换。
两路温度信号经过F24O采用智能PID算法处理后,因为F240内部输出的占空比可调PWM方波幅值为+SV,而功能要求控制固态继电器阀门的温控PWM脉冲的幅值为+24V,因此需要对F240的PWM输出方波进行处理。
在这里,应该采用触发器实现脉冲波形的转换。
为了保证输出精度并抗干扰,F240输出的两路幅度均为+SV的温控PWM方波应该先经过起吸收电流作用的两个非门SN74LS04N、避免前后级干扰的光电隔离模块和缓冲级的低噪音、低温漂、高精度运放OP07后,再采用双电压比较器LM393进行脉冲波形转换。
温度测量的后端处理电路如图3.2:
图3.2PWM波形调理部分
3.2温度的智能PID控制算法及实现方案
在空调系统的温度过程控制中,被控对象即室内温度场的热惯性大,时滞、时变、纯滞后及非线性的特征明显,而较大的纯滞后可引起系统不稳定;而且它与空调器进行热交换的工况相当复杂,系统精确数学模型难以确定,存在着很多不确定的因素(如外界气温的变化,空调区域内人员的走动,空气调节过程的高度非线性,空调调节执行器的非线性运行特征,设备的老化和更换等)都会对系统形成很大的干扰,这些特点都大大增加了空调温度过程控制在算法和实际硬件执行器上的难度。
另外,空调的温度过程控制目的是为了给人们提供一个舒适的学习生活环境,这就要求温度控制器的响应速度尽可能的快,并且输出的变化尽可能的稳定,以最大程度的满足人们对舒适感的要求;而且当环境参数和系统参数变化较大时,控制系统仍能平稳运行,尽量减少温控阀的动作次数,这样一方面可以延长其使用寿命,另一方面可减少居室噪音;同时要求控制器进行恒温控制(在士4℃范围内)时稳态误差不超过0.70度.
考虑把传统PID控制和模糊逻辑控制结合起来,采用一种新型的模糊逻辑控制FLC在线调整PID参数来实现闭环连续控制的方案,进行空调测试环境中温度的智能自适应控制。
自适应控制应比相同情况下的非自适应控制系统(如传统PID控制或常规FLC控制)更具鲁棒性。
这样既克服了依赖于数学模型的传统PID难以整定合适参数的弊端,又避免了单纯模糊逻辑控制FLC可能达不到稳态误差不超过0.7℃的要求以及会出现颤振现象等弱点;既能发挥FLC响应速度快,能根据测试环境和系统工作条件的变化灵活调整PID参数的优点,又能利用带有积分()I调节的PID稳定精度高的特点,进一步完善了PID控制器的性能,可以达到经典控制理论难以达到的预期的“满意控制”而非最佳控制。
该方案的原理框图如图3.3:
图3.3模糊逻辑在线调整PID的原理
4系统的软件编程和实现
4.1系统的软件设计方案
系统软件流程如图4.1所示,采用模块化结构,功能模块包括初始化子程序、噪声信号16点FFT及计权修正子程序、温度信号智能PID脉宽调变波形输出子程序、数据显示子程序及SCI通信子程序。
软件采用C语言编写,在TI的DSPCodeComposer下编译和调试。
上电开始,主程序首先调用F240功能配置和外设初始化子程序,然后等待按键的输入。
如有按键,则转到相应的功能模块。
在执行功能子程序前必须先复位看门狗定时器WD,在它溢出前清除其计时内容,目的是若程序受干扰跑飞超过一段时间而未将看门狗计时器内容清除,即可产生DSP的硬件复位操作,避免“死机”过长。
考虑系统的实时性要求,这里设定WD计时时间为1秒。
图4.1主程序流程图
4.2TMS320F240初始化子程序
TMS320F240初始化子程序对F240进行功能配置,以便下面执行各个按
键对应的功能模块。
关于F240的功能配置,在第三章己经根据系统所要实现
的功能进行过具体介绍,以下给出具体程序和注解。
voidinitDSP(void)
{
WDCR=Ox6FH;/*先禁止看门狗,设置看门狗计时为1秒*/
CKCRO=0x41H;/*先禁止PLL,使SYSCLK=CPUCLK/2*/
CKCR1=OxBBH;/*PLL输入时钟IOMHZ}CPUCLK=20MHZ*/
CKCRO=0x81H;/*使用PLL,锁定己设置的频率*/
SYSCR=Ox40COH;/*设定CLKOUT引脚输出CPUCLK*/
WSGR=Ox0007H;/*产生等待状态,协调DSP与慢速外设通信*/
OCRA=Ox180BH;/*设定端口A.B的ADCINB,ADCINO,ADCINI,T1PWM/T1CMP,T2PWMlT2CMP引脚*/
OCRB=Ox0000H;/*设定除XF和/BIO外,端口C其它为普通I/O*I
PADATDIR=Ox0000H;
PBDATDIR=OxFF00H;
PCDATDIR=Ox0000H;/*设定IOPCO,IOPC4,IOPCS.IOPC6,IOPC7引脚为输入引脚*/
}
4.3按键处理和复位看门狗子程序
上述功能配置的OCRB=Ox0000H和PCDATDIR=Ox0000H两条语句已完成键盘按键资源设置,以下是开关时的消抖处理,具体做法是加上延时消除机械跳动,及等待按键松开再进行其它操作,如下面程序所示:
if(PCDATDIR&OxEF00H)/*有2号键按下*/
{count=100;while(count>0)count--;/*延时消除机械跳动’/
noise(void);/*转到2号键对应的功能模块*/
while(!
(PCDATDIR&OxFF00H))/*检查是否已经松开按键*/
{count=100;while(count>0)count--;}
}
对其它按键的处理与上面完全类似。
对看门狗控制寄存器(WDCR)设定了计时时间为1秒以及响应了计时操作,必须在每一个程序分支开头处复位看门狗:
voidKICK_DOG(void)
{WDKEY=Ox55H;WDKEY=OxAAH;}
仅有SSH之后跟随AAH才能清除看门狗计时器WDCNTR的内容,写入其他任何值都将导致系统复位。
在每段执行时间不超过1秒的程序中,以及程序里的等待状态中均插入上述KICKDOG子程序,防止WD溢出复位系统。
4.4温度信号PWM方波输出子程序
以20ms内占空比可调的温控PWM方波输出由F240的计时比较(TimeCMP)/脉宽调变(PWM)器来实现。
程序实现思想是:
首先根据第对计时比较(TimeCMP)/脉宽调变(PWM)器进行设置;程序每隔5秒(温度信号的采样间隔)获取一次温度AlD数值就用于智能PID算法,得出实际的PID参数代入增量型PID算式,求得本次以具体温度表示的控制增量△u(t):
为了根据不同的△u(t)进行PWM定脉调宽,把控温脉宽分成5档:
0%即关断(pz)、较小(ps)、中等(pm)、较大(pb),100%即全通(pw);中等脉宽用于维持恒温,较小和较大脉宽分别取0%和100%脉宽与中等脉宽的和平均;通过实际经验把△u(t)的取值范围划分成5个区间(t1,t2,t3,t4,t5)}分别对应5档脉宽;当△u(t)落入某个区间就取对应的脉宽值写入比较寄存器TxCMPR(x=1,2);计时器Tx通过在上数计时过程中与预设在TxCMPR(x=1,2)及TxPR(x=1,2)的内容比较,一旦匹配就改变TxCMP/TxPWM(x=1,2)引脚输出的PWM方波为低电平(当计时值二TxCMPR(x=1,2))或高电平(当计时值=0或TxPR(x=1,2)),从而完成温度控制的智能PWM波形输出。
以下给出部分程序代码和注解以及仿真实验PWM输出波形。
voidPWM_OUT()
{initDSP();/*DSP初始化,设置PLL模块*/
OCRB=Ox0000H;/*设定端口C为一般IIO*I
disable();/*禁止所有中断*/
KICK_DOG();
IFR=OxFFFFH;/*清除所有中断标志*/
IMR=Ox20H;/*使能INT6中断*/
initEV();/*设置事件管理EV模块*/
enable();/*使能所有中断*/
while
(1){};/*等待产生AID转换中断*/
}
voidinitEV()/*事件管理EV模块设置子程序*/
{TICNT=0;/*初始化计数寄存器*/
T1CMPR=0;/*初始化定时L匕较寄存器*/
T1CON=Ox130AH;/*内部基本计时=CPUCLK/8=0.4us,连续上数*/
T1PR=50000;/*T1周期=50000*0.4us=20ms*/
GPTCON=Ox0055H;}/*响应TxCMP}PWM输出低有效*/
PWM_ISR()
{tout=PID(temp);/*作智能PID运算*/
case(tout)/*计算输出PWM波的占空比,并加载
{t1;T1CMPR=pw;break;/*到计时比较寄存器里*/
t2:
T1CMPR=pb;break;
t3:
T1CMPR=pm;break;
t4:
T1CMPR=ps;break;
t5:
T1CMPR=pz;break;}}
在实际硬件调试里,从示波器己经可以观察到PWM波形,但由于使用的DSP硬件仿真器TDS510不支持波形上传,所以把上述F240的PWM波形产生器工作过程在硬件仿真软件MAX+plusII进行仿真实验,图4-2就是对应的FLC在线调整PID的恒温控制PWM输出仿真实验结果,图中的width是计算得到的每个控制周期(5s)的脉宽值,addrctr1指示的是20ms的定脉PWM周期数,而dir对应的就是实际的占空比可调的PWM输出波形。
4.5液晶显示子程序
液晶显示子程序包括对T6963C控制芯片的初始化和应用程序。
通过T6963C的指令系统可完成数据显示功能。
DSP与T6963C通讯时要先检查T6963C的状态,不忙才可以进行操作,忙则等待。
T6963C的其它操作特点和指令系统可查阅相关数据手册。
液晶OCM12864显示点阵是128X64,因为本系统只需要显示8*8的字符和个别汉字,所以显示尺寸是8行16列,使用OCM12864的片内字符产生器CGROM和CGRAM便可,无需外扩。
液晶数据口为dataportxbyte[Ox8000h],命令口是comportxbyte[Ox8001h],以下给出液晶显示部分关键程序。
液晶状态查询函数:
voidrwcheck()/*数据和指令读写允许查询*/
{unsignedcharsta;do{sta=comport&Ox03h;}while(sta!
=0x03h);}
voidautorcheck()/*数据自动读允许查询*/
{unsignedcharsta;do{sta=comport&Ox04h;}while(sta!
=Ox04h);}
voidautowcheck()/*数据自动写允许查询*/
{unsignedcharsta;do{sta=comport&Ox08h;}while(sta!
=Ox08h);}
DSP与T6963C通讯的函数:
outdata(dat)/*DSP向数据口发数据*/
{rwcheck();dataport=dat;}
outcoml(command)/*DSP向命令口写带一个参数的命令*/
{rwcheck();comport=command;}
outcom2(dat,command)/*DSP向命令口写带两个参数的命令*/
{outdata(dat);outcoml(command);}
outcom3(datal,data2,command)/*DSP向命令口写带三个参数的命令*/
{outdata(datal);outdata(data2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP 空调 综合 测控 研究 改进