总线网络设计论文

2024-10-02

总线网络设计论文(通用12篇)

总线网络设计论文 篇1

CAN总线网络即控制器局域网络(Controller Area Network,CAN),是由德国BOSCH公司在20世纪80年代为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,可实现点对点、一点对多点及全网广播3种方式的发送和接收数据。传输的数据采用CRC校验,能够有效地降低误码率。CAN总线的通信介质可以是双绞线、同轴电缆或者光导纤维,通信速率可达1 MB/s。由于具有通信速度快、可靠性高、价格便宜等特点,使CAN总线成为应用广泛的现场总线之一[1,2]。

当前,市面上已有多种CAN总线的分析测试工具[3],如广州周立功公司的CANalyst,德国Vector公司的CANoe等。这些软件工具具有较强的功能,但对于一些小型CAN网络开发组件来说,其附加费用较大。基于此考虑,本文提出了一种功能完善、操作简洁的CAN网络监控系统设计方案,可达到对CAN总线运行情况监测分析的目的。

1 设计需求

通过对一些通用CAN总线监控软件的分析,并结合设计提出的实现一个较为通用的CAN总线监控软件的要求,可以将此软件的设计需求总结如下:

(1)具有适应CAN控制器各种工作模式的功能,用户只用稍加配置,便可以将此软件用于具体的CAN总线网络的监控中。

(2)具有用户自定义数据帧格式及其解析方式的功能,以使此软件可以满足不同环境下的使用要求,对用户所需要的数据内容进行解析。

(3)具有数据可视化显示功能,如数据表展示数据,图形绘制数据曲线等方式。使用户可以较为直观地对网络数据和状态进行监控。

(4)具有将通信中的数据信息进行分类的功能,方便用户对数据的分析。

(5)具有查看历史数据的功能,将历史数据记录下来,并提供一种方式实现对历史网络状态的重现,方便用户调试。

2 方案设计

2.1 功能

CAN总线监控软件需具备的功能包括:CAN总线通信(数据接收与发送)、数据处理(数据解析与存储)和数据应用(将数据展示为图表,数据回放等)。功能结构如图1所示。

2.2 功能模块关系

CAN总线的监控过程即是对通信数据的处理过程。软件首先通过与CAN总线上的节点通信来接收和发送数据,然后将这些数据记录在文件中,同时对数据进行分析处理,软件根据由用户所设定的数据格式对数据解析,最后是对数据信息的应用,根据用户的设定,可以对数据进行表展示,曲线绘制或者历史回放。各功能模块关系如图2所示。

2.2.1 通信

通信是监控软件获取数据信息的方式,也是软件的基础。它的主要功能是接收和发送CAN总线中节点的数据,是数据解析和应用的来源。监控节点需要连接到CAN总线网络中,如图3所示。

2.2.2 数据记录

数据记录模块是将接收或者发送的数据以一定的形式记录在文件中,用以对数据进行后期分析,或者通过回放功能复现CAN总线状态。为能达到复现的目的,此记录文件需记录的信息包括原始数据包和收发时间,时间信息具体内容为通信数据的时间间隔,基于此回放功能更加真实模拟网络中的状态。记录内容如图4所示。

2.2.3 数据分析

数据分析模块是整个监控软件的核心,它负责按照用户设定的解析模式将收发数据报解析为可以理解的信息值。每一帧数据的解析过程可以分为以下3步:(1)定位。通过数据帧格式来定位每个信息在数据包中的起始位置,将数据包分组。(2)截取。通过起始位置和数据长度,可以截取到所需的数据。(3)转换。由于截取所得到的数据为原始数据,所以需要将其转换为可以理解的信息。数据的分析过程如图5所示。

2.2.4 数据应用

数据应用是指软件对用户所提供的数据服务。本软件实现了以下几个功能来应用数据:(1)数据表。用于向用户提供所需要的信息,展示总线数据。(2)绘图。 根据用户需要对某些需要显示数据变化的内容进行曲线绘制。(3)回放。将存储于文件中的历史数据按照收发时间顺序重新播放,以重现网络状态,它为用户提供了一种调试网络的简单方式。

2.3 关键技术

2.3.1 数据解析

鉴于CAN总线的应用广泛,从汽车到工业现场的应用[4,5],所需要监测的信息不同,故软件对数据的解析方式也不相同。数据的解析过程需要用到用户所定义的数据格式,这里使用XML文件来描述数据帧的内容。如图6所示,帧ID为0x01的数据内容包:一个16位数据表示的温度值,信息类型为整数;一个16位数据表示的压力值,信息类型为正整数[6,7]。

2.3.2 数据回放

回放功能是将历史数据及当时的网络状态按照原过程如实演示,使用的数据源是从历史记录文件中获取的。记录文件由记录模块将总线数据按照时间顺序写入文件中生成,使用回放功能是将所记录数据按顺序读入,按照记录时间模拟当时的顺序实现回放功能,用户可通过应用功能再次使用数据表、绘图来呈现数据。

3 测试

在实际应用中,将监控节点接入CAN总线网络中,完成软件设定后,便可开启对总线的监控。使用数据表显示所测得信息的正确性,并验证通信是否正常。所生成的数据表如图7所示,显示信息来自节点1和节点3,以及发自它们的温度和压力值。使用绘图功能将此温度变化绘制为曲线图形,如图8所示。

图7 测试中收到的部分数据信息表

4 结束语

本文提出了一个CAN总线网络监控软件的方案,并描述了此软件的设计方法和所使用到的关键技术。依据此方案,实现了一个较为通用的CAN总线监控软件,它可通过分析由用户设定传输数据格式的方式,自动对数据进行解析,可满足大多数CAN总线的监控需求。在应用中,它可帮助用户调试和测试网络,有效提高工作效率。通过实际测试,验证了此方案的可行性。

但是,本文提出的设计方案也有局限性和进一步提升的空间。在后续研究和设计中,可以将数据融合[6,7]技术逐步加入到软件对数据的分析中,并可将此工具演化为一种通用的软件中间件,以便进行更多的应用。

参考文献

[1]铙云涛,邹继军,郑勇芸.现场CAN总线原理与应用技术[M].北京:北京航空航天大学出版,2003.

[2]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1996.

[3]王黎明,夏立.CAN现场总线系统的设计与应用[M].北京:电子工业出版社,2008.

[4]李刚炎,于翔鹏.CAN总线技术及其在汽车中的应用[EB/OL].(2012-12-16)[2013-02-11]http://www.docin.com/p-3064788.html.

[5]李正军.现场总线及其应用技术[M].北京:机械工业出版社,2009.

[6]康耀红.数据融合理论与应用[M].西安:西安电子科技大学出版社,1997.

[7]韩崇昭,朱洪艳,段战胜.多源信息融合[M].2版.北京:清华大学出版社,2010.

总线网络设计论文 篇2

摘要:在介绍消费总线物理层技术参数的基础上,给出了P89C51RD2单片机与P300/P111构成的电力线扫频载波通讯模块的设计方案,重点论述了通讯模块电力线接口电路设计中所涉及的滤波电路、放大电路、耦合电路及其保护措施。

关键词:电力线载波 消费总线

智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的`家庭总线(HOME BUS)[3]、欧洲的安装总线(EIB)[4]。

消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。,EIA600成为美国ANSI标准;6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。

1 CEBus电力线物理层

鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。

图2 通用通讯模块的原理图

消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unit symble time,在消费总线中用多少个UST来度量时间)。其波形如图1所示。

chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。

表1 不同条件下的载波幅度值

设备工作电压最小幅值最大幅值负载范围~120V2.5Vpp7Vpp10Ω~2kΩ~240V5Vpp14Vpp39Ω~8.2kΩ

表2 不同条件下的设备输入阻抗值

设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值

总线网络设计论文 篇3

(1.安全关键工业测控技术教育部工程研究中心,合肥 230009;2.合肥工业大学 机械与汽车工程学院,合肥230009)

FlexRay是继CAN和LIN之后的最新研发的汽车总线,将会在未来数年内,引领整个汽车电子产品控制结构的发展方向[1]。目前,FlexRay联盟推进了FlexRay的标准化,使之成为了新一代汽车内部网络通讯协议,FlexRay总线具有传输速率高、硬实时、安全性和灵活性等特点。但FlexRay协议只规定了物理层协议和数据链路层协议,没有制定网络管理方面的标准。随着FlexRay总线在汽车电控领域中越来越广泛的应用,对适用于FlexRay总线的网络管理策略的研究也变得愈加重要。

对于车载网络管理而言,OSEK/VDX NM是通用的、公认的标准,因此各厂家在制定网络管理规范时,应尽量遵循这个标准[2]。目前,国内外相关研究单位已经对OSEK/VDX NM规范的研究作了大量的工作。在国外,法国的电子工程学院、CEA、卡内基梅隆大学以及美国著名的嵌入式系统厂商WindRiver公司、Metroworks公司等都对OSEK标准进行了深入的研究[3-5]。在国内,清华大学、哈尔滨工业大学和同济大学等高校均开展了对OSEK规范的学习与研究[6-9]。分析当前各大研究机构的研究成果可以知道,对OSEK网络管理的研究主要是针对CAN网络的,对于Flexray总线的网络管理的研究几乎处于初级阶段,只有个别研究单位进行了零星的研究,如在文献[10]中提出了基于OSEK的FlexRay总线网络管理协议单元的定义,文献[11]介绍了AutoSAR规范中FlexRay总线网络管理的方法。本文分析了FlexRay总线协议和OSEK/VDX网络管理的特点,提出了在FlexRay通信周期动态段中实现OSEK网络管理的方案,并在自行设计的实验平台上进行了实验,验证了本方案的可行性。

1 FlexRay协议及OSEK直接网络管理

1.1 FlexRay通信协议

FlexRay总线是一种高速串行通信网络,具有高带宽、支持双通道、可灵活配置多种网络拓扑结等特点。FlexRay的一个通信周期分为静态段、动态段、标识窗和网络空闲时间,其中,静态段和动态段用来传输总线数据,即FlexRay报文。FlexRay的静态段采用的TDMA方式,静态段被划分为若干个时间宽度相等的静态时隙(Static Slot),每个时隙被分配给某个特定节点,在该时隙内,此节点唯一占有总线控制权,向总线发送数据,即使该节点此时没有数据需要向总线上发送,它所占用的时隙也不会被其它节点所占用。静态时隙的时间宽度以及节点访问总线的顺序在系统配置时被确定,系统运行中是固定的。与静态段不同,动态段采用的是可伸缩时分多路(FTDMA)方式,节点访问总线的顺序是按优先级确定的,但时隙长度是动态调整的,当节点没有数据需要向总线发送时,经过一个微时隙(Minislot)后,总线控制权立即交给下级节点。FlexRay总线的静态段是时间触发方式,动态段本质上是事件触发方式。时间触发方式具有确定性,但实时性较差,而事件触发方式的实时性较好,但确定性差。

1.2 OSEK直接网络管理

OSEK网络管理可以监控网络中各节点的状态,并使网络中的节点能够协商进入睡眠状态。OSEK网络管理提供两种可供选择的实现机制:直接网络管理和间接网络管理。直接网络管理是使用逻辑环并通过主动广播专门的网络管理消息来实现的。在直接网络管理中,节点进行复杂的状态转换,并组成逻辑环;通过在逻辑环中发送网络管理消息来主动监控和报告网络中其他节点的状态,使得每个节点都能在一定的时间内获得整个网络的状态消息。

对于直接网络管理,首先是要建立逻辑环。逻辑环的通信独立于网络的物理结构,每个节点都具有一个自己的逻辑后继节点。当逻辑环稳定后,每个节点依次用网络管理信息报告自己的当前网络状态信息,并接收其他节点的网络管理信息,从而监控它们的状态。OSEK网络管理把直接网络管理信息定义为网络管理协议数据单元 (Network Management Protocol Data Unit,NMPDU)。 NMPDU 的格式见表 1。

表1 NMPDU的格式

表1中,地址域包含源节点地址和目标节点地址。控制域包含消息类型的信息,即Ring消息(正常工作的逻辑环消息)、Alive消息 (Alive消息用于表明加入了新节点)和LimpHome消息(功能异常的节点将周期性地传输LimpHome消息)。数据域是可选的,可根据具体情况自行定义。

2 FlexRay总线网络管理的研究

2.1 NMPDU到FlexRay动态段数据帧的映射

通过研究OSEK网络管理规范和FlexRay通信周期中静态段和动态段的特点,可知OSEK网络管理虽然没有指定具体的总线类型,但是其特性决定了其只适合于事件触发方式的总线协议,如CAN总线。FlexRay通信周期动态段也是基于事件触发方式,这与CAN总线类似。因此,可以将OSEK网络管理消息放置在FlexRay通信周期动态段中发送。

OSEK网络管理规范采用网络管理协议数据单元(NMPDU)来表示一个节点的网络管理信息。网络管理消息要通过FlexRay总线进行传输,需要将其映射成FlexRay总线的数据帧格式。在FlexRay通信周期动态段数据帧中将有效数据部分的头两个字节设置成消息标识(Message ID),作为NMPDU的源节点标识符,用于表明接收的消息来自哪个节点;将有效数据的第3和第4个字节作为NMPDU的目的节点标识符,用于确定本消息的接收节点;第5个字节作为NMPDU的操作码,包含了直接网络管理的三类消息,即Ring消息、Alive消息和LimpHome消息;第6到11个字节作为NMPDU的可选数据部分,映射格式如表2所示。

表2 NMPDU到FlexRay动态段数据帧的映射

2.2 网络管理消息在动态段延迟时间分析

与CAN总线不同,由于FlexRay总线动态段特殊的通信机理,动态帧消息不能实时发送。因此,在动态段中发送的网络管理消息会出现延迟的情况,从而造成网络管理系统误判当前网络状态和节点状态。网络管理消息在最坏情况下延迟时 间 Tdelay[12]为:

式中:Tt为发送网络管理消息所需要的时间,可用式(2)表示:

式中:FrameSize为报文长度;BusSleep为总线速率。

Te表示在给定时间内,由于静态段内的消息和更高优先级动态段消息的发送所消耗的时间,可用式(3)表示:

式中:TCycle为一个通信周期的时间长度;DelayCycles(t)为由于出现更高优先级和由于网络管理消息使用更低帧标识而导致网络管理消息无法发送的周期数;Te′为某消息发送的周期内,从该周期开始到该消息被发送之间的时间长度。

Tc表示网络管理消息在属于它的微时隙之后产生,从而引起在这个周期内的时间延迟,可以用式(4)来表示[13]:

式中:TST为静态段传输时间;FrameID为帧ID的值;gdMinislot为微时隙的时间。

2.3 网络管理过程分析

直接网络管理是通过在逻辑环上网络管理消息的传递来实现对整个网络和节点的监控,因此,逻辑环的可靠运行是直接网络管理的重要内容。下面就通过分析逻辑环的建立、逻辑环的稳定运行、节点增加和节点离线及网络故障处理来说明FlexRay的OSEK网络管理的过程,并研究逻辑环运行过程中网络管理消息可能出现的最坏情况下的延迟时间Tdelay问题。

2.3.1逻辑环的建立

FlexRay网络中各节点启动网络管理服务时,首先发送Alive消息成功的节点将成为逻辑环中的第一个节点。如果多个节点同时发送Alive消息时,在动态段中每个时刻,都是通过节点消息的优先级来竞争总线的,即通过每个节点发送消息的Frame ID值,并且只有当消息的Frame ID值与动态时慒相等时,才允许发送Alive消息,成为第一个发送的节点。收到第一个发送节点发送的Alive消息后,其他节点按相同的方式继续竞争发送自己的Alive消息,最后按消息的Message ID的大小顺序形成逻辑环。

2.3.2 逻辑环的稳定运行

Ring消息是网络管理的主要消息,它采用令牌环机制在逻辑环中被依次传递,在逻辑环中,各节点按Message ID的大小依次连接,Message ID值小的节点是Message ID大的节点的逻辑前驱节点,最大Message ID的节点的逻辑后继节点是最小Message ID的节点。

当FlexRay网络中某节点接收到Ring消息后,此节点会判断Ring消息的NMPDU中的目的节点地址,如果Ring消息的目的地址不是此节点,则取消TTyp定时器,启动TMax定时器(如果定时器TMax没有运行则启动,如果定时器TMax正在运行则重启);如果Ring消息的目的地址是此节点,则取消TMax定时器,启动TTyp定时器(如果定时器TTyp没有运行则启动,如果定时器TTyp正在运行则重启),TTyp定时器到时后,发送Ring消息到自己的后继节点,其实现过程如图2所示。

在图1中,节点在t2时刻向其后继节点发送Ring消息,由于存在最坏情况下的延迟时间Tdelay可能出现在TMax定时器到时(t3时刻)时,Ring消息还未发送出去,这就造成网络上其他节点误认为A节点已经掉线,从而将节点A从逻辑环中排除掉,造成网络管理系统无法正常工作。

所以,必须保证t2到t3时间段的长度大于最坏情况下的延迟时间Tdelay,即:

2.3.3节点增加

如果FlexRay网络中有新的节点加入,那么该节点将向网络中发送一条将其后继节点设置为自身地址的Alive消息。逻辑环中已有的节点在接收到Alive消息后,认为有新节点加入网络并判断新节点是否为自己逻辑后继节点。之后新节点将监听网络中的Ring消息,当接收到Ring消息时,便将自己的后继节点更新为Ring消息的源节点地址。此时,网络中其他的节点将会判断自己是否被跳过,如果某节点发现自己被跳过,将向网络中发送一条Alive消息表明自己还在网络中。新节点收到Alive消息后,便将自己的后继节点更新为Alive消息的源节点地址,此时,新节点便加入逻辑环中。

2.3.4节点离线及网络故障处理

OSEK网络管理规范提供了检测节点离线的机制,如果TMax定时器到时,表明在此期间逻辑环中没有消息,一定有节点离线,此时,网络管理系统将重新建立逻辑环并将离线节点排除在外。如果某节点的网络管理消息传输失败,则启动TTx计数器并增加计数器TTx的值。如果计数器TTx值超过一定的次数,则该节点将进人LimpHome状态,表明该节点存在故障。当节点因故障进人LimpHome状态后,由其TError定时器控制周期性地发送LimpHome消息,表示自己处于网络故障状态。

在OSEK网络管理系统中,定时器TError的值一般远大于TMax和TTyp定时器的值,也满足式(5)。因此,LimpHome消息能成功发送,而不受最坏响应时间Tdelay的影响。

3 实验方案验证

本方案使用自行设计的三个FlexRay节点构建逻辑环,各节点采用Freescale公司生产的MC9S12XF512单片机作为中央控制单元,TJA1080T作为FlexRay节点的收发器并将Vector公司开发的Davinci软件接入网络来观察逻辑环运行过程[14]。限于篇幅,只给出了逻辑环建立过程的实验结果,如表3所示。

从表3实验结果可知,节点1首先发送Alive消息,之后,节点2也发送Alive消息。节点1根据更新的网络配置发送Ring消息到它的逻辑后继节点2,TTyp定时器到时后,节点2也更新自己的网络配置,并发送Ring消息到它的逻辑后继节点1。节点4启动网络管理,并向网络中发送Alive消息。节点1仍会按当前网络配置将Ring消息发送给节点2,而节点2则会把Ring消息发送给节点4。节点4会根据网络上当前最小的节点地址,将Ring消息发送给节点1。由此可以看出,这个实验结果实现了逻辑环建立的功能。

表3 方案实验结果

4 结束语

车载网络管理的主要作用是保障车载网络通信的安全性与可靠性,并能协调网络中的各节点同步进入睡眠状态。OSEK网络管理可以很好的保障FlexRay网络在高带宽和高灵活性的情况下,可靠安全地进行网络通信。通过分析OSEK网络管理规范和FlexRay总线协议,提出在FlexRay通信周期动态段中实现OSEK网络管理,并定义了网络管理数据协议单元 (NMPDU),分析和研究了FlexRay的OSEK网络管理的具体过程以及网络管理消息在动态段延迟时间问题。本文为国内研究OSEK网络管理的FlexRay网络实现提供了一个初步方案,为进一步研究FlexRay总线的网络管理做些铺垫。

[1]FlexRay Consortium.FlexRay Communications System Protocol Specification [S].December 2005.Version 2.1 Revision A.

[2]OSEK/VDX Group.OSEK/VDX Network Management Concept and Application Programming Interface [S].2008.Version 2.5.3.

[3]B.Frank,L.George.FP/FIFO Feasibility Conditionswith Kernel Overheads for Periodic Tasks on an Event Driven OSEK System [J].The IEEE International Conference on Industtrial,2006,7:1-8.

[4]F.Laqarde,A.Radermacher,S.Robert,S.Gerard,D.Servat.Issues in mapping CORBA component model to OSEK [J].Communication of the ACM,2005,8:434-437.

[5]P.H.Feiler.Real-Time Application Development with OSEK A Review of the OSEK Standards[J].CMU/SEI,2003,5:7-46.

[6]栾鑫颖,孙晓民.车用嵌入式开发系统的软构件研究[J].计算机应用研究,2006,4:57-59.

[7]张宝民,孙晓民.基于OSEK规范的嵌入式实时操作系统研究[J].计算机应用研究,2004,4:32-35.

[8]梁金祥,吴翔虎.OSEK/VDX嵌入式操作系统的设计与实现[J].2007,7:38-41.

[9]袁铭蔚,孙泽昌.陈觉晓.一种嵌入式实时操作系统[J].测控技术,2003,22:45-47.

[10]陈觉晓,袁昊昀.基于OSEK NM的Flexray网络管理协议数据定义[J].机电一体化,2009,1:70-72.

[11]袁昊昀,陈觉晓.车载FlexRay网络管理策略的初步研究[J].单片机与嵌入式应用,2008,(5):20-21.

[12]KLAUS S,ECE G S.Message scheduling for the FlexRay protocol:the static segment[J].IEEE Trans Actions on Vehicular Technology,2009,58(5):2170-2179.

[13]ECE G S.Message scheduling for the FlexRay protocol:dynamic segment [J].IEEE Trans on Vehicular Technology,2009,58( 5):2160-2169.

总线网络设计论文 篇4

FCS(Flight Control System)是现代电传飞机所具备的自动化飞行控制系统。它所依赖的用于传递飞行控制信息的通讯总线,称之为飞行控制总线。FCS总线数据指的是飞控系统工作的完整数据信息,称为百分之百的飞控数据信息,简称100%FCS数据信息。

随着我国航空技术的飞速发展,在飞行试验中不仅总线数据的采集方式发生着改变,而且试飞参数个数急剧增加(从原来的几十到现在成千上万),数据量从几个GB到上百GB成指数增加,及各课题参数处理要求多样,伴随着我院试飞工作的全面开展,后续型号任务的增多,处理人员的短缺等现状。

目前,飞行控制总线数据处理模式采用单机处理,多课题第一时间同时需要数据时,单机处理不能满足处理需求;当课题需要变更参数时,必须经过“编写文档→领导签字→提交文档”方可进行处理。针对以上的现状和问题,设计了飞行控制总线数据网络化处理软件。在C/S、B/S多层体系架构的飞行试验数据处理系统下,通过接收客户端选择的参数信息、时间段信息和数据信息,调用该网络化处理软件进行处理,在服务器端运行处理数据并回传结果数据给客户端,解决了单机版处理效率低和多课题参数处理难的问题。

1 软件运行结构图

以飞行试验数据处理系统为平台[1],利用分布式网络计算技术,以100%FCS中间件的形式进行数据处理。可以浏览、查询和下载相关数据信息,根据自己的需要,定义所要处理的参数、时间段等信息,实现海量试飞数据的快速处理,并可以利用系统提供的各种数据分析工具,实现数据报告输出和数据分析计算,解决了面向多用户数据处理、数据共享难题。分布式网络计算实现机制。用户通过浏览器实现数据处理服务请求的准备,服务器接到服务请求后,启动数据库系统中的100%FCS中间件接口软件,利用存储在阵列的试飞数据文件,完成用户的服务计算请求,然后将结果返回给数据处理系统。运行结构图如图1所示。

2 软件设计

2.1 软件设计结构框图

该软件采用模块化设计思路[2,3,4],主要由接口解析模块,参数校线解析模块,原始数据块整理模块和数据解析模块4个模块进行数据的处理。其软件的结构框图如图2所示。

通过客户端自主生成的接口信息文件,服务端通过解析接口信息,获取处理软件要处理的参数名称、个数,参数类型,时间段信息以及数据文件、校线文件、结果文件等的信息。

(1)参数校线解析模块

对100%FCS校线文件进行分析,获取不同的表号的参数信息,包括参数名称,参数类型,参数校线等信息进行分类存储,完成校线文件的解析,为参数数据的提取作好准备。

(2)原始数据块整理模块

根据100%FCS参数输出数据格式的特点,对原始数据进行整理,读取一帧数据,如果接收到的FCS数据块个数超过了定义的完整FCS数据块个数,那么就将这个数据块丢掉;如果接收到的FCS数据块个数等于定义的完整FCS数据块个数,那么就进行下面的数据解析模块处理;如果接收到的FCS数据块个数小于定义的完整FCS数据块个数时,需要考虑续接数据问题。

(3)数据解析模块

通过原始数据块整理模块取得完整的FCS数据块结合校线解析模块对每块数据进行添加校线,然后结合接口解析模块中的参数名进行数据解析,根据飞行试验数据处理系统接口输出文件格式要求,所有输出信息文件在服务器上存储在用户之前已经建立的任务单号文件夹内,计算结束后,返回给客户端和服务器上存储的任务单号相同的文件夹,用户通过点击系统界面下的输出报告输出相应的文本文件,码值文件。

2.2 软件设计总流程图

100%FCS总线数据网络化软件设计针对新型飞控数据采集器的特点,结合飞行试验数据处理系统软件的调用接口协议,应用分布式中间件技术编写了基于Web下的100%FCS总线数据网络化接口软件,为所有需要100%FCS总线数据处理的型号进行网络数据处理打下坚实的基础。如图3所示。

3 分布式中间技术

分布式中间件是存储在计算服务器的应用程序,用户发出分布式计算请求后,由服务器软件启动分布式计算,完成用户的数据处理任务。

分布式中间件[5]与用户应用端的分布式计算监控ActiveX控件之间需要进行信息通信,监控计算过程的状态。

针对非结构化的100%FCS试飞数据,将100%FCS数据处理软件以分布式中间件形式嵌入到试飞数据处理系统中,借助该系统,利用分布式中间件技术,通过和数据处理系统之间协调通信,软件快速地进行数据处理,并准确的将结果信息返回给数据处理系统,见图4。

(1)客户端ActiveX根据调度服务器列表中的IP及端口号循环尝试建立Socket通信[6],发出计算请求;

(2)客户端ActiveX与调度服务器建立连接后,调度服务器经过负载均衡计算,返回给客户端ActiveX一个计算服务器的IP及端口号;

(3)客户端ActiveX与计算服务器建立Socket连接;

(4)客户端ActiveX发出执行计算命令;

(5)计算服务器接收到计算命令后,启动确定的分布式中间件执行分布式计算任务,并将状态信息输出到控制台,计算服务器中的状态监控程序用管道技术[7]将分布式中间件的输出作为自己的输入,并通过Socket方式返回给客户端ActiveX;

(6)客户端ActiveX接收任务执行的状态信息,显示给用户;

(7)当分布式中间件执行完毕,计算服务器中的状态监控程序将最后的结果文件通过Socket传给客户端ActiveX;

(8)客户端ActiveX控件将文件保存至客户端,分布式计算结束。

4 使用情况

通过上述的软件流程图,在此设计了飞控网络化数据处理软件,实现了非结构化的飞行控制总线数据网络化处理,有效解决了处理人员紧缺、数据处理效率低的问题。图5为某型号100%FCS原始数据截取图。图6为调用100%FCS网络化数据处理软件处理图4数据的结果文件。

5 结语

100%FCS总线数据处理软件在科研飞机试飞数据处理中有着举足轻重的作用。本次通过飞行试验数据处理系统平台实现了100%FCS总线数据网络化处理,大大地提高数据处理效率。目前该网络化软件已经应用于多个型号的数据处理当中,数据处理速度完全能够满足我院“数据处理不过夜”的要求,数据处理结果已经成为试飞工程师排除系统故障的重要依据,为型号试飞的顺利进行提供了可靠的数据。

摘要:为了解决飞行控制总线数据处理效率低和多课题同一时间完成参数数据处理难的难题,在数据处理方法上提出新思路,以飞行试验数据处理系统为平台,采用分布式中间件技术,设计了飞行控制总线数据网络化处理软件,实现飞行控制总线数据的并发处理和数据分发。重点介绍了软件的体系结构、功能模块、算法设计,目前该网络化软件已经应用于多个型号的数据处理当中,处理效率满足飞行试验数据处理的需求。飞行控制总线网络化数据处理方法为随后的1553b总线数据网络化,FC总线数据网络化提供了技术参考。

关键词:飞行控制总线数据,网络化处理,软件设计,分布式中间件技术

参考文献

[1]王建军,党怀义.基于Web的分布式试飞数据处理系统结构设计[J].计算机测量与控制,2010,18(6):1452-1454.

[2]全国信息技术标准化技术委员会.GB/T8567-1988计算机软件产品开发文件编制指南[S].北京:中国标准出版社,1989.

[3]国防科工委.GJB438-1988军用软件文档编制规范[S].北京:中国标准出版社,1989.

[4]国防科工委.GJB437-1988军用软件开发规范[S].北京:中国标准出版社,1989.

[5]王柏,王红熳.分布计算环境[M].北京:北京邮电大学出版社,2000.

[6]STEVENS D L.用TCP/IP进行网际互连[M].北京:电子工业出版社,2001.

CAN总线与以太网互连系统设计 篇5

摘要:介绍了一种基于单片机SX52的CAN与以太网互连方案,阐述了以太网和CAN总线网络协议转换的软硬件设计,实现了以太网与现有CAN总线网的直接连接。保证管理监控层(以太网)与生产测控层(CAN总线网)之间的连接,使得上下层数据能方便地通信。

关键词:现场总线CAN总线以太网

在大型企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场则采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡实现。这种连接方式成本高,开发周期长。针对这种情况,笔者设计一种单独的CAN以太网网关互连系统,成功地实现以太网与现有CAN总线网的直接数据互联。

1系统结构

系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关、以太网信息管理终端(如监控平台和网络数据库等),如图1所示。

CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层需通过数据网关。嵌入式透明SX52网关就是为此而设计的。

透明式网关在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络应用层的数据进行传输,它对通信数据的具体实际意义不做任何解释。透明式网关由通信处理器、CAN总线控制器和以太网控制器三部分组成。其中SX52单片机为核心处理器,它实现了CAN控制网络与以太网之间的协议转换。以太网信息管理层的控制指令发送到嵌入式透明SX52网关,将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。

以太网信息管理终端是一个根据用户的具体要求而设计的用户层应用软件。它可以是一个WIN32监控程序或网络数据库(记录CAN节点设备数据)软件等;甚至可能是CAN节点设备的`服务器软件,为设备提供较复杂的数据处理工作。

2硬件设计

系统硬件分为两大部分:CAN总线网络设备接口设计和嵌入式透明SX52网关设计。

2.1CAN总线网络设备接口设计

CAN总线网络设备接口设计较网关设计简单。它是在完成设备功能的基础上加入一个CAN通信控制器接口芯片,实现与CAN总线网络的连接。考虑到开发成本和灵活性,笔者在设计中选用PHILIPHS公司的独立CAN通信控制器SJA1000芯片和CAN总线收发器82C250芯片。其结构如图2所示。

2.2嵌入式透明SX52网关设计

嵌入式透明网关设计是整个系统设计的核心。其结构如图3所示。它由CAN控制器协议转换模块和以太网控制器协议转换模块两部分组成。网关硬件中SX52微处理器起核心作用。它是由美国Ubicom公司研制的高速可配置通信控制器,其处理速度相当高。在外接100MHz时钟时,指令执行速度可达100MIPS。它可实现TCP/IP协议栈中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等网络协议。

CAN控制器协议转换模块硬件电路原理如图3左框图。它由三部分组成:微控制器SX52、独立CAN通信控制器SJA1000、CAN总线收发器82C250。其中SX52为唯一的CPU核心,负责SJA1000的初始化,通过读写SJA1000内部寄存器实现数据的接收、发送和错误处理等。PCA82C250则提供对总线的差动发送能力和对CAN控制器的差动接收能力。

以太网控制器协议转换模块主要由微控制器SX52、以太网通信控制器RTL8019AS和隔离滤波器FB2002组成。RTL8019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。在网关设计中,使用跳线模式(JP置为高)硬配置RTL8019AS为8位模式。使用RTL8019的低5位地址线A0~A4以及低8位数据线D0~D7。SX52的B口的B0~B4脚作为地址线连接RTL8019AS的低5位地址线,B5~B7作为控制线分别连接读写时序控制脚IORB、IOWB、IOCHRDY;C口作为数据线连接RTL8019AS的低8位数据线;A口保留,用作日后扩展。图3中

AT24C64为8KBEEPROM,主要用来保存嵌入式透明SX-52网关的配置信息,如网关IP地址、MAC地址和SJA1000的ID网络标示符、网络掩码AMR和总线定时(BTR0、BTR1)等。这样,可以灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。

RTL8019AS除与SX52连接外,还将其网络收发器的4根引脚TPOUT+、TPOUT-、TPIN+、TPIN-通过外接的隔离滤波器FB2002与以太网相连。采用隔离滤波器FB2002是为了提高网络通信的抗干扰能力。

3软件设计

整个互联系统的软件设计可以分为三部分:CAN总线设备接口通信程序、透明网关协议转换程序和以太网层应用程序设计。其中,CAN总线设备接口通信程序和透明网关协议转换程序的CAN控制器协议模块在结构上有较大的相似性,但有可能因采用微控制器不同而导致实现的程序语言相异。因而,在此不作论述,而主要讨论后两个方面的程序设计。

3.1透明网关协议转换程序

透明网关协议转换程序的整体设计思路为:当以太网应用层有数据要发送到CAN节点时,首先,数据发送到透明网关由以太网控制器协议转换模块从传输层数据报文中解析出完整的CAN协议数据包,存放在数据缓冲区A?再通知总调度模块,由它调用CAN控制器协议模块将CAN协议数据包发送到CAN总线上。反过来,当CAN设备有数据要发送到用户层时,首先,数据发送到透明网关由CAN控制器协议模块将完整的CAN协议数据包存放在数据缓冲区B?再通知总调度模块,由它调用以太网控制器协议转换模块将完整的CAN协议数据包作为应用层数据封装起来,再发送到以太网的应用层。其程序结构如图4所示。

3.1.1CAN控制器协议模块

CAN控制器协议转换模块程序主要由SJA1000的寄存器读程序CANRead、写程序CANWrite()、初始化程序CANInit()、发送程序txdsub()、接收程序rxdsub()程序组成。之所以要编写单独的SJA1000的寄存器读、写子程序,这是由SX52芯片只有I/O端口决定的。

选用CAN2.0A协议构建CAN总线控制网络,对SJA1000的初始化主要完成控制寄存器CR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线定时寄存器BTR0,1和输出控制寄存器OCR的设置。初始化完成后,由总调度模块监控SJA1000控制器。当CAN总线上有数据到达时,它调用接收子程序rxdsub(),把这一帧数据包存入数据缓冲区B中,然后释放接收缓冲器。同样,当有按CAN2.0A协议格式组合成的一帧数据报文在数据缓冲区A中要发送到CAN总线上去时,总调度模块将调CAN发送子程序txdsub()发送。

3.1.2以太网控制器协议转换模块

以太网控制器协议转换模块主要负责从UDP数据包中解析出完整CAN协议报文,存入数据缓冲区A。同时,可能将数据缓冲区B中的完整CAN协议报文封装成UDP数据报,然后将其发送到以太网上。

在通信传输层采用UDP协议是考虑到CAN协议数据报为短帧形式(每个数据帧最多为8字节)。如果采用TCP传输协议,要传输8字节CAN协议数据,要先通过3次握手建立连接,再传输数据,之后还要通过握手释放连接。这样传输效率对有限的网络资源来说无疑是一种浪费。而UDP是无连接的传输,可以提高网络传输效率,同时,也减轻网关的处理任务。当然,UDP传输协议是不可靠的,对于控制网络来说,是不允许的。为了提高通信的可靠性,采用了回传校验机制。通过实验测试表明这种方式是行之有效的。

以太网控制器协议转换模块主要由以太网卡驱动、ARP、UDP协议的若干个API函数组成,如NICInit()、NICDMAInit()、NICInitTxFrame()、NICSendTxFrame()、NICReadAgain()、ARPCheckIfIs()、ARPSendResponse()、ARPSendStPacket()、ICMPProcPktIn()、UDPAppInit()、IPGenCheckSum()、、UDPAppProcPktIn()、UDPStartPktOut()和UDPEndPktOut()等。所使用的变量有:remoteIP[3:0]、myIP[3:0]、UDPRxSrcPortMSB、UDPRxSrcPortLSB、UDPRxDataLenMSB、UDPRxDataLenLSB、UDPTxSrcPortMSB,UDPTxSrcPortLSB、UDPTxDestPortMSB、UDPTxDestPortLSB、DPTxDataLenMSB,UDPTxDataLenLSB等。

系统首次执行或复位时,以太网控制器协议转换模块将首先调用NICInit和UDPAppInit()等进行NIC、ARP、IP、UDP和应用程序的初始化。初始化完成后,即进入主循环。在主循环中,SX52将反复检测RTL8019AS是否接收以太网帧。当有数据被接收时,SX52调用NICDMAInit()和NICReadAgain()读入以太网帧首部?再调用ARPCheckIfIs()判断接收帧是否为ARP数据。若是ARP,则转入ARPSendResponse()和ARPSendStPacket()子程序进行ARP处理并发送响应ARP数据报;若不是ARP,则判断是否为IP数据报。若非IP数据报则清除该以太网帧;当所接收帧包含IP数据报时,则需进一步判断是ICMP数据报还是UDP数据报文。若是ICMP数据报则执行ICMPProcPktIn()子程序处理ICMP数据报并重发IP数据报;若数据为UDP数

据报文,则调用UDPProcPktIn()子程序。该程序将读入UDP数据报文首部的数据并进行相应处理,还原出完整的CAN协议数据报文存入数据缓冲区B中,再通知总调度程序,由总调度程序调用CAN总线控制子程序将CAN协议数据报文发往CAN总线。

反过来,当总调度程序通知以太网控制器协议转换模块将数据缓冲区B中准备好的CAN协议数据发送到以太网上时,它将调用NICInitTxFrame()、UDPStartPktOut()、IPGenCheckSum()、IPStartPktOut()、NICSendTxFrame()、UDPEndPktOut()等子函数进行发送处理,从而实现CAN总线到以太网的数据传输。

3.2以太网层应用程序设计

以太网上的通信协议一般采用TCP/IP协议。本文采用流行的SOCKET套接字编程,传输层协议选择UDP(用户数据报协议),通过VisualC++编写用户层程序。

WinSock提供了对UDP的支持,通过UDP协议可以向指定IP地址的透明网关发送CAN协议数据,同时也可以通过它接收CAN协议数据。发送和接收方处于相同的地位没有主次之分。利用CAsyncSocket类操纵无连接的数据发送较简单。首先生成一个本地套接口(需要指明SOCK_DGRAM标记);然后利用intCAsyncSocket??SendTo?constvoid?lpBuf?intnBufLen?UINTnHostPort?LPCTSTRlpszHostAddress=NULL?intnFlags=0?发送数据,intCAsyncSocket??ReceiveFrom?void?lpBuf?intnBufLen?CString&rSocketAddress?UINT&rSocketPort?intnFlags=0?接收数据。利用UDP协议可以使管理主机和SX52网关实现双向的数据通信。同时,这种传输方式也易于使数据SX52网关透明化。

解析CAN总线现场控制系统设计 篇6

关键词:CAN总线;现场控制;设计

0.引言

利用CAN总线技术设计一个较为简单的现场火灾探测系统,来说明CAN总线技术的性能和使用方便等优点,尤其是在信息通讯上的特点。基于CAN总线的现场火灾探测系统采用全总线机制,软件编程,分布式控制方案,使该系统称为集监视、报警、控制于一体的智能控制系统,利用CAN总线技术提高了系统的准确性、可靠性,又为工程设计、施工布线提供了极大的方便。

1.系统网络组成原理

系统中每个接点通过报警主控制器、CAN总线控制器、CAN收发器连接通讯。报警控制器接收信息并完成火灾判断、联动等功能;CAN控制器用于各节点之间的数据传递;CAN收发器增强了控制器的驱动能力,保证了控制器之间的通讯距离。发送数据时,报警控制器把需要传送的数据写入CAN控制器的发送缓冲区,启动发送,数据即通过CAN收发器发送到总线上;接收数据时,CAN控制器通过CAN收发器从总线上接收数据,在处理后存入接收缓冲区,并给出接收中断信号。这时,报警控制器就可以从CAN控制器的接收缓冲区取走数据。它所需要传输的信息包括:火警、故障、联动、恢复、显示、复位、自检、动作等多种命令。本系统采用了一套上主机巡检加下位机抢断的网络协议。

2.CAN总线控制系统的硬件设计

CAN总线是一种多主总线,理论上任何一个节点都可以作为主节点。在本系统中设置于CRT相连的AT89C51和SJA1000上位节点,其他节点为底层节点。与CRT相连的AT89C51为报警控制主机,SJA1000为CAN总线控制器,82C250和CAN总线收发器。CRT通过串口与节点上的CPU通信,CPU再与CAN控制器SJA1000通信,实现信息在CAN总线上的发送与接收。电路主要由4部分构成:主控制器89C51单片机、独立CAN总线控制器SJA1000、CAN总线驱动器82C250和告诉光电耦合器6N137。CAN总线系统只能节点采用89C51作为节点的微处理器,在CAN总线通信接口中采用SJA1000和82C250。芯片SJA1000是独立CAN通信控制器,82C250为高性能CAN总线收发器。

为了增强CAN总线节点的抗干扰能力,SJA1000的TXO和RXO并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块实现。这部分虽然增加了节点的复杂,但是却提高了节点的稳定性和安全性。

82C250和CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5V的电阻与CAN总线相连,电阻可以起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了两个30P的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。另外在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。

3. 89C51控制主机介绍

(1)主要特性

AT89C51是一个低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通过8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89c51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程序计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

4. SJA1000的简单介绍

SJA1000是一种独立CAN控制器,它是PCA82C200 CAN控制器的替代产品。SJA1000具有BasicCAN和PeliCAN两种工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0协议。

SJA1000在软件和引脚上都是与它前一款PCA82C200独立CAN控制器兼容的,在此基础上增加了很多新功能。工作方式通过时钟分频寄存器中的CAN方式位来选择。上电复位默认工作方式BasicCAN方式。

5. 82C250的简单说明

SJA1000的一端与单片机相连,另一端与CAN总线相连。但是,为了提高单片机对CAN总线的驱动能力,可以把82C250作为CAN总线控制器和物理总线间的接口,以提供对总线的差动发送能力和对CAN控制器的差动接收能力。

6.结束语

CAN总线的控制系统的全分散控制、开放、智能化和功能自治的这些特点,和传统控制系统的体系结构相比,具有节省硬件数量和投资,减少安装费,降低维护开销和用户具有高度的系统集成自主权及提高系统准确性和可靠性等优点。与传统的控制系统相比,CAN总线控制系统在信号标准、通信标准、系统结构和设计方法上均产生了很大的变革。

参考文献:

[1]赵亚军.基于CAN总线的智能照明系统设计与研究[J].武汉科技大学,2012(6).

[2]刘刚.汽车CAN总线网络控制系统设计与实现[J].电子科技大学,2012(3).

总线网络设计论文 篇7

蓄电池是大量工业应用、舰船动力和电力系统中的重要储能设备。在实际应用中, 一般根据应用需求配置一定数量蓄电池构成蓄电池组。蓄电池作为应急及辅助能源、或作为主动力源给负载供电时, 其处于放电过程, 电能消耗到一定程度则必须进行充电。充、放电过程中, 蓄电池极板活性物质与电解液发生电化学反应, 电池物理化学特性及相关参数 (蓄电池端电压, 电解液密度、温度、液位等) 亦不断变化。因此, 为实现蓄电池的科学管理和维护使用, 在充、放电过程中, 需要实时监测每块电池端电压、电解液温度和液位, 以及蓄电池组充、放电电流等参数[1,2,3]。当蓄电池数量较多时, 采用传统的集中-分布式监测、RS-485等串行通讯技术将使巡检系统的设计、安装、调试、维护变得非常困难。

考虑到基于现场总线、特别是基于CAN总线的测控系统在可靠性、适应性、扩展性、可维护性、容错性、故障判别和管理等方面与传统的DCS测控系统相比具有明显的优越性, 其更易于实现集中管理, 且故障隐患分散, 为了实现模块化、通用化、系列化的设计要求[4,5], 本研究特对基于CAN总线的蓄电池参数巡检系统进行深入研究, 以PIC18F458单片机为MCU设计和研制样机, 并进行试验测试。

1 基于CAN总线的蓄电池巡检系统总体架构

CAN总线采用ISO/OSI模型中的物理层和数据链路层[6,7], 物理层包括3部分:物理信令 (PLS, Physical Layer Signalling) 、物理媒体附件 (PMA, Physical Medium Attachment) 和媒体接口 (MDI, Medium DependentInterface) ;数据链路层包括两部分:逻辑链路控制子层 (LLC) 和媒体访问控制子层 (MAC) 。从通讯网络构成角度讲, CAN总线是一种支持分布式控制和实时控制的串行通讯网络, 可实现全分布式多机冗余系统, 可以点对点、一点对多点以及全局广播几种方式传送和接收数据, 实际系统采用总线式网络拓扑结构。

本研究中蓄电池巡检系统网络总体架构按规范的CAN总线网络拓扑结构[8,9]设计, 用于监测2组蓄电池工作参数。在样机研制中, 上位主控微机配置1块CAN104型双CAN通道接口板, 每路CAN接口通道通过物理总线与其中1个蓄电池组参数监测模块、以及该组蓄电池中所有单个蓄电池参数监测模块顺序相连, 构成如图1所示的基本监测网络。在如图1所示的CAN总线网络监测系统的试验样机中, 每个独立CAN总线网络通道共配置5块蓄电池参数检测模块、1块蓄电池组参数检测模块。

2 蓄电池参数采集模块及其功能实现

2.1 MCU选型及基本电路设计

MCU选型的基本原则是在“满足任务需求、便于开发和编程”的前提下尽量选用高集成度、接口资源丰富的芯片, 以充分利用单片机的“单片”特性, 减少电路板元器件和外围器件的使用数量, 简化硬件设计、降低成本、提高产品可靠性指标[10]。本研究选用Microchip的16位程序字增强型、集成了CAN控制器的PIC18F458单片机[11]为核心器件进行设计。PIC18系列MCU采用先进的RISC架构, 支持FLASH和OTP器件;具有增强型内核, 32级堆栈和多种内部和外部中断源;采用指令和数据总线相互分离的哈佛结构, 允许16位指令和8位数据同时在分离的总线上传输, 指令执行速度快;集成了CAN控制器和10位A/D转换器等特殊功能模块, 可极大地减少外部元件的使用、降低成本、提高可靠性并降低功耗;此外, 尚具备可编程低压检测 (LVD) 和可编程欠压检测 (BOD) 等特殊功能。

由于PIC18F458的高集成度和单片性, 只需加极少外围器件即可构成一最小系统, 综合考虑CAN通信接口、电路供电、附带时间信息的采集数据滚动储存等功能要求而设计的基本电路如图2所示。图中采用6N137进行CAN信号隔离, 采用MCP2551实现CAN总线驱动, MAX1674用于DC电源升压变换, DS1307和24LC512用于提供附带时间信息的历史采集数据存储功能。

2.2 信号采集接口电路设计

对单块蓄电池配置2个长度不同的电容式液位传感器用于测量蓄电池电解液上、下限液位, 在下液位传感器壳体内部同时集成安装DS1821型数字式温度传感器用于测量电解液温度, 蓄电池电压信号采用仪表放大器芯片后处理后直接与PIC18F458的A/D转换接口。液位传感器信号可通过精密电阻采样后送A/D口 (或经过仪表放大器芯片处理后再送A/D口) 。蓄电池组电流通过分流器可转化为电压信号采集, 内部电路设计类似。根据以上论述选型的芯片及设计的单块蓄电池信号采集电路如图3所示。

2.3 程序设计及调试

为缩短开发周期、提高编程效率, 本研究采用C语言, 并在MPLAB环境下进行程序设计和仿真调试。程序设计中采用“自上而下”的设计思路并充分贯彻模块化编程指导原则, 将蓄电池参数采集模块总体程序构架划分为主程序初始化模块、信号处理主程序、CAN通信初始化模块、CAN通信子程序、A/D转换子程序、开关量I/O子程序、延迟子程序以及休眠唤醒子程序。

3 上位集中监控微机软、硬件系统

3.1 主机及CAN通信板卡优化配置

为适应蓄电池舱室内恶劣的环境工作条件并便于安装和维护管理, 本研究选用SBS的PC7型嵌入式单板机作为巡检系统的上位主控机, PC7单板机I/O接口丰富, 并配置有PC104总线接口, 便于应用标准尺寸的PC104工控板卡。根据该单板机接口特点和巡检系统双CAN总线网络总体设计方案, 笔者选用基于PC104总线的2通道CAN通信板 (RCAN104) 与现场基于CAN总线的检测模块进行通信。

RCAN104通信板使用系统内存地址映射空间方式, 线性物理基地址由6位拨码开关JP0设定, 分别表示6个二进制位S5~S0 (on位置时表示为1值, 在off位置则表示为0值) , 板卡硬件线性物理基地址Address组成格式为0x000XY000, 其中, X=0x0C+ (2×S5+S4) 、Y=8×S3+4×S2+2×S1+S0。由于单板机主板的部分内存地址空间可能已经被主板或其他设备占用, 在将通信板接插于主板前及驱动安装过程中、应根据单板机接口资源地址分配设置好RCAN104的拨码开关, 同时根据下位检测模块CAN总线通信速率设置好RCAN104的波特率。

3.2 上位机集中监测软件设计

本研究以C++Builder6.0为编程工具进行上位机集中监测软件的开发, 并参照船舶自动化系统软件功能要求进行设计, 实现的基本功能为:实时监测数据显示、参数超限故障报警和打印 (含定时打印、召唤打印和故障报警打印) ;历史数据查询浏览;蓄电池电压、电流监测参数的人工校正;单块蓄电池监测参数的统计数值柱条图界面显示等。为充分体现CAN网络优越的故障界定和管理功能, 软件中通过判读CAN通信数据中的错误帧信息设计了蓄电池监测模块CAN通信或其他硬件故障报警实时弹出窗口, 为方便快捷地了解所有蓄电池充放电过程中的主要工作参数 (电压) 分布情况, 软件中同时设计电池数量/电压值柱条图统计显示页面 (如图4所示) , 为蓄电池的科学管理提供了极大便利。

在程序设计中本研究采用人工实测2个典型工作点的参数与相应工作点的检测数值进行对比来进行校正, 由程序自动计算出校正系数, 从而实现参数在线调校功能。

4 巡检系统样机试验与测试

在本研究巡检系统的实际应用对象中, 单块蓄电池电压约1.80 V~2.35 V, 随着充、放电过程的进行而发生变化。为较好模拟被测对象, 样机测试中采用数字式程控直流电源给监测模块供电、同时模拟蓄电池待测电压和电流, 在装入一定水量的容器中插入液位和温度传感器用于模拟测量上下限液位和温度。

根据上述试验设计方法, 笔者在实验室条件下对研制的巡检系统样机进行了试验测试, 试验测试中每路CAN通道连接5个现场监测节点。系统运行过程中上位机监测数值正确, 人为设置监测节点故障时巡检系统样机能实时报警和打印故障信息, 功能满足要求。

5 结束语

巡检系统样机研制、调试和试验表明, 本研究采用集成CAN控制器和接口丰富的PIC18F458芯片为MCU构建CAN总线网络测控系统, 极大地简化了电路和程序设计。按本研究所述方法可极大简化系统设计、安装、调试及维护工作, 且便于建立冗余通信网络, 尤其适于多节点和大量参数检测的场合, 工程应用价值明显。

摘要:针对大量蓄电池参数的实时检测要求, 对基于控制器局域网 (CAN) 总线的蓄电池巡检系统 (IMS) 进行了深入研究, 选用集成CAN控制器的PIC18F458作为数据采集模块的MCU进行电路设计, 对系统核心电路和电压、电流及电解液液位信号采集处理电路及程序设计问题进行了全面论述, 根据使用要求优化了上位主机和CAN通讯卡的选型和系统集成, 完成了巡检系统样机设计和功能调试。试验过程中构建了双通道5节点网络。样机试验和测试结果表明, 所提出的设计思路和方法可行, 易于扩展, 调试维护简单, 并具有良好的工程适用性。

关键词:控制器局域网络总线,蓄电池,巡检系统,PIC18F458

参考文献

[1]徐国顺, 庄劲武, 杨锋, 等.大容量蓄电池组的数学建模及参数辨识[J].海军工程大学学报, 2007, 19 (3) :35-38.

[2]蔚兰, 岳燕, 刘启中, 等.电动汽车蓄电池充放电装置控制系统设计[J].电力电子技术, 2009, 43 (9) :69-71.

[3]QIU Wang-biao, QIU Zhi-yuan.Design for SymmetricalManagement of Storage Battery Expert System based on Sin-gle Battery[C]//Proceedings of the 2006 IEEE InternationalConference on Mechatronics and Automation.Luoyang, Chi-na:[s.n.], 2006:1141-1146.

[4]罗卫东, 黄克, 邱望标.电动汽车蓄电池组智能均充管理系统[J].机电工程, 2008, 25 (4) :78-79.

[5]杜尚丰, 曹晓钟, 徐津, 等.CAN现场总线测控技术及其应用[M].北京:电子工业出版社, 2007.

[6]AND B, SAVALLI N.CAN bus networked sensors use inorientation tools for the visually impaired wired versus wire-less technology[J].IEEE Instrumentation&Measure-ment Magazine, 2008, 11 (2) :49-52.

[7]HANSSON HA, NOLTE T, NORSTROMC, et al.Integra-ting reliability and timing analysis of CAN-based systems[J].IEEE T.Industrial Electronics, 2002, 49 (6) :1240-1250.

[8]王福友, 郝燕玲, 袁赣南, 等.舰船导航系统CAN总线网络设计的关键技术[J].中国造船, 2008, 49 (2) :81-86.

[9]ANTHONY P L, CRAWLEY H B, FISCHER P A, et al.CANbus and microcontroller use in the babar dector at SLAC[J].IEEE Transactions on Nuclear Science, 2000, 47 (2) :166-169.

[10]慎石磊.基于CAN/LIN总线的即插即用式监控系统[J].机电工程, 2009, 26 (10) :15-18.

总线网络设计论文 篇8

电动汽车能源利用率高和低污染等特点作为交通工具而被广泛关注。但电动汽车采用大量的电子器件,整车的控制难度和数据的时实性要求很高,随着车辆电子器件的增加,需要一种先进的总线技术来减少电线的数量,提高系统的稳定性[1]。CAN总线与一般的总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。但CAN协议只规定了物理层和数据链路层,要用户自己定义应用层,国内对CAN总线的研究大多基于CAN2.0B规范开发,很少能在应用层的水平上进一步的深入。本文以MCGS组态软件开发监控界面,利用i CAN和CANOPEN协议设计了电动汽车车载网络实验平台,为进一步的应用层的研究做准备。

2 系统介绍

整个车载网络分为高速网络和低速网络两大网络,彼此独立,这样可以保证两个网络数据传输不受影响。其中高速CAN的波特率是500kbit/s,低速网络波特率是125kbit/s。高速网络基于CANOPEN协议,低速网络基于ICAN协议。其中在高速网络中有电机控制,电池管理节点,制动控制节点,安全气囊节点,变速器节点共5个节点。低速网络中有显示节点,左前节点,右前节点,空调温度系统节点,车顶节点,左后节点,右后节点,雨刮器节点共8个节点。每个网络的都有一对阻值为120欧姆的终端电阻。由于车的种类很多,本文只是标准配置,含盖了常用的模块,根据具体情况还可以扩展。网关可以对两条独立的总线进行数据交换和资源共享。中央控制器是整车管理系统的控制核心,对各种信息进行分析处理,并发出指令,协调汽车每个控制单元及电器设备的工作。图1是整个系统结构拓扑图。选用带两路CAN总线接口的USBCAN-II,支持USB通信,有OPC客户端接口。在本文中,用PC机作为两个总线的主节点,PC机数据处理功能强大,可以充分利用各种软件,能实现网关和中央控制器功能,并用MCGS组态软件开发监控界面,对整个系统进行监视和控制。

3 网络设计

3.1 低速网络

iCAN协议使用扩展帧格式CAN报文(CAN2.0B),对29位帧标识符和数据部分进行了重定义,建立了一个统一的设备模型,定义了设备的I/O资源和访问规则,可以最多支持64个节点,能满足低速网络的节点要求[2]。

低速网络根据输入的各种开关控制量,控制车灯的通断,实现车窗的升降和门锁的开/关和雨刮的控制;采集汽车各种状态信息如温度、车速、车灯状态等,显示相关信息出来,并对系统故障发出警告信息。PC机的主要功能为:采集开关量,根据开关状态处理数据,发送控制命令;接受网络数据报文,处理数据。发送状态信息;在必要时起到网关的作用,将相关数据传输到高速CAN网络上。

右后节点、左后节点、右前节点、左前节点功能为:接收网络数据,控制汽车车灯和车窗电机、门锁电机;采集它们的状态信号并发送电器状态数据,通报电器是否正常工作;车顶节点用于控制天窗和车顶内部的灯以及控制雨挂器;仪表节点用于显示车身各状态信息,如车速指示、CAN故障指示、远光指示、倒车指示等;温度系统节点用于向CAN网络交换汽车内部温度数据;一共8个节点,由ICAN协议来实现。

以左前节点为例,这里选用广州致远电子开发的iCAN 2404功能模块作为节点,iCAN2404有4路自保持功能的继电器输出通道,控制汽车车灯和车窗电机、左转弯灯、门锁电机,需要4个开关量输出。输出部分与控制部分采用了光电隔离措施,隔离电压达到1000V,能在复杂环境下正常工作。在硬件建立好后,首先通过拨码开关SW1设置模块的波特率以及模块的MACID地址,节点地址设定为000010,CAN波特率设定为100kbit/s。然后在电脑上根据iCAN通信协议,在MCGS里面编写相应的报文帧发送和接收脚本函数,控制模块的输出。控制流程如图2所示。

iCAN协议支持主从通信模式和事件触发通信模式,在这里用主从通信模式,即命令/响应通信方式,主节点发出命令帧,从节点响应。主节点要和从节点通信,首先要和从节点建立连接,主节点发出建立连接命令帧报文,在命令帧里源节点地址是0x00,目标节点地址是000010,功能码是0x04,资源节点地址是0xf7,数据帧部分是0x0000FF。如果返回正常功能码就发送控制报文帧,iCAN协议规范中,继电器输出单元数据空间映射为0x20~0x3f的资源节点地址,主节点通过访问资源节点即可实现对继电器单元的操作,如果从站响应不正常,则分析返回功能码,显示错误原因。

3.2 高速网络

CANOPEN协议的核心在于对象字典(OD),每一个节点都有自己的对象字典。对象字典包含了描述这个设备和其它网络行为的所有参数。11位的COB-ID有8个优先级,每个优先级有220个COB-ID。在预定义连续集ID里,高四位是功能ID,低七位是节点ID。功能码ID定义了4个发送PDO,4个接收PDO,1个SDO,1个紧急对象和1个节点错误控制ID对等对象,也有NMT服务对象、SYNC和Time Stamp广播对象[3]。

图3是基于CANOPEN协议的设备模型图。

3.2.1 高速网络的实现

在高速网络中,共有电机节点、电池管理、制动控制、安全气囊、变速器控制和车速等6个子节点,上位机作为主节点,接收每个节点的通讯对象,在分析之后,把相应的信息通过组态软件显示出来,当主节点要向一个节点的对象字典(OD)写入数据的时候,上位机发送相应的SDO通讯对象,节点返回一段数据,表明成功写入。表1是各子节点交换的信息,其中电动机节点中,转速、力矩等使用优先级较低的SDO通讯对象,如果要改变速度则用优先级较高的PDO;电池管理节点中,电池电量和电压数据使用一个SDO传送,当温度高于一个阀值的时候用一个PDO传送各主节点,都用周期传送;制动控制节点和安全气囊节点各自一个紧急通讯对象;变速器节点把档位信息和变速信息等通过PDO发送到网络上;车速节点周期发送速度数据到主节点。每个节点应该有一个NMT通讯对象来保护节点和BOOT-UP,安全气囊接收紧急通讯对象,优先级最高。上位机控制命令指节点初始化过程中主节点对子节点OD的访问。

3.2.2 典型节点设计

以电动机节点为例介绍节点的通讯设计,CAN接口卡接收来自网络上的CANOPEN通讯对象,并在分析之后把相应的数据写入驱动器或者读出并发送到网络上,驱动器控制电动机的转速和传递电动机的运行参数,在本实验平台上选用一台三相异步电动机和MODROL公司的IMS-GF3-47P5型号的驱动器,再配上MDOROL公司的CAN通讯卡,就能自由的控制电动机,CAN通讯接口卡支持1个SDO和2个PDO,每个PDO能发送8个数据对象,并且可支持一个SDO和一个PDO的自动重发功能,最高通讯速率达到1M,完全可以满足在这个实验平台上的需要。

在CANOPEN网络中,各种通信对象的标识符可采用默认值,也可利用DBT(标识符分配)服务进行动态配置,DBT服务需要大量的软件编程来实现,在本设计中采用标识符的默认模式。电动机节点需要传送的信息有转速、力矩、应急事件信号(紧急停止等),因此需要使用的通讯对象有一个SDO,2个PDO,一个应急对象,上位机设为主节点,电机节点ID为1,图4为CANOPEN协议的通讯流程,各报文的通讯对象设置如表2。其中发送SDO一定要有来自主节点的请求,这时主节点作为客户端,电机节点作为服务器,客户发送转速和力矩查询信息,服务器响应并发送数据。在本系统中,可在上位机上设置周期为100ms的SDO数据发送。当需要提高电机的速度或者增加力矩时,主节点(上位机)即发送一个接收PDO,驱动器接收到数据后把相应的数据存入对象字典,再由应用程序处理数据。PDO2的发送可以使用事件触发异步传送方式,当电机电流过大时发送一个PDO给主节点,由组态软件给出相应的提示。当有来自制动信号的紧急停止信号的时候,启动紧急对象通信,此通讯对象优先级最高,能迅速反应。节点保护可以检查节点的当前状态,当没有数据传送时尤其有意义。

4 编写组态环境

MCGS工控组态软件是一套32位工控组态软件,可稳定运行于Windows95/98/NT操作系统,集动画显示、流程控制、数据采集、设备控制与输出、网络数据传输、工程报表、数据与曲线等诸多功能于一身,并支持国内外众多数据采集与输出设备[2]。

4.1 图形组态

在MCGS组态软件里,常用库里提供了大量的图形,还可以编辑这些图形,能够很方便的开发出监控界面。本文开发了一个主显示窗口,可以显示主要的信息,如电机转速、温湿度数据、电池剩余电量、车速和转弯灯等常用的信息和报警提示信号。电机控制窗口可以显示转速和力矩等的实时曲线和历史曲线。车身窗口可以显示所有车灯和车门锁等的状态并且可以控制车灯和车门锁的开关;电池主窗口用于显示所有电池的参数,如电压和温度等,并且利用MCGS的报警显示功能,显示报警信息和存储报警数据以备以后查看。此外还开发了变速器控制、车身安全、故障记录等一系列窗口,能实时的显示数据和存储数据,还有动画显示功能。图5是主显示窗口。

4.2 定义数据对象

实时数据库是MCGS工程的数据交换和数据处理中心。数据对象是构成实施数据库的基本单元,建立实时数据库的过程也就是定义数据对象的过程。在MCGS里,数据对象设置最主要的是数据类型和存盘相关参数以及报警属性设置。例如对于电机转速数据对象可以设置为数值型,定时存盘,不允许报警处理。本文所建立的工程比较大,相关的数据对象很多,每一个窗口都要好几个数据对象,可以在组态的时候再添加需要的数据对象。

4.3 编写控制流程

对于简单的系统,MCGS的简单组态就可完成。但对于本系统,需要使用脚本程序,正确的编写脚本程序可以简化组态过程,优化控制过程。例如对于温湿系统的数据,上位机接收到的是一串iCAN报文帧,利用字符串处理函数分析里面的帧ID,找出数据,并转换为10进制的数,发送到显示窗口。

4.4 连接设备

MCGS提供了OPC服务器的数据接口,周立功公司的ZOPC-SERVE是一个OPC服务器软件,可以把MCGS连接到此服务器,再通过此服务器来和CAN网络进行数据传输。在服务器中,对于每路CAN,都固定有两个通道,它们的名称分别为In_CANData和Out_CANData。对于输入通道In_CANData,服务器把从CAN网络接收到的数据存放到此数据项中,客户端只能读取它的数据;而对于输出通道Out_CANData,客户端把要发送的数据写入到此数据项中,服务器再把此数据项中的数据提取出来发送到CAN网络,客户端不能读取此数据项的数据。它们的存储格式都为字符串形式[2]。

5 结论

本文以PC作为监控系统的网关和主节点,用iCAN和CANOPEN协议分别组建低速网络和高速网络,利用MCGS组态软件开发了监控界面,实现了整个网络控制的自动化,具有较好的稳定性和精确度,在此基础上可以进一步的扩展,加深电动汽车CAN网络通信的研究。

摘要:为了解决电动汽车各部分之间的通信问题,基于iCAN和CANOPEN应用层协议设计了电动汽车车载网络平台,以MCGS组态软件开发了监控界面和以一台PC机作为数据处理中心。实验表明整个系统工作稳定可靠。

关键词:iCAN协议,CANOPEN协议,电动汽车,MCGS

参考文献

[1]卢珞先,陈元.基于CANOPEN协议的电动车车载网络设计[J].武汉理工大学学报(信息与管理工程版),2007,29(12):126-128.

[2]周立功.iCAN现场总线原理与应用[M].北京:北京航空航天大学出版社,2007.

总线网络设计论文 篇9

传统的传感器网络只能交互模拟信号, 不具备信号数字化及相应的信号处理功能。智能传感器网络借助现场总线进行通信, 将各个传感器功能模块与微型计算机控制模块结合, 实现数字信号的交互、处理。因此选择恰当的现场控制总线对于实现传感器控制网络的通信、自检、自校功能, 具有重要的作用。[1]

CAN-bus (Controller Area Network) 即控制器局域网, 是国际上应用最广泛的现场总线之一。最初CAN总线被设计作为汽车环境中的通讯总线, 在车载电子控制装置之间交换信息形成汽车电子控制网络。由于其卓越的性能、极高的可靠性和低廉的价格现已广泛应用于工业现场控制、医疗仪器等众多领域。具有成本低, 多主结构, 总线利用率高, 数据传输距离远 (长达10km) , 数据传输速率大 (高达1Mbit/s) , 实时性好, 错误处理和检测机制可靠等优点。

CAN总线以报文为单位进行信息传送, 它支持5种不同类型的报文帧:数据帧、远程帧、超载帧、错误帧和帧间隔。报文中包含信息标识符ID, 它标志了报文的优先权。CAN总线上各个节点都可主动发送, 总线上的报文采用标识符ID进行仲裁, ID值越小, 优先级越高。具有最高优先权报文的节点赢得总线使用权, 而其它节点自动停止发送。在总线再次空闲后, 这些节点将自动重发报文。网络中的所有节点都可由ID来自动决定是否接收该报文, 每个节点都有ID寄存器和屏蔽寄存器接收到的报文只有与该屏蔽的功能相同时, 该节点才开始正式接收报文, 否则它将不理睬ID后面的报文。这使CAN系统非常灵活, 可任意扩展或改变网络组成[2]。

2 传输数据格式设计

CAN总线采用非破坏性总线仲裁技术, 通过报文标识符的编码可以支持点对点、组播、广播等多种传播方式。当多个节点同时向总线发送报文时, 只有优先级高的节点能够发送数据, 其他节点会主动退出发送, 有效避免了总线冲突, 缩短了总线冲突仲裁时间。通信协议设计采用CAN2.0B协议格式, 报文扩展格式规定的仲裁场包括29位的标识符 (ID28~ID0) 。

综合考虑总线传输信息的速率、容量、优先等级、节点容量、对数据的处理方式、数据有效性等方面的问题, 将29位的标识符按功能进行一下分配, 如表1所示。

起始标识 (1bit) :默认为1, 表示报文判别开始。

目的设备标识 (6bit) :此为数据将要发送的目标设备编号, 当取值为0 (即000000B) 时, 标识该报文为广播报文;其取值为1~63时, 表示该报文为点对点报文。

源地址标识 (6bit) :发送数据的源设备的编号。

状态标识 (8bit) :规定了数据区的数据有效或者无效的状态, 0表示无效, 1表示有效, 每一位对应于数据区的一个字节, 第0位对应数据区的第1个字节, 以此类推, 第7位对应数据区的第8个字节。如果数据项占用了数据区的3个字节, 必须将对应状态字节的3位全部设置成一致的状态。

功能码标识 (4bit) :用于指示报文所需实现的功能, 或表示数据场中的数据为命令 (如读命令、写命令、批量读、批量写等) , 或表示表示数据场是即将发送的数据, 接收报文的节点根据报文中的功能码进行相应的处理。

多帧标识 (1bit) :1表示多帧, 0表示单帧, 用于区别数据传输的帧数量。

备选标识 (3bit) :以备新增加的功能辨识, 方便未来进行扩展。

通过对标识符的定义, 可以使节点通信做到既灵活实用, 又有很好的可靠性和可扩展性, 便于在此基础上进行应用层协议的开发。

3 应用层协议设计

CAN协议是建立在OSI 7层开放互连参考模型基础之上的, 但CAN协议只定义了模型的最下面两层———数据链路层和物理层, 总线控制器提供了底层 (物理层和数据链路层) 的硬件支持, 因此传送规则、传输控制和电气属性相关的功能均有控制器自动处理完成, 保证了节点间无差错的数据传输。因此, 基于CAN网络应用层通信协议中无需考虑错误检测和故障界定, 只需考虑的是针对应用层通讯协议的规则[3]。

CAN的应用层协议必须由网络用户自行定义, 一些国际组织制订的标准协议, 应用最为广泛的是Device Net和CANopen, 分别广泛应用于过程控制和机电控制领域, 但此类协议一般结构比较复杂, 因此需求研制一种基于CAN总线的分布式系统的CAN总线高层通信协议[4]。

3.1 节点模块设备管理机制

在智能传感器网络中每一个传感器节点模块, 在通过CAN总线进行数据交互之前, 都首先需要对硬件电路进行必要操作, 图1给出了节点设备操作流程。

根据设备管理机制进行设备管理程序编写, 程序采用的是动态加载的方法, 主要就是在程序初始化的时候从动态库中取得各个函数的地址并保存起来, 然后在需要的时候调用, 在程序退出的时候释放掉打开的动态库句柄。

根据需求进行模块化的程序设计。主要接口函数有以下几种:

打开设备Open Device () ;

关闭设备Close Device () ;

初始化CAN节点Init Can () ;

读取设备信息Read Board Info () ;

获取CAN状态Read Can Status () ;

获取设备的相应参数GetReference () ;

设置设备的相应参数SetReference () ;

清空指定缓冲区Clear Buffer () ;

启动CAN节点Start CAN () ;

复位CAN节点Reset CAN () ;

发送数据Transmit () ;

从指定的设备读取数据Receive () 。

3.2 节点模块数据收发机制

在确定模块数据收发机制之前, 首先需要定义用到的数据结构, 包括:传感器接口卡信息的数据类型, CAN信息帧的数据类型, CAN控制器状态的数据类型, 错误信息的数据类型, 初始化传感器节点的数据类型。

此外, 为了使软件具有易读、易扩展、易维护的特点, 协议设计遵循模块化设计原理, 各模块之间通过适当的入口和出口函数相互联系, 组合灵活方便。如图2所示分别给出了数据发送和接收的系统结构框图, 此设计不仅能够将数据顺利的发送并接收, 同时可以计算成功发送、接收帧数及发送时间, 方便测试工作的完成。

3.3 用户界面设计

用户界面设计要求界面友好, 可完成设备连接、基本设备参数设置、启动、复位、数据发送、数据接收、成功发送次数、成功发送帧数、所用时间等功能, 能够实现CAN通信及基本测试工作。如图3所示为CAN通信收发测试界面。

4 实验测试

在实验室环境下, 搭建试验平台:两台PC机上分别运行如图3的上位机应用层程序, 并且通过USB分别连接一台协议分析仪CANalyst-Ⅱ, 协议分析仪CANalyst-Ⅱ均使用第一通道, 利用双绞线将两台协议分析仪的连接起来, 即搭建起试验验证平台。两台CANalyst-Ⅱ均进行设置:验证码为0X00000000, 屏蔽码为0XFFFFFFFF, 滤波方式为双滤波, 运行模式为正常模式。

利用该实验平台, 分别尝试利用1Mbit/s和500Kbit/s, 发送1000 000帧数据, 以检测基于CAN总线智能传感器网络通信的正确性、实时性及可靠性, 表3为实验结果。

实验结果表明, 该应用层通信协议在基于CAN总线智能传感器网络数据传输时是完全可行的, 整个网络性能良好具有高可靠性, 数据实时性高, 稳健性好, 测试结果符合设计目标。

摘要:以智能传感器网络为背景, 在CAN V2.0技术规范的基础之上提出了基于CAN总线的智能传感器网络的应用层通信协议。首先根据传感器之间相互独立, 数据传输量小的特点设计了一种扩展帧的数据传输格式。设计了方便快捷的设备管理机制、数据收发机制及测试界面, 实现了智能传感器网络的数据传输, 解决了针对智能传感器网络数据交互的问题。最后利用协议分析仪CANalyst-Ⅱ进行了实验测试, 验证了协议的有效性。

关键词:CAN总线,传感器网络,通信协议,CANalyst-Ⅱ

参考文献

[1]王保云.物联网技术研究综述[J].电子测量与仪器学报.2009, 23 (12) :1-2

[2]王黎明著.CAN现场总线技术系统的设计与应用[M].北京:电子工业出版社, 2008.15-17

[3]饶运涛, 邹继军, 郑勇芸著.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社, 2003.72-79

总线网络设计论文 篇10

三菱FX系列PLC提供的计算机链接通信方式通过FX-485PC-IF,FX-485BD等设备可实现多台PLC与计算机的通信,从而组成一个网络,可通过计算机实现对PLC的监控。这种网络最多可以包括16台PLC,但在实际应用中,往往没有如此多的数量,而是和其它设备一起组成一个更为复杂的网络,为了能够好地对整个网络进行管理,有必要将PLC组成的网络与其他系统组成的网络进行区分,并通过某种方式实现各部分的通信。通过PLC的计算机链接方式,将PLC网络作为CAN总线的一个节点,可以很好地解决这一问题。

2 系统总体方案设计

FX系列PLC的计算机链接图如图1所示,由于计算机与FX-485PC-IF之间的通信协议为RS232;FX-485PC-IF通过FX-485BD与各PLC进行通信,FX-485PC-IF与FX-485BD之间采用RS-485协议[1]。

系统对这个拓扑进行了改动,通过Philips公司的P8xC591单片机与MAX485组成一个RS485通信接口,通过MAX485与FX-485BD进行相连接,实现PLC与单片机的通信。如图2,由P8xC591单片机取代PC,成为PLC计算机链接中的主控制器。无论是计算机还是单片机作为主控制器,这种拓扑都是采用主从式结构系统,通信方式都是以主站轮询的方式进行。但从实际应用看,单片机既可以作为主控制器对PLC数据的读写外,还可以作为数据采集的主控制器,对该部分控制所需要的数据进行采集。

P8xC591单片机集成了CAN总线控制器,只需要接上收发器就可以接到CAN总线上作为CAN总线的一个节点[2],如图3,P8xC591的CAN接口与收发器82C250相接,通过82C250实现与CAN总线的通信[3];另一方面,P8xC591的串行通信口RXD与TXD分别与MAX485的RO与DI相连接,通过MAX485与FX-485BD通信。MAX485与FX-485BD之间采用二线制方式,实际上,P8x C591与PLC之间的通信就采用半双工的工作方式。MAX485的引脚A与B分别与FX-485BD的RDA与RDB相连,在RDA与SDA之间接330Ω的电阻,RDB与SDB直接相连[5]。

3 单片机与PLC的通信数据格式

P8xC591与PLC之间通信采用异步半双工模式,在任何时候只能有一点处于发送状态,任何一次数据的传输都是由P8xC591单片机发起的。P8xC591访问PLC有读和写两种情况,其控制协议(格式1)如图4。所有数据均与ASCII码的形式传输。其中,ENQ、ACK与NAK分别为发送请求、信息确认应答与信息36H(D0096)+30H32H(两个单元)+34H31H和错误应答,各自的ASCII码分别为:05H、06H与15H。站号为当前要读取或写入的PLC中D8121的值,PC号固定为FFH(ASCII码46H,46H),对PLC的操作命令与ASCII码如下所示[1]:

批读:BR(42H,52H)、WR(57H,52H),

批写:BW(42H,57H)、WW(57H,57H),

测试:BT(42H,54H)、WT(57H,54H),

远程运行:RR(52H,52H),

远程停止:RS(52H,53H),

读PLC类型:PC(50H,43H),

接地:GW(47H,57H),

环路回送测试:TT(54H,54H)。

消息等待时间以10ms为单位,最小为0,最大为150ms,依次分别用0~F的ASCII码来表示。字符区域即为所要读取或写入的PLC元件地址与数据。读操作中由PLC返回的数据中,ETX(ASCII码为03H)为信息帧结束标志。和校验区域如图4所示,将这个区域中的所有ASCII码相加后取最低两位十六进制数并用ASCII码表示。

例:(1)读取PLC中D0096和D0097中的数据,(2)将02H和05H分别写入D0096和D0097中;消息等待时间均为10ms,PLC站号为01H,则单片机所发送的数据内容如下:

PLC接收到来自单片机的发送请求后,便将接收后面的数据,并进行解析,当接收完下划线部分的所有内容后,会将该部分数据进行累加得到和校验码,并与来自单片机的和校验码比较,以此来判断数据是否正确接收。接收完数据后,PLC的应答如下。

单片机收到后,返回确认信息给PLC:

(2)正确接收并执行

4 CAN数据与RS485数据的转发流程设计[4,5,6]

由于P8xC591与PLC的数据采用ASCII码的方式传输,而与CAN总线的数据则是直接的,没有经过任何编码的数据,只有根据不同的CAN协议来确定具体的意义,因此,要实现CAN的数据与RS485的数据转发,必须先对数据进行转换。具体算法如下。

(1)CAN数据转换为RS485的数据

以两个十六进制位为单位,将每个字节分成高位和低位,则每位均可以在0H~FH之间取得。若该位在0H觸9H之间,则将该位加上30H;在AH~FH之间,则将该位加上37H,得到该位的ASCII码,则一个字节的CAN总线数据要用两个ASCII码表示。

(2)RS485数据转换为CAN数据

每两个字节的RS485数据(ASCII码)表示一个CAN总线数据,因为0H~9H的ASCII码分别为30H~39H,AH觸FH的ASCII码分别为41H~46H,所以30H~39H之间的数据减去30H,41H~46H之间的数据减去37H,然后将两位合并成一个字节就完成了向CAN总线数据的转换。

图5为系统上电后的流程图,P8xC591对CAN控制器与串口初始化完成后,便对CAN控制器数据缓冲区进行查询,若有数据,则将数据进行编码转换并保存在数据RAM1中;若无数据,则读取RAM1中的指令与数据发到RS485网络,并等待RS485网络返回的数据。同样,若RS485有数据返回,则读取数据并编码,保存到数据RAM2中;若无数据返回,则将数据RAM2中的数据发送到CAN总线[4]。需要注意的是,P8xC591的片内数据RAM只有512个字节,为保证数据不丢失,数据量应小于数据RAM所能存储的最大值;而由于这些数据一旦发送到目标地址,数据RAM资源便得到释放,对于数据的传输影响很小。

5 总结

系统通过对三菱FX系列PLC计算机链接的简化,以P8xC591为核心将CAN总线与RS485总线连接在一起,使基于RS485总线的PLC网络成为CAN总线的一个节点,使得对PLC网络的远程监控更灵活,对组建包含PLC网络的CAN总线变得简单易行,此外,系统的与CAN总线接口部分引入光耦器件后,抗干扰能力将得到加强,在工业应用中有很好的应用前景。

参考文献

[1]Mitsubishi Electric Co.,Ltd.USER'S MANUAL FX COM-MUNICATION(RS-232C,RS485)[Z].Mitsubishi Elec-tric Co.,Ltd.2000.3,JY992D69901.

[2]PHILIPS Semiconductors.P8xC591Single-chip8-bit micro-controller with CANcontroller[Z].2000.

[3]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.

[4]邓检华.现场总线CANbus与RS-485之间透明转换的实现[J].电子技术应用,2001(5):51-52,57.

总线网络设计论文 篇11

关键词:FPGA SPI4.2总线 检测

中图分类号:TP393 文献标识码:A 文章编号:1007—3973(2012)009—079—03

SPI4.2标准由光网际交换论坛(OIF)于2001年颁布,是一项新的系统级接口标准,它支持多个协议以各不相同的高速率传输,这些协议包括SONET/SDH上的信息包(POS)、OC—192、以太网、快速以太网、兆位以太网、10兆位以太网和10兆位光纤通道SAN。SPI4.2摒弃了传统上用来支持宽范围数据速率和服务、专有的基于ASIC的或专门的网络处理器接口,代之以符合共同标准的接口,方便了来自多个生产商的不同器件之间的互连。

本设计基于FPGA为SPI4.2总线提供自发包和收包校验功能。在系统的下行侧,根据要求发送数据包,在系统的上行侧,检验数据的正确性。系统主要包括SPI4.2接口的控制、数据包的生成和检验、CPU控制模块等。本设计还提供了FPGA内部寄存器的配置与状态读取、时钟复位管理等功能。

1 SPI4.2接口简介

SPI4.2是一项新的系统级接口标准,设计人员可依照该标准为集中的数据和通讯设施开发灵活的、可升级的系统。SPI4.2 接口分为数据通道和状态通道。数据通道最多分成256个逻辑通道,16bit 位宽,采用LVDS 信号电平,按照cell 格式传送数据,cell 的长度为16 字节的整数倍,可随意配置,根据网上流量的分析,一般配置成128 字节。每个cell 都是以控制字开始的,控制字一共16bit,包含逻辑端口号、报文起始标志位、报文结束标志位、控制字交验等信息。状态通道传输对端反馈的逻辑通道接收FIFO 的状态,2bit 位宽,LVTTL 或者LVDS 信号电平,一般采用LVTTL 信号电平。状态通道的数据结构为Calendar[0:n],n 最大为256,长度一般与逻辑通道数对应,Calendar[n]表示逻辑通道n 的接收FIFO 状态。数据通道根据状态通道提供的信息控制数据的发送过程。FIFO状态通道有四种状态信息,它的表示采用两位编码表示,MSB表示为其最高位,LSB表示为其最低位。SPI4.2接口具有如下特征:

(1)点对点连接;

(2)支持最大256端口;

(3)数据端口,16比特宽度,带内端口地址,起止标志以及误差控制,LVDS的输入输出接口,源同步双边沿采样时钟,最小311MHz时钟频率,最小每线622Mbps的数据传输速率;

(4)状态端口,可以为LVTTL或者LVDS的接口电平,对于LVTTL接口有最大1/4的数据端口时钟频率,对于LVDS接口最大时钟频率和数据端口一致,2比特并行的FIFO状态信息控制。带内的FIFO起始信号源同步时钟。

SPI4.2接口的数据具备一个可定义的最大长度以及一个可定义或者固定的最小长度。但是无论最大还是最小阵长度都必须是16字节的倍数。实际数据传输中,除了带有EOP标志,其余必须是16字节的倍数。每一次传输的附带信息(端口地址,起止标志,差错控制)以16比特的控制字发送。

2 SPI4.2总线测试仪发包逻辑设计

本设计用到的FPGA型号为Xilinx XC5VLX110t—2ff1136,FPGA提供SPI4.2总线自发包和收包检验功能,在包文的生成过程中采用最实用有效的背靠背传输方法,在系统的下行侧,根据要求发送数据包。在包文的传输过程中采用整包模式和BURST突发模式传输数据,利用SPI4.2的状态字控制数据的发送过程,并运用CRC冗余算法对包文进行校验,将其校验结果加在包文最后4字节。在系统的上行侧检测数据包,接受满足SPI4.2总线协议的包文,对包长,包头16字节内容,包尾CRC分别进行检验,检测到错误则报警。系统结构如图1所示。

图1所示,clk_manager主要完成时钟和复位信号的生成和管理。spi4_tx完成对发送Core的配置和使能,spi4_rx完成对接受Core的配置和使能。Pktgen为发包模块,根据要求发包给发送Core,并由发送Core通过SPI4总线对外发包。Ptkcheck为收包检测模块,接收Core收到的包进入Ptkcheck,完成对收到包的包头,CRC,包长等检测。cpu为LocalBus的桥接模块,提供FPGA内部寄存器的读写访问,软件可通过该模块进行对FPGA的配置和状态的读写。

SPI4.2数据包的生成模块的功能为根据需求生成数据包。SPI4.2总线在下行方向支持最大32通道的数据发送。包长为8字节的整数倍加4字节(CRC沉余校验位)。发包前状态机处于IDLE状态,当开始发包,此时从0通道开始找到一个可发包的通道,进入GEN_TSX状态,同时生成sop前一拍,在下一拍状态机进入GEN_PAYLOAD,同时生成包文和vald信号,包文开始内容可配,如没配置,则使用默认值。后面的包文从0开始计数。同时burst计数和包长计数开始从初始值开始递减,如果当前剩余包长数小于等于burst长度,则不采用burst计数产生burst_end。当目前剩余包长数大于burst长度计数且burst计数到burst长度少三拍的时候,确定了下一个发包的通道,burst计数到burst长度少两拍的时候,生成burst_end。此时状态机在下一拍调到IDLE,并判断此时的可发包通道包长是否为零,为0则跳到GEN_TSX,发送新的sop前一拍,在下一拍进入GEN_PAYLOAD继续发送包文。不为0则表示当前通道为上一个burst发完,则跳到GEN_BURST_MIDDLE,再下一拍进入GEN_PAYLOAD继续发送包文。同样,当计数包长计数到包长长度少两拍的时候,生成packet_end,并把该通道的包长计数清零。在packet_end前一拍确定下一个发包的通道。packet_end下一拍,状态机调到IDLE,并判断此时的可发包通道包长是否为零,为0则跳到GEN_TSX,生成新的sop前一拍,再下一拍进入GEN_PAYLOAD继续发送包文。不为0则表示当前通道为上一个burst发完,则跳到GEN_BURST_MIDDLE,再下一拍进入GEN_PAYLOAD继续发送包文。此时vald信号在跳空的两拍仍打有效,这样可以做成背靠背的传输。发包过程如图2所示。

为了实现背靠背的传输,则需在idle的时刻(即burst_end或者packet_end的下一拍)能够从ram中读到发包通道的状态,如此时刻的包长等,进而判断此时的发包通道下一步是从sop开始发包文或者接着上一次的burst继续发包文。进而则需在burst长度(或者packet长度)少三拍的时候,确定了下一个发包的通道,包内容暂时为计数器模式。crc从偏移开始算起,只要vald信号有效就计算,由于crc的计算是当前拍提取数据和crc值,下一排计算,并当拍给出新的crc值。所以我们在vald信号由高拉底的当拍,把此时的crc值存入ram,当又轮到该通道的时候,当前burst第一个数据crc验证的时候,从RAM 读出其值。crc校验直到eop前一排,计算结束,并把4字节crc结果付值给eop那拍的前32位,后32位写0,mod值写4。

SPI—4.2数据包的检验模块检测SPI4.2上行传回来的数据。SPI4.2总线在上行方向支持最大32个通道的数据包接受。各SPI4.2子通道的数据包头可分别配置检验模版,并和接受到的数据包头进行比较,若不相符则包头报错,并计数报错次数。数据部分采用并行校验方式对数据进行crc32校验字段,将计算结果与包尾4字节比较,若不相符则crc报错,并计数报错次数。该模块同时检验各数据包长,判断是否为配置包长或者默认值中的一种情况,若不相符则包长报错,并计数报错次数。

3 仿真

使用ModelSim仿真软件对收发包的两种模式进行仿真,波形图如图3、图4。

图3为配置包个数的BURST收发包模式的仿真波形,可以看出系统在下行侧的四个通道循环发送了8个数据包,数据通过线路侧环接到上行,对接收到的数据包进行验证,其结果包头检测不报错,crc检测不报错,包长检测不报错,SPI4.2总线上数据传输正常。

图4为连续收发包模式的仿真波形,可以看出系统在下行侧的八个通道循环发送数据,数据通过线路侧环接到上行,对接收到的数据包进行验证,其结果包头检测不报错, crc检测不报错,包长检测不报错,SPI4.2总线上数据传输正常。

4 结论

本设计基于FPGA实现了SPI4.2总线测试仪逻辑的设计,在发送端生成满足SPI4.2总线协议的包文,其包文长度支持用户自定义配置,包头内容支持用户自定义配置,并对包文进行crc校验,其校验结果加在包文最后4字节,支持包文的整包模式发送和BURST模式发送。在接收端对包长, 包头内容, 包尾crc分别进行检验,检测到错误则报警。该设计满足了检验SPI4.2总线好坏的目的,为使用SPI4.2总线的工程设计提供了有益的帮助。

参考文献:

[1] 周梦然.CLPD/FPGA的开发与应用[M].徐州:中国矿业大学出版,2007.

[2] 王金明.VerilogHDL程序设计教程[M].北京:人民邮电出版社,2004.

[3] 孙航.Xilinx可编程逻辑器件的高级应用与设计技巧[M].北京:电子工业出版社,2004.

[4] OIF—SPI4—2.01v2.pdf[M].OIF.

总线网络设计论文 篇12

1 系统体系

我国煤矿监控系统的发展起步较晚, 现有系统的技术含量和功能相对落后, 普遍存在明显的不足, 主要体现在以下几方面:

1) 系统数据通讯速率低, 实时性差;

2) 数据刷新主要采用轮询方式, 主站任务繁重;

3) 分站间无法实现数据交换;

4) 交叉控制由主站完成, 主站一旦出现故障, 可能导致整个系统瘫痪。

针对以上问题, 设计了基于CAN总线的网络控制系统。该系统具有扩展性好、通讯实时性高、可靠性强、系统可在主站故障下独立运行的特点。系统主体框架结构见图1, 系统主干网采用以太光纤环网或工业以太网, CAN总线控制网络分布于各监控子区域, 每一个CAN网段的各个分站间实现网络控制。

2 控制模型设计

要利用CAN总线实现网络控制, 就必须很好地协调整个网络的通讯方式, 根据网络的数据带宽设计合理的通讯控制协议, 在保证总线数据带宽足够的情况下还要保证系统控制的实时性和可靠性。这样, 对整个系统的调度和通讯协调就成为系统模型设计的关键。

系统模型设计的要求是让地面主站的控制功能尽量交由井下分站独立完成, 主站的功能就是实现对整个系统的硬件参数配置和软件逻辑配置, 以及时常的数据监视与保存;分站根据主站的配置信息进行数据采集和逻辑执行。

2.1 主站模型

主站是人机交流的主体, 友好的界面能让操作人员使用起来轻松易懂、操作简便。因此主站界面应尽量实现图形化的设计, 具体形式限于篇幅不作讲述, 在此主要说明实现方法的基本框架。

主站需要完成的功能有:系统硬件参数配置、逻辑配置、配置参数的保存、配置参数的下装, 必要时还需要从分站上传配置参数及历史数据、进行通讯维护、提供友好的交互界面、对实时数据和历史数据进行管理、提供信息化数据共享等, 其基本组成框图见图2。

主站中与控制密切相关的两部分是系统配置和逻辑配置。系统配置完成一个应用系统的分站基本参数设置, 比如分站硬件IO通道的使用情况, 通道的特征参数, 通道的量程上下限等。逻辑配置完成分站的变量定义, 实现分站映射地址的抽象化, 将数值地址转换成字符描述的变量名, 方便使用与理解;逻辑配置还要完成算法块的参数关联及执行顺序安排。主站还需要维护好同一总线网段内的变量名的唯一性, 以便在变量关联时能正确选择对应。不同总线网段的控制逻辑应具备独立性, 控制逻辑变量的关联不能在网段间交叉。

2.2 分站模型

在煤矿监控系统中, 监控分站起到最重要的作用, 分站的稳定性将决定系统的可靠性, 因此对分站的设计相当重要, 分站中的逻辑控制不允许出现任何差错。

相对主站而言, 分站没有复杂的界面显示, 一般分站仅提供一个数码显示屏和几个状态指示灯即可, 显示屏循环显示分站的重要监控数据, 状态指示灯则显示系统的运行状态或控制状态。分站的核心部分是数据采集、逻辑控制、控制输出、通讯维护, 以及通讯故障时的历史数据存储。分站组成框图见图3。

2.3 控制模型

在控制逻辑处理中, 需要将分站的内部中间变量与IO变量进行内存映射, 以方便逻辑处理程序进行数据处理, 同时主站将根据IO映射的逻辑地址进行变量定义。逻辑控制算法采用算法块的形式, 分站提供几个基本的算法块, 控制逻辑由这些基本算法块搭建而成。采用算法块的好处在于界面易于图形化设计, 组织很直观, 操作使用简单, 调试方便, 运行结果一目了然。分站中定义的基本算法块有:模拟量赋值块, 开关量赋值块, 加法块, 减法块, 乘法块, 除法块, 逻辑与, 逻辑或, 逻辑非, 比较算法块。由于CAN通讯报文所带数据量少, 因此, 算法块的输入输出参数不能过多, 规定一个算法块中, 输出参数与输入参数个数的总和不能大于6个字节, 参数数据长度总和不能大于6个字节。主机在进行逻辑配置时, 需要将算法块的执行顺序预先安排好, 否则可能出现计算结果错误。

要实现网络控制功能, 分站之间就有网络数据通讯, 为在CAN的短帧通讯方式下能有效地利用网络流量实现高效的实时控制, 就必须设计一个合理的通讯协议。该系统的通讯协议基于CAN标准帧进行设计, 如果要用扩展帧格式实现, 只需适当作些调整即可。在应用中, 将CAN控制域的11位标识位进行了分配定义, 见表1。

传送方向用于标识报文的发送方向, 通过这两位的不同取值, 接收方可知道报文是主站发送至分站、分站发送至主站还是分站发送至分站的。分站地址是每个分站的唯一标识, 取值范围为1~63, 0保留, 即1条CAN总线上最多可挂接63个分站。报文类型用于表明报文是请求报文、应答报文还是错误报文。再将数据区的第一个字节作为命令字, 分站或主站通过对该命令字的分析来作出相应的数据处理或操作控制。这样一来, CAN的8字节数据区最后在实际数据传输中只有7个字节作为应用数据了, 这也正是对算法块参数长度及个数进行限制的原因。

对于具有自动网络控制的设备而言, 控制逻辑的结果输出一般情况下是每执行完一次便将结果输出到网络控制节点上, 由于CAN在长距离通讯时总线速度也不是很快, 距离10 km时为5 kB/s的通讯速度, 当网络控制点数过多时可能导致网络数据传输超负荷, 有些低优先级分站节点的控制输出得不到执行, 因此对网络控制数据的输出方式也要仔细考虑, 要既能实现实时控制, 又能保证控制的可靠性。该方案采用变化加周期输出的方式进行网络控制输出, 分站内的控制输出则可在每周期内及时进行。

3 结语

按设计方案已在实验室开发了一套16台分站的监控系统软件, 分站IO通道数为12通道 (8 AI/DI, 4DO) , 测试结果显示, 系统满负荷数据刷新时间不超过5 s, 在16个网络控制输出点的配置情况下, 控制结果输出时间不超过3 s, 分站内控制结果输出时间不超过2 s。因此, 按该方案设计的煤矿监控系统较现有系统在控制功能和实时性上有很大的提高。

摘要:介绍了煤矿监控系统中基于CAN总线短帧通讯报文控制方案的设计与实现过程, 并提出系统网络结构的设计方案。实验结果表明, 该方法具有传输可靠、控制实时性高、控制逻辑设计灵活的特点。

关键词:监控系统,CAN,现场总线,监控分站

参考文献

[1]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社, 2001.

上一篇:智能化传播下一篇:内桥接线