基于Ethernet 的冗余CAN 总线协议转换器设计

发布者:紫色小猫最新更新时间:2013-07-31 来源: dzsc关键字:Ethernet  CAN总线协议  转换器 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  CAN(Controller Area Network) 总线又称控制局域网络,最早由德国BOSCH 公司推出,用于汽车内部测量与执行部件之间的数据通信,已被公认为几种最有前途的现场总线之一 .CAN 总线采用短帧结构.非破坏仲裁技术,具有传输速度快.可靠性高.结构简单.实时性和抗干扰能力较强等诸多优点 ,可以满足控制系统安全性.可靠性.快捷性的要求,但收发器驱动能力的限制使它不适合远距离数据传输及远程控制.而以太网技术成熟.通信速度快.软硬件产品丰富和外围技术支持全面,可以进行远距离通信,因此将以太网和CAN 总线进行互联,能够有效解决分布式控制系统中现场总线和上层信息管理层的互联问题,可以方便地将现场总线控制系统改造为基于以太网的分布式控制系统,既能满足控制网络的实时性,又能满足控制系统的分布性,极大地促进了信息从节点设备到管理层的集成.文中设计了基于Ethernet 接口的双通道CAN 总线协议转换器,能够方便地实现以太网与现有CAN 总线网络的直接数据互联,从而达到通过上位机进行总线数据远程监控.总线协议分析等目的.

  1 系统硬件设计

  本设计的硬件电路主要由单片机电路.双通道CAN 总线接口电路.以太网接口电路.EEPROM 电路.POE 电路等电路组成.主控芯片电路是将CAN 协议数据包与UDP / TCP 协议数据包进行转换,并负责对以太网接口芯片和CAN 接口芯片进行控制;CAN 通信接口电路主要用于采集现场仪表的数据和与主控芯片电路之间的数据传递;以太网通信接口电路主要负责主控芯片电路与以太网之间的数据传输;EEPROM电路实现CAN 总线初始化参数的写入与读取功能.

  工作原理如下:当以太网接口芯片收到以太网数据后,触发单片机的中断,单片机调用中断响应程序把数据从以太网接口芯片的数据缓冲区存储到自己的内存空间,然后将数据转换成CAN 格式再通过CAN 接口芯片转发到CAN 总线网络;当CAN 总线上的节点设备需要将数据发送到以太网,就会通过CAN 总线接口芯片向单片机发出中断信号,单片机响应中断将来自CAN 总线的数据存入相应的内存空间,然后将数据拷贝至以太网接口芯片的发送缓冲区转发数据,最后由以太网接口芯片通过RJ45 插座发至以太网.

    1. 1 单片机电路

  主控芯片选择的是Silicon Labs 公司的单片机C8051F340,采用12V 直流电源供电或采用以太网48V供电,使用内部看门狗单元及内部晶体振荡器.

  C8051F340 是一款完全集成的混合信号片上系统型MCU ,其高速8051 微控制器内核具有流水线指令结构,70% 的指令执行时间为一个或两个系统时钟周期,速率最高可达48MIPS;片内调试电路提供全速.非侵入式的在线系统调试(不需仿真器),使得调试更加方便,比使用仿真芯片.目标仿真头和仿真插座的仿真系统具有更优越的性能;USB 控制器支持8 个端点通道,集成收发器并具有1 KB 的USB 缓存;具有一个10 位的单端/ 差分ADC,转换速率可达200ksps,并带有模拟多路复用器,数字外设方面具有16 位可编程计数器/定时器阵列,具有5 个捕捉比较模块,同时具有4 个通用16 位计时器/ 定时器和40 个耐5V 电压的端口I/O;存储器方面具有4352Byte 的数据RAM 和64KB 的FLASH 存储器;内部高速振荡器出厂时已经较准为12MHz±1. 5% ,时钟恢复电路允许内部振荡器与4 倍时钟乘法器配合,提供全速方式USB 时钟源;具有片内上电复位.时钟丢失检测器和VDD 监视器,电路原理图见图1.

  1. 2 CAN 总线接口电路

  采用NXP 公司SJA1000 作为CAN 总线转换器.NXP 公司TJA1050 用做CAN 总线收发器.为了提高CAN 总线电路的可靠性,在设计中采用双冗余的CAN总线结构,具体设计为:在各节点设备之间布下两条基于CAN 的系统通信总线,即用两套CAN 总线控制电路分别连接到两路CAN 总线通路上,正常情况下在两条总线上传送相同的通信数据,当一条总线出现故障时通信数据仍然可以通过另一条正常的总线传输,不影响节点设备的正常通信,然后对故障总线重新初始化使其恢复正常投入使用,这样即使一条通信通道出现故障也不会影响整个系统的数据传输;同时考虑工业应用,在CAN 总线控制器和CAN 总线收发器之间进行隔离.

  在电路中将SJA1000 的AD0 ~ AD7 直接与主控芯片的低8 位地址/ 数据复用总线相连,MODE 引脚与+5V 相连使得SJA1000 工作于Intel 模式[4] , 两路SJA1000 的中断输出信号分别连接至C8051F340 的端口P0. 2 和P0. 7,使得CAN 通信可以采用中断或查询两种方式工作,其中双冗余CAN 总线电路的晶振均为16MHz,复位信号采用软件复位,详细电路原理图见图2.

  1. 3 以太网接口电路

  在以太网接口电路中选用Silicon Labs 公司的CP2200 作为以太网控制器,采用HanRun 公司的内部集成以太网隔离变压器.指示灯和RJ45 插座的HR911175A 与以太网接口.CP2200 是Silicon Labs 公司推出的一款主流的8 位总线控制的以太网驱动芯片,其外围电路非常简单,集成了IEEE 802. 3 以太网媒体访问控制器( MAC ).10 BASE – T 物理层(PHY) ,完全兼容100/1000 BASE-T 网络,具有自动极性检测和纠正功能,可以自适应地工作在全双工或半双工模式,具有接收数据包中断和网络唤醒中断功能.CP2200 内部带有2K 字节的专用发送缓冲RAM和4KB 接收FIFO 缓冲RAM ,同时还具有8K 字节的内部非易失性Flash 存储器,用于存储用户常数.Web服务器内容,它的最后6 个存储单元是工厂预编程的唯一48 位MAC 地址 ,不需外部EEPROM .此芯片8 位并行总线接口支持Intel 和Motorola 总线方式,可以为具有11 个以上端口I/ O 引脚的主处理器或微处理器增加以太网通信功能,可以使用复用或非复用方式寻址,在非复用模式下数据传输率超过30Mbps,可以直接连接LED 表示网络“连接”.“活动”状态.

  在电路中CP2200 采用数据地址复用模式,晶体频率为20M,CP2200 的TX.RX 引脚连接到RJ45 插座的收发针脚,同时将信号LINK.ACK 也连接到后者的LED 控制针脚上,详细电路原理图见图3.

  1. 4 EEPROM 接口电路

  该电路的作用是实现CAN 总线初始化参数的写入与读取功能, 设计中选用了512KB 的EEPROM24C512 芯片.详细电路原理图见图4.

  1. 5 POE 电路

  以太网供电电路分别采用TI 公司的电源管理器芯片TPS 2383 和电源接口芯片TPS 2370,这2 款芯片完全符合以太网供电标准IEEE 802. 3af,利用这2 款芯片即可通过1 条标准的以太网线缆就实现同时传输电能和数据.

  2 软件设计

  本设计的软件主要分为三部分: CAN-以太网协议转换程序.CAN 通信程序和以太网通信程序.软件整体的设计思路为:当CAN 总线节点设备需要向以太网发送数据时,首先通过CAN 通信程序读取CAN 总线节点设备产生的CAN 协议数据包,并将其存储在CAN 总线接口发送缓冲区中,然后调用CAN-以太网协议转换程序将CAN 协议数据包解析并重新封装成TCP 或UDP 数据包,最后调用以太网通信程序将数据发送到以太网;要将数据通过以太网发送给一个CAN节点设备时,首先通过调用以太网通信程序将以太网传输层上的TCP 或UDP 数据包存储到以太网接口的发送缓冲区,然后调用以太网-CAN 协议转换程序将TCP 或UDP 数据包解析并封装成CAN 协议数据包,之后再调用CAN 通信程序将CAN 接口发送缓冲区中的数据发送到CAN 总线上的指定节点.

  2. 1 CAN 通信程序

  CAN 通信程序主要包括以下几部分:SJA1000 初始化程序.读写SJA1000 内部寄存器程序.CAN 数据发送程序.CAN 数据接收程序.CAN 总线冗余控制程序.

  SJA1000 的初始化程序主要作用是设定总线上所有节点的地址.所有总线上节点设备的波特率.设置控制器的工作模式.设置中断寄存器.命令寄存器等相关的芯片寄存器 .CAN 数据发送程序的功能是当发送CAN 协议数据包给节点设备时,调用CAN 数据发送程序,通过将数据写入SJA1000 的数据发送寄存器中来实现数据发送.CAN 数据接收程序的功能是当SJA1000 接收到数据时,向单片机发出中断请求,单片机响应中断后调用CAN 数据接收程序读取SJA1000的内部寄存器程序,将其数据接收缓冲区中接收到的数据读取到单片机的相应存储空间内.

  CAN 总线冗余控制程序的基本设计思路为:在上电初始化时同时激活两个总线控制器的中断,在节点设备向上位机发送数据的情况下,单片机通过两路CAN 总线向上位机发送相同内容的数据来实现冗余效果.在节点设备接收通信数据的情况下,当两个总线控制器同时接收到来自上位机的报文时,将分别通过不同的中断端口向单片机发出中断请求,单片机在响应先到达的中断请求信号后进入中断服务程序关闭中断,并在对数据进行处理完成后,清除中断并在一段延时后再打开所有中断,这样就可以屏蔽后到的另一个CAN 控制器中断信号.如果一路CAN 总线接口电路出现故障,那么它就不会产生中断信号,单片机只能接收到另一路正常CAN 总线控制器的中断信号,从而通过正常的CAN 总线接收数据,这样就可以实现双通道冗余的目的;在节点设备与上位机之间完成数据发送和接收后,节点设备会通过两路CAN 总线以每秒1次的频率交替向上位机发送“心跳”信号,并接收上位机回传的响应信息,如果一路CAN 总线状态异常,不能正常发送“心跳”信号,则节点设备的单片机就不会收到响应信息,从而无法对错误计数器进行清零,当错误计数器的值累加到设定值时,单片机就会对异常的CAN 总线接口电路复位,重行初始化使其恢复正常,保证双通道CAN 总线冗余电路的正常.

  2. 2 CAN / 以太网协议转换程序

  CAN/ 以太网协议转换程序的大致流程如下:在系统接收到数据后会先对数据的数据类型进行判断,如果接收到的数据是以太网数据,就会依次去掉IP 头.TCP 或UDP 头和应用层头 ,然后将解析后的数据封装为CAN 报文格式,并存人CAN 接口电路发送缓冲区,由CAN 接口电路发往CAN 总线中相应的节点设备.如果接收到的数据是CAN 协议报文,便解析出数据部分,然后将报文数据部分封装成规定的应用层格式并存入以太网接口发送缓冲区,最后将数据封装成以太网帧格式后通过以太网接口电路发往至以太网.

  协议转换流程图见图5.

  2. 3 以太网通信程序

  以太网通信程序主要包括CP2200 初始化程序.以太网数据发送程序和接收程序.CP2200 芯片的初始化程序的作用主要是对芯片寄存器进行常规配置 ,这里就不进行详细说明.

  以太网数据的发送和接收程序:由于主控芯片C8051F340 的处理速度以及内部集成的资源有限,不可能集成所有的TCP/ IP 协议,因此需要对TCP/ IP 协议进行适当的剪裁后才能使用 .在本设计中的协议栈主要包括IP 协议.ICMP 协议.TCP 协议.ARP 协议 .

  本设计的嵌入式TCP/ IP 协议栈的流程见图6.

  基本流程为在CP2200 芯片从以太网接收到有效数据后,单片机会调用相关程序将该数据包从CP2200 的接收缓冲区读取,然后判断该数据帧是IP 数据包还是ARP 数据 ,如果判断为接收到的是IP 数据包时,那么就继续判断是UDP 数据包还是ICMP 数据包,如果是UDP 数据包,就根据UDP 数据包首部的读取结果来处理相应数据,完成CAN 协议数据的提取并将其存储到相应的数据缓冲区,从而实现以太网数据的解码;如果判断结果是ICMP 数据包那么就处理该数据包并进一步处理IP 数据包;如果接收到的是ARP 数据,就判断其是ARP 请求还是ARP 应答并根据结果进行相应的处理,如果该数据帧既不是IP 数据包又不是ARP数据,那么就将该数据视为无效数据而抛弃,并初始化数据接收缓冲区.

  3 结束语

  通过在航天器地面仿真测试设备上的实际应用,表明该以太网与双通道CAN 总线协议转换器可以满足使用要求,性能稳定,可实现CAN 总线数据的监测.总线参数的设计.总线数据的收发,并且其具有的低成本.高可靠性等特点还可以扩展应用于工厂.变电站等工业场合,实现分布式控制系统中管理监控层与生产测控层之间的远程互联.

关键字:Ethernet  CAN总线协议  转换器 引用地址:基于Ethernet 的冗余CAN 总线协议转换器设计

上一篇:51单片机的P0口工作原理详细讲解
下一篇:MCS-51单片机寻址方式有哪些?如何设置寻址方式?

推荐阅读最新更新时间:2024-03-16 13:26

16位串行模数转换器MAX1132的特性及应用
摘要:MAX1132是美国MAXIM公司生产的16位串行模数转换器,文章介绍了MAX1132的工作原理、接口特点及使用方法,给出了它在数据采集系统中的硬件电路和软件程序。 关键词:模数转换器;MAX1132;数据采集 1 引言 模数转换器(ADC)是现代测控中非常重要的环节,它一般分为串行模数转换器和并行模数转换器。后者虽然传输速度快,但引脚多、体积大、占用单片机口线多;而串行ADC的传输速率也可以做的很高,并且具有体积小、功耗低、占用单片机口线少等优点。因此,串行ADC的应用越来越广泛。 MAX1132是MAXIM公司生产的单电源、低功耗、16位、单/双极性转换的高精度串行逐次逼近型ADC。其内部带有跟踪/保持及校准电
[模拟电子]
电源功率转换器解决高效、小尺寸挑战
  在 电源 设计中,散热限制、峰值功率持续时间、峰值功率占空比等性能指标往往决定了 IC产品是否被电源系统设计工程师所选用。Power Integrations (PI)产品行销总监Nazzareno Rossetti认为,电源 功率转换器 正面临 小尺寸 和 高效率 趋势下相互制约的挑战,如何更好地解决这一问题是所有电源技术供应商面临的课题。   针对这种挑战,PI一直在完善他们的PeakSwitch产品线。 该系列产品针对峰值连续输出功率比很大的应用而设计,强调在整个负载范围内都表现出非常高的效能。不久前,该系列产品又推出了一款可满足高达 127 W峰值需求的PKS607,可满足对峰值 RMS(均方根)功率
[电源管理]
新推出的同步SAR模数转换器的片内校准优势
The On-Chip Calibration Benefits of New Simultaneous SAR Analog-to-Digital Converters 新推出的同步SAR模数转换器的片内校准优势 摘要 本文评估在电阻模数转换器(ADC)前面的外部电阻的影响。这些系列的同步采样ADC包括一个高输入阻抗电阻可编程增益放大器(PGA),用于驱动ADC和缩放输入信号,允许直接连接传感器。但是,有几个原因导致在设计期间,我们最终会在模拟输入前面增加外部电阻。以下部分从理论上解释预期的增益误差,该误差与电阻大小呈函数关系,且介绍最小化这些误差的几种方式。本文还研究电阻公差和不同的校准选项对ADC输入阻抗
[模拟电子]
新推出的同步SAR模数<font color='red'>转换器</font>的片内校准优势
Dialog公司推出满足下一代联网汽车需求的新型电源转换器
电源管理、AC/DC电源转换、固态照明(SSL)和蓝牙低功耗(BLE)技术供应商Dialog半导体公司(德国证券交易所交易代码:DLG)今天宣布,推出DA9210-A电源管理 IC(PMIC)。DA9210-A是一款汽车级多相12A DC-DC降压转换器,为微处理器的高电流内核供电,包括当前联网汽车中占重要位置的下一代车载信息娱乐系统使用的器件。 DA9210-A旨在满足汽车制造商及其客户在功能、质量和可靠性方面的严格要求。针对CPU和GPU供电进行了优化,单芯片配置支持最大12A负载电流,双芯片并联配置支持24A负载电流。该PMIC在很宽的输出负载范围内都能实现高效率,使其适用于当前联网汽车采用的一些最新和要求最苛刻的创新设备,
[汽车电子]
Dialog公司推出满足下一代联网汽车需求的新型电源<font color='red'>转换器</font>
动态可调3通道同步降压型DC/DC转换器
      2009 年 2 月 4 日 北京 凌力尔特公司推出 3 通道、高效率 3MHz 同步降压型稳压器 LTC3569,该器件从一个通道提供高达 1.2A 的连续输出电流,而另外两个通道则每一个提供 600mA。LTC3569 采用恒定频率电流模式架构,在 2.5V 至 5.5V 的输入电压范围内工作,非常适用于单节锂离子/聚合物或多节碱性/镍镉/镍氢金属电池应用。通过切换 EN 引脚将每个通道的反馈电压从 800mV 降至 425mV,3 个输出电压中的每一个都可独立编程,从而可实现每个通道输出电压的动态调整。此外,每个 600mA 稳压器可作为相互的从属电源或 1.2A 通道的从属电源以支持更大的电流,从而提供附加的设
