基于CAN总线与以太网的嵌入式网关设计技术

发布者:火星最新更新时间:2014-12-15 来源: e-works关键字:CAN总线与  以太网  嵌入式网关 手机看文章 扫描二维码
随时随地手机看文章

    近年来,随着以太网技术的进一步发展和完善,特别是通信速率的提高和交互技术的应用,使得以太网技术应用于现场控制领域成为可能,这对工业控制网络产生了新的影响。从目前的趋势来看,以太网己经进入了现场控制级,但是已有的现场总线仍将继续存在,工业以太网只能占领一定的市场。

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

1 硬件结构

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

    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,这样同时也能提高单片机的数据传输速度。

    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,可根据总线通信速度适当调整电阻的大小。


图2 CAN接口模块的硬件电路图[page]

2 通信模块软件设计

    2.1 SJA1000驱动程序的实现

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

    (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所示。

    (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总线与以太网的嵌入式网关设计技术

上一篇:基于STR-6的数控机床状态实时监控系统设计
下一篇:浅谈高速数控现场总线物理层的研究

推荐阅读最新更新时间:2024-05-02 23:22

单端口以太网供电控制器简化 PSE 设计
2006 年 11 月 13 日 - 北京 - 凌力尔特公司( Linear Technology Corporation )推出自主式单通道供电设备( PSE )控制器 LTC4263 ,该器件具有片上 MOSFET ,用于符合 IEEE 802.3af 以太网供电( PoE )标准的系统。这个集成电路仅需少数几个外部组件,是一个完整的单端口 PSE 解决方案以进行检测、分类和向连接到该集成电路的受电设备( PD )提供隔离的 48V 电源。 LTC4263 提供符合标准的 AC 或 DC 方法,用来检测 PD 的
[新品]
CAN总线错误分析解决
1、CAN总线的常见故障 CAN总线错误分析与解决 当CAN总线出现故障或数据传输异常时,往往会出现多种奇怪的故障现象,如仪表板显示异常,车辆无法启动,启动后无法熄灭,车辆动力性能下降,某些电控系统功能失等。 这是因为相关数据或信息是通过CAN总线传输的,如果传输失败,那么会产生多种连带故障,甚至造成整个网络系统瘫痪。 最为常见的故障症状是仪表板的显示异常,如下图所示。 在检修过程中,首先应查看具体的故障症状,根据故障症状和网络结构图来初步分析有可能是哪些原因造成的,然后使用相关的诊断仪器进行诊断,根据诊断结果制定相关检修方案,做到心中有数,目标明确。接着查找具体的故障部位和原因,同时结合相应的检测方法和测量结果找到故障点,从
[嵌入式]
<font color='red'>CAN总线</font>错误分析<font color='red'>与</font>解决
基于SJA1000的CAN总线控制系统的设计实现
0 引言 CAN-bus(Controller Area Network)即控制器局域网是国际上应用最广泛的现场总线之一。最初CAN-bus被设计作为汽车环境中的微控制器通讯工具,用于在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。如今,CAN-bus作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,已被广泛应用到各个自动化控制系统中。而且CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总线有着明显的优势。因而用CAN总线取代RS-485总线将是大势所趋。 1 CAN总线的主要特性 CAN总线与其它通信网的不同之处有二:一是报文传送中不包含目标地址
[工业控制]
基于SJA1000的<font color='red'>CAN总线</font>控制系统的设计<font color='red'>与</font>实现
基于DM9000A的DSP以太网接口设计实现
DSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。它强大的数据处理能力和高运行速度,是最值得称道的两大特色。随着网络技术的发展,在工业控制、智能仪器、智能家庭等领域,越来越多的DSP设备要求具有以太网通信功能,以便与外部网络设备进行数据通信。以太网控制芯片是以太网接口的核心器件,其性能是影响网络性能的关键因素之一,如何正确使用网络控制器是设计以太网接口的关键。本文采用处理器+以太网控制芯片+TCP/IP协议的DSP以太网接入方式,设计并实现了基于DSP的精简TCP /IP协议栈,并固化在DSP内,无需操作系统也可运行。 1 总体设计 本系统使用32位DSP处理器T
[嵌入式]
基于DM9000A的DSP<font color='red'>以太网</font>接口设计<font color='red'>与</font>实现
基于DM642机器视觉系统的设计实现
1、引言        机器视觉自起步发展到现在,已有15年的发展历史。应该说机器视觉作为一种应用系统,其功能特点是随着工业自动化的发展而逐渐完善和发展的。        目前,国际上视觉系统的应用方兴未艾,1998年的市场规模为46亿美元。在国外,机器视觉的应用普及主要体现在半导体及电子行业,其中大概40%-50%都集中在半导体行业。具体如PCB印刷电路。主要的机器视觉公司诸如德国克朗斯公司,美国的工业动力机械有限公司等等。        而在国内,工业视觉系统尚处于概念导入期,导致以上各行业的应用很少,即便是有,也只是低端方面的应用,大多数国内公司多代理国外公司产品,自主研发的相对较少,这样产品在国内售价相对很高,
[嵌入式]
技术文章—如何设计用于IoT的以太网供电受电设备(PoE-PD)
互联的设备依赖于两个核心功能,即通信回传和电源。对于物联网(IoT)设备,经常会出现三个核心问题:电源、通信和安全性。像WiFi这样的无线技术已在市场上引起了人们的关注多年,但却为这三个问题困扰。无线电池供电的设备需要定期充电,WiFi的频段饱和。这是当今两个常见的问题。较大的功率需求需要主电源连接,这使安装点复杂并受到限制。 以太网供电(PoE)经现有以太网基础设施提供灵活性、可靠性、安全性和电源来解决这些问题。自从2003年由IEEE首次发布以来已取得了飞跃性的发展。最新的IEEE 802.3bt批准使其成为市场上的佼佼者,通过Cat5 / Cat6电缆提供10G-BASE-T和60W至90W的功率。 提升的功率
[物联网]
技术文章—如何设计用于IoT的<font color='red'>以太网</font>供电受电设备(PoE-PD)
基于ARM9处理器的ZigBee工业以太网网关设计
  引言   目前多标准多协议共存的场合应用增多,而充当协议转换桥梁作用的网关起到了关键作用当前比较流行的两个本地无线技术无疑是Wi-Fi 和蓝牙,但是,对于低功耗、低带宽的控制类应用,诸如工厂内的传感器网络,ZigBee 或许是个更好的选择。配备一个功能强大的处理器后,ZigBee 可以在低功耗、低带宽的限制下高效完成很多复杂的应用。   ZigBee 因其低成本、低功耗、组网灵活等众多优势,成为工业无线通信技术中备受关注的技术之一。ZigBee 是一种低速网络,传输速度为10KB/S~250KB/S,多样的互联方式使得组网方式灵活而稳健。   文章介绍一种基于AT91SAM9260 的ZigBee 工业以太网网关设
[电源管理]
基于ARM9处理器的ZigBee工业<font color='red'>以太网</font>网关设计
美高森美发布全新Serval-T以太网交换器件产品系列
美高森美公司(Microsemi Corporation,纽约纳斯达克交易所代号: MSCC )发布全新 Serval-T™ 以太网交换器件产品系列 ,提供的纳秒精度 IEEE™ 1588 解决方案可以满足下一代5G网络以及基于位置服务的需求。这一独特的器件系列包括 Serval-T (VSC7415) 、 Serval-TE (VSC7435) 和 Serval-TE10 (VSC7437) ,集成了美高森美的运营商以太网交换器件功能和片上锁相环(PLL),扩大了公司的接入网络和定时解决方案产品组合。 新器件提供了灵活的1GE、2.5GE和10GE组合,十分适合用于接入通信设备,比如 移动回程 、 小型蜂窝 和 以太网
[网络通信]
美高森美发布全新Serval-T<font color='red'>以太网</font>交换器件产品系列
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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