📄 基于tms320f240的pid和pwm温度控制_老古开发网文章.htm
字号:
<TABLE class=tableMain cellSpacing=1 cellPadding=3>
<TBODY>
<TR>
<TD class=table vAlign=top bgColor=#ffffff> </TD></TR>
<TR>
<TD class=table vAlign=top bgColor=#ffffff>
<TABLE style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" cellSpacing=5
cellPadding=5 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV align=center><B><FONT
lang=ZH-CN>基于TMS320F240的PID和PWM温度控制</FONT></B></DIV></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=5 cellPadding=5 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top></TD></TR></TBODY></TABLE>
<TABLE style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word" cellSpacing=5
cellPadding=5 width="100%">
<TBODY>
<TR>
<TD><FONT lang=ZH-CN><SPAN>
<P><FONT lang=ZH-CN>
<P><B><SPAN>郭少朋,吴岚军,唐小萍,张春野</SPAN></B><SPAN><o:p></o:p></SPAN></P>
<P><B><SPAN>(中科院电工所,北京<SPAN>100080)</SPAN></SPAN></B><SPAN><BR
style="mso-special-character: line-break"><BR
style="mso-special-character: line-break"><o:p></o:p></SPAN></P>
<P><B><SPAN> 摘 要</SPAN></B><SPAN>:介绍用<SPAN>PWM方法进行精确控温的控制电路及主电路结构,以及用C语言编写的PID&PWM的函数。<BR> <B>关键词</B>:数字信号处理器;控温;热电模块<B><o:p></o:p></B></SPAN></SPAN></P>
<P><B><SPAN><BR>PID&PWMTemperature Control Based on
TMS320F240</SPAN></B><SPAN><o:p></o:p></SPAN></P>
<P><SPAN> <SPAN>GUOShao-peng,WULan-jun,TANGXiao-ping,ZHANGChun-ye<o:p></o:p></SPAN></SPAN></P>
<P><SPAN> (<SPAN>Institute of Electrical Engineering,Chinese
Academy of Science,<BR>Beijing
100080,China)<o:p></o:p></SPAN></SPAN></P>
<P><SPAN><BR> <B>Abstract:</B>Precisetemperature controlusing PWM
method and main circuit areintroduced along with PID&PWMfunctionsin
Clanguage.<BR> <B>Key words:</B>DSP;temperature
control;thermoelectric module<BR
style="mso-special-character: line-break"><BR
style="mso-special-character: line-break"><o:p></o:p></SPAN></P>
<P><B><SPAN>1 系统组成</SPAN></B><SPAN><BR> 系统采用Pt100作为敏感元件。温度调理芯片AD7711对其施加激励电流,Pt100两端的电压差分输入AD7711,经滤波、放大、A/D后,串行送至TMS320F240。TMS320F240在计数器周期中断的控制下以一定的频率读取温度的A/D码,并进行数字滤波得到温度数据。控制器TMS320F240在接收到串口的控温指令和温度数据后,把采集到的实时温度与控温要求的温度相比较进行PID计算得出控制量,用该控制量去控制主电路的电流方向和PWM输出。电流方向决定对控温对象加热还是制冷,PWM的输出经光耦隔离去驱动功率MOSFET从而达到控制热电模块加热或调节制冷功率的目的。PID参数也可以通过串行口进行实时修改。<o:p></o:p></SPAN></P>
<P><SPAN><o:p><FONT lang=ZH-CN> <IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="基于TMS320F240的PID和PWM温度控制_老古开发网文章.files/2006726_224134.jpg"
border=0></FONT></o:p></SPAN></P><SPAN><o:p>
<P><B><SPAN><FONT
lang=ZH-CN>1</FONT></SPAN></B><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>1</FONT></SPAN></B><B><SPAN> 测温电路</SPAN></B><SPAN><BR></SPAN><SPAN> 测温的敏感元件为</SPAN><SPAN><FONT
lang=ZH-CN>Pt100</FONT></SPAN><SPAN>,温度调理芯片为</SPAN><SPAN><FONT
lang=ZH-CN>AD7711</FONT></SPAN><SPAN>,滤波器设定的截止频率为</SPAN><SPAN><FONT
lang=ZH-CN>100Hz</FONT></SPAN><SPAN>,可编程运算放大器设定</SPAN><SPAN><FONT
lang=ZH-CN>64</FONT></SPAN><SPAN>倍,</SPAN><SPAN><FONT
lang=ZH-CN>A</FONT></SPAN><SPAN>/</SPAN><SPAN><FONT
lang=ZH-CN>D</FONT></SPAN><SPAN>转换设定为</SPAN><SPAN><FONT
lang=ZH-CN>16</FONT></SPAN><SPAN>位,该芯片以串行方式在微处理器的控制下工作。处理器对</SPAN><SPAN><FONT
lang=ZH-CN>AD7711</FONT></SPAN><SPAN>读数的频率为</SPAN><SPAN><FONT
lang=ZH-CN>20Hz</FONT></SPAN><SPAN>,该采样频率在处理器定时器</SPAN><SPAN><FONT
lang=ZH-CN>T3</FONT></SPAN><SPAN>周期中断的控制下采样温度,并在该中断处理中调用</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>处理函数,计算控制量。</SPAN><SPAN><BR><B><FONT
lang=ZH-CN>1</FONT></B></SPAN><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN> 微处理器电路</SPAN></B><SPAN><BR></SPAN><SPAN> </SPAN><SPAN><FONT
lang=ZH-CN>DSP</FONT></SPAN><SPAN>有三个通用定时器,</SPAN><SPAN><FONT
lang=ZH-CN>12</FONT></SPAN><SPAN>路</SPAN><SPAN><FONT
lang=ZH-CN>PWM</FONT></SPAN><SPAN>输出,四路捕获单元,一个正交编码脉冲电路,以上片内外设都有相应的中断向量入口地址。</SPAN><SPAN><BR></SPAN><SPAN> 该控制器具有完整的晶振、复位电路,通常在电阻电容复位方式的基础上加上门电路驱动以保证复位可靠。对于</SPAN><SPAN><FONT
lang=ZH-CN>DSP</FONT></SPAN><SPAN>的上电复位,用引脚</SPAN><SPAN><FONT
lang=ZH-CN>RS(35)</FONT></SPAN><SPAN>或</SPAN><SPAN><FONT
lang=ZH-CN>PORESET</FONT></SPAN><SPAN>(</SPAN><SPAN><FONT
lang=ZH-CN>41</FONT></SPAN><SPAN>)都可以。外扩</SPAN><SPAN><FONT
lang=ZH-CN>16KRAM</FONT></SPAN><SPAN>在调试时下载程序,</SPAN><SPAN><FONT
lang=ZH-CN>RAM</FONT></SPAN><SPAN>片选线应接外部程序片选线</SPAN><SPAN><FONT
lang=ZH-CN>PS</FONT></SPAN><SPAN>(</SPAN><SPAN><FONT
lang=ZH-CN>131</FONT></SPAN><SPAN>),读写片选线分别接</SPAN><SPAN><FONT
lang=ZH-CN>W/R</FONT></SPAN><SPAN>和</SPAN><SPAN><FONT
lang=ZH-CN>WE(1)</FONT></SPAN><SPAN>。</SPAN><SPAN><BR></SPAN><SPAN> </SPAN><SPAN><FONT
lang=ZH-CN>F240</FONT></SPAN><SPAN>的事件管理(</SPAN><SPAN><FONT
lang=ZH-CN>EVM</FONT></SPAN><SPAN>)有三个通用定时器,作为</SPAN><SPAN><FONT
lang=ZH-CN>PWM</FONT></SPAN><SPAN>工作的时间基准。</SPAN><SPAN><FONT
lang=ZH-CN>PWM7</FONT></SPAN><SPAN>~</SPAN><SPAN><FONT
lang=ZH-CN>9</FONT></SPAN><SPAN>是三个比较单元的输出,设计中选用</SPAN><SPAN><FONT
lang=ZH-CN>T2</FONT></SPAN><SPAN>为时基;计数方式采用连续增减计数模式,</SPAN><SPAN><FONT
lang=ZH-CN>T2</FONT></SPAN><SPAN>起三角波发生器的作用。</SPAN><SPAN><FONT
lang=ZH-CN>T3</FONT></SPAN><SPAN>定时器控制温度采样、</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>计算的频率;</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>计算结果与</SPAN><SPAN><FONT
lang=ZH-CN>T2</FONT></SPAN><SPAN>的三角波数据比较,输出</SPAN><SPAN><FONT
lang=ZH-CN>PWM7</FONT></SPAN><SPAN>/</SPAN><SPAN><FONT
lang=ZH-CN>8</FONT></SPAN><SPAN>/</SPAN><SPAN><FONT
lang=ZH-CN>9</FONT></SPAN><SPAN>去控制三路热电模块。</SPAN><SPAN><BR></SPAN><SPAN> </SPAN><SPAN><FONT
lang=ZH-CN>DSP</FONT></SPAN><SPAN>用一片</SPAN><SPAN><FONT
lang=ZH-CN>MAX232</FONT></SPAN><SPAN>来完成电平转换,与</SPAN><SPAN><FONT
lang=ZH-CN>PC</FONT></SPAN><SPAN>串口相连(三线方式)。对于</SPAN><SPAN><FONT
lang=ZH-CN>DB9</FONT></SPAN><SPAN>串口,</SPAN><SPAN><FONT
lang=ZH-CN>5</FONT></SPAN><SPAN>脚公用地直接相连,用以发送、接收的</SPAN><SPAN><FONT
lang=ZH-CN>3</FONT></SPAN><SPAN>、</SPAN><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN><SPAN>脚交叉相连。</SPAN><SPAN><BR><B><FONT
lang=ZH-CN>1</FONT></B></SPAN><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>3</FONT></SPAN></B><B><SPAN> 主电路</SPAN></B><SPAN><BR></SPAN><SPAN> 电路工作时,主桥臂</SPAN><SPAN><FONT
lang=ZH-CN>4</FONT></SPAN><SPAN>个</SPAN><SPAN><FONT
lang=ZH-CN>MOSFET</FONT></SPAN><SPAN>控制热电模块电流方向,从而控制对温控对象加热还是制冷。经温度</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>计算后,给定的三路</SPAN><SPAN><FONT
lang=ZH-CN>PWM</FONT></SPAN><SPAN>输出波经光耦、</SPAN><SPAN><FONT
lang=ZH-CN>MOS</FONT></SPAN><SPAN>-</SPAN><SPAN><FONT
lang=ZH-CN>FET</FONT></SPAN><SPAN>驱动器,去控制各支路的功率强度;三路之间的脉宽相对关系相对控温对象沿长度方向上的温度均一性进行调整。</SPAN></P>
<P><SPAN></SPAN></P><SPAN>
<P><B><SPAN><FONT lang=ZH-CN><IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="基于TMS320F240的PID和PWM温度控制_老古开发网文章.files/2006726_224148.jpg"
border=0></FONT></SPAN></B></P>
<P><B><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN> 软件</SPAN></B><B><SPAN><BR><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>1</FONT></SPAN></B><B><SPAN> </SPAN></B><B><SPAN><FONT
lang=ZH-CN>DSP</FONT></SPAN></B><B><SPAN>中断的使用</SPAN></B><SPAN><BR></SPAN><SPAN> </SPAN><SPAN><FONT
lang=ZH-CN>TMS320F240</FONT></SPAN><SPAN>的中断向量表位于</SPAN><SPAN><FONT
lang=ZH-CN>0000</FONT></SPAN><SPAN>~</SPAN><SPAN><FONT
lang=ZH-CN>003F</FONT></SPAN><SPAN>地址,每个中断占两个字的空间,所以中断号</SPAN><SPAN><FONT
lang=ZH-CN>N</FONT></SPAN><SPAN>的中断入口地址为</SPAN><SPAN><FONT
lang=ZH-CN>N</FONT></SPAN><SPAN>*</SPAN><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN><SPAN>。当中断发生时,程序作相应的环境保护后,跳转至相应的中断入口地址。在该中断地址烧写跳转至中断处理函数的语句,如:</SPAN><SPAN><FONT
lang=ZH-CN>“B_c_int3”</FONT></SPAN><SPAN>。可以单独建一中断向量表跳转汇编文件,并以指令</SPAN><SPAN><FONT
lang=ZH-CN>“</FONT></SPAN><SPAN>.</SPAN><SPAN><BR><FONT
lang=ZH-CN>sect<SUP>″</SUP></FONT></SPAN><SPAN>.</SPAN><SPAN><FONT
lang=ZH-CN>vecs<SUP>″</SUP>”</FONT></SPAN><SPAN>将该文件的内容汇编至</SPAN><SPAN><FONT
lang=ZH-CN>vecs</FONT></SPAN><SPAN>段,在</SPAN><SPAN><FONT
lang=ZH-CN>cmd</FONT></SPAN><SPAN>文件中将</SPAN><SPAN><FONT
lang=ZH-CN>vecs</FONT></SPAN><SPAN>段装载入程序区(</SPAN><SPAN><FONT
lang=ZH-CN>PAGE0</FONT></SPAN><SPAN>)的</SPAN><SPAN><FONT
lang=ZH-CN>0000</FONT></SPAN><SPAN>开始的地址。完成上述操作后,当中断发生时就可以跳转入中断处理函数进行处理。为了使中断能发生,需要打开相应中断源的屏蔽位。</SPAN><SPAN><FONT
lang=ZH-CN>F240</FONT></SPAN><SPAN>中的可屏蔽硬件中断的屏蔽位有三级:一位于</SPAN><SPAN><FONT
lang=ZH-CN>ST0</FONT></SPAN><SPAN>中的</SPAN><SPAN><FONT
lang=ZH-CN>INTM</FONT></SPAN><SPAN>位,用以屏蔽所有可屏蔽硬件中断,二位于数据存储区</SPAN><SPAN><FONT
lang=ZH-CN>0004</FONT></SPAN><SPAN>地址的</SPAN><SPAN><FONT
lang=ZH-CN>IMR</FONT></SPAN><SPAN>,用以屏蔽</SPAN><SPAN><FONT
lang=ZH-CN>INT1</FONT></SPAN><SPAN>~</SPAN><SPAN><FONT
lang=ZH-CN>INT6</FONT></SPAN><SPAN>,三位于片内外设的具体事件控制寄存器中。例如,希望串口接收</SPAN><SPAN><FONT
lang=ZH-CN>PC</FONT></SPAN><SPAN>数据中断发生:</SPAN></P>
<P><SPAN><A></SPAN></P><SPAN>
<P><B><SPAN><FONT lang=ZH-CN><IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="基于TMS320F240的PID和PWM温度控制_老古开发网文章.files/2006726_224213.jpg"
border=0></FONT></SPAN></B></P>
<P><B><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN> </SPAN></B><B><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN></B><B><SPAN>计算输出控制</SPAN></B><SPAN><BR></SPAN><SPAN> 加热及致冷元件采用</SPAN><SPAN><FONT
lang=ZH-CN>Peltier</FONT></SPAN><SPAN>原理的半导体热电模块。该模块在一定电流下,一端面加热另一端面制冷,当电流反向时,冷热面互换。由于执行元件本身的非线性特点,随温差增大有效输出功率急剧变化。假定外界散热良好,即温差的一端为恒温,仪器运行在不同的控温点时考虑采用不同的</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>参数,设计中分段采用几组不同的参数。输出控制量</SPAN><SPAN><FONT
lang=ZH-CN>F</FONT></SPAN><SPAN>为</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>各环节分别计算的控制量之和:</SPAN><SPAN><FONT
lang=ZH-CN>F</FONT></SPAN><SPAN>=</SPAN><SPAN><FONT
lang=ZH-CN>fp</FONT></SPAN><SPAN>+</SPAN><SPAN><FONT
lang=ZH-CN>fi</FONT></SPAN><SPAN>+</SPAN><SPAN><FONT
lang=ZH-CN>fd</FONT></SPAN><SPAN>。-</SPAN><SPAN><FONT
lang=ZH-CN>1≤F≤1</FONT></SPAN><SPAN>,|</SPAN><SPAN><FONT
lang=ZH-CN>F</FONT></SPAN><SPAN>|对应</SPAN><SPAN><FONT
lang=ZH-CN>PWM</FONT></SPAN><SPAN>的占空比。</SPAN><SPAN><FONT
lang=ZH-CN>F</FONT></SPAN><SPAN><</SPAN><SPAN><FONT
lang=ZH-CN>0</FONT></SPAN><SPAN>主电路</SPAN><SPAN><FONT
lang=ZH-CN>MOS3</FONT></SPAN><SPAN>、</SPAN><SPAN><FONT
lang=ZH-CN>MOS4</FONT></SPAN><SPAN>导通,电流反向;</SPAN><SPAN><FONT
lang=ZH-CN>F</FONT></SPAN><SPAN>></SPAN><SPAN><FONT
lang=ZH-CN>0</FONT></SPAN><SPAN>主电路</SPAN><SPAN><FONT
lang=ZH-CN>MOS1</FONT></SPAN><SPAN>、</SPAN><SPAN><FONT
lang=ZH-CN>MOS2</FONT></SPAN><SPAN>导通,电流正向。设置定时器</SPAN><SPAN><FONT
lang=ZH-CN>3</FONT></SPAN><SPAN>的周期中断</SPAN><SPAN><FONT
lang=ZH-CN>50ms</FONT></SPAN><SPAN>作为</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>调节频率。</SPAN></P>
<P><SPAN><A></SPAN></P>
<P><SPAN><A><IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="基于TMS320F240的PID和PWM温度控制_老古开发网文章.files/2006726_224229.jpg"
border=0><IMG
style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; BORDER-RIGHT-COLOR: #000000"
src="基于TMS320F240的PID和PWM温度控制_老古开发网文章.files/2006726_224243.jpg"
border=0></SPAN></P><SPAN>
<P><B><SPAN><FONT
lang=ZH-CN>2</FONT></SPAN></B><B><SPAN>.</SPAN></B><B><SPAN><FONT
lang=ZH-CN>3</FONT></SPAN></B><B><SPAN> </SPAN></B><B><SPAN><FONT
lang=ZH-CN>PWM</FONT></SPAN></B><B><SPAN>电路的使用</SPAN></B><SPAN><BR></SPAN><SPAN> 设置完计数器、比较值、端口电平有效性后,启动计数器</SPAN><SPAN><FONT
lang=ZH-CN>T2</FONT></SPAN><SPAN>;当计数器与比较值相等时,端口输出电平作相应变化。经</SPAN><SPAN><FONT
lang=ZH-CN>PID</FONT></SPAN><SPAN>计算不断改变比较匹配值</SPAN><SPAN><FONT
lang=ZH-CN>SCM</FONT></SPAN><SPAN>-</SPAN><SPAN><FONT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -