一种基于CAN总线与以太网的嵌入式网关经典设计

发布者:AngelicGrace最新更新时间:2016-03-18 来源: eefocus关键字:CAN总线  以太网  嵌入式网关 手机看文章 扫描二维码
随时随地手机看文章
  近年来,随着以太网技术的进一步发展和完善,特别是通信速率的提高和交互技术的应用,使得以太网技术应用于现场控制领域成为可能,这对工业控制网络产生了新的影响。从目前的趋势来看,以太网己经进入了现场控制级,但是已有的现场总线仍将继续存在,工业以太网只能占领一定的市场。

  从现实来看,以太网扩展了现有的系统,但是现场总线不可能完全被工业以太网替代,后者的潜力巨大,其应用领域一定会不断扩大。所以,将现场总线与以太网结合,从而实现底层生产与上层管理的紧密集成,已经成为一种趋势。CAN总线作为国际上应用最广泛的现场总线之一,在我国也得到了很广泛的应用,该设计以 CAN总线作为工业现场总线,实现其与以太网的互联。

  1 硬件结构

  目前,对于CAN和以太网相连的嵌入式网关设计主要有两种方法:一种是低档MCU加接口芯片的设计方法,另一种是高档MCU加EOS(实时多任务操作系统)再加接口芯片的设计方法。因CAN只采用了ISO/OSI参考模型的一、二层,协议相对简单,比较适合用于低成本、速率要求不高的离散控制系统。从合理的成本和有效利用处理能力这两方面考虑,该设计采用低档MCU加接口芯片的方法,其硬件框图见图 1。

一种基于CAN总线与以太网的嵌入式网关经典设计

  1.1 主控芯片及以太网接口模块

  根据要求,该系统选择了性能价格比较高的Atmel公司生产的AT89C55单片机。它是面向测控对象和嵌入式应用的,所以它的体系结构以及CPU、指令系统、外围单元电路都是按照这种要求专门设计的。它内部带高达20 KB的FLASH程序存储器,AT89C55完全兼容8051指令集,片上FLASH方便了使用者进行在线编程,工作速率最高可达33 MHz,256 B的内部RAM,32个可编程的I/O口,3个16位的定时/计数器,8个中断源,支持低功耗的空闲工作模式。以太网接口选用的是RTL8019AS芯片,它是由Realtek公司生产的一种高度集成的以太网控制器,能实现以太网媒介访问层(MAC)和物理层(PHY)的全部功能。RTL8019AS内部有两个RAM区域:一是16 KB,地址为0x4000~0x7fff,要接收和发送数据包必须通过DMA读写RTL8019AS内部的16 KB的RAM,它实际上是双端口RAM,即有两条总线与其连接,一条总线用于RTL8019AS读/写或写/读该RAM,即本地DMA;另一条总线用于单片机读或写该RAM,即远程DMA;二是32个字节,地址为0x0000~0x001F,用于存储以太网物理地址。主控芯片和以太网接口芯片的硬件接口原理图见图2。值得注意的是由于以太网的包最大可以超过1 500个字节,AT89C55的片内RAM只有256个字节,因此无法存储这么大的包,所以这里扩展了一个32 KB的外部RAM,这样同时也能提高单片机的数据传输速度。

一种基于CAN总线与以太网的嵌入式网关经典设计

  1.2 CAN接口模块

  组成CAN系统的主要器件是CAN控制器和收发器。该设计中,CAN接口模块选用SJA1000芯片和PCA82C250芯片。SJA1000是一个独立的CAN控制器,它是Philips公司另一个CAN控制器PCA82C200的替代产品,且增加了一种新的工作模式(Peli CAN),这种模式支持CAN 2.0B协议。SJA1000主要完成CAN的通信协议,实现报文的装配和拆分、接收信息的过滤和校验等。

  PCA82C250是CAN控制器与物理总线之间的接口,主要用于增强系统的驱动能力。采用收发器的系统中,节点数至少可以达到110个,同时还具有降低射频干扰(RFI)和很强的抗电磁干扰 (EMI)能力。在处理这部分电路时,有几个地方要特别注意:

  (1)晶振电路的问题。89C55和SJA1000都应该有各自独立的晶振电路,不能够用SJA1000的时钟输出信号CLKOUT来驱动单片机。

  (2)复位引脚的问题。虽然SJA1000的复位是低电平,但不能通过一个非门直接连接单片机的复位引脚。一般对解决复位引脚问题有两种方式:第一种是使用单片机的I/O引脚控制SJA的复位引脚,其好处是单片机可以完全控制SJA的复位过程;第二种是采用适当的复位芯片,为了降低成本,该设计采取的是第一种方法。

  (3)RX1引脚的电位必须维持在约0.5 VCC上,否则将不能形成CAN协议所要求的逻辑电平。

  (4)一定要注意电缆的终端阻抗匹配,它直接影响CAN总线是否能正常工作和网络性能。CAN接口模块的硬件电路图见图3,在PCA82C250的RS脚上接有一个斜率电阻R,可根据总线通信速度适当调整电阻的大小。

一种基于CAN总线与以太网的嵌入式网关经典设计

  2 通信模块软件设计

  2.1 SJA1000驱动程序的实现

  SJA1000驱动程序是由SJA的初始化函数、发送函数、接收函数组成的,图4所示为其流程图。


一种基于CAN总线与以太网的嵌入式网关经典设计

  (1)SJA1000的初始化。SJA1000在系统上电、硬件复位或主控制器发出复位命令后需要进行初始化,以设定它的工作模式、通信速率、输出控制方式和标识符屏蔽格式等重要参数。CAN控制器SJA1000的初始化只能在复位模式下才能完成。程序的流程图如图4所示。

  首先程序检测CAN接口是否正常工作,即向SJA1000的测试寄存器写入并读出,校验其结果是否一致,如果结果一致则进入复位模式进行初始化设置。在初始化的过程中,如果对某个寄存器的设置超过规定的时间还未完成,则认为初始化失败,初始化程序自动发送错误信号。

  (2)数据的发送与接收。SJA1000芯片有一个报文发送缓冲区和两个报文接收缓冲区,用于CAN报文传送。数据从CAN控制器SJA1000发送到 CAN总线首先是由CAN控制器自动完成的,发送数据程序把数据存储区中待发送的数据取出,组成信息帧,并将主机的ID地址填人帧头;然后将信息帧发送到 CAN控制器的发送缓冲区;最后启动发送命令即可。信息从CAN总线到CAN接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息,并将其存储在数据存储区即可。

  2.2 RTL8019AS驱动程序的实现

  RTL8019AS的驱动程序和SJA的驱动程序一样,有3种功能:芯片初始化、收包、发包。

  (1)RTL8019AS的初始化。RTL8019AS的初始化过程比较复杂,但十分重要,它决定了通信过程中的一些重要参数。如设置相关工作模式的寄存器,分配和初始化接收及发送缓冲区,初始化网卡接收地址等,其流程图见图5所示。

一种基于CAN总线与以太网的嵌入式网关经典设计

  (2)数据的发送与接收。因为在RTL8019AS的初始化程序中已经完成了以太网的物理地址设置,并指定了发送缓冲区起始页面地址寄存器TPSR。此外,RTL8019AS的CRC校验自动生成器也被使能,所以RTL8019AS的数据包发送程序相对要简单。在数据包的发送过程中,AT89C55只要通过远程DMA将待发送的数据包写至RTL8019AS片内SRAM的发送缓冲区,并启动发送过程即可。

  在接收数据包时,有查询和中断两种方式,鉴于AT89C55的处理能力有限,在该设计中采用查询方式,根据判断CURB==BNRY+1,可以判断是否收到新的数据包,如果有则通过DMA读操作从网卡芯片RAM读出数据。

  2.3 网关协议转换流程

  嵌入式网络接口实现两种网络的互连。当以太网应用层有数据要发送到CAN节点时,首先将数据发送到网关,由以太网控制器协议转换模块解析完整的CAN协议数据包,通过CAN控制器发送到CAN总线。反之,当CAN设备有数据要发送到用户层时,首先将数据发送到透明网关,由CAN控制器协议模块将完整的 CAN协议数据包存放在缓冲区,再通知主控芯片,由它调用以太网控制协议转换模块,将完整的 CAN协议数据包作为应用层数据封装起来,再发送到以太网的应用层。

  3 结 语

  这里介绍的是一种低成本、高可靠性、快捷的CAN以太网网关的硬件、软件设计方案,通过实际应用证明,该设计可以作为CAN总线节点的一个模块,能够与仪器仪表等设备相结合,使其具有网络通信的能力,比较同类产品的设计,该设计能大大提高其性价比

