1 C5402DSP的应用特点
尽管从一般意义上讲, 基于MCU(单片机)与DSP(数字信号处理器)这两类器件的系统都有各自的用途,但现在很多新兴的嵌入式应用,尤其是那些大型的复杂系统,在系统内同时实现信号与控制两种处理,它们既需要DSP的功能又需要MCU的功能。笔者正是基于这种尝试,在PID温度控制系统中,将DSP 应用到MCU的应用场合,取得了较好的控制效果。随着DSP(数字信号处理器)制造技术的发展,其成本已经下降到较低水平;而DSP的处理速度可满足控制的实时性需求。本设计中选用了性价比高、运算能力强、实时性好的TMS320C5402 DSP来实现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写数据子程序
TX0 STM #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读数据子程序
RX STM #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
STL A,TMP
PORTW TMP,7H
STM #PCR0,SPSA0
LD McBSP0,A
AND #0001H,A
BC RX1, ANEQ
RSBX C
B RX2
RX1 SSBX C
RX2 ROR B
LD #02H,A
STL A,TMP
PORTW TMP,7H
RET
3.2 PID算法在DSP上的实现