仪表基础知识 流量仪表资料 物位仪表资料 数显仪表资料 压力仪表资料 温度仪表资料 校验仪表资料 仪表阀门资料 电线电缆资料控制系统资料
返回首页

在线编程技术在CAN现场设备中的应用

时间:2010-10-25 08:29来源:文献整理 作者:艾瑾 点击:
摘要 在线编程(in application programming)是通过微机系统上的I/O口对系统进行编程的方法,这种方法给工业仪器仪表中传感器修正系数的更换或控制软件的升级带来了方便,特别是对具备远程下载能力的系统,其修正系数的更换

摘要  在线编程(in application programming)是通过微机系统上的I/O口对系统进行编程的方法,这种方法给工业仪器仪表中传感器修正系数的更换或控制软件的升级带来了方便,特别是对具备远程下载能力的系统,其修正系数的更换或是控制程序的升级可以通过通信网络来实现。本文所介绍的是如何在通用单片机为处理器的工业仪器仪表中实现在线编程的方法。

关键词   在线编程    微处理器   智能仪器

0 引言

   现代工业现场控制和生产自动化领域中的传感器、智能仪器仪表和执行机构大都通过总线与控制器构成自动化控制系统。传感器、智能仪器仪表和执行机构通常分布在很广的范围内,它们与控制器之间需要一种可靠性高、适合于工业现场环境使用的通信系统,这就是现场总线。在现场总线的基础上开发具有在线编程(in  application programming)功能的CAN现场设备可以更高速地实现现场地组态、调试和维护。

1 CAN 总线技术和在线编程技术

  CAN(controller  area  network)是一种具有ISO标准的先进串行通信协议,最初是由德国Bosch公司为解决现代汽车中众多的测试仪器和控制器之间的数据交换而开发的一种串行通信总线,1993年成为国际标准(ISO11898:道路车辆的高速控制器局域网数字信息交换标准)。由于它的技术性能优异,被认为是最有前途的现场总线之一。CAN总线的主要特点是[1]

   ①最大传输速率1Mbit/s(40m),最大传输距离10km(5kbit/s)。传输介质可以是双绞线、同轴电缆和光纤。

②采用点对点、一点对多点、全局广播等几种方式发送数据,可实现全分布多机系统,且无主从机之分。

③对信息块进行编码,采用非破坏性总线优先级仲裁技术,仲裁的依据是信息块的标识符。

④支持4类报文帧:数据帧、远程帧、超载帧和出错帧。

⑤采用面向控制的短帧结构,数据段的长度为0~8字节,从而使得每帧数据出错率低且实时性好。

⑥运行CRC(cyclic  redundancy  check)校验技术,具有较强的错误控制和重发的功能,出错率极低等等。

在线编程(IAP)技术是一种通过微处理系统上的I/O口对微处理系统的用户程序进行重新编制的技术。这种技术不需打开仪器仪表的机壳和拔下内部的CPU或程序存储器便能完成仪器仪表的传感器修正系数的更换或是监控软件的升级。这种技术应用于现场总线系统中无疑能使工业自动化系统的组态、调试和维护更加快速。

2 CAN总线系统的组成

   控制系统的网络结构一般分为三个层次:第一层网络为中央控制层;第二层网络为子系统管理层;第三层网络为现场设备控制层。

   CAN总线技术主要应用在第三层上,它作为控制局域网实现分布式的智能化控制。对现场设备的监控和管理以及第二层网络与第三层网络之间的通信通常是由工业控制机来实现的(图1)

   CAN 现场设备处于网络结构的底层,接受工控机的管理并实现对子过程和对象的监控。