关键字:CAN总线  以太网  嵌入式网关 引用地址:一种基于CAN总线与以太网的嵌入式网关经典设计

上一篇:基于C8051F040的CAN总线与RS-232通信设计
下一篇:80C51单片机程序(4)

推荐阅读最新更新时间:2024-03-16 14:47

工业以太网的原理 工业以太网的结构组成
  工业以太网是一种基于以太网技术建立的、用于工业自动化网络通信的通讯协议。它采用了一些特殊的技术,比如多重路径、高可靠性和实时性等,以满足工业生产环境下高速数据交换和实时控制的需求。工业以太网已被广泛应用于工业控制、机械设备监测、工业自动化控制等领域,成为现代工业生产网络的重要组成部分。   工业以太网是应用于工业控制和自动化领域的网络通信技术,可以实现设备之间的数据交换和通信。其基本工作原理如下:   1. 通信协议:工业以太网使用一种基于TCP/IP协议的通信协议。该协议支持实时数据传输和高速传输,并且可以在不同的网络层次上进行通信。   2. 网络拓扑结构:工业以太网通常采用总线、星形或串行线的拓扑结构。在总线拓扑中,
[嵌入式]
用Ax88796实现SA1110的以太网接口
摘要:讨论嵌入式微处理器SA1110与以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为SA1110的网络应用提供一种参考。 关键词:嵌入式 SA1110 Ax88796 以太网 CPU MII   Intel公司的StrongARM SA1110是一款主要面向嵌入式应用的高性能32位微处理器,目前已经被广泛应用在PDA等手持设备上。SA1110最高主频可达206 MHz,具有内存管理单元(MMU)和大容量的指令/数据高速缓存(16 KB/8 KB),兼容SDRAM、SMROM等多种存储设备,并带有LCD和PCMCIA控制器。 1 Ax88796简介   Ax88796是台湾Asix公司推出的N
[嵌入式]
CAN总线网络拓扑结构设计
一、前言 电动汽车各个模块之间的交互有效性直接影响了汽车的行驶效率和驾驶感。而插电式混合动力汽车根据电力驱动系统和发动机动力系统的布局形式可以分为3类:串联式、并联式、串-并联混合式。该文探讨的是并联式混合动力系统方案,它具有对原车技术模块化,实施性方便,适用性广特点。 二、术语 节点:连接在通讯网络上,能够按照某一通讯协议通过网络进行通讯的设备的集合。 总线电压:总线电压是CAN总线的CAN_H或者CAN_L 对各自CAN节点地的电压。 三、CAN总线网络拓扑结构设计 CAN总线是一种多主总线,一旦有总线闲置,任意一个CAN节点均可向总线发送数据。CAN总线通道中优先发报文的节点取决于无损逐位仲裁的方式,此方式可以节省冲
[嵌入式]
<font color='red'>CAN总线</font>网络拓扑结构设计
汽车轮速传感器设计中CAN总线的应用
    目前,网络技术是 汽车电子 领域发展的一项新技术。它不仅是解决汽车电子化中的线路复杂和线束增加问题的技术,而且其通讯和资源共享能力成为新的电子与计算机技术在车上应用的一个基础,是车上信息与控制系统的支撑。   汽车电子网络按功能可分为面向控制的网络(CON)和面向信息传输的网络(ION)。按网络信息传输速度,美国汽车工程师协会(SAE)将网络分为A, B,C三类。A类为低速网,波特率在9600bps以下,进而波特率在125kbps以下为中速网B类,125kbps以上为高速网C类。车轮速度(即车轮绕轮轴旋转的线速度)传感器(简称轮速传感器)信号,可供发动机控制模块、防抱制动系统(ABS)控制模块及仪表控制模块共享,使车辆在制
[嵌入式]
为何车载空调压缩机CAN总线通讯需要采用隔离方案?
炎炎夏日,车内空调系统的稳定可靠运行显得尤为重要。本文将为您介绍如何通过总线隔离避免因通信不畅引起的车载空调故障。 为什么要用隔离 从能源种类来看,目前公路上的车型主要可以分为两类,一类是使用传统汽油、柴油作为燃料的车辆,另一类是使用电池的新能源车。这两类车型的车载空调系统有什么区别呢?传统的燃油车辆,空调压缩机是由发动机直接将动能传递给空调压缩机,而新能源车的空调压缩机则是由车内的电池驱动的。 图1 动力电池 将新能源汽车的动力电池驱动压缩机需要几个步骤,首先要将直流电转化为交流电(逆变),然后调整交流电频率使其能稳定驱动压缩机中的电机,该部分的功能部件在车辆中以空调驱动单元存在。说到高压、逆变、变频、
[汽车电子]
为何车载空调压缩机<font color='red'>CAN总线</font>通讯需要采用隔离方案?
采用圆形连接器接入紧凑型开关
上海, 2017年4月18日 --- 经典的M12连接器正在发生改变,浩亭利用其两件式和倾斜式设计的D/A编码M12让PCB圆形连接器能够接驳紧凑型的开关。 浩亭正在推出由凸型和凹型衍生型号组成并采用A和D编码的M12两件式倾斜印刷电路板。现在,在为开关和其他设备供电时就可灵活利用各种衍生型号和组合方式。该编码即可供电也可提供最高100Mbit/s的快速以太网连接。 利用其90°倾斜结构,M12圆形连接器可相当稳妥地安装于平置在机架或设备的印刷电路板上。节省空间在这里发挥了决定性作用。这种节省空间的特点可让全新M12跟随微型化的潮流。 文字说明:利用其90°倾斜结构,M12圆形连接器可相当稳妥地安装在印刷电路板上。
[模拟电子]
采用圆形连接器接入紧凑型开关
基于CAN总线和虚拟仪器的汽车测试仪设计
引 言 Controller Area Network(控制器局域网,缩写为CAN),是为解决汽车电子控制单元间的信息通信而由德国Bosch公司提出的一种总线标准,以其卓越的性能、极高的可靠性和低廉的价格,现在已经在汽车领域获得广泛应用。为了保证汽车CAN总线节点安全、稳定运转,同时为了提高大批量生产的效率,必须在生产过程中对CAN节点产品进行测试,开发基于CAN总线的汽车CAN节点测试仪显得十分重要。本文通过选择高速处理器和采用虚拟仪器技术保证测试仪的通用性,使其只需通过软件更新便可测试多个CAN节点。 CAN协议简介 CAN协议建立在ISO/OSI 7层开放互连参考模型基础之上,为了方便应用,同时保证
[测试测量]
TSC工业以太网交换机在陕西泾河变电工程中的解决方案
一、方案概述 泾河330千伏输变电工程是陕西省重点工程之一,该工程是陕西电网的重要组成部分,该站建成后,将取代220千伏阎良变电站,成为该地区的重要电源点,也将成为陕西电网重要的枢纽变电站。 二、方案设计 在泾河变电工程中使用的TSC Carat2024-A以及TSC Carat44系列工业以太网交换机,其中TSC Carat44系列工业以太网交换机是面向工业网络工作组接入层推出的智能型三层以太网交换产品,不但具有接入和路由功能,而且具有认证控制(如用户接入控制),安全防护(如防病毒,抗扫描)和上网监控等功能,是解决目前工业宽带网络不能抵抗冲击波病毒等诸多尴尬问题的理想选择,也是目前极具竞争力的工业网络中的工作组级以太网交换
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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