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

发布者:runaway2000最新更新时间:2012-10-15 来源: 21ic关键字:P87C591  CAN总线  超声测距系统 手机看文章 扫描二维码
随时随地手机看文章
  引言

  移动机器人的安全避障问题一直是该项研究的基本问题,目前解决此问题的基本方法是采用多路超声波传感器通过适当的安装角度达到获取多路测量信息的目的。对于多路超声波传感器的扩展,一般是在机器人系统控制核心之上进行。这样做的缺点在于,超声波传感器的扩展占用了大量的系统硬件资源,另外大量的测量信息的处理也浪费了系统软件资源。针对这一问题,笔者采用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超声波传感器发射部分

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

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

  1.3超声波传感器接收部分

  超声波传感器 [page]

接收部分的硬件电路如图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.4CAN总线设计部分

  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必须完全隔离,否则光耦就失去了意义。可采用专用的电源隔离模块来实现。

图5CAN总线设计部分

  ①TJA1040作为CAN总线收发器,与CAN总线的接口部分也采取了抗干扰措施。TJA1040的CAN_H和CAN_L引脚各自通过一个5 Ω电阻与CAN总线连接,电阻可以起到一定的限流作用,保护TJA1040不受过流的冲击。

  ②CAN_H和CAN_L与地之间并联了2个30 pF的电容,可以过滤掉总线上的高频干扰和一定的电磁辐射。

  ③2根CAN总线接入端与地之间分别反接了一个保护二极管。当CAN总线有较高的负电压时,通过二极管的续流可起到一定的过压保护作用。

  ④总线两端接的120 Ω电阻起匹配总线阻抗的作用,忽略掉它会使数据通信的抗干扰性能及可靠性大大降低甚至无法通信。

  1.5其他

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

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

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

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

  超声波发射部分的软件设计相对简单。在软件编写工作中,需要将超声波持续发射一段时间以便被接收器准确接收。以下程序可作参考:

  START:MOV TH0, #00H;将定时器初值设为0,产生一个方波即产生一次中断

  MOV TL0, #00H

  MOV 10H, #4D;将10H单元做一个计数器实现200 ms定时

[page]

  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.2CAN总线通信部分的软件编写

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

  结语

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

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

上一篇:CAN总线数据采集系统
下一篇:基金会现场总线FF技术在二级种子罐控制系统中的应用

推荐阅读最新更新时间:2024-05-02 22:22

基于CAN总线交通信号灯动态调整系统的设计
  国内红绿灯交通控制系统中红绿灯切换时间广泛采用固定或者分时段变化的时间间隔,或者由交通指挥中心根据交通状况调整时间间隔,不能够根据实际的交通状况进行动态切换,也不能够根据道路状况预先干预,防止交通恶化。在极端情况下,可能会出现有车的方向红灯禁行,没车的方向绿灯通行的现象。这种方式低效、严重依赖于交管部门的工作效率,且一般只能在交通恶化后才可能介入,不能提前预防。为此本文提出了一种基于CAN总线的红绿灯动态调整系统,它能够根据实际交通状况实时调整红绿灯时间,可以降低道路拥堵几率,保障交通畅通。 1 总体设计方案    总体设计方案如图1所示。图1(a)为每个路口的红绿灯控制器,其中环形线圈和红绿灯之间的虚线表示两者之问的联
