摘 要:本文根据非接触式、高精度测速的需求,设计了一种基于ARM的便携式红外测速与数据存储系统。该系统以STM32F407VET6为控制核心,以TCRT5000为测速光电传感器,利用SDIO接口扩展TF卡,集成了读卡器和CAN通信电路,并采用M/T法完成了高精度测速,实现了数据存储、传输功能。该系统具有体积小、结构简单以及便于携带的优点,已应用于络筒机槽筒转速检测中。试验结果表明,该系统转速精度达到1‰。
关键词:ARM;红外测速;数据存储;M/T法
中图分类号:TN 29" " " " 文献标志码:A
在工程实践中,经常会遇到各种需要测量转速的场合,例如,在发动机、电动机和机床主轴等旋转设备的试验、运动和控制中,常常需要进行分时或连续测量,因此数字测速系统对精度的要求高。针对上述需求,本文设计了一种红外测速和数据存储系统。该系统使用红外反射式光电传感器,以ARM芯片为核心,采用M/T法计算转速,系统将速度数据存储在32 G的TF卡中,根据通信协议利用CAN接口发送速度数据。系统集成了读卡器电路,可以利用USB线与电脑连接,读取TF卡中存储的数据。系统由锂电池供电,采用低功耗设计,其具有体积小、质量轻以及便于携带的优点。
1 系统测速原理
光电检测是一种非接触式测量方法,使用光电测速不从被测件汲取能量,不破坏现场环境,因此是一种理想的测速方案。使用红外线光能够避免可见光的影响,提高系统的抗干扰能力,因此系统采用红外光电进行测速。当进行测速时,将自制的黑白编码盘粘贴在电机轴端。自制的黑白编码盘是1张贴有白色反光纸条的黑色圆形纸片,如图1所示。系统使用的测速传感器是一体化红外反射式光电传感器,这个传感器集成了红发发射管和接收管。系统测速原理如下:将自制的黑白编码盘粘贴在电机轴端,将一体化红外反射式光电传感器放在距离黑白编码盘1 mm~30 mm的位置,发射红外光信号,当遇到编码盘的黑色部分时,吸收红外光,接收管不导通,输出低电平;当遇到编码盘的白色部分时,反射红外光,接收管饱和导通,输出高电平。当粘有黑白编码盘的电机转动时,系统接收反映电机转速的脉冲,稳定、准确地进行测速。
2 系统硬件设计
系统硬件采用ARM芯片STM32F407VET6单片机作为控制模块的主控单元,外围模块包括电源模块、一体化红外反射式光电传感器检测模块、CAN通信模块、TF卡模块以及读卡器模块。系统硬件框如图2所示。
控制模块由STM32F407VET6最小系统构成,其包括电源电路、时钟电路、复位电路以及下载电路等。光电传感器检测模块由光电传感器TCRT5000和具有施密特触发功能的SN74HC14D构成,具体电路如图3所示。TF卡模块和读卡器模块由TF卡、读卡器芯片GL823K-HCY04、1∶2多路复用器TS3A27518ERTWR和USB接口等构成,TF卡的数据接口与多路复用器TS3A27518ERTWR公共端相连,选通端有两路,一路与STM32F407VET6的SDIO接口相连,另一路与读卡器芯片GL823K-HCY04相连。STM32F407VET6控制PD5管脚的高低电平来切换这2路信号。当PD5为低电平时,实现STM32F407VET6向TF卡写入数据的功能;当PD5为高电平时,实现利用USB读取TF卡数据的功能。CAN通信模块由CAN芯片电源隔离电路和CAN通信电路构成。
红外反射式光电传感器测得的脉冲信号经过SN74HC14D整形后送入STM32F407VET6的定时器三捕获通道PA6管脚,当STM32F407VET6捕获到红外反射式光电传感器脉冲信号的上升沿后,开始计数并开启定时器TIM1、TIM5和TIM8。定时器TIM1用于定时200 ms的测速周期。定时器TIM5的PWM通道1作为高频脉冲发生器,产生频率为5 MHz的方波,根据定时器的主从模式使用定时器TIM8进行高频脉冲计数。当定时器TIM1定时200 ms到达时关闭定时器TIM1、TIM3、TIM5和TIM8并统计定时器TIM3捕获脉冲上升沿的次数和定时器TIM8高频脉冲的个数,采用M/T法计算转速,将转速数据存储在TF卡并按照通信协议利用CAN接口发送转速数据。开启所有定时器TIM1、TIM3、TIM5和TIM8中断,重复上述动作,得到转速的实时数据。
2.1 电源模块
系统采用7.4 V/3 000 mA的聚合物锂电池供电,利用7.4 V经同步BUCK电路转换得到系统5 V电源,由系统5 V电源利用LDO电路得到系统3.3 V电源。电源以及光电传感器检测电路如图3所示。
2.2 红外反射式光电传感器检测模块
选择TCRT5000红外反射式光电传感器,其是一种一体化反射型光电传感器,集成了红外发射管和接收管。发射管是1个红外发光二极管,接收管是1个高灵敏度的光电三极管[1]。接收管的阻值对光线轻度变化极为敏感,当接收的红外光线较弱时,其阻值可以达到500 kΩ;当接收的红外光线较强时,其阻值可以降至30 Ω[2]。红外反射式光电传感器检测电路如图3所示,光电传感器发射红外光信号,当遇到编码盘黑色部分时,吸收红外光,没有红外光反射,经施密特触发器整形后输出低电平;当遇到编码盘白色部分时,反射红外光,接收管接收反射光,经施密特触发器整形后输出高电平。
2.3 控制模块
STM32F407系列单片机是一款性能高、成本低的32位ARM微控制器,工作频率为168 MHz,具有丰富的外设资源,例如FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、RTC和DMA等,集成度极高。综合考虑成本以及系统后续扩展性,主控单元采用STM32F407VET6单片机。控制模块包括STM32F407VET6最小系统,其主要功能是捕获红外反射式光电传感器输出的脉冲数,采用M/T法计算转速,并定时将速度数据存储在TF卡中,按照通信协议利用CAN接口发送数据。
2.4 TF卡模块
由于Flash芯片容量小、成本高和读写数据速度慢,因此系统采用读写速度快、成本低且易于使用和更换的大容量TF卡。STM32F407VET6自带SDIO接口,能够方便地外扩1个32 GB的外部存储器TF卡。SDIO接口驱动采用4位模式,通信速度最快达到24 Mbit/s。在PCB设计中应注意以下3点。1)TF卡信号走线为单端线,控制阻抗50 Ω。2)TF卡所有的信号线要尽量走在同一层,须做等长处理,以时钟线为目标,误差控制在7.620 mm以内。3)TF卡的时钟信号与其他信号线的间距约为0.508 mm,须做包地处理。
2.5 读卡器模块
为了便于读取TF卡中的数据,系统设计了读卡器电路。读卡器电路集成了Type-C接口,如图4所示。TF卡的数据接口与多路复用器TS3A27518ERTWR公共端相连,选通端有2路,一路与STM32F407VET6的SDIO接口相连,另一路与读卡器芯片GL823K-HCY04相连。STM32F407VET6控制PD5管脚的高低电平来切换这2路信号,当PD5为低电平时,实现STM32F407VET6向TF卡写入数据的功能;当PD5为高电平时,利用USB读取TF卡数据。USB1是Type-C接口,在PCB设计中应做90 Ω的阻抗匹配,USB_P、USB_N应走差分线。
2.6 CAN通信模块
由于CAN通信具有可靠性高、实时性强以及传输速率高的特点,因此系统采用CAN通信。为了提高通信的可靠性和稳定性,保障系统安全,系统设计了CAN通信的隔离电路(如图5所示)。系统5 V电源经过U8、U9产出隔离的5 V电源,单独给隔离式CAN收发器CA-IS3050供电。CA-IS3050能够承受高达5 000 Vrms的隔离电压,信号传输速率最高达1 Mbit/s。电路能够避免回流烧毁电路板并限制干扰幅度,增强系统的抗干扰能力。
3 系统软件设计
3.1 M/T测速算法
数字式转速测量的方法主要有M法、T法和同步M/T法。M法测速是在相等的时间间隔Δt读取脉冲数M,由M/Δt计算转速,速度越高,在Δt时间计得的M就越多,由±1个计数脉冲误差所引起的转速测量误差就越小,因此该方法适用于高速。T法测速是根据相邻2个脉冲时间间隔对应的时钟脉冲计数值m来计算转速的,转速越慢或每转脉冲数越多,其计数值m就越多,计数器±1个计数脉冲所引起的误差就越小,因此该方法适用于低速。上述2种方法适用于对转速测量实时性要求不高的场合。但是在动态测量和实时控制系统中,对转速测量的实时性要求较高。该系统不仅要保证周期短,而且要保证测速精度高,因此采用M/T法[3-4]进行转速测量。
采用M/T法进行测速,不仅可以对被测脉冲个数m1进行计数,而且可以对定时器所产生的高频脉冲的个数m2进行计数。m1反映转角,m2反映测速时间,经过计算得到转速。使用该方法测量高速和低速,精度均较高。设f0为高频时钟脉冲的频率,电机每转1圈,光电传感器发出p个脉冲,电机的转速n如公式(1)所示。
3.2 基于M/T法的软件设计
该系统的软件设计主要是采集红外光电传感器输出的脉冲信号,采用M/T法计算转速,定时将速度数据存储至TF卡中,并按照通信协议利用CAN接口发送转速数据。系统软件流程如图6所示。
具体流程如下。1)系统初始化,主要完成系统时钟和输入输出口初始化。2)CAN通信初始化,完成CAN通信工作模式、波特率以及CAN接口对应管脚和时钟等配置。TF卡初始化,完成SDIO接口和时钟的配置。定时器TIM1、TIM5、TIM8的初始化,配置定时器TIM1,实现定时200 ms的功能,来确定测速周期。配置定时器TIM5、TIM8,定时器TIM5的PWM通道一作为高频脉冲发生器,产生频率为5 MHz的方波,利用定时器的主从模式使用定时器TIM8进行高频脉冲计数。3)定时器TIM3初始化,配置PA6为上升沿捕获通道,并开启捕获中断。4)当定时器TIM3捕获通道PA6捕获红外光电传感器输出的脉冲上升沿时,同时开启定时器TIM1、TIM5和TIM8。当定时器TIM1定时200 ms到达时,关闭所有定时器并统计定时器TIM3捕获脉冲上升沿的次数和定时器TIM8的高频脉冲的个数。根据转速公式计算转速,将转速数据存储在TF卡中并按照通信协议利用CAN接口发送转速数据。再次开启所有定时器中断,进入下一次循环。
4 结语
基于ARM的便携式红外测速与数据存储系统已成功应用于络筒机槽筒转速检测过程中,由于采用一体化红外反射式光电传感器和微机化的M/T法数字测速,因此槽筒转速精度达到±1‰。该系统体积小、成本低以及测量精度高,可以进一步推广、应用。
参考文献
[1]车玮.基于SPCE061A单片机的智能消防车设计[J].自动化与仪器仪表,2016(2):227-229.
[2]刘金栋,高荣.基于光电传感器的循迹车设计与实现[J].数字技术与应用,2014(1):148.
[3]冯夏永,宾鸿赞.微机转速测量常用方法与精度分析[J].电子与自动化,1995(2):3.
[4]王文川,韩焱,张丕状.基于时间-数字转换的精密时差测量系统设计[J].现代电子技术,2009(4):21-23.