贺洪江,程 琳
(1.河北工程大学装备制造学院,河北邯郸 056038;2.河北工程大学信息与电气工程学院,河北邯郸 056038)
超声波测距技术是基于无目视能力的生物(蝙蝠等)防御及捕捉猎物生存的原理,利用超声波在空气媒介中传播,碰到障碍物反射回来的时间间隔长短及被反射波的强弱判断障碍物的性质和位置的方法[1]。它是一种非接触式检测方式,不受光照度、电磁场、被测物色彩等因素的影响,信息处理简单,速度快,成本低[2-4]。在移动机器人避障和定位、液位测量、物体识别、汽车防撞等方面有广泛应用。文中采用模块化设计方案,设计一个基于STM32F103C8T6和CX2016红外解码芯片的超声波测距仪,通过RS-485总线与主控制器组网,结合MODBUS协议,为工业应用领域提供距离信息和辅助视觉信息。
测距控制系统的硬件组成结构示意图如图1所示。
图1 测距控制系统硬件结构示意图
1.1核心控制器
核心控制器采用基于Cortex-M3内核的32位增强型闪存微控制器STM32F103C8T6,该芯片主频和定时器的频率可高达72 MHz,定时器的高分辨率为测量的高精度提供了保证。超声波的发射选用定时器PWM功能来驱动,回波信号的接收选用定时器的输入捕获功能。开始测距时,定时器开启的同时启动PWM和输入捕获,能完全消除启动发射和启动计时之间的偏差,从而提高测量精度。同时其内部自带温度传感器,丰富的片上资源简化了系统硬件,同时降低了系统功耗。
1.2测距方法
1.3总线的选择
考虑到超声波测距仪一般连接在工业现场,与主控制器距离可能较远,并且组网后测距仪之间不需要通信,因此选用RS-485总线方式。RS-485总线支持多点连接,且采用平衡发送和差分接收,抗共模干扰能力强,即抗噪声干扰性好,与上位机之间通讯时通信速率较高。其最大传输距离可以达到1 200 m,适合远距离传输。还具有可靠性高、性能价格比高等优点。
超声波测距仪的硬件设计包括测距最小系统、发射电路、接收电路、通信接口电路等。
2.1测距最小系统
测距仪的最小系统如图2所示,核心控制器为STM32F103C8T6。
图2 测距最小系统
2.2发射电路
超声波发射电路由超声波激励电路和超声波发射探头2个部分组成,如图3所示。其工作原理为:由STM32的高级定时器TIM1输出40 kHz的激励脉冲信号,经P26引脚(网络标号SEND)输入至升压单元。
升压单元由一对复合管和脉冲变压器组成。复合管有很高的电流放大系数,脉冲变压器将5 V电压升至12 V.脉冲信号经放大、升压后输出,经激发探头发射出超声波。该电路的优点是消除了电路谐振,缺点是需2种电压。
图3 超声波发射电路
2.3接收电路
超声波接收电路是超声波测距中关键的一部分,如图4所示。该设计选用集成电路CX20106。CX20106是专用的40 kHz红外信号接收芯片,具有很高的信号检测灵敏度且能有效减少电路之间的互相干扰,减少电噪声[5]。可用来完成信号的限幅、放大、峰值检波、带通滤波和波形整形等功能。其中的前置放大器具有自动增益控制功能,能够保证在超声传感器接收近距离内输入信号很强时放大器不会过载,接收较远反射信号输出微弱电压时,放大器有较高的增益。R8可调节带通滤波器的中心频率,不需要外接电感,可避免外磁场对电路的干扰,可靠性较高。
图4 超声波接收电路
2.4通信接口电路
通信接口电路如图5所示,电平转换芯片U4选用MAX485,为半双工通信方式。P1为总线接口端子。总线末端接120 Ω的匹配电阻,可吸收总线上的反射信号,使得正常的传输信号无毛刺,便于远距离传输。
图5 通信接口电路
该测距系统软件设计包括:主程序、超声波发射子程序、测距子程序、串口通信子程序等。
3.1软件设计
STM32F103C8T6是该系统的核心和灵魂,由它来控制系统各模块协调工作。STM32具有很高的指令效率和很强的性能,对中断事件的响应比其他单片机更迅速,因而具有更高的执行效率。其内部还带有硬件除法器,节约了计算时间,提高了程序效率。
测距软件的基本流程:首先对系统进行初始化,通过STM32的PWM模块产生40 kHz的脉冲方波,并通过其输入捕捉模块捕获回波信号。待回波进入接收电路,经放大/整形等硬件处理后,进入核心控制器。调用温度测量子程序和测距子程序按照公式s=vt/2计算出被测距离。最后按实际需求通过串口通信模块将测量结果传出。软件主程序流程如图6所示。
图6 主程序流程图
3.2MODBUS协议选择
MODBUS是工业现场设备(如DCS、PLC、智能仪表等)中使用很广泛的一种总线协议,支持多种电气接口,如RS-232、RS-485、以太网等。MODBUS协议采用主从工作方式,允许一台主机和多台从机通信,从机地址由用户设定。
标准的MODBUS网络通信可设置为2种传输模式(ASCII或RTU)。ASCII模式消息中的每个8B都作为2个ASCII字符发送,采用纵向冗长检测(LRC)校验。ASCII模式字符发送的时间间隔可达到1 s而不产生错误,处理信息精确且时间短,易于测距仪与上位机之间的通信传输,因此该系统选用ASCII模式。串口通信协议接收和发送帧格式如表1所示。
表1 接收和发送的帧格式
规定主机地址为0x00,读取距离命令为0x0A,如主机需要1号模块(地址为0x01)的距离数据则:
主机发送:0x3A 0x01 0x0A 0x00 0xF5
0xOD 0xOA
从机返回:0x3A 0x00 0x0A 0x1
1 0x22 0xC3
0xOD 0xOA
返回帧中:0x11、0x22,为有效数据,转换成十进制时低位在后,高位在前。
该测距仪的测量范围为0.4~5 m.根据设计的电路和软件,测量数据如表2所示,从所测量的数据可得出该测距仪的测量误差基本控制在1%,测量精度高,能够满足工业现场需求。
表2 超声波测距仪测量数据
该系统具有制作简单,工作稳定,硬件成本
低,可进行功能扩展等优点。通过合理选用STM32F103C8T6和MODBUS通讯协议组成方案,提高了测量精度,抗干扰性能得到了较大的改善,完成一次测量的时间也缩短,并能及时向上位机主控制器提供测距服务。
参考文献:
[1]来清民,高风昕.超声波测距在行走机器人感知系统中的应用.微计算机信息,2006,22(5):206-208.
[2]赵海鸣,卜英勇,王纪婵,等.一种高精度超声波测距方法的研究.湖南科技大学学报:自然科学版,2006,21(3):35-38.
[3]肖志红,汉泽西.一种基于单片机的超声测距系统的设计.现代电子技术,2006,29(19):97-98,101.
[4]司春宁,LU W K.提高超声波测距系统精度的研究.仪表技术,2008(8):23-25.
[5]秦伟,颜文俊.基于CX20106A的超声波倒车雷达设计.压电与声光,2011,33(1):162-163.
作者简介:贺洪江(1964—),教授,硕士,主要研究方向为计算机检测与控制、传感器技术和嵌入式系统应用。
E-mail:hh6410@126.com
程琳(1985—),硕士研究生,主要研究方向为计算机检测与控制。
E-mail:chenglin9419@yeah.net