一种基于FPGA和TMS320F28335的电机控制实现过程

2017-07-06 15:01姜见龙
航天制造技术 2017年3期
关键词:总线通讯控制器

王 娜 姜见龙



一种基于FPGA和TMS320F28335的电机控制实现过程

王 娜 姜见龙

(湖北三江航天红峰控制有限公司,孝感432100)

提出了一种基于FPGA和TMS320F28335的电机控制实现过程。以FPGA为控制器及CAN总线控制接口实现与测试系统的CAN通讯,并将CAN通讯数据以EMIF接口形式与TMS320F28335进行信息交互,TMS320F28335通过接收控制指令和发送反馈信号实现对电机的控制。使用Verilog HDL硬件描述语言,根据CAN总线接口协议CAN2.0B,实现FPGA的CAN总线接口的通讯,及与TMS320F28335的EMIF接口信息交互,并通过了功能仿真;C语言实现电机控制过程和FPGA与TMS320F28335之间的EMIF接口信息交互过程。

FPGA;TMS320F28335;电机控制;CAN通讯;EMIF接口

1 引言

CAN(Controller Area Network)控制局域网是一种串行通讯协议,是国际上应用最广泛的现场总线之一,广泛应用于汽车行业、工业自动化、医疗器械、船舶、自动化仪表等领域。SCI串行接口通信网络中只有一个主机设备,其余为从机的工作模式,而CAN总线是一种多主的局域网,也就是通讯时网络中的各个设备均可以在主机模式工作。CAN通讯总线的数据传输速率可高达1Mbps,从而易于实现系统的实时控制。另外,CAN总线硬件的错误检定特性增强了CAN总线通讯过程中的抗电磁干扰能力。

EMIF(External Memory Interface)外部存储器接口,也就是TMS320F28335所具有的外部接口(XINTF),一种与外进行信息交互的接口。比如C6000系列DSP的片内无FLASH,则需外扩FLASH,其实该过程就是使用EMIF接口实现FLASH扩展。本文使用EMIF接口连接TMS320F28335和FPGA传递消息数据。由于FPGA芯片的引脚资源比DSP更为丰富,通过FPGA与AD7656等外设连接,辅控制器FPGA采集的各种外设信息,及测试系统发送的控制指令,再通过EMIF接口传递给主控制器TMS320F28335。相应地,TMS320F28335控制电机转动获得的电机转动方向、速度等,也通过EMIF接口传递给测试系统。

TMS320F28335为TI推出的一款具有强大控制和信号处理能力的32位浮点型数字信号处理器,主频高达150MHz,片上集成了512KByte的FLASH存储器、68KByte的SARAM、16KByte的Boot ROM以及多种先进的外设,可广泛应用于伺服、电机控制系统中。选用的电机驱动电路板FPGA软件运行在Xlinx公司Spartan3系列的FPGA芯片XC3S200上。FPGA具备丰富的I/O资源,编程灵活,可实现任何数字电路。同时因为其内部程序是并行运行的,可同时处理不同的任务,使得FPGA有更高的工作效率。采用Verilog HDL语言,在集成开发环境ISE10.1中完成FPGA软件代码的设计开发与调试,利用ModelsimSE6.0仿真工具进行仿真验证,最后将程序加载到FPGA芯片中进行功能验证。

2 系统接口设计

图1 FPGA与CAN口通讯的系统结构框图

图2 EMIF接口连接框图

本系统接口设计所用到的CAN总线控制器是Microchip公司的MCP2512,它是一款独立控制器局域网络(Controller Area Network,CAN)协议控制器,完全支持CAN V2.0B技术规范。MCP2515与FPGA的连接通过业界标准串行外设接口(Serial Peripheral Interface,SPI)进行数据通讯和指令的传递。通过MCP2515 CAN驱动模块,实现与测试系统的CAN总线通讯过程。FPGA与CAN口通讯的系统结构图如图1所示。DSP TMS320F28335的EMIF接口连接图见图2。

3 EMIF接口软件设计

FPGA使用Verilog HDL硬件描述语言设计XINTF接口,需要在约束条件中对相应的IO口的引脚进行定义和约束,具体定义如下:

NET "XZCS0" LOC = "A13";#TSDCAS

NET "XRD" LOC = "K17";#TSDRAS

NET "XWE0" LOC = "A14";#TSDWE

NET "INT_CANF" LOC = "C6";

NET "XA<0>" LOC = "B14";

NET "XA<1>" LOC = "G20";

......

NET "XA<19>" LOC = "H19";

#####################################

NET "XD<0>" LOC = "D16";

......

NET "XD<14>" LOC = "A15";

NET "XD<15>" LOC = "B15";

设置好相关约束后,可以对相应的地址线进行操作,此处选用的如往地址上写数据,当输入信号片选信号XZCS0为低,读信号XRD也为低时,DSP软件即可在给定的地址上读出FPGA控制软件所写数据内容,具体写数据操作如下:

assign XD=

(XZCS0==0 && XRD==0 && TEAB=='h4 && TEAA=='h0)?data[31:16]:

(XZCS0==0 && XRD==0 && TEAB=='h4 && TEAA=='h2)?{data[15:0]}:

'hzzzz;

读出相应地址线上的数据也是一样,当输入信号片选信号XZCS0为低,写信号XWE0也为低时,FPGA控制软件读出DSP所写数据内容,并保存,具体读取数据操作如下:

if(XZCS0==0 && XWE0==0 && TEAB=='h0 && TEAA=='h0)

begin

dspbackdata <= XD;

end

本文使用的XINTF接口的固定区域为区域0(XZCS0),DSP软件设计包括:外部存储接口初始化、和外部存储接口相关的GPIO口初始化,将与外部存储接口有关的GPIO口设置为外部接口数据线、外部接口地址线、读写信号和片选信号,操作步骤如下:

a. 配置区域0(XZCS0)写时序

XintfRegs.XTIMING0.bit.XWRLEAD=1;

XintfRegs.XTIMING0.bit.XWRACTIVE=3;

XintfRegs.XTIMING0.bit.XWRTRAIL=1;

b. 配置区域0(XZCS0)读时序

XintfRegs.XTIMING0.bit.XRDLEAD=1;

XintfRegs.XTIMING0.bit.XRDACTIVE=3;

XintfRegs.XTIMING0.bit.XRDTRAIL=1;

c. 配置区域0(XZCS0)数据GPIO口

GpioCtrlRegs.GPCMUX1.bit.GPIO64=3; // XD15

......

GpioCtrlRegs.GPCMUX1.bit.GPIO79=3; // XD0

d. 配置区域0(XZCS0)地址GPIO口

GpioCtrlRegs.GPBMUX1.bit.GPIO40=3; // XA0

......

GpioCtrlRegs.GPAMUX2.bit.GPIO29=3; // XA19

e. 配置区域0(XZCS0)读写信号和片选信号

GpioCtrlRegs.GPBMUX1.bit.GPIO34=3; // XREADY

GpioCtrlRegs.GPBMUX1.bit.GPIO35=3; // XRNW

GpioCtrlRegs.GPBMUX1.bit.GPIO38=3; // XWE0

GpioCtrlRegs.GPBMUX1.bit.GPIO36=3; // XZCS0

完成以上相关GPIO口和读写时序的配置后,DSP控制软件就可以读取地址线上的数据,具体操作如下:

#define LOW * ((Uint16 * )0x00004400)

//读,data高16bit

#define BISS_HIGH * ((Uint16 * )0x00004402)

//读,data低16bit

DSP控制软件往地址线上写数据,具体操作如下:

#define CMD_ACK * ((Uint16 * )0x00004000)

//写,指令类型回应

综上所述,DSP控制软件对XINTF接口进行读写操作的流程图如图3所示。

图3 XINTF接口读写操作流程图

4 ModelSim SE 6.2b仿真

CAN通讯接口的FPGA软件设计过程通过了功能仿真,仿真工具采用的是ModelSim仿真软件。根据test_bench编写的测试程序,对CAN通讯部分进行功能仿真后,FPGA软件通过CAN总线接收到的数据SDO1和发送出去的数据SDI1在时钟时序的配合下,均有相应的数据输出。仿真后得到的仿真波形见图4。

图4 EMIF接口和CAN通讯接口仿真波形

5 电机控制过程

该设计所选用电机的控制是由TMS320F28335和相应驱动芯片控制完成的。这里,FPGA软件的作用是通过CAN通讯获得测试系统发来的控制指令,控制指令通过XINTF接口将控制指令传递给TMS320F28335。TMS320F28335采集位置反馈信息,并将采集的数据信息,通过FPGA软件传给测试系统。位置反馈信息与控制指令进行比较,参与PID控制,形成闭环控制,产生PWM信号,控制电机的运转。这里不讲述电机具体的硬件驱动过程。

设计中,电机控制使用的增强型PWM(ePWM)模块是ePWM3,首先使能其对应的时钟,实现过程如下,SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1。

电机控制过程的流程图见图5所示。图中计算得到的占空比输出给计数器比较A寄存器集,具体实现过程为,EPwm3Regs.CMPA.half.CMPA=EPWM3_PRD-fabs(pwm_duty)。

图5 电机控制过程流程图

6 结束语

本文利用FPGA和DSP TMS320F28335的数据交互作用,实现了对电机的控制,提高了数据通讯的速率。由于FPGA芯片的资源很多,为后续设计多功能一体机,再增加更多外设,提供了丰富的接口资源。同时,执行效率也相应得到提高,在实际应用中,具有较强的应用推广价值。

1 Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007. 17~22

2 王念旭. DSP基础与应用系统设计[M]. 北京:北京航空航天大学出版社,2001. 391~393

3 石英,张金凤,申功勋. 基于FPGA和CAN控制器MCP2515设计惯导系统的CAN总线接口[C]. 西安:中国航空学会控制与应用第十二届学术年会,2006.

4 王继国,吉吟东,孙新亚. CAN总线控制器MCP2515的原理及应用[J]. 电测与仪表,2004(1):53~56

5 刘和平,张学锋,严利平,等. TMS320240x DSP结构、原理及应用[M].北京:北京航空航天大学出版社,2002. 190~202

6 Texas Instruments Inc.TMS320F28225, TMS320F28334, TMS320F28332, TMS320F28235, TMS320F28234, TMS320F28232 digital signal processors data manual[R]. USA: Texas Instruments, 2003

7 方冬,章国宝. 基于EMIF接口的数据采集系统的设计[J]. 电子设计工程,2011(2):176~177

A Motor Control Implementation Process Based on FPGA and TMS320F28335

Wang Na Jiang Jianlong

(Hubei Sanjiang Space Hongfeng Control Co., Ltd, Xiaogan 432100)

This paper presented a FPGA and TMS320F28335 motor control implementation process. CAN communication cotroller FPGA and CAN bus control interface implemented CAN buss communication between FPGA and test system. The EMIF interface helped the data information exchange between FPGA and TMS320F28335. Receiving control commands and sending motor status, TMS320F28335 implemented closed-loop control to control motor. In this paper, Verilog HDL hardware description language,according to the CAN bus interface protocol, realized the CAN bus interface communication and EMIF interface information interaction. Finally, the design passed the function simulation. C language realized the motor control process and EMIF interface information interaction.

FPGA;TMS320F28335;motor control;CAN bus communication;EMIF interface

王娜(1985),硕士,检测技术与自动化装置专业;研究方向:嵌入式系统。

2017-03-28

猜你喜欢
总线通讯控制器
《茶叶通讯》简介
《茶叶通讯》简介
工商业IC卡控制器改造为物联网控制器实践
PLC可编程控制器相关外置的选择计算研究
一种基于CAN总线的误码测试方法
DCOM在混合总线自动测试系统的应用
基于AVR单片机的RS485工业总线开发设计
国内首个AR通讯应用浮出水面
国内首个AR通讯应用浮出水面
浮瓶通讯