您现在的位置是:首页 > 汽车

TMS320F2812型DSP在车辆四轮转向控制系统中的应用

2019-12-29 18:25:49

1  引言

    数字信号处理器(Digital Signal Processor,简称DSP), 是一种适合于数字信号处理运算的微处理器,能够实现实时快速的数字信号处理算法。通常,由一个以DSP为基础的内核,配以测量控制所需的外围功能电路,集成在单一芯片内,使芯片价格大大降低,体积缩小,结构紧凑,使用便捷,可靠性提高。因此,集成DSP芯片的多功能板是电机应用、励磁脉冲控制系统、电力保护系统的理想选择。本文采用了超拓工控的CS4U9813可编程智能多功能板作为伺服电机的控制器来实现汽车后轮转向功能,该板集成有TI公司的高性能 DSP芯片TMS320F2812。

2  TMS320F2812的结构特点[1][4]

    TMS320F2812是TI公司最新推出的目前市场上最先进、功能最强大的32位定点DSP芯片。它既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适用于工业自动化、电机、马达伺服控制系统。TMS320F2812芯片结构采用改进的程序与数据存储分开的哈佛结构,8级流水线作业,128位的密匙保护,几乎所有指令都在6.67ns(150MHZ)内完成,高达1MB的外部存储器接口,最多有56个独立的可编程、多用途的输入 /输出(GPIO)引脚,是实现运动控制系统的最佳选择。功能框图如图1所示,其主要性能如下:

图1     功能框图


(1) 高性能的32位中央处理器
l 主频150MHZ(时钟周期6.67ns),低功耗(核心低压1.8V,I/O口3.3V)
l 16位×16位和32位×32位乘且累加操作以及16位×16位的两个乘且累加
l 统一的寄存器编程模式,可达4M字的线性程序地址和数据地址


(2) 片内存储器
l 8Kx16位的Flash存储器
l 1Kx16位的OTP型只读存储器
l L0和L1:两块4Kx16位的单口随机存储器(SARAM)
l H一块8Kx16位的单口随机存储器
l M0和M1:两块1Kx16位的单口随机存储器


(3) 时钟与系统控制
l 支持动态的改变锁相环的频率(PLL)
l 片内振荡器
l 看门狗定时器模块
l CPU级和外设级中断相结合的控制系统
(4) 丰富的外围设备
l 两个事件管理器(EVA、EVB)
l 串行外围接口(SPI)
l 两个串行通信接口(SCI),标准的UART
l 改进的控制器局域网络(ECAN)
l 多通道缓冲串行接口(MCBSP)
l 16通道12位的数模转换器(ADC)

3  四轮转向控制系统的实现

四轮转向(Four-Wheel Steering,简称4WS) 系统是指车辆在转向过程中,前后两组四个车轮都能够根据需要起转向作用,能有效改善车辆的机动灵活性和操纵稳定性,正在得到不断发展和应用。4WS汽车在低速转弯时,前后车轮逆相位转向,可以减小车辆的转弯半径;在高速转弯时,前后轮主要作同相位转向,能够减少车辆质心侧偏角β,降低车辆横摆率的稳态超调量等,进一步提高车辆操纵稳定性。



    本文搭建的四轮转向平台是由一个带有涡轮蜗杆减速机构的直流伺服电机,电磁离合器和普通的前轮转向机构组成。其中电机电源为DC12V,减速比设定10: 1(可调),电磁离合器电源:DC48V,实验平台如图2所示。控制策略采用前馈和反馈相结合的直接横摆率闭环控制,其中由绝对式角位移传感器采集前轮转角信号;后轮转角由精度较高的增量式光电编码器得到;车速由五轮仪获得;后轮转向由直流伺服电机经过电磁离合器连接机械转向机构实现;ECU硬件电子系统核心由TMS320F2812构成,结构框图如图3所示:

图2     实验平台

图3     结构框图

4  控制系统硬件设计与仿真

    根据上文设计的控制策略,ECU单元要采集前轮转角信号、后轮转角信号、轮速信号并经过CPU运算输出电机的驱动电压,实现后轮自动转向。本文用C语言编制程序来实现设计的控制算法,并在仿真器连接的情况下,在CCS(Code Compose Studio)环境下完成硬件在环仿真调试。CCS2000是TI公司针对TMS320C2000系列DSP提供了一套基于Windows的DSP集成开发环境,也是目前最优秀的DSP开发软件。在CCS环境下,可进行程序开发、调试、编译、链接,支持汇编及C/C++进行软件开发,强大的调试工具如断点、探针、剖析及图形显示等,并最终可以进行输出目标文件的烧录。


4.1  前轮转角信号采集
    前轮转角由绝对式角位移传感器得到,输出电压与前轮转角成线性正比例关系,范围0~12V。本文采用CS4U9806板的ADCHA0引脚采集,采样外围电路DSP芯片内部集成。此板单通道采样时间200nS,输入信号范围可通过跳线选择-5~+5V,0~10V,0~20V,默认-5~+5V。由于前轮转角范围有限,故跳线选择0~10V,采样频率设为96HZ。部分程序设计过程如下:
AdcRegs.ADCMAXCONV.all=0x0002;
// 设置最大转换通道寄存器为2; AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;  
// 设置ADCHAO通道连续采样3次;
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x0;
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x0;
EvaRegs.T2CMPR=0x0080;    
// 设置定时器2的比较寄存器;
EvaRegs.T2PR=0xFFFF;
// 设置定时器2的周期寄存器;
EvaRegs.GPTCONA.bit.T2TOADC=3;  
// 使能比较中断来启动采样模块;   
EvaRegs.T2CON.all=0x1442; 
// 使能比较单元,采样频率为96HZ;
interrupt void  adc_isr(void)     
// 采样中断服务子程序;
{ voltf0 = AdcRegs.ADCRESULT0/16; 
// 对三次连续采样求均值,提高精度;
  voltf1=AdcRegs.ADCRESULT1/16;
  voltf2=AdcRegs.ADCRESULT2/16;
  averagef=(voltf0+voltf1+voltf2)/3.0;
  deltaf=(averagef-2970.0)*3.2133/(4096-2970.0); } //计算前轮转角,取弧度;4.2  后轮转角信号采集
    后轮转角信号由高精度的增量式光电编码器获得。它将蜗杆转动的角度根据转动的方向变为相应的增、减计数脉冲,每转一圈产生2048个脉冲,输出量为一时钟信号和一方向信号。本文采用DICH0(CAP2)引脚捕捉时钟信号,输入引脚DICH19(GPIOF12)取得方向信号。带光耦的开关量输入电路设计如图4,捕获单元电路DSP芯片内部集成。

图4     输入电路框图


部分程序设计过程如下:
EvaRegs.CAPFIFO.all=0x0400;   
// 设置捕获FIFO状态寄存器的初值;
EvaRegs.CAPCON.bit.CAPQEPN=0x1;     
// 使能捕获单元2;
EvaRegs.CAPCON.bit.CAP12TSEL=1;     
// 选择定时器1为基准;
EvaRegs.CAPCON.bit.CAP2EDGE=0x1;    
// 检测上升沿有效;
EvaRegs.T1CMPR=0x0080;  
// 为捕获单元2设置定时器1;
EvaRegs.T1PR = 0xFFFF;    
EvaRegs.T1CON.all = 0x1042; 
interrupt void  cap2_int(void)  
// 捕获中断服务子程序;
{ if(GpioDataRegs.GPFDAT.bit.GPIOF12==1)PosiTIvePulsecount++;
  else  NegativePulsecount++;
  deltar=(PositivePulsecount-NegativePulsecount)*pi/1024.0;
}
// 根据I/O引脚来计算后轮转角,取弧度;


4.3  算法设计与D/A输出
    算法的基本思路是:4WS启动时,输入一前轮转角,通过横摆率反馈,将其与速度相关的理想横摆率稳态响应增益G0进行比较,然后经控制器G1控制后轮转角,实现四轮转向,输出质心侧偏角、横摆率、侧向加速度用于监测,控制框图如图5所示。电机的驱动电压由DSP的比较寄存器产生PWM信号,在通过D/A 转换电路输出。本文采用定时器4产生PWM,由DA4引脚输出,一级放大的D/A转换电路如图6所示。

图5     控制框图

图6     D/A转换电路


部分程序设计过程如下:
EvbRegs.T4PR=0x3FF;   
// 设置定时器2的周期寄存器;
EvbRegs.T4CMPR=0x0080;
// 设置定时器4的比较寄存器初值;
EvbRegs.T4CON.all=0x1042;   
//  使能比较单元;  
EvbRegs.GPTCONB.bit.TCOMPOE=1;    
//  驱动定时器4的PWM输出;
EvbRegs.GPTCONB.bit.T4PIN=1;
//  定时器4的比较输出低电平有效;
y0[0]=c[0][0]*x0[0]+c[0][1]*x0[1]+d[0][0]*u[0]+d[0][1]*u[1]; //  输出量质心侧偏角;
y0[1]=c[1][0]*x0[0]+c[1][1]*x0[1]+d[1][0]*u[0]+d[1][1]*u[1]; //  输出量横摆角速度;
y0[2]=c[2][0]*x0[0]+c[2][1]*x0[1]+d[2][0]*u[0]+d[2][1]*u[1]; //  输出量侧向加速度;
Dutycycle=volt_out/10.0*1024; 
//  计算占空比;
EvbRegs.T4CMPR=Dutycycle;    
//  重载定时器4的周期寄存器;

5  结束语
    本文应用上面设计的控制算法对4WS车辆进行了基于TMS320F2812型DSP硬件在环仿真,车辆参数选为:m=1740kg;I= 3214kg.m2;a=1.058m;b=1.756m;K1=29000N/rad;K2=60000N/rad;同时为简便起见,截取速度u= 30m/s,结果如图7所示,结果表明横摆率跟踪控制的4WS车辆在高速范围的转向操控时其质心横摆率、侧偏角和侧向加速度响应相比两轮转向能够保持较好动态和稳态性能,同时采用CCS2000进行调试开发,周期短、成本低。因此,基于DSP的硬件控制系统在工业控制和汽车控制领域具有广阔前景。

图7     仿真结果