黄 鹏,杜克奎,荣 锋,鲁 勇(天津工业大学电子与信息工程学院,天津 300387)
基于自适应SENT协议的电机控制系统设计
黄鹏,杜克奎,荣锋,鲁勇
(天津工业大学电子与信息工程学院,天津300387)
摘要:针对传统电机的模拟信号输出和PWM信号输出分辨率不高、抗电磁干扰能力差的问题,开发了一套电机控制系统.该系统兼容模拟信号输出和多种SENT协议的信号解析方式,以32位的STM32F103VCT6单片机为核心处理器,接收三轴霍尔传感器的角度信息,并根据上位机下发的目标角度对电机进行PID闭环驱动.经实验测试验证,该系统能够精准地控制电机的旋转位置,能够实现多种协议的兼容.在SENT协议模式下,电机旋转的角度误差均在0.12%以内,误差低于传统的模拟信号输出方式.
关键词:STM32F103VCT6;自适应SENT协议;电机控制系统;三轴霍尔传感器
电动机是发明和使用最早的电机之一,可以实现平滑而经济地调速,不需要其他设备配合,只要改变输入或励磁电压电流就可实现调速,故在现代生产生活中得到广泛应用[1].
相比于传统的电机控制系统,基于三轴霍尔位置传感器的精确电机控制系统在一些要求比较高的电机控制领域逐步得到了应用[2].但是一般是基于模拟和PWM的输出方式.这2种信号输出方式抗电磁干扰能力弱,精度不够高,成本较高.美国汽车工程师学会(SAE)于2008年制定了SENT 2008(SAE J2716-2008)协议标准,2010年又制定了新的SENT 2010(SAE J2716-2010)协议标准,旨在于提供更精确有效并且低成本的电机控制解决方案. SENT为汽车传感器新型接口标准.相比于模拟信号输出和PWM输出方式,基于SENT协议的电机控制是一种可以有效降低成本、节省线束、节省插针结头的低成本方案,具有很好的EMC特性,并且能传输故障代码从而使传感器系统具有很强的故障诊断能力.它有助于取代传感器和微控制器之间的模拟信号传输.本文正是采用了基于这种协议的电机系统控制方式,并设计了整套的电机控制系统.
本文中用到的霍尔位置传感器为MLX90324和MLX90367,它们是CMOS Triaxis霍尔传感器,给出了一个平行于芯片表面磁场的角位置,是专为非接触式旋转位置传感器设计的. CMOS Triaxis霍尔传感器检测出定位和转动在设备表面上的一块小磁铁的绝对角位置. MLX90324既能支持模拟输出,也支持2008版协议的SENT信号输出,而MLX90367只支持2010版协议的SENT信号输出.对于一个未知信号输出的电机模块,MCU如何去自适应它将是今后面临的一个问题.本文将讨论这3种信号输出方式以及解析方法,并设计一套自适应SENT协议的电机控制系统.
SENT协议的全称为单边半字节传输(single edge nibble transmisson)协议,是一种单线异步串行通信协议,是一种类PWM的信号输出方式. 2008版协议一帧数据的长度包含8个Nibble和1个校验位(1个Nibble由4个Bit组成,Nibble值的范围是0~15,由12~27个Tick表示,1个Tick的范围是3~10 μs,一般是3 μs左右),如图1所示.
图1 Nibble值为0Fig.1 Nibble value is zero
图1中内容分别如下:
Nibble 0:56个Tick的同步校验位
Nibble 1:状态位(判断芯片是否工作正常)
Nibble 2:角度的高4个Bit
Nibble 3:角度的中间4个Bit
Nibble 4:角度的低4个Bit
Nibble 5:滚动计数器的高4个Bit(用来判断芯片是否在正常工作)
Nibble 6:滚动计数器的低4个Bit
Nibble 7:Nibble 2的反转
Nibble 8:CheckSum位
2010版的SENT报文包含8个Nibble,1个校验位以及1个可变暂停位,如图2所示.
图2 Nibble值为15Fig.2 Nibble value is fifteen
图2中内容分别如下:
Nibble 0:56个Tick的同步校验位
Nibble 1:状态位(判断芯片是否工作正常)
Nibble 2:角度的高4个Bit
Nibble 3:角度的中间4个Bit
Nibble 4:角度的低4个Bit
Nibble 5:滚动计数器的高4个Bit(用来判断芯片是否在正常工作)
Nibble 6:滚动计数器的低4个Bit
Nibble 7:Nibble 2的反转
Nibble 8:CheckSum位
Nibble 9:可变暂停位(12~768个Tick)
SENT是一种点对点的单方向从传感器到控制端的协议,每一个Nibble数据被编码成PWM方式.先输出5个Tick的低电平,然后输出7+n(n的范围是0~15)个Tick的高电平.传感器信号以一串方波来传送,方波下降沿之间时间的长短表示信号的大小.传感器上电后会立即发送数据,接收机不需要任何同步校验信号.设计这种协议的目的是用在与汽车ECU快速交互信息的传感器上,以此来取代低精确度的12 bit AD 和PWM.
本系统以意法半导体公司的STM32F103VCT6为控制核心.驱动器使用的是飞思卡尔的MC33886.控制器与上位机之间通过CAN-232转换模块进行通信.如图3所示.图3中,上位机通过CAN-232模块向MCU发送目标角度命令,控制电机旋转到目标位置,电机旋转过程中磁铁与霍尔传感器的相对位置发生变化,MCU可检测到电机当前角度. MCU实时的将当前角度和目标角度两个参数送入PID算法中计算出一个控制量PWM_OUT.这样就组成了一个带闭环PID算法的电机控制系统.
图3 系统整体框图Fig.3 Overall block diagram of system
2.1硬件设计
本系统分别设计了基于MLX90324和MLX90367 的3组电机信号输出电路.信号处理单元采用单片机实现. STM32F103VCT6是ARM公司的STM32增强型系列,内部使用32位的Cortex-M3内核,工作频率为72 MHz,内置高达128 kB的闪存和20 kB的SRAM,所有型号的器件均包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN.工作温度范围为-40~105℃,供电电压为2.0~3.6 V.该内核是专门设计用于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求[3-4].
2.1.1传感器设计
位置传感器采用的是Melexis公司的MLX90324 和MLX90367,MLX90324和MLX90367的优点如下:
(1)绝对旋转位置传感器IC;
(2)Trixis霍尔技术-非接触式;
(3)完整的360°角或有限角度的应用;
(4)-40~150℃环境温度范围.
3组电机控制系统如图4—图6所示.
图4 MLX90324模拟信号输出Fig.4 MLX90324 analog output
图5 MLX90324 SENT信号输出Fig.5 MLX90324 SENT output
图6 MLX90367 SENT信号输出Fig.6 MLX90367 SENT output
2.1.2电机驱动模块设计
直流电机驱动采用飞思卡尔公司的5 A集成H桥芯片MC33886. MC33886芯片内置了控制逻辑、电荷泵、门驱动电路以及低导通电阻的MOSFET输出电路,适合用来控制感性直流负载,可以提供连续的5 A电流,并且集成了过流保护、过热保护、欠压保护.通过控制MC33886的四根输入线可以方便地实现电机正转、能耗制动及反接制动.使用2片MC33886并联,一方面减小导通电阻对电机特性的影响,另一方面减小MC33886内部的过流保护电路对电机启动及制动时的影响[5-6],如图7所示.
图7 MC33886电机驱动电路Fig.7 MC33886 motor drive circuit
2.1.3 CAN收发模块设计
本设计采用的CAN总线驱动器是由Philips公司生产的TJA1040,该器件设计的目的是用以替代82C250的高速CAN总线驱动器. TJA1040提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能,同时还具有极低功耗的待机模式,以及通过总线唤醒能力.当TJA1040断电时,总线反向电流为零,这样,没有接通电源的节点不会对网络其他部分造成影响[7-12],实际上它们此刻是不可见的.这种特性使得TJA1040非常适用于局部网络中的供电与点火开关相连的节点.设计电路如图8所示.
图8 CAN总线接口设计Fig.8 Design of bus interface
2.2软件设计
由于2010版SENT协议比2008版SENT协议多出一个可变的暂停位,这个暂停位的变化范围为12~768 个Tick.该暂停位可能与帧头56个Tick相等,所以就不能用56个Tick的同步位来判断帧头了.
SENT协议的解析是使用定时器来采集2次下降沿之间时间的长短来解析数据大小的,SENT信号的下降沿触发定时器中断.当采集到56个Tick的数据时,先暂时认为这是帧头,当再次采集到56个Tick长度的数据时,判断在这期间触发了几次中断,若一次,说明上次采集到的值是暂定位,这次才是真正的帧头,并且可以判定连接的是MLX90367.若触发了10次,则说明上次采集的就是帧头,而这次采集的是第二帧的开始,并且可以判断出连接的芯片是MLX90367.若触发了9次,则说明这2次采集的都是帧头,而且通过一帧数据的长度可以判定出连接的芯片是MLX90324.只要能判定出连接的是哪种芯片,就可以做到2种协议的兼容.
系统软件设计流程图如图9和图10所示.
图9为主函数流程图和目标角度接收流程图.通过CAN中断接收上位机发送的目标角度命令.主函数对当前角度与目标角度进行实时处理,若当前角度与目标角度不相等,则PID算法不断的改变输出量来驱动电机向目标位置旋转.当前角度与目标角度相减满足一定的误差范围便停止输出,使电机停止转动.
图10为SENT解析流程图. SENT的解析是通过定时器的输入捕捉中断功能实现的,捕捉2次下降沿之间的时间大小来解析代表的数值.
进入中断后先判断帧头,然后判断出所选的芯片是基于哪个版本的SENT协议,进而可以判断出需要接收多少个Nibble的数据.如果是基于SENT 2008协议,则需要接收8个Nibble的信息,如果是基于SENT 2010协议,则需要接收9个Nibble的信息.这样就完成了一帧数据的接收.完成一帧数据接收后,开始CRC验证,验证通过后解析SENT信息中的角度.
图9 主函数流程图和目标角度接收流程图Fig.9 Main function flow chart and target angle to receive a flow chart
图10 SENT解析流程图Fig.10 SENT analysis flow char
图11为上位机控制电机旋转的上位机界面,图中的曲线1为目标角度的时间-角度曲线图,曲线2为实际角度的时间-角度曲线图.电机按照预先设定好的时间-角度旋转.
图11 上位机界面Fig.11 PC interface
图12、图13和图14为电机旋转主控软件界面,可设定电机旋转的目标角度,按ENTER键电机就会旋转到相应的角度,并且自动设别出接口类型.
图12 2008版SENT协议输出Fig.12 2008 edition SENT protocol output
图13 2010版SENT协议输出Fig.13 2010 edition SENT protocol output
图14为捕捉到的处于旋转路径上的电机主控软件界面图.分别实测了3种信号输出方式下目标角度与实际角度的数值,每组重复测试了50次,分析实验数据得到,SENT 2008协议下的角度误差约为0.116%,SENT 2010协议下的角度误差约为0.103%,而模拟信号输出方式下的角度误差约为0.977%,2种SENT协议下的电机旋转控制精度明显高于传统的模拟信号输出方式.
图14 模拟信号输出Fig.14 Analog output
本文在传统电机控制模拟信号输出和PWM的基础上,结合了近年提出的基于SENT协议的电机控制方法,设计了一套电机控制系统,并给出了一种判别电机模拟信号输出和基于SENT协议信号输出的自适应方法.经过实验验证,该套系统能做到信号输出模式自适应.上位机通过向MCU发送目标角度,MCU根据当前角度输出控制量驱动电机旋转,然后实时将当前角度上传到上位机进行显示.测试结果表明电机的旋转角度误差均在0.12%以内,得到了精确控制.
参考文献:
[1]曾华.有刷直流电机振动转矩的解析与实验研究[J].轻工机械,2014,32(1):70-74. ZENG H. Analytical and experimental study of vibration torque DC motor [J]. Light Industry Machinery. 2014,32(1):70-74. (in Chinese)
[2]刘荣先,崔守鸷,秦永法.霍尔元件的后置油门优化设计[J].重庆大学学报,2013,12:98-102. LIU R X,CUI S Z,QIN Y F. Rear throttle optimization based on the Hall element [J]. Journal of Chongqing University,2013,36(12):98-102(in Chinese).
[3]陈科球,刘彭义.基于MLX90316的汽车油门踏板的设计与研究[J].电子技术应用,2013,39(10):53-55. CHEN K Q,LIU P Y. Design and research for automobile accelerator pedal based on MLX90316 [J]. Application of Electronic Technique,2013,39(10):53-55(in Chinese).
[4]朱何,李胜,阮健.基于Mlx90316的电-机械转换器角位移测控系统[J].机电工程,2012,29(9):1046-1049. ZHU H,LI S,RUAN J. Angular position test system of electromechanical convertor based on Mlx90316 [J]. Mechanical & Electrical Engineering Magazine,2012,29(9):1046- 1049 (in Chinese).
[5]蒋莉,胡建人,秦会斌.基于FFT与STM32 MCU的涡街信号处理系统设计[J].杭州电子科技大学学报,2010,30 (5):5-8. JING L,HU J R,QIN H B. Design of vortex signal processing system based on FFT & STM32MCU [J]. Journal of Hangzhou Dianzi University,2010,30(5):5-8(in Chinese).
[6]贾鹏辉,陈辉,周平义.基于STM32F103VCT6的振弦式传感器数据采集系统[J].仪表技术与传感器,2015(2):67-70. JIA P H,CHEN H,ZHOU P Y. Design of vibrating-wiresensor data acquisition system based on STM32F103VCT6[J]. Instrument Technique and Sensor,2015(2):67-70(in Chinese).
[7]林涛,马腾炜,陈亚勋,等.基于MCU的自动寻迹智能车控制系统的设计[J].自动化与仪表,2012,27(11):1-4. LIN T,MA T W,CHEN Y X,et al. Control system of automatically tracing intelligent vehicle based on the MCU[J]. Automation & Instrumentation,2012,27(11):1-4(in Chinese).
[8]孙梅,张森林.基于Arduino模块化机器人视觉系统的研究与设计[J].华中师范大学学报:自然科学版,2014,48 (4):511-515. SUN M,ZHANG S L. The research and design of robot′s vision system based on Arduino modular[J]. Journal of Huazhong Normal University:Nat Sci,2014,48(4):511-515(in Chinese).
[9]沈三民,李俊,谭秋林,等.基于C8051F040的CAN总线技术的多节点通信网络设计[J].仪表技术与传感器,2011(2):60-62. SHEN S M,LI J,TAN Q L,et al. Design of multi-point communications network based on CAN bus of C8051F040 [J]. Instrument Technique and Sensor,2011(2):60-62(in Chinese).
[10]冉振亚,周智庆,李越,等.电动汽车CAN总线驱动控制系统设计[J].重庆大学学报,2008,31(6):603-609. RAN Z Y,ZHOU Z Q,LI Y,et al. A controller area networkbased electric vehicle drive system design [J]. Journal of-Chongqing University,2008,31(6):603-609(in Chinese).
[11] SREEDHAR V. Plug-in hybrid electric vehicles with full performance[C]// Electric and Hybrid Vehicles. Pune:IEEE Press,2006:1-2.
[12] KRAFTD.Controllerareanetwork(CAN)[J].VDI-Buch,2006,58(4):37-40.
[13]李晋华,邱春玲,田地,等.基于CAN总线数据采集系统的设计与实现[J].吉林大学学报:信息科学版,2004,22 (2):134-137. LI J H,QIU C L,TIAN D,et al. Design and realization of data acquisition system based on CAN bus [J]. Journal of Jilin U-niversity:Information Science Edition,2004,22(2):134-137(in Chinese).
[14] Philips Semiconductors. DATA SHEET TJA1040 High speed CAN transceiver [DB/OL]. http://www. zlgmcu. com/philips/can/ tja1040. asp. [2003-02-19].
Design of motor control system based on adaptive SENT protocol
HUANG Peng,DU Ke-kui,RONG Feng,LU Yong
(School of Electronics and Information Engineering,Tianjin Polytechnic University,Tianjin 300387,China)
Abstract:To solve the problems such as low resolution ratio,poor ability to resist electromagnetic interference of traditional motor analog signal output and PWM output,a motor control system is designed. The system is compatible with analog output signals and a variety of analytical methods SENT protocol,the system uses a 32 bit microcontroller STM32F103VCT6 as the core processer unit to receive angle information from the triaxis Hall sensor and drive the motor by the target angle sent by the HOST computer as PID closed-loop control. The experiment results show that the system can control the rotational position of the motor precisely and achieve compatibility with multiple protocols. In the SENT protocol mode,the motor rotation angle error is less than 0.12%,lower than the traditional analog signal output.
Key words:STM32F103VCT6;adaptive SENT protocol;motor control system;triaxis Hall sensor
通信作者:黄鹏(1979—),女,副教授,硕士生导师,主要研究方向为汽车电子学. E-mail:huangpeng@tjpu.edu.cn
基金项目:国家自然科学基金资助项目(61405144)
收稿日期:2015-09-01
DOI:10.3969/j.issn.1671-024x.2016.02.016
中图分类号:TN913
文献标志码:A
文章编号:1671-024X(2016)02-0083-06