0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于TMS320C5402DSP芯片和DS18B20实现PID温度控制系统的设计方案

基于TMS320C5402DSP芯片和DS18B20实现PID温度控制系统的设计方案

来源: elecfans
2021-03-24
类别:工业控制
eye 18
文章创建人 拍明

原标题:基于C5402DSP和DS18B20实现PID温度控制系统的设计方案

  作者:肖洪兵,李冬梅,李朝晖

  1C5402DSP的应用特点

  尽管从一般意义上讲,基于MCU(单片机)与DSP(数字信号处理器)这两类器件的系统都有各自的用途,但现在很多新兴的嵌入式应用,尤其是那些大型的复杂系统,在系统内同时实现信号与控制两种处理,它们既需要DSP的功能又需要MCU的功能。笔者正是基于这种尝试,在PID温度控制系统中,将DSP应用到MCU的应用场合,取得了较好的控制效果。随着DSP(数字信号处理器)制造技术的发展,其成本已经下降到较低水平;而DSP的处理速度可满足控制的实时性需求。本设计中选用了性价比高、运算能力强、实时性好的TMS320C5402DSP来实现PID温度控制算法。C5402DSP相对于单片机的主要优势在于:首先,C5402DSP采用的是哈佛结构,有多组总线分别连接到程序存储空间和数据存储空间结构,片内有三组16bit数据总线CB、DB、EB和一组程序总线PB以及对应的4组地址线CBA、DBA、EBA、PBA;其次,具有硬件乘加器,包括一个17*17bit乘法器和一个40bit专用加法器,可以在单周期内完成乘、加运算各一次,运算能力很强;还有,采用了流水线技术,指令具有6级流水线,相对于单片机而言,速度大大提高;另外,还具有串行口和并行口等外设,可满足控制的输入输出要求。

  2系统硬件结构与工作原理

  系统的硬件结构如图1所示。本设计主要分为温度采集和PID控制两部分。DSP检查所得温度是否超过上下限值,若超过则报警并转入相应处理;否则根据所要求的标准温度值计算采集温度与标准值的偏差e(n),转入PID算法程序进行处理,得到输出控制信号y(n),通过y(n)来控制加热/降温装置进行工作,达到控温的效果。

  

基于C5402DSP和DS18B20实现PID温度控制系统的设计


  图1系统结构原理框图

  3软件设计

  本设计主要包括主程序、温度采集子程序、上下限温度值查询子程序、PID子程序等。其中,温度采集子程序和PID子程序是核心,本文将着重介绍。

  3.1温度采集程序

  DSP芯片通过串口0与单总线温度传感器DS18B20的数据线相连,对现场温度进行采集,DSP芯片TMS320C5402通过串口0读出采集到的温度并对它进行滤波处理;通过串口1写中断,调用显示程序进行温度显示。为便于读者参考,下面给出DS18B20的DSP温度读写程序。

  (1)DSP写数据子程序

  TX0STM#PCR0,SPSA0

  STM#0011001000000010B,McBSP0

  RPT#100

  NOP

  STM#PCR0,SPSA0

  STM#0011001000000000B,McBSP0

  RPT#1500

  NOP

  STM#PCR0,SPSA0

  STM#0011001000000010B,McBSP0

  RET

  (2)DSP读数据子程序

  RXSTM#PCR0,SPSA0

  STM#0011001000000010B,McBSP0

  RPT#120

  NOP

  STM#PCR0,SPSA0

  STM#0011001000000000B,McBSP0

  RPT#120

  STM#PCR0,SPSA0

  STM#0011001000000010B,McBSP0

  RPT#120

  NOP

  LD#04H,A

  STLA,TMP

  PORTWTMP,7H

  STM#PCR0,SPSA0

  LDMcBSP0,A

  AND#0001H,A

  BCRX1,ANEQ

  RSBXC

  BRX2

  RX1SSBXC

  RX2RORB

  LD#02H,A

  STLA,TMP

  PORTWTMP,7H

  RET

  3.2PID算法在DSP上的实现

  经典PID控制算法的表达式为:

  y(t)=KP*[e(t)+1/TI*∫e(t)dt+TD*de(t)/dt](3.1)

  式中:

  y(t)—调节器的输出信号

  e(t)—调节器的偏差信号,它等于给定值与测量值之差

  KP—调节器的比例系数

  TI—调节器的积分系数

  TD—调节器的微分时间

  为了用DSP实现上式,必须将其离散化,用数字形式描述为:

  y(n)-y(n-1)=KP[e(n)-e(n-1)]+KI*e(n)+KD[e(n)-2e(n-1)+e(n-2)](3.2)

  其中:

  KI=KP*T/TI;

  KD=KP*TD/T

  T—采样周期

  e(n)—第n次采样的偏差;

  e(n-1)—第n-1次采样时的偏差;

  e(n-2)—第n-2次采样时的偏差。

  由式(3.2)可知,要计算第n次输出值y(n),只要知道y(n-1),e(n)、e(n-1)、e(n-2)即可。

  式(3.2)还可以表示为下式:

  y(n)-y(n-1)=d0*e(n)+d1*e(n-1)+d2*e(n-2)(3.3)

  式中:

  d0=KP(1+T/TI+TD/T)

  d1=-KP(1+2TD/T)

  d2=KP*TD/T

  将式(3.3)代入(3.2)得:

  y(n)=d0*e(n)+d1*e(n-1)+d2*e(n-2)+y(n-1)

  上述式子是典型的乘加算式,而DSP具有专门的乘加指令,在DSP上非常容易实现;所以,该式成为PID算法在DSP上实现的依据。

  在C5402DSP上实现的PID算法程序包括:PID各参量的初始化,计算偏差值e(n),PID算法处理,e(n)、y(n)参数更新等。这些功能在DSP上实现较之单片机而言,显得非常方便。

  在DSP上实现的程序代码如下。

  (1)PID初始化

  startpid:SSBXFRCT;小数方式标志位

  STM#en+1,AR1;取e(n-1)地址送AR1

  RPT#1;重复2次

  MVPD#table,*AR1+;传送初始数据e(n-2),e(n-1)

  STM#yn,AR1;取y(n-1)地址送AR1

  MVPD#table+2,*AR1;传送初始数据y(n-1))

  STM#Kpid,AR1

  RPT#2;重复3次

  MVPD#table+3,*AR1+;传送初始数据d2,d1,d0

  (2)PID算法程序

  STM#en,AR1;取e(n)地址送AR1

  LD@Tx,A;调入温度值

  SUB#TSTD,A;计算温度值与标准值的偏差

  STHA,*AR1+;输入偏差e(n)

  STM#en+2,AR1

  STM#Kpid+2,AR2

  STM#2,AR0

  LD*AR1-,T;e(n-2)送T

  MPY*AR2-,A;d2*e(n-2)

  LTD*AR1-;e(n-1)送T,e(n-1)送e(n-2)

  MAC*AR2-,A;A+d1*e(n-1)

  LTD*AR1+0;e(n)送T,e(n)送e(n-1)

  MAC*AR2+0,A

  ADDA,@yn,A

  STHA,@yn;保存y(n)

  PORTW@yn,PA1

  RET

  4结语


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案