模拟量输出控制器的主要功能是接受PC机和各类通信设备发出的指令信号,通过内部逻辑算法和硬件电路得到相应的模拟量值,用来控制伺服阀的开度,从而控制工艺运行状态。模拟量输出控制器的执行速度、输出精度关系着整个控制系统的控制质量。目前模拟量输出控制器主要是通过单片机和各种专用的芯片/电路,如专用的定时器,D/A转换电路,通信模块等配合实现的。但是由于单片机存在运行速度较慢、数据处理能力较弱以及内部资源不够丰富等固有的缺点,使得利用单片机所得到模拟量输出控制器的性能越来越达不到要求。
为从根本上解决此问题。本文以TI公司DSP芯片TMS320F2801为核心,结合DSP丰富的片内外设功能、流水线结构以及高效的特殊指令等优点,设计出模拟量输出控制器。
一 基于TMS320F280x的模拟量输出控制器的系统方案
数字信号处理系统是以数字信号处理为基础,与通用微处理器相比,DSP有以下优点:
(1)存储器结构:DSP采用哈佛结构,程序和数据存储器在两个分开的空间中,因此取指令和执行能完全重叠运行,进一步提高运行速度和灵活性。
(2)流水线结构:将指令的执行分解为取指令、译码、取操作数和执行等几个阶段。在程序运行过程中,不同指令的不同阶段在时间上是重叠的。流水线结构提高了指令执行的整体速度。
(3)硬件乘法累加单元:DSP处理器适用专门的硬件来实现单周期乘法,并使用累计器寄存器来处理多个乘积的累加,同时DSP的指令集都包含有MAC指令。
(4)零开销循环:DSP有专门支持循环结构的硬件,使得在循环计数、条件转移等循环机制处理时无需花费任何时间。
(5)特殊的寻址方式:DSP支持特殊的寻址方式,从而减小遇到此部分寻址方式时的处理时间。
(6)高效的特殊指令:DSP指令集设计了特殊的DSP指令用于专门的数字信号处理操作。提高指令执行的并行度,加快完成此操作的速度。
(7)丰富的片内外设:根据应用领域的不同,DSP芯片内集成了多种类型的内外设。丰富的内外设提高了处理速度和数据吞吐能力、简化了接口设计,同时降低了系统功耗并节约了电路板空间。
本次设计中应用的芯片为TMS 320F2801。芯片内部具有16kB的Flash, 12kB的SARAM。由于采用哈佛结构、指令流水线操作、硬件乘法/累加器功能以及多种寻址方式使得芯片的操作速度大大增加。芯片提供PLL锁相环模块用来控制DSP内核的工作频率,使得芯片内核的执行速度可达到100Mb/s。同时,TMS320F2801提供丰富的PWM资源,包括6路的EPWM波和2路的APMW波,从而实现8路PWM的模拟量输出功能。
二 模拟量输出控制器的硬件设计与实现
本模拟量输出控制器的系统结构如图1。
系统主要由DSP TMS320F2801、PWM转换D/A电路、自检信号转换电路、电源电路、看门狗电路、CAN接收器等几部分组成。考虑到模拟信号对数字信号的干扰,需要对模拟信号进行隔离,故硬件电路中加入光电耦合电路和高精度线性光耦电路对模拟侧信号和数字侧信号进行隔离。模拟量输出控制器的工作原理如下:控制器通过CAN通信接收到外部设备(包括PC机和支持通信协议的各种设备)下发的输出指令信号,DSP经过逻辑分析和运算设定8路PWM输出,然后通过PWM转换D/A电路得到现场信号所需要的模拟量输出值。同时,控制器会对产生的模拟量输出值进行自检,通过自检信号转换电路传送至DSP的A/D采样通道。这样,形成闭环控制,实时有效地控制模拟量输出信号。
三 电源供电电路的设计
TMS320F2801供电为两部分:内核供电1.8V和外核供电3.3V。芯片对于上电次序有着比较严格的要求,要求内核上电的时间必须提前于或者同时于外核上电的时间。
此次设计中,为满足TMS320F2801的上电要求,电源芯片选用TPS70151带上电次序的双电源管理芯片。TPS70151芯片输入电压为+5V,提供双电源输出,分别为3.3V和1.8V。通过电源管理芯片,用户可通过控制芯片上的SEQ端改变两路电源的上电顺序。在本次设计中,TPS70151芯片的SEQ端上拉,使得Vout2(1.8V)先上电,然后Vout1(3.3V)后上电,从而满足DSP芯片上电顺序的要求。
四 PWM输出产生方式及D/A转换电路的设计
TMS320F2801芯片提供大量外设功能供用户满足不同的要求。通过对芯片内部的增强型脉宽调制模块(EPWM)的设置可得到6路EPWM波形。同时,增强型捕获模块可以产生2路APWM波形。这样,模拟量输出控制器可产生8路PWM输出波形。
本设计中,通过光电耦合芯片将数字侧和模拟侧信号完全隔离。转换后的PWM波形经过RC滤波稳压和电流串联负反馈电路维持负载上的恒定电流。PWM经过二级RC滤波,稳压成平均电压Vi。Vi经过电压跟随电路以及电流串联负反馈电路产生最终的电流输出。
五 DSP及总线扩展电路的设计
由于TMS320F2801芯片上包含35根GPIO口线,其中很大一部分为复用口线。TMS320F2801的GPIO端口为单方向端口,即只能配置为数字量输入功能和数字量输出功能。这样就导致了在实际应用中,GPIO的数量不足带来很大的设计缺陷。故此次设计通过外扩74HC139、74HC245和74HC574来弥补GPIO数量不足的缺点。
六 自检电路的设计
由于模拟量输出控制器是现场回路的中心部件,控制器所提供的输出电流和输出电压的大小和稳定性直接关系着现场用电设备的工作。故对控制器输出的信号的正确性和品质需要进行监测,从而形成闭环控制环节。在此次设计中,外部信号的自检通过TMS320F2801芯片内部自带的A/D通道进行监测。将控制器的输出信号通过线性光耦进行回采,得到与控制器输出信号一致的差分电压。此电压通过芯片内部的A/D通道进行采样,告知控制器内部的DSP处理器当前输出信号的正确性与数值大小。当输出信号发生故障时,采样值也会发生变化,控制器程序进行预设的故障处理程序,告知用户相关报警信息并做出相应的处理。
七 控制器的软件设计
1. 整体软件流程
TMS320F2801的软件在CCS(C2000)编译开发环境编写。CCS(C2000)支持汇编语言和C语言,便于移植和有很强的易读性。
基于DSP芯片的模拟量输出控制器软件开发主要包括4个子模块:初始化模块、通信模块、PWM输出控制模块、自检模块。
程序的软件流程见图2。控制器上电之后,进行控制器的初始化工作。当初始化完成后,控制器进入主循环。CAN通信程序为中断程序,当外部设备下发通信数据时,模拟量输出控制器检测到新的CAN数据产生,引发中断子程序,并将CAN数据进行缓存,中断结束。TMS320F2801判断通信数据是否正确以及数据是否与当前输出数据一致,根据判断的结果,通过PWM电路和D/A转换电路得到与指令信息相符的模拟量信号。在输出模拟量信号之后,通过自检电路采集现场输出端子的信号量值,判断输出信号是否与CAN下发的指令信息相匹配,提供相关的诊断信息和报警信息,并进行相应操作。
2. 初始化模块
控制器的初始化过程主要包括5个部分:初始化变量及寄存器、DSP初始化、冷热启动判断、热启动初始化、看门狗初始化。初始化过程完成对控制器内部硬件电路、DSP芯片的相关参数的设置。
3. CAN通信模块
TMS320F2801芯片具有丰富的外设通信接口,包括CAN、SPI、I2C、SCI。本次设计中,模拟量输出控制器通过CAN通信接口与外部设备相连。对于模拟量输出控制器来说,只要符合CAN通信协议的设备,包括各种仪表和安装CAN驱动的PC机,都能控制模拟量输出控制器输出信号的大小,并接收控制器的报警信息。
在CAN通信的设计中,应注意以下几个问题:
(1)CAN内部寄存器都是32位的。只有32位的读写才能保证安全,16位或者单个位的读写存在破坏寄存器内容的潜在可能,所以对寄存器的读写应通过映射寄存器进行设置。
(2)在使用CAN模块前,必须进行初始化操作,设置波特率、PWM周期参数。
(3)关键寄存器是受EALLOW保护的,这样为了防止不经意的改变。对于关键寄存器的操作,需正确使用EALLOW和EDIS。
(4)配置接收邮箱消息标识符MSGID时,必须根据需要配置标志扩展符IDE位(标准格式是11位标识符,扩展格式是29位标识符),并且在标准CAN模式和增强CAN模式下配置是有所区别的。如果使用接收屏蔽,接收屏蔽使能(AME)位必须置位(MSGID.30=1)。
4. PWM输出控制模块
PWM输出控制模块是模拟量输出控制器软件设计中最重要的部分。控制器接收到CAN通道下发的输出指令信息后,通过PWM输出控制模块转换为模拟量输出信号。
DSP芯片PWM波形均通过内部定时器设定得到,且PWM的输出精度与DSP芯片系统时钟相关。系统时钟,PWM的周期以及D/A输出的分辨率的关系如下:分辨率=Log2(TPWM/TSYSCLK)。其中TPWM表示PWM周期时间,TSYSCLK表示系统时钟。
本次设计中,PWM周期TPWM设定为819.2μs,TSYSCLK设定为0.02μs(50MHz)。结合等式,可以计算出分辨率为15.3位。由于设计要求控制器的输出精度为0.2%,此情况下得到的PWM分辨率完全能够满足设计上的要求。DSP硬件集成的PWM电路极大地减小产生PWM波形的CPU开销。同时,集成化的设计大大减少用户的工作量。
八 结束语
TMS320F2801芯片的高集成度、低成本以及易开发性,大大缩短设计人员的设计时间和极大地减小产品的软硬件成本,同时也提高产品的生产效率和维护效率。基于DSP芯片的设计开发理念在其他具有模拟量输出功能的产品中同样可得到广泛的推广和应用。
评论
查看更多