1 前 言
目前大多数的超声波测距系统都是采用单片机作为控制核心,利用超声波传感器发出超声波信号,超声波碰到障碍物后反射回来,传感器接收到回波,单片机通过对发射波和回波的查询,或利用发射波与回波触发中断,来开关定时器测出发射波和接收到回波的时间差 t,从而计算出定点离障碍物的距离 S=Ct/2,式中的 C 为超声波波速。超声波的波速 C 与温度有关,表 1 是超声波在不同环境温度下的波速关系
由此可见,超声波在空气中的传播速度很快,均在 300m/s 以上。由于一般的单片机时间分辨率不是很高(晶振频率为12MHz时,时间分辨率为1μs),加之单片机查询发射波与回波,或利用发射波与回波触发中断再通过程序启停内部定时器均需要一定的时间[1],所以这种类型的测距系统的误差都较大,导致其性能在某些场合下不能满足要求。 引入专用的定时/计数器 8254 进行计时,可在很大程度上提高测距系统的准确性。
2 定时/计数器 8254
8254 是专用的定时器芯片,有 3 个独立的 16位可编程计数器,每个计数器可按二进制或 BCD (二—十进制)编程,实现减法计数,使用非常灵活,功能非常强大。 8254 通过对加在其 CLK 输入引脚的脉冲进行计数,脉冲最高频率可以达到 10MHz,并且可以利用硬件或软件的办法任意启动或停止计数,利用8254 进行计时,时间分辨率更高,如输入 4MHz的计数脉冲,其时间分辨率可达到 0.25μs。
8254 是 NMOS 器件,采用双列直插式 24 脚封装,它的输入和输出都与TTL电平兼容。其引脚排列见图 1。
[page]
254 的每个定时器都有一个控制口 GATE,可利用发射波与回波直接启停该定时器,而不必把发射波与回波接至单片机,通过查询或中断再启停定时器,这样即可提高测距系统的响应速度,减少了系统自身的误差,提高准确度。
3 硬件结构
假设超声波测距系统采用 8031 单片机为控制核心,使用 8254 的 0#定时器记数,CLK0 信号由外部电路提供准确的 4MHz 脉冲信号(可通过74LS390 等分频器分频获得),利用一个 JK 触发器的输出作为 8254 0#定时器的门控信号 GATE0,回波信号同时作为单片机 INT 0的中断响应信号。初始化时,由 8031 单片机的 P1.0 口对JK触发器清 0,8254 的 T0 不计时;发射波产生后,JK 触发器翻转,T0 开始工作,计数初值不断减 1;超声波传感器收到回波后,使 JK 触发器再次翻转,8254 的 T0 停止工作,回波信号同时触发单片机中断,在中断服务子程序读出计数器计数初值中所剩余的值,然后计算出距离,通过显示电路即可将测出的距离显示出来。硬件结构如图 2 所示
4 软件设计
软件分主程序和中断服务程序为两部分。主程序完成单片机和 8254 计数器的初始化工作、超声波的发射与回波的检测以及中断控制。中断服务子程序主要完成时间值的读取、系统复位、距离计算和结果的输出等工作。主程序和中断服务子程序的流程图如图 3,图 4 所示。
[page]
5 抗干扰措施
影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响.本系统设计时,应主要考虑电源对单片机的影响。电源质量的好坏,直接关系到整个电路的抗干扰能力。单片机对电源噪声很敏感,要给单片机电源、定时/计数器 8254 的电源、JK触发器电源以及其它附属电路的电源加电容、电感滤波电路或稳压器,并尽量采用集成式直流稳压电源,以减小电源噪声对单片机的干扰。
此外,要采取适当的措施切断其他干扰源的传播途径。单片机系统和超声波传感器的驱动电路要分别接地,电源线和地线要尽量加粗,以减小相互干扰。为 8254 的 0#定时器提供 CLK0 时钟信号的晶振要与单片机引脚尽量靠近,并用地线把时钟区隔离起来,晶振外壳要接地并固定。
6 结束语
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而被广泛应用于距离的测量。利用超声波检测具有迅速、方便、计算简单、易于做到实时控制等特点,通过引入定时/计数器8254 进行计时,使系统的测量精度完全能达到工业实用的要求,应用领域得以扩展,其不仅可用于倒车雷达、物位测量等普通场合,而且也可广泛用在移动机器人的研制上。
参考文献
1 王福瑞. 单片微机测控系统设计大全. 北京:北京航空航天大学出版社, 1998.
2 张淑清, 姜万录. 单片微型计算机接口技术及其应用. 北京:国防工业出版社, 2001.
3 孙莉, 蒋从根主编. 单片机原理及应用. 北京: 机械工业出版社, 2003.
4 余永权, 汪明慧, 黄英编著. 单片机在控制系统中的应用.北京:电子工业出版社, 2003.
暂无评论哦,快来评论一下吧!