采用网络接口芯片和CAN控制器实现以太网数据转换器的设计

描述

控制器局域网(Controller Area Network,CAN)总线是ISO 国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、 低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用 的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也 随之增加。为适应“减少线束的数量”、“通过多个 LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的 CAN 通信议。此后,CAN 通过 ISO11898 及 ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉 为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持以太网接口开始是为了连接实验室的多个计算机设备,开发的快速连接方式。随着传输速率的提高和交换技术的使用,以太网的确定性和实时性得到了保证,工业以太网的安全性和网络生存性也得到了很大程度的提高。使其在工业控制领域得到广泛的应用。目前计算机已经广泛应用与各个操控领域,而计算机常用的连接端口就是以太网,只要接口标准统一,并安装好必要的软件,计算机就可以介入到各个控制系统中去。因此,为了提高效率,有必要采用技术手段,实现通过以太网接口使计算机融入CAN网络,把以太网的远距离传输性与CAN的专业性结合起来,优势组合。

以太网最早由Xerox(施乐)公司创建,在1980年,DEC、lntel和Xerox三家公司联合开发成为一个标准。以太网是应用最为广泛的局域网,包括标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)和10G(10Gbit/s)以太网,采用的是CSMA/CD访问控制法,它们都符合IEEE802.3。该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法。以太网在互联设备之间以10~100Mbps的速率传送信息包,双绞线电缆10 Base T以太网由于其低成本、高可靠性以及10Mbps的速率而成为应用最为广泛的以太网技术。直扩的无线以太网可达11Mbps,许多制造供应商提供的产品都能采用通用的软件协议进行通信,开放性最好。

1 芯片选择

1.1 CP2200芯片介绍

CP2200芯片是工业界体积最小、性能最高、8位总线控制的以太网驱动芯片,支持IEEE802·3以太网媒体访问MAC控制协议,支持10BASE/T物理层,完全兼容100/1 000 BASE T网络,可以工作在全双工或半双工模式,能进行自动极性检测和纠正,具有碰撞自动重发功能,能自动填充和生成CRC,支持广播和多播。CP2200内部带有2 k字节的发送缓存和4 k字节的接收缓存,还有8 k字节的内部Flash存储器,用于存储用户常数、Web服务器内容,它的最后6个存储单元是工厂预编程的唯一48位MAC地址。此芯片采用48管脚的TQFP封装,工作的温度范围在-40~+85℃,可为具有11个以上I/O引脚的微处理器扩展以太网通信功能。此芯片具有30 Mb/s速率的并行主机接口,支持Intel和Motorola两种总线方式。

CP2200符合IEEE 802.3协议:内置lOMbps以太网物理层器件PHY及媒介接入控制器MAC,可按业界标准的以太网协议可靠地收发信息包数据;具有可编程填充和CRC自动生成功能。可编程过滤功能:特殊的过滤器,可自动评价、接收或拒收Magic Packet、单播(Unicast)、多播(Multicast)或广播(Broadcast)信息包,以减轻主控单片机的处理负荷。30 Mbp5速率的并行主机接口:支持Intel和M0torola两种总线方式。8 KB Flash存储器:8192字节非易失性数据存储空间,可对其进行灵活编程;工厂预编程的唯一48位MAC地址。

CP2200的多种集成功能(如CRC校验、数据滤波等)有效减轻了单片机的载荷,它内部的收发接口单元操作起来灵活方便,为以太网数据包提供了有效缓冲。使用该芯片时,电路只需增加1个RJ-45快速以太网接口即可,其工作特性可以满足CAN总线的传输波特率要求。其内部结构如图1所示。

芯片

1.2 C8051F040芯片介绍

C8051F040是集成在一块芯片上的混合信号系统级单片机,在一个芯片内集成了构成一个单片机数据采集或控制的智能节点所需要的几乎所有模拟和数字外设以及其他功能部件,代表了目前8位单片机控制系统的发展方向。芯片上有1个12位多通道ADC,2个12位DAC,2个电压比较器,1个电压基准,1个32kB的FLASH存储器,与MCS-51指令集完全兼容的高速CIP-51内核,峰值速度可达25MIPS,并且还有硬件实现的UART串行接口和完全支持CAN2.0A和CAN2.0B的CAN控制器。C8051F040是高度集成的混合信号SoC级微控制器芯片,具有与8051单片机兼容的高速CIP-51微控制器内核,除了标准8051的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件及其它一些数字外设部件。

C8051F系列单片机是Silicon Labs公司推出的系统级芯片,具有与80C51兼容的CIP-51内核。C8051F040内部集成的CAN控制器包括1个CAN内核、消息RAM(独立于CIP-51内核)、消息处理单元、控制寄存器等。C8051F040内部包含1个CAN协议控制器,并没有提供物理层的驱动器,实现与CAN总线的接口。数据接收和滤波都由CAN控制器完成,不需要CIP-51内核的参与。这种方式可使CAN通信时占用的系统资源最小。CIP-51内核通过配置其内部的特殊功能寄存器来实现CAN的数据交互。其内部结构如图2所示。

2 系统硬件设计

系统电路如图3所示,由CP2200、C8051F040、CAN驱动芯片的SN65HVD230等组成。其中CP2200与HR911105A组成以太网电路部分,SN65H-VD230单个组成CAN收发电路。工作原理如下,当CP2200收到以太网数据时,触发C8051F040的INTO,C8051F040把数据从CP2200的接收缓冲区拷贝到其内存空间,然后通过SN65HVD230转发到CAN网络;当CAN数据有要发送到以太网,C8051F040收到数据后,就向CP2200的发送缓冲区转发数据,最后由CP2200通过HR911105A发到以太网。

芯片

2.1 以太网部分电路

