微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于 DSP 的电子负载:电子负载控制系统软件设计

基于 DSP 的电子负载:电子负载控制系统软件设计

时间:01-23 来源:3721RD 点击:

第5章电子负载控制系统软件设计

5.1软件架构

研究课题的软件系统较为简单,主要任务是根据电流、电压的AD采样结果,经过数字控制环运算,由DA输出运算结果,这是最重要也是实时性最高的任务。
此外,还要处理人机交互的任务,诸如串口通信、按键,显示等等,这些任务并不是时刻都存在的,实时性要求不高。

软件的架构由前台和后台两部分组成。前台是一个预设输入和结果输出,如图5.1左图所示,包括读取按键编码值、LCD显示所处的测试模式和串口通信数据进行处理。后台如图5.1右图所示,以事件管理器A周期匹配中断为核心中断,整个反馈回路都是以此中断为基础,完成AD采样,数字控制环计算,更DA输出,实时调整负载电流。在软件系统中,需要保证实时性的任务只有反馈环的任务,在TMS320LF2812的ISR进行中,不能进行嵌套中断,别的中断是不能得到DSP响应的。

为了防止串口中断(后台执行程序)的ISR执行时间过长,影响到反馈环的执行,在串口中断的ISR中避免代码的冗繁。主循环通过检测标志位,查看串口通信的事件发生,然后到指定位置读取相应数据,最大限度的避免数字控制环的执行被打断。

5.2数字控制环软件设计

采样控制系统都是有延迟的,保证控制环的数字处理和延迟时间在一个最小的周期以内,是本课题研究的重点。由于事件管理器的定时器中断和AD采样中断服务处理程序的指令数固定,而AD转换的时间由硬件决定,因而每周期内AD采样对于数字环执行周期,占用的时间是固定的。设计如图5.2所示的结构。

在整个数字控制环的执行周期内,包括AD转换,AD转换结果的保存,控制算法的调用和执行,运算结果的保存和输出,执行周期内预留下一定的空闲时间,方便调用不同的控制算法时留下一定的时间余量。整个控制算法执行周期为4微妙,每个周期DA执行一次输出。

(1)中断

主程序里面一共开放了三个中断,T1定时器周期中断,串口接收中断和PDPA中断。周期中断启动A/D转换,开始采样电压、电流值,并保存结果进入数字控制环;串口接收中断,用于SCI接收中断,并置发标志;PDPA中断,用于保护功率模块,一旦PDPA关脚为低便封锁输出。其中T1的周期中断程序不允许被打断,因为该程序响应用于DA的输出,响应速度要求很快,PDPA是保护中断程序,一般不会响应,这两个中断都不允许中断嵌套。SCI串口输出允许被打断,但在中断程序的开头要加上EINT,开中断,允许中断嵌套。

事件管理器A即EVA的定时器Timer1的定时器中断,在此定时器中断的中断服务处理程序ISR中,启动2路AD转换。设置EVA Timer1的周期寄存器设置EVATimer1的周期为512(约为3.4微妙),通用定时器配置为连续增减模式,周期匹配中断。

(2)AD采样

DSP2812内部有一个12位带流水线的模/数转换模块,共有16个通道,可通过寄存器配置为2个独立的8通道模块,分别服务于事件管理器A和B,2个独立的8通道模块也可以级联构成1个16通道模块,同时对16个通道进行采样,ADC要求输入的模拟电压范围为0~3V.A/D转换单元负责电流控制环的电流和电压值,设计中用事件管理器启动对ADCINA0和ADCINB0同时采样,同时对两个通道的输入信号进行转换。TMS320LF2812虽然有12位精度,但在实际的使用过程中,我们发现,ADC的转换结果误差较大,如果直接将此转换结果用于控制回路,必然会降低控制精度,最大的转换误差可以达到9%,为了提高控制的精度,必须提高A/D的采样的精度。

硬件角度:加RC硬件滤波,滤除干扰信号;电路布线时注意不要让ADCIN引脚运行在靠近数字信号通路的地方,这样能使耦合到ADC输入端的数字信号开关噪声大大降低。采用隔离技术,将ADC模块电源引脚和数字电源隔离;软件角度:多次采样取平均值算法,最为简单,但耗费大量时间,对数字控制环在短时间内执行完所有的程序是一对矛盾体;数字滤波算法,例如采用中值滤波法,具体方法为:连续采样20个数据,对这些数据进行排序之后,去掉最小的5个和最大的5个,然后取中间10个采样数据的平均值,这也要付出时间上的牺牲,不太适合本设计;软件校正算法。TMS320LF的ADC转换精度较差的主要原因是存在增益误差(Gain Error)和偏置误差(Offset Error),要提高转换精度就必须对两种误差进行补偿,这也是本设计中采用的提高A/D模块的补偿方法。

理想的12位ADC是没有增益误差和偏置误差的,其转换的计算公式为:

但是,实际上TMS320LF2812的A/D是存在增益误差和偏置误差的,其转换的计算公式如式5.1所示:

其中,ma=actual gain(实际的增益)mb=actual offse

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top