[安防电子]
基于<font color='red'>CAN总线</font>交通信号灯动态调整<font color='red'>系统</font>的设计
为什么CAN总线通讯需要采用隔离方案?
一、为什么要用隔离 从能源种类来看,目前公路上的车型主要可以分为两类,一类是使用传统汽油、柴油作为燃料的车辆,另一类是使用电池的新能源车。这两类车型的车载空调系统有什么区别呢?传统的燃油车辆,空调压缩机是由发动机直接将动能传递给空调压缩机,而新能源车的空调压缩机则是由车内的电池驱动的。 图1 动力电池 将新能源汽车的动力电池驱动压缩机需要几个步骤,首先要将直流电转化为交流电(逆变),然后调整交流电频率使其能稳定驱动压缩机中的电机,该部分的功能部件在车辆中以空调驱动单元存在。说到高压、逆变、变频、电机这些名词时,想必工程师们会立刻想到一个名词:干扰。 图2 新能源车空调系统 干扰的最终结果就是空调控制器与中控单
[嵌入式]
为什么<font color='red'>CAN总线</font>通讯需要采用隔离方案?
基于LPC2294控制器的CAN总线网状冗余节点方案
一、概述 CAN(Controller Area Network)即控制器局域网,是一种串行数据总线,CAN总线是国际上应用最广泛的现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN总线已被广泛应用于各个自动化控制系统中。在汽车电子、自动控制、电力系统等领域中,CAN总线尤其具有不可比拟的优越性。但是,工业控制现场工况条件十分恶劣,电缆受拉、压、砸、挤等造成故障的情况很多,这对于以总线为核心的CAN总线系统是一种极大的威胁。如何保证现场总线控制系统在恶劣环境下安全、可靠地工作是CAN应用中的一个重要课题。 解决可靠性问题的一个有效的办法就是对总线进行不同程度的冗余,同时使用两(多)条总线
[单片机]
基于LPC2294控制器的<font color='red'>CAN总线</font>网状冗余节点方案
两种采用CAN总线进行通信的系统比较
    CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,它可实现全分布式多机系统,且无主、从之分;具有传输速度快、自动解决总线竞争、实时性好、可靠性高、纠错能力强等特点,目前已成为一种国际总线标准。由于can总线具有诸多优点,它的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统、工业自动化、建筑物环境控制、机床、电梯控制、医疗设备等领域得到了较为广泛的应用。   sja1000是一种独立的can控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是philips半导体公司pca82c200can控制器(basiccan)的替代产品,而且它增加了一种新的操作模式
[嵌入式]
现场总线网络在纯电动汽车控制系统的应用研究
  引言   现代汽车工业和电子技术飞速发展,汽车上的电子装置越来越多。一辆高档汽车的电气节点数已达上千个,如果采用传统的方法进行布线,连线的数量非常惊人而且有极大的故障隐患。为了解决这一问题,各大汽车厂商从上世纪70年代开始了车用网络的研究,并取得了很大的发展,形成了多种适合不同传输速率及特殊用途的网络协议,如:CAN总线、LIN总线、用于诊断的KWP2000、用于X-by-wire的TTP、多媒体应用的MOST协议等。其中CAN(ControllerAreaNetwork,控制器局域网)是BOSCH公司于上世纪80年代提出的。为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,可以很好的解决上述
[嵌入式]
基于CAN总线的分布式蓄电池在线监控系统设计
引言 一般电源设备只能对电池组的整体输出电压和电流进行测量,对于单块电池不能进行在线测量。而电池组的失效又往往是从单块电池失效开始的一种恶性循环,尤其对于使用时间较长但又不超过使用期限的电池组,单纯依靠维护人员的日常维护很难发现问题。因此,对于单块电池的运行参数进行在线监控,及时发现问题就变得极为重要。 单块电池的损坏首先表现在端电压在充电时过高而在放电时又迅速下降,电池体温升高,负载能力下降等异常现象。可以通过对电池的端电压、体温等参数的在线测量及时发现故障电池。 早期的蓄电池在线监控采用集中监控方法,或是基于RS-232(或RS-485)总线的分散采集、集中监控的分布式测量方法。这些方法只能采用主从式系统结构,以轮
[嵌入式]
基于DSP和CAN总线的RTU的设计
  远程测控终端(RTU) 作为体现“ 测控分散、管理集中” 思路的产品从20 世纪80 年代起介绍到中国并迅速得到广泛应用, 应用在变电站上的RTU 主要是实现现场电力参数的远程采集与控制命令的远程发布, 并将信息或结果组装成报文, 上送到控制中心或调度端。纵观国内外的RTU 产品, 逐步从集中式控制结构向模块化、分散式、开放性的系统控制结构发展。由于变电站的数据量和信息量大, 实时性要求高, 因此将具有强大、高效的运算能力和丰富外围接口电路的DSP 应用于RTU 的设计方案; 同时引入了开放性结构的CAN 现场总线引入, 运用于变电站现场数据的通信并由它组成了一个开放、可靠和实时的监控系统。    1 系统总体结构设计
[嵌入式]
基于C8051F040的CAN总线智能节点设计
引言 “X型火控系统”根据实际需要采用了CAN总线方式来实现其内部单体间的通信。CAN总线是一种用于各种设备检测及控制的现场总线,它是一种多主总线,在高速网络和低成本的节点系统中应用都很广泛。CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下: *可以多主方式工作。 *CAN节点只需对报文的标识符滤波即可实现点对点、一点对多点及全局广播方式发送和接收数据。 *CAN总线通信格式采用短帧格式。 *采用非破坏性总线仲裁技术。 *直接通信距离最大可达10km (速率5kb/s以下),最高通信速率可达1Mb/s (此时距离最长为40m),节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved