引言
随着电子技术的发展,测距技术越来越先进,从采用卷尺人工进行丈量,到用水准仪和三角理论进行测量计算,甚至采用激光测距等,这些测量手段因精度低、操作繁琐或成本高而不尽人意。随着超声波的应用日益广泛,超声测距在测试领域中得到应用,该类产品如进口的超声波液位计、超声波测位仪等性能虽好,但价格昂贵。目前,超声波传感器技术已广泛用于工业、国防、交通、生物医疗和家庭领域。超声波传感器技术与信息技术、集成工艺相结合,为开发智能化、高灵敏度的超声波仪器设备创造了有利条件。鉴于此,运用嵌入式单片机技术、结合CAN总线通信协议标准、设计一种嵌入式超声波测距仪具有很大的发展前景。它可以做到成本低、外围电路简单、功能齐全、能够满足一定的测量要求。
1超声波传感器
1.1典型结构
超声波传感器是利用超声波的特性而研制的传感器,超声波传感器的典型结构如图1所示。它是把成正方形的两个压电晶片(亦称双晶振子)按照相反的极性粘贴在一起,再引出两个电极。压电晶片上面有金属震动板和圆锥形振子。圆锥形振子具有很强的方向性,便于发送和接收超声波。超声波传感器采用金属或塑料外壳,其顶部有屏蔽栅。
1.2测距原理
超声波具有频率较高,沿直线传播、方向性好、绕射小、穿透力强、传播速度慢(约340m/s,与声速相同)等特点。
超声波对固体和液体的穿透能力强,尤其对于在阳光下不透明的固体,可以穿透几十m的深度。超声波遇到杂质或分界面时会产生反射波,利用这一特性可构成超声波探伤仪或测距仪。超声波遇到移动物体时会产生多普勒效应(DopplerEffect),使接收到的频率发生变化,由此可制成多普勒测距系统。
超声波测距原理是超声波发射探头发出的超声波脉冲,经媒质(空气)传到物体表面,反射后通过媒质(空气)传到接收探头,测出超声脉冲从发射到接收所需的时间,根据媒质中的声速,求得从探头到物体表面之间的距离。设探头到物体表面的距离为L,超声在空气中的传播速为v,从发射到接收所需的传播时间为t,则有:L=vt/2。由此可见,被测距离L与传播时间之间具有确定的函数关系,只要能测出时间t,即可求出距离L,通过软件实现直接在显示器上显示L的值。
2硬件电路设计
2.1整体方案设计
根据所给的设计要求,即具有数字显示、键盘输入、超声波发射与接收、能通过CAN总线与上位机进行通信、异常情况自动报警等功能。可以构架出此嵌入式超声波测距仪的整体方案设计框图如图2所示。从图2中可以看出整体硬件电路设计主要包括:微处理器AT89C51部分、电源电路部分、超声波发射与接收电路部分、键盘输入部分、CAN总线通信部分、LED显示部分。现将重点介绍超声波发射、接收电路和CAN总线通信电路的具体设计。
2.2超声波测距电路
超声波测距电路主要包括两个部分:超声波发射电路和超声波接收电路,具体的电路设计如图3所示。图2中上半部分就是超声波发射电路,微处理器AT89C51通过编程在端口P16产生一个40kHz的超声波信号,经过两个74LS14非门将信号驱动整形,再由三极管Q9对其进行放大,最后经过变压器T1送到超声波传感器CSB-T40,这样就可以通过超声波传感器CSB-T40发出相应的超声波信号。而图3中的下半部分就是超声波接收电路,超声波信号通过障碍物发射到超声波传感器CSB-R40后,产生一定的电信号,电信号通过集成块BX1490放大后送到了2个74LS14非门电路整形,最后进入微处理器AT89C51的P17端口。这样就完成了1次超声波测距的扫描过程,它可以通过程序来控制计数器,将计数器的数据转换为相应的时间,再用时间乘以超声波的传播速度后除以2,既可以得到障碍物与超声波传感器之间的距离。
2.3CAN总线通信电路
考虑到现在的智能测试设备日益趋于网络化,则将CAN总线通信功能也设计进了此嵌入式超声波测距仪中,CAN总线通信电路系统主要有AT89C51微控制器、独立CAN通信控制器SJA1000、CAN总线驱动器PCA82C250及复位电路IMP708组成。CAN总线应用节点具体电路设计如下图4所示。为了提高系统的抗干扰能力,设计在SJA1000和CAN总线驱动器PCA82C250之间增加了光电隔离器6N137。当微处理器AT89C51将测距结果数据通过P0口发送到CAN总线控制器SJA1000,由SJA1000将并行数据转换为串行数据从端口TX0发出,经过光电隔离器6N137后到达CAN总线驱动器PCA82C250,最后将数据发送到CAN总线上。相反,来自CAN总线的数据也可以经过相应电路到达微处理器。这样就可以实现测距仪与上位机的通信功能。
3程序设计
3.1主程序设计
系统主程序主要包括系统的启动后对系统的初始化、超声波发射与接收、中断管理、计时程序、测距计算、结果显示、CAN通信、报警等其他子程序组成。根据以上超声波测距仪的工作原理描述,系统主程序的流程图设计如图5所示。在主程序初始化后就进入超声波信号发送程序,即利用程序产生超声波信号由微处理器的P16端口送出,此时系统进入计时状态,同时检测P17端口是否能接收到超声波的回波信号,但检测到回波信号就关闭外部中断进入计算距离子程序,接下来进行是否报警验证和CAN通信子程序,最后打开外部中断完成一次测距扫描过程,即主程序结束。
3.2CAN通信子程序设计
CAN通信子程序主要包括3个部分:初始化子程序、发送子程序、接收子程序。在初始化子程序中主要是对系统的一些验收码寄存器、定时寄存器、输出控制寄存器、定时寄存器、工作模式寄存器、中断定时同步等参数进行设置。CAN通信中的发送与接收子程序的程序流程图设计如图6所示。在发送子程序中主要是读取状态寄存器位SR.2,看看SR.2是否为1,如果该位为1则进行相应的发送准备工作,同时将命令寄存器CMR.0置请求发送,发送完毕后就自动返回。而在接收子程序,先要读状态寄存器位SR.0,看看是否允许将缓冲区数据读取到CPU的RAM中,读取完毕后就释放接收缓冲区,再看看SR.1是否为1,为1则对SR.1进行清除并作溢出处理,否则就读取SR.6与SR.7并对其作计时器警告及相应处理。
4结语
所设计的嵌入式超声波测距仪具有结构简单、价格便宜、性能可靠,测量和显示障碍物距离的范围为0.05~10m,它适用于对物体表面和液体表面的测量,可以作为一种小型的测距仪器使用于汽车倒车监视与报警装置,也可以作为一种嵌入式设备嵌入到其他大型的工业检测与控制系统中。