0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:微计算机信息 作者:肖洪兵,李冬梅, 2021-03-23 11:49 次阅读

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

1 C5402DSP的应用特点

尽管从一般意义上讲,基于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)来控制加热/降温装置进行工作,达到控温的效果。

图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.2 PID算法在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 结语

在过去的设计中我们选用了80C51MCU实现了PID温度控制,但由于单片机的运算功能较差,程序实现的效率不够高,实时性不好。本设计中由于选用了性价比高、运算能力强、实时性好的TMS320C5402DSP来实现PID温度控制算法,取得了较好的控制效果。目前,许多MCU制造厂家在它们的体系结构中增加或扩充了各种DSP功能,例如增加了MAC(乘法累加)指令等。同样,一些DSP体系结构也增加了像集成的外围设备、可编程的外部芯片选择连线、中断驱动的I/O、定时器以及较大的外部存储器等功能部件。将来,对复杂的应用系统,可能不会再明确地区分DSP应用还是MCU应用。因此,DSP与MCU融合的时代即将到来。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    552

    文章

    7962

    浏览量

    348195
  • 温度传感器
    +关注

    关注

    48

    文章

    2902

    浏览量

    155868
  • 控制系统
    +关注

    关注

    41

    文章

    6537

    浏览量

    110443
收藏 人收藏

    评论

    相关推荐

    基于DS18B20和LabVIEW的多点温度测量系统

    今天我们一起完成一个比较完整的作品,基于DS18B20和LabVIEW的多点温度测量系统。我重点介绍实现多点DS18B20
    发表于 09-26 10:28 1726次阅读

    DS18B20 数字温度计特点

    一.DS18B20特点 DS18B20 数字温度计提供12位(二进制)温度读数的数字型传感器。传感器仅需要单总线接口与CPU连接,实现信号送
    的头像 发表于 09-11 11:19 2635次阅读
    <b class='flag-5'>DS18B20</b> 数字<b class='flag-5'>温度</b>计特点

    求个基于AT89S51和DS18B20温度控制系统仿真

    {:2:}急用 基于AT89S51和DS18B20温度控制系统的proteus 系统
    发表于 04-09 22:48

    DS18B20温度检测系统中的应用

      摘要:该论文结合实际使用经验,完成了DS18B20数字温度传感器在基于单片机的温度检测系统中的应用。本设计有效的提高了控制系统的实时性改
    发表于 11-06 15:09

    怎么采用DS18B20和NiosⅡ设计的远程温度控制系统

    采用AT89S51系列单片机、传感器DS18B20和NiosⅡ设计的远程温度控制系统具有结构新颖、电路简单、体积小和控制方便等优点。
    发表于 04-30 06:09

    DSP~il DS18B20温度测量系统

    本文简要介绍了单总线数字温度传感器DS18B20的特性及工作原理,给出了DS18B20与TMS320LF2407A 的接线图并且非常详细介绍了如何用C语言完成比较精确的软件延时程序,从
    发表于 07-28 09:41 73次下载

    基于DS18B20测温的单片机温度控制系统

    介绍了以AT89S52单片机为控制核心的温度控制系统系统采用数字温度计芯片DS18B20构成测
    发表于 12-19 16:47 799次下载

    ds18b20电路图

    ds18b20电路图,C语言源程序,ds18b20温度计.PRJPCB,DS18B20温度计.M
    发表于 03-03 10:47 624次下载
    <b class='flag-5'>ds18b20</b>电路图

    DS18B20完成温度检测的技巧

    介绍了DS18B20 温度传感器 的结构和特点以及用DS18B20温度传感器进行温度检测的方法和技巧.
    发表于 08-23 10:44 190次下载
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>温度</b>检测的技巧

    基于ARM和DS18B20温度监测系统

    基于ARM和DS18B20温度监测系统使用SAMSUNG公司的32位ARM微控制器S3C2440作为数据采集单元, 数字
    发表于 11-03 11:21 339次下载

    DS18B20温度显示报警控制设计

    本文设计了一种基于AT89C51 单片机与DS18B20温度控制系统。该设计通过AT89S52 单片机驱动数字温度传感器
    发表于 12-17 00:24 696次下载
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>显示报警<b class='flag-5'>控制</b>设计

    DS18B20_LCD1602_AT24C02智能温度控制系统设计

    DS18B20+LCD1602+AT24C02智能温度控制系统
    发表于 01-11 15:55 25次下载

    基于DS18B20数字温度报警系统的设计

    基于SST单片机的DS18B20数字温度报警系统
    发表于 02-08 02:34 20次下载

    基于DS18B20温度测量系统_杜海龙

    基于DS18B20温度测量系统_杜海龙
    发表于 03-19 11:45 15次下载

    ds18b20的特性_ds18b20温度传感器应用

    本文首先介绍了ds18b20的特性,其次介绍了DS18B20工作原理,最后介绍了ds18b20温度传感器应用。
    发表于 04-24 09:10 1.1w次阅读
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>温度</b>传感器应用