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

发布者:不染尘埃最新更新时间:2011-05-29 关键字:超声波测距  CAN总线  P87C591  TJA1040  LM386  CX20106A 手机看文章 扫描二维码
随时随地手机看文章

引言

  移动机器人的安全避障问题一直是该项研究的基本问题,目前解决此问题的基本方法是采用多路超声波传感器通过适当的安装角度达到获取多路测量信息的目的。对于多路超声波传感器的扩展,一般是在机器人系统控制核心之上进行。这样做的缺点在于,超声波传感器的扩展占用了大量的系统硬件资源,另外大量的测量信息的处理也浪费了系统软件资源。针对这一问题,笔者采用CAN总线扩展多路超声波传感器的作法。这种作法有几个优点: 首先,CAN总线具有良好的传输防错设计,保证了数据通信的可靠性;其次,多路超声波传感器的设计可由CAN总线智能节点实现,大大节省了系统硬件资源和软件资源;第三,由于CAN总线对于网络内的节点数在理论上不受限制,所以随着对移动机器人研究的不断深入,对于整个机器人系统的总体设计可以灵活地在CAN总线上进一步开发。本文介绍的CAN总线智能节点的设计以Philips公司的P87C591作为超声波传感器的控制核心。由于P87C591具有片上自带的CAN控制器并且为CAN的应用提供了许多专用的硬件功能,因此又将它作为了系统的CAN总线控制器,大大节省了主控系统的资源。CAN总线的收发器采用TJA1040。系统总体结构框图如图1所示。

  机器人系统控制核心由ARM实现。其主要功能是处理需要复杂计算的信息,将经过处理的信息再送回CAN总线,并对整个网络进行管理。超声波智能节点控制系统的主要功能就是判断障碍物位置,将对移动机器人前进方向有阻碍的障碍物信息通过CAN总线传回主控系统,由主控系统作出相应处理并进行避障动作。本文将着重介绍超声波智能节点控制系统。

按此在新窗口浏览图片
图1  系统总体结构框图

1  超声波智能节点控制系统的硬件设计

  超声波智能节点控制系统的硬件电路如图2所示。P87C591是51系列单片机,对于大部分熟悉51单片机的使用者来说它的使用方法十分简单。下面分别介绍各个组成部分。

按此在新窗口浏览图片
图2  超声波智能节点控制系统

1.1  控制部分

  超声波传感器的控制部分采用Philips半导体公司生产的P87C591。它是一个单片8位高性能微控制器,具有片内CAN控制器,是从80C51微控制器家族派生出来的。它采用了强大的80C51指令集,并成功地包括了Philips半导体公司SJA1000 CAN控制器的PeliCAN功能;全静态内核提供了扩展的节电方式;振荡器可停止和恢复而不会丢失数据;改进的1∶1内部时钟预分频器在12 MHz外部时钟速率时,实现500 ns指令周期;内部具有的16 KB内部程序存储器完全满足本系统要求。

  作为系统控制核心,P87C591担负两个主要任务。其一是作为超声波传感器的控制核心,在其普通I/O口上扩展了超声波传感器的接收和发射部分电路,利用单片机软件功能产生40 kHz信号并通过驱动放大发射出去,再利用接收部分电路进行接收。另外可以对其余口线继续进行超声波传感器的扩展,实现多个超声波传感器系统的设计。其二是利用P87C591的片内CAN控制器实现与CAN总线的连接。这样的设计改变了过去在机器人控制核心上进行超声波测距系统的设计,不但将超声波检测与处理的工作转移到了单片机上,大大节省了机器人控制核心的系统资源,还将CAN总线智能节点的大部分控制工作也转移到了单片机上,节省了硬件资源,同时CAN总线的采用大大提升了系统的抗干扰能力,使机器人控制系统更加稳定地工作。

1.2  超声波传感器发射部分

  超声波传感器发射部分硬件电路如图3所示。

按此在新窗口浏览图片
图3  超声波传感器发射部分 [page]

  LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。它是一个三级放大电路。

  本部分硬件电路相对简单,主要就是利用LM386的驱动放大功能将单片机产生的40 kHz方波放大输出。因为在智能超声波节点控制系统中单片机的工作相对较少,为节省硬件,不妨将40 kHz方波的产生这部分工作交由单片机的定时器来完成,这样只需十分简单的硬件电路即可完成。UST1为超声波发射头。

1.3  超声波传感器接收部分

  超声波传感器接收部分的硬件电路如图4所示。

