技术中心
 
 

面向润滑站加注系统的CAN通信接口设计

   日期:2008-10-31     作者:管理员    

 1  引言

  润滑站(中心)是设备润滑管理的集散地,是负责本地区、本部门设备用润滑油管理工作的专业职能部门[1]。目前石油企业的润滑站系统主要为车辆和设备润滑服务,实现对油品的储存、发放,对润滑服务、油品质量进行跟踪和检测等。但是,与国外油田相比,我国油田润滑站的监控与管理系统自动化程度相对落后,加注过程主要仍采用手工作业方式,数据采集需依靠工人定时到现场进行仪表抄录,实时性差、误差大,不仅大大降低了工作效率,而且有碍于生产效率的提高。为此,本文给出了射频读卡控制器的硬件设计方案,并对通讯接口模块部分做出了详细的介绍。在此润滑站加注系统中,工人凭发放的“加油卡”加油,管理人员通过加油卡管理系统对油料的使用情况进行结算管理,取代了传统的人工登记、结算的管理方式,实现了加注与管理的自动化。

 

2  系统结构及功能

  润滑站加注系统所针对的是油田内部的自备加油站,在此加注系统中安装射频读卡器,可实现油品加注过程的自动化管理。射频读卡控制器由主控制器、can接口模块、读卡模块、液晶显示模块、键盘及蜂鸣器驱动电路等组成。由于润滑站中油品种

类不一,因此需安装相应数量的读卡控制器,这就对数据通信的实时性、可靠性等方面有很大的要求,因此,本系统中选用can为现场总线通讯方式。与工业控制领域广泛应用的rs-232或rs-485总线比较起来,can总线不但具有多主的工作方式(即总线上任一节均可在任意时刻主动的向其它节点发送信息)[2],而且具有通信速率高、可靠性高、传输距离远等诸多优点。can可提供高达1mbps的数据传输速率(最长距离为40m),直接传输距离最远可达10km(速率5kbps以下)。本设计中can总线接口由can协议控制器和can驱动器组成。

 

3  can总线接口模块设计

3.1 硬件设计

 

图1  结构原理图

  can接口模块的硬件结构如图1所示。该模块主要由主控制器、can总线控制器、总线驱动器及看门狗电路组成。主控制器选用atmel公司生产的at89c52。can协议控制器选用philips公司生产的独立控制器sja1000,拥有pelican和basiccan两种模式,支持can2.0b协议。使用sja1000可完成总线通信任务,但它的驱动能力不够,因此外加总线驱动芯片,提供can控制器和物理总线间的接口,实现对总线的差动发送和接收功能。总线驱动器选用philips公司生产的pca82c250,它不直接与sja1000相连,而是通过光耦实现总线上各节点间的光电隔离,提高系统的抗干扰能力。

3.2 硬件电路原理图

 

图2  sja1000与at89c52的接口电路图

  (1) sja1000与at89c52的接口设计。sja1000与at89c52的接口电路如图2所示,sja1000的ad0~ad7直接与at89c52的p0口相连,其片选信号/cs由at89c52的p2.7提供,由ale、wr、rd控制sja1000数据的发送和接收。sja1000的11脚mode接高电平,选择intel二分频模式。16脚是中断信号的输出,有中断发生时,16脚出现由高电平到低电平的跳变,因此可直接与at89c52的外部中断输入脚相连接。看门狗及复位电路由max813l提供。该电路可实现手动复位、上电复位及看门狗定时器清零功能[3]。此设计中,at89c52为低电平复位,而sja1000为高电平复位,因此在sja1000的复位输入端通过一个反向器与其相连。

 

图3  物理接口电路图

  (2) 物理接口电路设计。物理接口电路如图3所示,为了提高系统的抗干扰能力,在can控制器sja1000和can驱动器pca82c250之间使用了由高速光耦6n137构成的隔离电路。光耦6n137的输入端2、3脚的信号输入极性要与输出极性相同,从而使单片机输出的数据与pca82c250中数据的极性一致。总线两端接2个120ω的总线阻抗匹配电阻,忽略掉它们会降低总线的抗干扰能力,甚至导致无法通信。引脚8为斜率电阻输入端,有高速、待机和斜率控制三种不同的工作方式[4]。本设计中选择斜率控制方式,电阻为160kω。在这种方式下可使用平行线或双绞线做总线。

3.3 软件设计

  (1) 总体设计思路。基于at89c52和sja1000的can接口模块通过can总线建立通信的过程包括系统上电和正常运行两个阶段。在系统上电阶段,首先需要通过sja1000的软、硬件连接对at89c52进行设置,其次要根据模式的选择对验收滤波、位定时等参数进行设置;进入正常运行阶段后,需要准备待发送的报文 并激活sja1000来发送报文,同时完成报文的接收并对发生的错误进行处理。可见,can通信接口部分的应用程序可被分为sja1000的初始化程序、报文发送程序和报文接收程序,下面分别对这三部分的程序设计进行说明。

  (2) sja1000初始化。对sja1000j进行初始化之前,首先通过读写测试寄存器来判断sja1000与单片机的物理连接是否正确。然后进行初始化操作,包括设置时钟分频寄存器ocr,设定sja1000的工作模式;设置总线定时寄存器,确定总线数据传输速率;设置输出控制寄存器,配置输出类型;设置中断寄存器,选择中断类型[5]。以上工作必须在sja1000的复位模式下进行,初始化完成后,设置sja1000进入工作状态。具体过程如图4所示。

 

图4  sja1000初始化流程图  

  (3) 接收、发送报文。在进入工作模式后,can控制器sja1000的中断可被使能,可以正常的发送或接收报文。报文的发送和接收过程可由sja1000的中断请求控制或由查询控制段的状态标志控制。在采用中断请求控制报文的发送和接收时,必须开放s

ja1000的发送中断使能和单片机at89c52的外部中断,并设定sja1000发送中断的优先级高于启动发送。sja1000的发送中断服务程序和接收中断服务程序如图5、6所示。  

 

图5  报文发送流程图

 

图6  报文接收流程图                    

 

4  结束语

  本文中给出的射频读卡器的设计方案,可解决目前油田润滑站中加注过程复杂化、实时性差等缺点。can总线通信接口的设计,有效保证了数据传输的可靠性和稳定性。与上位机连接及良好的人机交互界面的编写,可实现通信、检测,管理于一体,从而使整个润滑站系统的工作效率得到提高。

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