3 具有在线编程技术的CAN现场设备的电路设计

   从图1可以看出,CAN现场设备根据不同的控制过程和对象其监控部分的功能是不同的,但它们具有一个共性;满足CAN的技术规范。以CAN技术规范为基础加入CAN现场设备的在线编程功能也可以视为一个共性。由于这里没有涉及具体的控制过程和对象,所以将讨论的重点放在具有在线编程技术的CAN 现场设备的共性上。

   在具体设计中,与CAN 技术规范相关的电路采用了Phips公司的高性能CAN总线收发器82C250。CAN总线控制器采用的是Phips公司的P87C592。P87C592具有与51系列兼容的微处理器,同时也具备了CAN总线控制的功能,它的使用可以简化电路的设计。采用了P87C592的具有在线编程功能的CAN现场设备相关电路如图2所示。电路中具备了CAN总线控制器功能的CPU的引脚P3.5、WR、RD和PSEN通过74HC00、74HC08和74HC32组成了对程序存储器工作状态进行控制的电路,程序存储器采用了SST公司的Flash存储器39SF512。39SF512具有单一5V编程电压的特点,其容量为64k  Byte,它的和 脚按照单片机系统的惯例与P87C592的  口和  口相连接。

以这种方式设计的具有在线编程功能的系统工作于两种状态:第一种状态是引导、下载和在线编程工作状态;第二种状态是用户程序工作状态。这两种状态的区分是通过CPU对其引脚P 的置位来完成的。 为高电平时,系统工作于引导、下载和在线编程工作状态,这和CPU在复位后 的状态相吻合。这时的单片机系统将Flash存储器39SF512作为数据存储器来操作,在执行了MOVX@DPTR,A指令后,P87C592的WR信号可以通过门电路作用于存储器39SF512的写控制引脚,完成对存储器39SF512的在线编程,P 为低电平时,系统工作于用户程序工作状态,P87C592在完成了对系统的初始化后,执行CLR 和LJMP 4000H两条指令,便将系统引导到用户程序的工作状态。

4 在线编程功能的软件编程

   在CAN现场设备中实现在线编程功能时,对程序在存储器中的安排有着严重的要求:P87C592单片机内部程序存储器放置的是引导程序,其中包括最基本的通信程序和写Flash的程序,它的任务就是完成通过系统上的I/O口获得需要更新换代的程序数据,并将其写入Flash。这部分程序的长度不能超过16k  Byte。39SF512存储器中放置的是用户程序(即在需要时可以改写的程序,共64-16=48kByte)。具有在线编程功能的CAN 现场设备中的系统程序在编时写要分成两个主体:第一个是下载、Flash编程和引导程序主体;第二个是用户程序主体。它们的子程序不能互相调用,这样用户程序在升级时就不用考虑两个程序主体之间的关系了。在通用单片机系统上实现在线编程功能的程序框图如图3所示。

5 用户程序中断的实现

  在具有在线编程功能的CAN现场设备上实现中断是一个难点,因为写入P87C592程序存储器的引导程序已经不可改变,即CAN现场设备上的中断服务程序入口区已经不可改变。而用户程序中的中断服务程序入口则随着程序的改变而改变,如何适应在变化的用户程序中响应用户系统的中断请求,解决的方法是在Flash存储器39SF512的起始位置再造一个中断入口区。其程序的实现如下:

ORG      0000H     ORG       2000H

LJMP     0230H     LJMP       4030H

ORG      0003H     ORG       4003H

LJMP     4003H      LJMP      用户程序外部中断1服务程序

ORG      000BH     ORG       400BH

LJMP     400BH     LJMP       用户程序定时中断1服务程序

ORG      013H      ORG        4013H

LJMP     4013H      LJMP      用户程序外部中断2服务程序

ORG      001BH     ORG        401BH

LJMP     401BH     LJMP       用户程序定时中断2服务程序

ORG      0023H     ORG        4023H

判是否为下载命令     LJMP       用户程序串口中断服务程序

是,LJMP  4023H     ORG       4030H

串口中断服务程序       用户程序初始化程序

引导初始化程序         用户程序外部中断1服务程序

用户程序定时中断1服务程序  LJMP  2000H          

用户程序外部中断2服务程序

用户程序定时中断2服务程序

用户程序串口中断服务程序

按照这种结构进行编程,便能方便地实现用户系统的中断请求了。

6         结束语

本文所介绍的在CAN现场设备上实现在线编程功能的方法是一种具有实用价值的方法。在现代工业控制和生产自动化现场,通过此方法,上位的工控机能方便地通过CAN现场总线对系统进行组态、调试和维护而不影响系统地可靠性能。 

 

(流量计:admin)
------分隔线----------------------------
热门商品