CP2200通过HR9011105A连接到以太网上。CP2200的收发信号分别连接到HR9011105A的收发针脚,同时前者的LED控制信号LINK、ACK也都接到后者相应针脚。其中,LINK是连接成功指示灯,ACK是数据传输指示灯。CP2200与C8051F040的连接,首先数据和地址总线、读写信号相连接,其次CP2200的中断引脚INT与C8051-F040的INT0引脚连接在一起,其片选CS阵脚接C8051F040的A15脚。CP2200的发送缓冲区地址为0x0000~0x07FF,接收缓冲区地址前部分与发送缓冲器重合,具体地址为0x0000~0x0FFF。当A15为低电平(CS也为低)时,C8051F040就选中CP2200,即CP2200的内部地址空间0x0000~0x0 FFF的外部映射地址为0x8000~0x8FFF。

CP2200发送数据包:通过使用自动写(AutoWrite)寄存器将数据装载到发送缓冲区,并向内部存储器TXGO写1来发送数据包。一旦发送完成,会产生数据包已发送中断,通知C8051F040。CP2200接收数据包:当MAC接收被使能且接收缓冲区未满时,包接收会自动进行。一旦收到数据包,就会产生包接收中断通知主机。主机可以用自动读(AutoRead)接口读取数据包。

2.2 CAN部分电路

C8051F040已经集成CAN控制器,电路只需1个CAN总线收发器。这里使用TI公司的SN65HVD230收发器。由于SN65HV230收发器具有强电磁干扰下宽共模电压范围的差动接收能力、交叉线保护、过热保护、失地保护、过压保护等卓越特性,所以设计中省去了高速光耦6N137以简化电路设计,如果需要增强抗干扰能力,也可在C8051F040和SN65HV230之间增加2个高速光耦6N137,以满足CAN的高速率通信。在CANH与CANL引脚各串联1个5 Ω电阻与总线相连以起到限流作用。

3 软件设计及协议转换

在充分遵循以太网和CAN协议的基础上,设计软件程序,实现以太网数据与CAN数据之间的协议转换与转发。在本设计中,CAN与以太网都采用接收中断,把数据包先存入缓冲区,然后进一步分析数据。在数据接收时,不允许接收新的数据和中断,直到数据完全接收后,才将接收缓冲区释放。在数据发送时,先确认发送缓冲区空闲才写入数据。由于两者都有内部的发送和接收缓冲区,主程序的主要任务就是实现数据的转发以及通讯的握手协议。

相对于CAN总线的传输速率,本电路的以太网传输速率要高10倍,缓冲区大小也差很多。因此在下行通讯中,需要完成CAN数据的拆包和重新打包任务,属较慢的操作,采用定时查询方式发送。在上行通讯中,直接转发CAN接收到CP2200发送缓冲区。

3.1 CAN总线程序

1)CAN总线发送任务  当以太网有新的数据转发给CAN时,主程序通知此任务运行。读出CP2200接收缓冲区中的数据到内存缓冲区,然后分成不大于8字节的数据包,增加CAN协议包头,送入C8051F040的发送缓冲区。

2)CAN总线接收任务  当CAN有数据接收,则将数据直接送人CP2200的发送缓冲区,并通知其工作。此任务很少占用时间。在转发过程中,由于CAN每次数据只有8字节,而CP2200的发送缓冲区有2 K,CP2200的发送不影响CAN的接收。所以CAN接收中断只需在本程序将CAN数据送入CP2200的发送缓冲区后就可打开。

3.2 以太网程序模块

以太网接口模块主要实现CP2200的驱动函数,主要包括初始化函数、帧发送函数和帧接收函数。

1)CP2200的初始化模块  CP2200的初始化是进行CP2200寄存器的配置。CP2200占用C8051F040的外部RAM的地址,外部存储器接口(EMIF)被设置在高端口(端口47),EMIFLE(XBR2·1)位被设置为0。然后依次进行下面的设置:配置端口引脚的输出方式为推挽方式;配置对应EMIF引脚的端口锁存器为休眠态,设置为逻辑‘1’;选择地址线和数据线的非复用方式;选择存储器模式为不带块选择的分片方式:设置与片外存储器或外设接口的时序。

2)以太网数据的发送接收模块  C8051F040的外部中断0和定时器0用于TCP/IP协议栈。由于C8051F040的处理速度、内部集成的资源有限,而TCP/IP协议种类繁多,不可能集成所有的TEP/IP协议,所以,使用裁剪后的TCP/IP协议。结合项目的实际需要,本设计中裁剪后的协议栈包括IP协议、ARP协议、ICMP协议、TCP协议。由于TCP协议是基于连接的协议,在正式收发数据前,必须和对方经过3次对话,建立可靠的连接,而且当数据从A端传到B端后,B端会发送一个确认包给A端,所以,TCP协议适用于对可靠性要求较高的数据通信系统。而UDP协议是面向非连接的协议,不与对方建立连接,直接就把数据包发送过去,当数据从A端传到B端后,B端不会发送一个确认包给A端,此协议适用于对可靠性要求不高的通信系统。由于该系统应用于在线数字识别系统,可靠性要求高,所以,该系统采用了TCP协议。

4 结束语

本文描述了一种CAN数据与以太网数据转换器的设计原理与电路构成。创新点在于:电路设计使用高度集成化的网络接口芯片CP2200和集成CAN控制器的C8051F040,在不降低效率的同时,有效地节省空间与资源。在遵循CAN与以太网协议的基础上,通过通讯的握手协议和简化的以太网协议,实现了以太网数据与CAN数据的转发,顺利地解决了以太网的高速性与CAN的低速率,以及两者数据包之间的大小矛盾,能够保证数据的完整和协议的可靠。本转换器可广泛应用于厂矿、油田等监控设施的改进。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分