按此在新窗口浏览图片
图4  超声波传感器接收部分

  电路采用集成电路CX20106A。这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与测距超声波频率40 kHz较为接近,可以利用它作为超声波检测电路。实验证明,其具有很高的灵敏度和较强的抗干扰能力。适当改变C1的大小,可改变接收电路的灵敏度和抗干扰能力。R1和C1控制CX20106A 内部的放大增益,R2控制带通滤波器的中心频率。一般取R1=4.7 Ω,C1=1 μF。其余元件按图4取值。US_R1为超声波接收头,当收到超声波时产生一个下降沿,接到单片机的外部中断INT0上。

  当超声波接收头接收到40 kHz方波信号时,将会将此信号通过CX20106A驱动放大送入单片机的外部中断0口。单片机在得到外部中断0的中断请求后,会转入外部中断0的中断服务程序进行处理,在移动机器人的避障工作中,可以在中断服务程序设定需要单片机处理的最短距离,比如0.5 m。对于距离大于0.5 m的障碍物,可以不做处理直接跳出中断服务程序;对于距离小于或等于0.5 m的障碍物信息,则在中断服务程序中进行处理并通过CAN总线上报机器人系统控制核心,由机器人系统控制核心发出命令指导机器人的避障动作。对于多超声波传感器系统,每一个超声波传感器在判断到对机器人行动有障碍物时可分别在其中断服务程序中对障碍物信息进行简单处理,上报给机器人系统控制核心的信息可以相对简单,只需机器人系统控制核心控制机器人的实际动作,比如左转30°,而不必机器人系统控制核心再次进行计算,这样
会节省大量系统资源去作其他更为复杂的工作。

1.4  CAN总线设计部分

  CAN总线设计部分的硬件电路如图5所示。

  TJA1040是Philips半导体公司生产的完全可替代PCA82C250的高速CAN总线收发器。该器件提供了CAN协议控制器和物理总线之间的接口,以及对CAN总线的差动发送和接收功能。TJA1040具有优秀的EMC性能,而且在不上电状态下有理想的无源性能;它还提供低功耗管理,支持远程唤醒。值得一提的是TJA1040的自动防故障功能,在引脚TXD上提供了一个向VCC的上拉,使引脚TXD在不使用时保持隐性电平。引脚STB提供了一个向VCC的上拉,当不使用引脚STB时,收发器进入待机模式。如果VCC掉电,引脚TXD、STB和RXD就会变成悬浮状态,防止通过这些引脚产生反向电流。

  这部分电路硬件相对简单,但对于CAN总线的抗干扰能力需特别注意。本设计主要突出以下几点:

  图中6N137是光电耦合器,P87C591的RXDC脚(即P1.0口)作为CAN接收器的输入脚,TXDC口(即P1.1口)作为CAN发送器的输出脚,都通过6N137连接至CAN发送器TJA1040。采用光电耦合器6N137的目的是增强CAN总线节点的抗干扰能力,这样的设计可以很好地实现总线上各CAN节点间的电气隔离。但要注意的是,光耦部分电路所采用的两个电源VCC和V必须完全隔离,否则光耦就失去了意义。可采用专用的电源隔离模块来实现。

按此在新窗口浏览图片
图5  CAN总线设计部分

  ① TJA1040作为CAN总线收发器,与CAN总线的接口部分也采取了抗干扰措施。TJA1040的CAN_H和CAN_L引脚各自通过一个5 Ω电阻与CAN总线连接,电阻可以起到一定的限流作用,保护TJA1040不受过流的冲击。
  ② CAN_H和CAN_L与地之间并联了2个30 pF的电容,可以过滤掉总线上的高频干扰和一定的电磁辐射。
  ③ 2根CAN总线接入端与地之间分别反接了一个保护二极管。当CAN总线有较高的负电压时,通过二极管的续流可起到一定的过压保护作用。
  ④ 总线两端接的120 Ω电阻起匹配总线阻抗的作用,忽略掉它会使数据通信的抗干扰性能及可靠性大大降低甚至无法通信。

1.5  其他

  除以上提到的几个主要部分之外,还有单片机的复位电路、外部时钟电路和电源等几个部分,本文只提供了一种最简单方案。在实际应用中,对于较为复杂的现场环境可以相应添加看门狗复位电路和独立电源设计等复杂电路。值得注意的是,对于复位电路和电源电路应该给予足够的重视。

[page]

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总线的扩展也会令后续的移动机器人系统的进一步开发变得更为灵活。实践证明这个设计可行,只是对于实际工作中不同应用场合的有些电路(比如复位电路、电源电路等外围电路)在设计细节上还有待进一步细化。另外,软件编写方面还应特别注意多超声波传感器的抗干扰问题。

 

关键字:超声波测距  CAN总线  P87C591  TJA1040  LM386  CX20106A 引用地址:基于P87C591的CAN总线超声测距系统设计方案

上一篇:电子护照安全机制及测试
下一篇:一种原油超声波相关流量计的设计

推荐阅读最新更新时间:2024-03-30 22:14

