首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于STM32和FPGA的CAN总线运动控制器的设计

基于STM32和FPGA的CAN总线运动控制器的设计

摘要:运用低功耗COrtex—M3微控制器STM32F103VBT6和FPGA芯片设计一种基于CAN总线的运动控制器。介绍系统的体系结构、主要硬件设计和软件结构。利用FPGA高速处理能力实现控制算法,与外界通信采用STM32和CAN总线技术,系统稳定可靠,另外,将设计好的FPGA程序或是C程序进行封装,系统的可移植性强。
关键词:STM32;FPGA;CAN总线;运动控制

     如今,运动控制正朝着高速度、高精度、开放式的方向发展,从而对执行部件提出了更高的要求。过去的运动控制器主要是基于单片机或者PLC加上分立数字电路设计,受制于器件本身的性能,导致电路执行速度慢、体积庞大、集成程度低,升级难度大。而采用微处理器、DSP、FPGA等现代手段构成的只能控制系统是新一代运动控制发展的方向。本文对基于FPGA的嵌入式运动控制器进行了研究,并应用了CAN总线,使硬件接口简单、实时性强、灵活度高,有很强的实用价值。

1  总体方案设计策略
     
本系统以意法半导体体公司生产的基于Cortex—M3处理器STM32F103VBT6芯片核心进行通信、数据的存储以及键盘扫描和LCD显示,它集成了CAN、SPI、USB、USART控制器,满足系统的设计要求,简化的系统的实现过程,丰富的函数库大大缩短了用户的开发周期。而FPGA作为系统主要的执行机构,利用其高速性进行算法实现、速度控制和位置控制,系统的整体构造如图1所示。



2 运动控制器的功能模块设计
     
为了满足整个系统的运转,运动控制主要由通信和数据处理两部分构成,通信和数据存储由STM32负责进行,出于数据运算的复杂性和实时性,FPGA处理算法的实现。本设计相对庞大,模块不一一介绍。
2.1  CAN通信模块的设计
2.1.1 硬件设计
    bxCAN是STM32内置的CAN控制器,支持2.0A和2.0B  CAN协议,波特率最高可达可达到1  Mbit/s,包含3个发送邮箱,3级深度的2个接收FIFO,14个可变位宽的过滤器组,支持时间触发通信模式,它的设计目标是以最小的CPU负荷来高效处理大量收到的报文,它也支持报文发送的优先级要求(优先级特性可软件配置)。CAN硬件设计如图2所示。


     以CTM8251作为收发芯片,它不仅能完成收发功能,还具有DC2500V的隔离功能,使系统与外界隔离开来,简化了CAN外围的硬件设计,提高了系统的性价比,图中120  Ω的电阻为可选用的终端匹配电阻,假如网络中已经存在一对匹配电阻,则该电阻可以不使用,其中B82790是个共模扼流线圈,作用是抑制共模干扰平衡差分信号的传输;本设计中采用比较常用的拨码开关电路设置CAN网络的ID地址和波特率;LED作为通信状态指示。
2.1.2  软件设计
     
针对STM32对外设的设置,我们只需要对相应的参数进行适当的配置就能满足设计的要求,软件部分主要任务只要进行CAN初始化和数据发送即可。本设计初始化模块中只需要对CAN工作方式进行配置,而不需要对过滤器进行特殊的配置,部分初始化程序如下:

     工作方式配置中最主要的是波特率的配置,本设计中采用AHB1作为CAN时钟为36 MHz,所以要得到1  Mbit/s的波特率进行了以上的设置,即SJW=tq,BS1=3tq,BS2=5tq,CAN_Prescaler=4,所以波特率的计算如下:
     
   
2.2 FPGA电路的设计
     FPGA电路主要实现运动控制的相关算法,包括加减速算法、检测装置算法、插补算法等算法的实现,是整个设计的关键部分,硬件设计主要包括FPGA的供电电路、时钟电路和配置电路,都是相对比较常规的电路,在这里不做介绍,文中主要介绍相关算法的实现。
2.2.1  加减速模块
     
为了在电机启动时为了在电机启动时,避免电机在运行以及换速的过程中产生冲击、超程、失步和振荡等一些我们不想见到的现象。为了使执行机构能够平稳和准确的定位,这就要求电机在开机到电机的速度达到给定的进给速度的过程中有一个加减速的过程,使其能够平滑的过渡。避免速度的突变给电机带来损伤。
     S型曲线加减速是比较理想的控制加减速方法,但如何保证构造的曲线平滑、精确成为很多算法工程师研究的重点。如图3所示,在加速的过程中,有3个不同的加速度区域。在开始阶段,加速度是按线性方式以一定的加速度率K从0增加到固定的加速度值A。也就是说,这时驱动速度在a区域是按抛物线的方式增长;接着在b区域中,驱动速度是以一个恒定的加速度增长;最后,在c区域中,加速度则按照加速度率K线性减少到0。这样,S曲线的加速度过程就可以看作是由a,b,c  3个区域构成的。在减速的过程中,同加速过程一样,d,e,f区域中也是按抛物线的方式减速。
继承事业,薪火相传
返回列表