[电源管理]
Advanced Energy全新电源转换器可提供20kV-30kV最大输出电压
Advanced Energy Industries, Inc. 一直致力于开发各种先进的高精度电源转换、测量和控制系统等解决方案,这方面的技术更一直领先全球。该公司宣布推出三款属于UltraVolt LE 系列的全新高压直流/直流电源转换器。这三款最大输出电压更高的新产品推出之后,UltraVolt LE 系列的选择将会更多。 Advanced Energy 全新推出的20LE、25LE和30LE电源转换器可提供20kV至30kV(直流)的最大输出电压。这些新的型号将扩展LE系列现有产品(1到15KV)的输出范围。 这系列电源的纹波极低,在不同的温度情况下仍可稳定工作,适用于多种需要使用高压电源的高精度设备。 Advan
[电源管理]
开关电源转换器大功率或大电流转换器电路
  20世纪90年代,人们认为400V输入,100A、48V输出的AC/DC转换器的最佳电路为全桥式或双管正激式。加拿大北方电信曾做出200A、48V输出 的全桥式AC/DC转换器。近些年,人们还在研究大功率或大电流转换器的最佳电路,如双向(低压大电流)DC/DC转换器电路和三电平DC/DC转换器 电路等。实际上,DC/DC转换器中并没有多电平之说,这里所谓的“三电平”(Three Leve1,TL)是借用了多电平逆变器的一个名词。以三电平 半桥DC/DC转换器为例,桥臂由两个功率开关管串联,中点接有钳位二极管,类似于三相二电平全桥逆变器一个桥臂的结构。由于是双管串联, 三电平DC/DC转换器的输入端电压可以达到800~1000V,
[电源管理]
Cirrus Logic推低功耗数模音频转换器 可极大延长电池寿命
DAC增加了立体声耳机和D类扬声器驱动器 扩展了Cirrus Logic低功耗IC系列 2007年10月15日- Cirrus Logic公司(纳斯达克代码:CRUS)近日推出集成了D类扬声器放大器和立体声耳机驱动器的24位低功耗立体声数模转换器 (DAC) CS43L22,拓展了其用于便携式应用的低功耗音频转换器IC产品线。 CS43L22采用先进的低功耗电路设计技术,可在不牺牲音频性能的条件下最大限度地降低功耗。通过高度集成,CS43L22能够充分延长电池的使用寿命,无需更多外部元件,从而降低了系统总成本。 通过为外部扬声器提供每声道高达1W的高效D类放大和每声道44mW的足够功率来驱动立体声耳机,该便携式音频DAC具备
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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