微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于P87C591的CAN总线超声测距系统设计方案

基于P87C591的CAN总线超声测距系统设计方案

时间:05-02 来源:21ic 点击:

2 超声波智能节点控制系统的软件编写

软件的编写工作主要有两个部分:超声波测距部分和CAN总线的通信部分。

2.1 超声波测距部分的软件设计

超声波发射部分的软件设计相对简单。在软件编写工作中,需要将超声波持续发射一段时间以便被接收器准确接收。以下程序可作参考:
START:MOV TH0, #00H;将定时器初值设为0,产生一个方波即产生一次中断
MOV TL0, #00H
MOV 10H, #4D;将10H单元做一个计数器实现200 ms定时
SETB TR0;启动定时器T0
FS:CPL P2.0;P2.0口产生方波,对于6 MHz晶振频率近似为40 kHz
REPEAT:MOV R0,#12
DJNZ R0,REPEAT
DJNZ 10H,FS
RET
……
END

图6 超声波测距部分程序流程

当超声波接收器接收到回波时,硬件电路产生低电平触发P87C591的外部中断0口。软件编写的主要思想是,在中断服务程序中由寄存器预先设定一个数值,这个数值是机器人避障的最短距离。从超声波发射头发射方波开始,到超声波接收头接收到回波为止,把这段时间换算成为距离,与上述最短距离相比较。如大于最短距离,则不作处理,跳出中断服务程序;如等于或小于最短距离,则执行相应动作。图6是这部分程序的流程。

2.2 CAN总线通信部分的软件编写

这部分软件编写主要由以下几部分组成:初始化、接收处理、发送处理、中断处理及错误处理函数。由于系统中任意节点在任意时刻均可主动与其他节点通信,故各个节点通信程序大致相同。具体程序的编写可参考P87C591的用户手册。

结语

本文论述了以CAN总线扩展多路超声波传感器的基本思想,介绍了一种以Philips公司P87C591作为超声波传感器控制核心及CAN总线控制器和以TJA1040作为CAN总线收发器的CAN总线智能超声波测距系统。与以往移动机器人超声波传感器测距系统相比,这个设计增加了CAN总线部分的设计,将多路超声波传感器的扩展转移到智能节点部分上完成,简化了移动机器人系统控制核心的工作;采取了比较简单的硬件设计,主要是将超声波传感器的控制核心和CAN总线控制器集中到一起,采用P87C591一个器件完成两种芯片的工作,大大节省硬件。另外,CAN总线的扩展也会令后续的移动机器人系统的进一步开发变得更为灵活。实践证明这个设计可行,只是对于实际工作中不同应用场合的有些电路(比如复位电路、电源电路等外围电路)在设计细节上还有待进一步细化。另外,软件编写方面还应特别注意多超声波传感器的抗干扰问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top