基于CAN总线的仓库温湿度监控系统的设计
1 引 言   在仓库的货物的管理中,需要对温度、湿度等环境参数进行监控,以保证仓库的安全。随着库区的面积逐渐扩大,需要传输能力强和通信距离远的监控系统来有效地对仓库货物进行监管。   CAN(Controller Area Network,控制器局域网)总线技术具有先进的多主网络结构、通讯距离远、价位低、可靠性高、系统容量大、安装方便、维护费用低、性价比高等优点。特别对库区较大、仓库分布较分散的大型仓库的监控非常适用。 2系统硬件设计   本系统采用分布式监控网络,主要分为上位机和下位机两部分,而上位机硬件包括CAN通讯适配器和上位监控管理机组成;下位机则由CAN节点和现场传感器组和温度湿度参数控制器组成,如图1
[嵌入式]
CAN总线+单片机实现通信网络设计
在分析了RS-485总线与CAN部迟疑不决的异同点后,以PCA82C250型接口电路为例提出了用CAN总线通信物理层接口电路来替代RS-485总线接口中电路与单片机直接连接进行通信网络设计,从而可形成一个高性能、低价格且数据通信安全、可靠的分布式测控系统。   1 概述   电流环形式因较RS-485/RS-422总线形式连线复杂等原因已基本退出历史舞台。而RS-485总线接线形式较RS-422总线接线形式少了二极通信线且抗干扰能力增强,从而使接线形式更为简单、造价更低,因此,RS-485总线基本上独霸了以单片机为核心的分布式多机测控系统通信物理层的应用。但随着科技的发展,RS-485总线的总线效率低、系统实时性差、通讯可靠性
[单片机]
<font color='red'>CAN总线</font>+单片机实现通信网络设计
CAN总线的通信错误与处理措施
在CAN总线中存在5种错误类型: 位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平与送出的电平不同时9则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。送出认可错误标注的发送器,在检测到显性位时也不认为是错误位。 填充错误:在使用位填充方法进行编码的报文中,出现了第6个连续相同的位电平时,将检 测出一个填充错误。 CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以与发送器相同的方法计算CRC。如果计算的结果与接收到的CRC序列不同,则检测出一个CRC错误。 形式错误: 当固定形式的位区中出现一个或多个非法位时,则检测到一
[嵌入式]
CAN总线应用于蓝牙技术——汽车CAN总线仿真开发工具
    首先根据整个来电管理的过程设计三个状态,USB-BOX默认起始状态为Ready,当手机来电时,手机把蓝牙信号(呼叫过程提示)、(来电响铃提示)和CALLER_ID_IND(来电号码)等来电信息传给USB-BOX,USB-BOX进入状态,通过CAN帧将响铃提示信息发送给管理功放音响的收音机,把来电号码发送给液晶屏,这时收音机播放铃声,同时液晶屏上弹出显示页面,包括该电话号码,并提供是否接听的两个可导航选项,这个页面的标识符便是来电管理标识符。   在这个CAN网络汽车音响系统中,收音机和方向盘CAN节点提供人机操作接口控制USB-BOX,而USB音乐播放和蓝牙免提功能相关的液晶屏显示页面则由USB-BOX来控制。USB-BOX
[嵌入式]
超声波测距显示程序
//超声波模块显示程序 #include //包括一个52标准内核的头文件 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long sbit Tx = P3^3; //产生脉冲引脚 sbit Rx = P3^2; //回波引脚 uchar code SEG7 ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//数码管0-9 uint distance ; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcom
[单片机]
CAN总线错误检测机制
CAN总线 是 ISO 国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,CAN总线应运而生,图1为CAN总线在汽车中的应用图。   图1  汽车中CAN总线的应用   CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。图2为CAN总线网路图,它的出现为
[嵌入式]
CAN总线网络应用例举
  前言   现场总线的工业过程智能自动化仪表和现代总线的开放自动化系统构成了新一代全开放自动化控制糸统的体系结构。   目前国际上公认的现场总线有10多种,各有其特点,并在一定范围内得刭应用。 其CAN总线网络是炙手可热的技术,目前它正在工业网络、医疗设备、轨道交通信号、楼宇控制及其它众多系统中得到应用。而本文要对CAN总线网络应用例举及其拓宽的现场总线控制系统(FCS)作其说明。   CAN总线网络   CAN采用多主工作方式,节点之间不分主从,但节点之间有优先级之分,通信方式灵活,可实现点对点、一点对多点及广播方式传输数据,无需调度。也就是说,它可向系统中的所有节点进行报文发送广播,即CAN系统中的每个节点均同时接
[嵌入式]
浅谈混合动力汽车的整车CAN总线网络拓扑结构设计
01 前言 电动汽车各个模块之间的交互有效性直接影响了汽车的行驶效率和驾驶感。而插电式混合动力汽车根据电力驱动系统和发动机动力系统的布局形式可以分为3类:串联式、并联式、串-并联混合式。该文探讨的是并联式混合动力系统方案,它具有对原车技术模块化,实施性方便,适用性广特点。 02 术语 节点:连接在通讯网络上,能够按照某一通讯协议通过网络进行通讯的设备的集合。 总线电压:总线电压是CAN总线的CAN_H或者CAN_L 对各自CAN节点地的电压。 03 CAN总线网络拓扑结构设计 CAN总线是一种多主总线,一旦有总线闲置,任意一个CAN节点均可向总线发送数据。CAN总线通道中优先发报文的节点取决于无损逐位仲裁的方式, 此方式可
[嵌入式]
浅谈混合动力汽车的整车<font color='red'>CAN总线</font>网络拓扑结构设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved