欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

CAN与以太网数据交换的研究与分析

时间:2023-02-20 08:48:06 其他范文 收藏本文 下载本文

下面就是小编给大家带来的CAN与以太网数据交换的研究与分析,本文共6篇,希望能帮助到大家!

CAN与以太网数据交换的研究与分析

篇1:关于CAN与以太网数据交换的研究与分析

1、技术背景

CAN(ControllerAreaNetwork——控制器局域网)是一种由带CAN控制器组成高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一,它最早由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信。其总线规范已被ISO估计标准组织制定为国际标准。由于其具有多主机、传输距离远(最远为10km)、传输速度快(最快为1Mbps)、抗干扰能力强等诸多优点,所以被认为是最有发展前途的现场总线之一。

CAN协议是建立在国际标准组织的开放系统互连模型基础上的。1991年9月,PhilipsSemiconductors制定并发布的CAN技术规范Version2.0为现行最高版本。其中规定了两种模式:标准模式和扩展模式。本文主要对标准模式进行介绍。

TCP/IP(TransmissionControlProtocol/InternetProtocol——传输控制协议/网络协议)是一个工业标准的协议集,包括IP、TCP、UDP等子协议,保证数据在网络上的正确传输。TCP/IP协议是现代因特网的基础。

TCP/IP协议为四层模型:应用层、传输层、网络层和数据链路层。每层都有不同的功能,而且层和层之间在逻辑上是相互独立的。每层都对应一些子协议,如图1所示。本文用到的协议包括ARP、IP和TCP等。

2、应用背景

CAN总线在很多行业被广泛应用。由其组成的局域网可以将很多底层测控设备连接起来,最远距离可达10km(在不接中继器的条件下)。相对其它现场总线,该距离已经是很远了。但随着以太网的发展,人们希望对底层设备也能进行真正意义上的远程控制。工控机加接口卡已经被用来实现这一目的,但价格和接口卡带来的瓶颈等问题也随之暴露出来。本文是以单片机、CAN器件和网络芯片为核心的模块来完成该功能进行叙述的。这种方案降低了成本,避免了瓶颈。

3、硬件部分

硬件的实现方案有多种,可以采用集成TCP/IP协议的单片机外加CAN收发器和控制器;也可采用集成CAN控制器的单片机外加CAN收发器和网络芯片。本文的实例采用不带任何集成的单片机PhilipsP89C668,外加CAN控制器SJA1000、CAN收发器TJA1050以及网络芯片RTL8019AS,组成一个转换模块,功能模块如图2所示。

P89C668:微控制器,主要的控制部分,实现对网络芯片以及CAN器件的控制,并进行两者之间的协议转换。

SJA1000:CAN控制器,两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式(本文仅介绍BasicCAN模式)。支持错误分析功能,对CAN收发器进行控制,为微控制器提供了控制CAN总线的简单接口。

TJA1050:CAN收发器,微控制器对CAN控制器进行相应配置后,收发器自动过完成相应的CAN总线动作。

RTL8019:网络芯片,提供给微控制器控制以太网的简单接口,使微控制器只需要对其进行相应读写即可完成对以太网的操作。

实验中另外用到一个CAN模块作为一个CAN节点,和转换模块一起组成一个简单的CAN网。

4、软件部分

CAN编程

BasicCAN模式中的CAN编程相对简单,只需要对SJA1000相应的寄存器进行读写操作即可。在该模式下,报文识别码为11位,在经过验收滤波器的筛选后,符合条件的报文才能被接收,并存入SJA1000接收缓冲区。识别码值越小,优先级越高,

如果总线上出现报文冲突,优先级高的报文选占据总线。CAN节点间每次最多传送的数据为10个字节。发送缓冲区寄存器的描述如表1所列,它与接收缓冲区寄存器结构大体相同,只是地址不同。

表1 发送缓冲区寄存器

本实验中用到P89C668的外部中断1。该中断由SJA1000引发,设置为当SJA1000收到来自另一节点的数据时,向P89C668发出中断信号。在中断处理程序中,P89C668读取并保存SJA1000中断寄存器的值,作为在相应程序中进行处理的依据。

TCP/IP协议

由于TCP/IP协议很复杂,涉及的内容很多。下面仅就几点作简要介绍。

(1)封装和分层的概念

发送数据时要对数据进行逐层封装,既加上相应的首部,作为所经过每层的标识。具体原理如图3所示。接收到的数据是按一定结构封装好的,我们要根据前面的首部信息,判断数据应交付给下面哪一层,并将相应首部信息去除,这样依次向下传,到最后可以得到所传送的真正数据。具体原理如图4所示。

(2)以太网驱动程序

以太网驱动程序是提供链路层物理接口与网络层交互的软件接口。网络层数据必须先交付给以太网驱动程序,由它将网络层数据打包交付给物理接口,完成数据发送。反之,以太网驱动程序在接收到数据时,要按照应用层可以接收的形式进行处理并交付给网络层。

(3)ARP协议

即地址解析协议,提供逻辑地址到物理地址的动态映射。发送站必须知道接收站的物理地址才能对数据进行封装,才能在以太网中进行传输,因此只知道接收站的逻辑地址是不够的,必须事先通过ARP协议得到接收站的物理地址。

(4)IP协议

即网络协议,提供一种不可靠的、无连接的服务,完成的功能有将运输层待发送数据封装成IP数据报,调用以太网驱动程序发送数据,从数据链路层接收数据,以及数据校验等。

(5)TCP协议

即传输控制协议,是一种面向连接的、可靠的运输协议。UDP协议实现相同功能,但它只把数据报分组从一台主机发送到另一台主机,不保证可靠性。本文主要使用TCP协议进行数据交换,而没有采用UDP协议。实验中用到P89C668的定时器0中断,10ms中断一次,主要为了进行ARP老化处理,设置TCP超时标志。

CAN与以太网的数据交换

数据交换原理简单说就是对从以太网中收到的数据进行分层。如果是TCP数据报,取出真正的数据,并将其存入一个开辟的数据区,对数据进行相应分析后,按照BasicCAN模式进行发送。反过来,将接收到的CAN数据存入另一数据区,除去地址和个数信息,将其余数据按照TCP/IP协议进行封装发送。具体流程图如图5所示。

由CAN接收引起外部中断后,保存SJA1000中断寄存器和状态寄存器的值,在CAN处理子程序中根据其值进行处理。当上到来自另一节点的数据,则将该数据存入相应缓冲区,并置位一标志位,在主程序中的TCP超时处理子程序中判断该标志位,如果为高则将该缓冲区中的数据拷贝到以太网发送缓部眍中,并将数据封装发送。当P89C668接收到来自以太网的TCP数据报,同样将一标志位置1,在CAN处理子程序(见图6)中,根据该标志位判断是否有数据要发送给另一节点。

在具体调试时,使一个CAN节点每隔一段时间向转换模块发送一些数据。该节点接收后,通过以太网转发给上位机,上位机通过超级终端显示接收的数据。同样,可以通过超级终端发送一些键入的数据,经过转换模块传给另一个CAN节点,从而改变它的一些内部数据。

5、小结

该实验只是实现了以太网与BasicCAN模式下CAN的简单数据交换,没有涉及CAN的高层协议和复杂错误处理。不过有了该实验的成功尝试,使实现PeliCAN模式下的转换以及加载完善的协议成为可能,可以说该实验为CAN和以太网的融合打下了坚实的基础。

篇2:CAN与以太网数据交换的研究与分析

CAN与以太网数据交换的研究与分析

摘要:主要介绍将CAN现场总线以协议中的标准模式接入以太网的方法,实现CAN网络中的数据和以太网中的数据进行简单交换;给出相应的硬件和软件原理以及重点难点说明。

关键词:CAN总线 以太网 数据交换 TCP/IP协议 BasicCAN模式

1 技术背景

CAN(Controller Area Network――控制器局域网)是一种由带CAN控制器组成高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。它最早由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信。其总线规范已被ISO估计标准组织制定为国际标准。由于其具有多主机、传输距离远(最远为10km)、传输速度快(最快为1Mbps)、抗干扰能力强等诸多优点,所以被认为是最有发展前途的现场总线之一。

CAN协议是建立在国际标准组织的开放系统互连模型基础上的'。1991年9月,Philips Semiconductors制定并发布的CAN技术规范Version2.0为现行最高版本。其中规定了两种模式:标准模式和扩展模式。本文主要对标准模式进行介绍。

TCP/IP(Transmission Control Protocol/Internet Protocol――传输控制协议/网络协议)是一个工业标准的协议集,包括IP、TCP、UDP等子协议,保证数据在网络上的正确传输。TCP/IP协议是现代因特网的基础。

TCP/IP协议为四层模型:应用层、传输层、网络层和数据链路层。每层都有不同的功能,而且层和层之间在逻辑上是相互独立的。每层都对应一些子协议,如图1所示。本文用到的协议包括ARP、IP和TCP等。

2 应用背景

CAN总线在很多行业被广泛应用。由其组成的局域网可以将很多底层测控设备连接起来,最远距离可达10km(在不接中继器的条件下)。相对其它现场总线,该距离已经是很远了。但随着以太网的发展,人们希望对底层设备也能进行真正意义上的远程控制。工控机加接口卡已经被用来实现这一目的,但价格和接口卡带来的瓶颈等问题也随之暴露出来。本文是以单片机、CAN器件和网络芯片为核心的模块来完成该功能进行叙述的。这种方案降低了成本,避免了瓶颈。

3 硬件部分

硬件的实现方案有多种,可以采用集成TCP/IP协议的单片机外加CAN收发器和控制器;也可采用集成CAN控制器的单片机外加CAN收发器和网络芯片。本文的实例采用不带任何集成的单片机Philips P89C668,外加CAN控制器SJA1000、CAN收发器TJA1050以及网络芯片RTL8019AS,组成一个转换模块,功能模块如图2所示。

P89C668:微控制器,主要的控制部分,实现对网络芯片以及CAN器件的控制,并进行两者之间的协议转换。

SJA1000:CAN控制器,两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式(本文仅介绍BasicCAN模式)。支持错误分析功能,对CAN收发器进行控制,为微控制器提供了控制CAN总线的简单接口。

[1] [2] [3]

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

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

摘要:介绍了一种基于单片机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总线与以太网互连方案。该互连方案保证管理监控层与生产测控层之间的连接,方便了上下层信息交流,满足工厂、变电站等工业场合的应用要求。

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

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

摘要:介绍了一种基于单片机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节点设备的服务器软件,为设备提供较复杂的数据处理工作。

[1] [2] [3] [4]

篇5:基于CAN总线与以太网互联的实时温度和湿度监控系统的研究与设计

基于CAN总线与以太网互联的实时温度和湿度监控系统的研究与设计

can(controller area network)即控制器局域网,是国际上应用最广泛的现场总线之一。起先can-bus被设计作为汽车环境中的微控制器通讯,在车载的各电子控制装置(ecu)之间交换信息形成汽车电子控制网络。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,can-bus已被广泛应用于各个自动化控制系统中。

从高速的网络到低价位的多路接线都可以使用can-bus。例如,在自动控制、智能大厦、电力系统、安防监控等各领域,can-bus都具有不可比拟的优越性。工业控制系统的分布化、智能化、信息化发展,要求企业从现场控制层到管理层实现全面无缝信息集成。工业以太网满足这一要求,实现了工业控制网络与企业信息网络的无缝连接,成为控制网络发展的主要方向,为全分散智能控制网络系统实现远程控制提供了可能[1]。本文作者主要介绍基于can总线与以太网互联的实时温度、湿度监控系统,从而实现监控设备的网络化和智能化。

1系统介绍

1.1can总线与互联网互联的发展状况can总线是一种有效支持分布式控制的串行通信网络,是德国bosch公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而设计的一种串行数据通信协议,历经技术规范2.0a和2.0b后已形成can国际标准(iso11898)

。can遵循osi模型,按照osi基准模型,can机构分为2层:数据链路层和物理层。按照ieee802.2和802.3标准,数据链路层又划分为逻辑链路控制层(llc)和媒体访问控制层(mac);物理层又划分为物理信令层(pls)、物理媒体附属装置层(pma)和媒体相关接口层(mdi)。由于can具有独特的优点,使得它在工业领域中得到广泛应用。

目前,基于can总线获得广泛应用的应用层协议有devicenet和canopen等。can具有以下主要特点[2]:

(1)can为多主工作方式,网络上任一节点均可在任意时刻主动地向网络上其他节点送信息,而不分主从;

(2)在报文标识符上,can上的节点分成不同的优先级,可满足不同的实时要求;

(3)can采用非破坏总线仲裁技术。当多个节点同时向总线发送信息出现冲突时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间;

(4)can节点只需通过对报文标识符滤波即可实现点对点、一对多点及全局广播几种方式传送接收数据;

(5)can报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低;

(6)can节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

现场总线网络与工业以太网的结合使得企业的管理可以深入到测控现场,在这种互联方式下,由以太网构建信息网,通过两者的有机联接,从而构成一个中型/大型的远程监控/数据传输网络[3]。

1.2系统架构系统由温度、湿度测控器、can以太网通信转换器、服务器和客户端组成,如图1所示。

温度、湿度测控器主要负责现场温度、湿度数据的采集、处理、控制、显示、报警以及通过can总线与通信转换器进行数据交换。

can、以太网通信转换器主要负责can总线数据的发送和接收,并将can的数据通过局域网发送到服务器上。

服务器负责监控结果数据的存储和报表的存储,同时,向客户端提供访问服务。

客户端通过浏览器上因特网访问服务器上的数据并进行通信和控制。

2硬件设计温度、湿度测控器主要分为数据采集、控制和can总线通讯3部分

温度、湿度测控器的温度、湿度传感器采用瑞士图2温度、湿度测控器的硬件框图fig.2structure of temperature and humidity controllersensirion公司的sht10,传感器包括1个电容式聚合体测湿元件和1个能隙式测温元件,并与1个14位a/d转换器以及串行接口电路在同一芯片上实现无缝连接。sht10具有超快响应、抗干扰能力强等优点。

每个sht10传感器都在极精确的湿度校验室中进行校准。校准系数以程序的形式储存在otp内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。两线制串行接口和内部基准电压,使系统集成变得简易快捷。温度、湿度测控器的mcu采用微芯公司的pic18f2580,它是整个温度、湿度测控器的运算控制单元,它采用16位的risc指令系统、哈佛总线结构、两级流水线取指等技术,具有32kb快闪存内存、4kb的ram、片内看门狗、内部eeprom、can控制器等丰富的片内资源,抗抗干扰性能强,功耗低,速度高[4]。pic18f2580主要负责数据采集与控制,并与通信转换层适配器进行实时can总线数据的通信。

can与以太网通信转换层硬件框图如图3所示,它的处理器采用nxp公司的arm7tdmi-s核的单片机lpc2378,是一款支持实时仿真和嵌入式跟踪的16/32位arm7tdmi-s cpu,处理器时钟高达72mhz。片内含有高达512kb的片内flash和58kb的片内sram存储器,具有强大的通信接口:10/100m以太网媒体访问控制器(mac),2路can-bus接口。

增强型外设4个32位捕获/比较定时器、1个带有2kb电池sram的低功耗实时时钟、看门狗定时器和1个片内4mhz的rc振荡器。lpc2378的强大功能为can和以太网的通信转换带来了极大方便[5]。

3软件设计软件设计的对象主要包括3部分:温度、湿度测控器的检测控制和can通信,can以太网通信转换,b/s平台。

3.1温度、湿度测控器的软件设计温度、湿度测控器的软件流程

它主要包括初始化子程序、can数据的接收和发送程序、显示程序、键盘扫描程序、控制程序。can数据的接收和发送对实时性要求比较高,故采用中断方式进行处理。微处理器pic18f2580在程序开始首先要对can控制器模块进行初始化。主要通过测控器本身的地址标识的.读取来对can控制器的过滤器和屏蔽器进行配置。屏蔽器用于确定标识符中的哪一位被过滤器检查,这样,一旦1条有效的信息被信息缓冲器mab接收,信息的标识符区域将与过滤器值相比较,若相匹配,则信息将被装入接收缓冲器。微控制器收到can数据后,根据相应命令进行相应动作,如设置相应报警温度湿度、执行相应控制等,然后,做出相应的应答。

控制程序主要是通过串行接口对sht10进行数据读取,并把读取数据与设定数据进行比较,运用bang-bang控制通过驱动电路控制中央空调,使得房间保持一定的温度和湿度。3.2can与以太网通信转换软件设计3.2.1lpc2378的can控制器与can总线间的数据传输lpc2378的can控制器带有1个完整的发送和接收缓冲器串行接口,它是1个双重接收缓冲器,有了这个双重的接收缓冲器,芯片可以在对1个报文进行处理时,可接收另一个报文,但它不含有验收滤波器。验收滤波器是独立的器件,它对所有can通道进行can标识符过滤。

数据从can控制器发送到can总线由can控制器自动完成。发送程序采用中断方式,中断方式发送程序分为发送主程序和中断服务程序。主程序用于控制信息的发送,中断服务程序负责发送临时存储区中的暂存信息。中断流程图见图5。

μc/os-⑹且桓霭含时间管理、任务调度等基本功能的小型、轻量级的嵌入式实时操作系统的内核,而且lpc2378是基于armtdmi的arm的内核,其内核与存储器结构都很适合操作系统的运行[6]。

以太网控制器采用uc/ip的协议栈,主要使用tcp/ip协议。tcp/ip是面向连接的协议,它在2个tcp之间创建1条虚连接,tcp在运输层使用流量控制和差错控制机制来保证数据的可靠性[7]。tcp提供全双工服务,即数据可在同一时间双向流动。控制器作为客户端发起连接。通过tcp/ip数据的收发中断见图6。

对于tcp数据包,lcp2378取出数据,并存入数据区,对数据进行相应分析后,通过can控制器发到can总线上,对于从can总线上接收的数据,同样存入相应数据区,将数据按照tcp/ip进行封装发送。

图6与以太网通信的中断方式的数据收发fig.6 data exchange with ethernet through interruption4实验测试系统研制成功后,与多个带有32个节点can总线子网系统和以太网环境中进行测试。主要针对tcp/ip协议和can协议的数据通信实现对其性能和稳定性进行验证。图7所示为使用zlgcantest工具监测到的数据截图。

图7can总线数据截图fig.7 can field bus screenshot整个系统正式投入运行后,到目前为止已经投入运行半年时间,系统运行稳定,没有出现数据丢失或者由于总线冲突导致的节点自动脱离总线的现象。

5结论

(1)所设计的基于can总线与以太网互联的实时温度、湿度监控系统在某数据中心得到应用,系统中采用的底层使用can总线通信,中间层使用以太网通信,上层通过服务器与因特网连接,经过长时间的测试和运行,并与其他通信方式相比较,can总线通信方式稳定性良好,可靠性高。

(2)由于原数据中心测控装置分布较分散,房间数量多,导致房间温度、湿度控制不稳定甚至导致事故发生。采用该系统以后,不仅所有的房间温度、湿度可以乾地远程实时监控,而且整个测控系统的稳定性、准确性大大提高。

(3)实践证明,基于can总线与以太网互联的实时监控系统的系统是可行的,符合未来监控技术的发展趋势。另外,该系统也可以应用于其他需要实时监控的领域。

参考文献:

[1]邬宽明.can总线原理与应用系统设计[m].北京:北京航空航天大学出版社,.wu kuan-ming.the theory and application system design ofcan bus[m].beijing:beihang university presss,1996.

[2]饶运涛,邹继军,郑勇芸.现场总线can原理与应用技术[m].北京:北京航空航天大学出版社,.rao yun-tao,zou ji-jun,zheng yong-yun.the theory andapplication system design of can bus[m].beijing:beihanguniversity presss,2003.

[3]xu jian-ning,liu wei-dong,ji yan-peng,et al.remotemeasuring and controlling system based on ethernet and canbus[j].computer measurement&control,,15(3):302?304.

[4]刘小强,粟梅.基于can总线的数据采集处理系统的设计[j].仪表技术与传感器,(9):22?24.liu xiao-qiang,su mei.design of data acquisition systembased on can fieldbus[j].instrument technique and sensor,2006(9):22?24.

[5]曹小华,赵成,陶德罄.基于现场总线can的实时监控系统研究与设计[j].武汉理工大学学报,,29(6):910?916.cao xiao-hua,zhao cheng,tao de-qing.research anddesign of real-time supervisory control system based on canfieldbus[j].journal of wuhan university of technology,2005,29(6):910?916.

[6]王永翔,王立德.多播交互式can总线与以太网互联网关设计[j].电子测量与仪器学报,2007,21(3):83?87.wang yong-xiang,wang li-de.design of multicast andswitch gateway between can field bus and ethernet[j].journalof electronic measure and instrument,2007,21(3):83?87.

[7]刘暾东,谢维盛,蔡岗全.ethernet/ip通信适配器的设计与实现[j].仪器仪表学报,,29(10):2220?2224.liu tun-dong,xie wei-sheng,cai gang-quan.design andrealization of ethernet/ip communication adapter[j].chinesejournal of scientific instrument,2008,29(10):2220?2224

篇6:千兆比以太网与ATM网

以太网从白兆升级到千兆,融合了两种技术。即IEEE802.3以太网和ANSIX3T11光纤通道技术。

(1)协议架构

千兆比以太网使用光纤通道的高速物理接口和全双工/半双工载波侦听功能的(CSMA/CD)访问控制机制,保留了IEEE802.3以太网帧格式,具备对安装介质的向后兼容性,因此千兆比以太网极小化了网络技术的复杂性,并具有良好的稳定性。

(2)传输介质与物理接口

包括两种标准:802.

3z和802.3ab

802.3z:1000BASE-LX(单模或多模)、1000BASE-SX(多模)、1000BASE-CX(短铜跳线)。

802.3ab:1000BASE-T(非屏蔽双绞线)

千兆比以太网接口载体是由千兆比接口转换器(GBIC)实现的。包括短波(SX),长波(LX),LH和短铜跳线(CX)物理接口,LH GBIC将单模光纤从标准的

5公里延伸到了10公里,基本上解决城域范围的千兆比组网。目前千兆比在远距离传输上的解决方案是多样化的。CISCO当前的GBIC已支持1000BASE-ZX,达到120公里。

环境材料的分析与研究

规范会计研究与实证会计研究比较分析

《赤壁之战》 与分析

分析中小学教育研究的阻障与对策

港口集装箱装卸工艺的分析与研究

数字档案馆信息安全的研究与分析

餐饮企业员工管理与激励研究分析报告

小学生英语学习心理障碍分析与对策研究

英语课堂反思与研究

研究会计与经济管理

《CAN与以太网数据交换的研究与分析(共6篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档