当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:以太网和CAN总线应用广泛,但由于其通信协议不同,两种总线器件间无法进行数据通信,因此,设计了基于CP2200与C8051F040的以太网总线与CAN总线接口转换电路,并给出部分相关硬件电路与软件设计分析。在保证数据

摘要:以太网CAN总线应用广泛,但由于其通信协议不同,两种总线器件间无法进行数据通信,因此,设计了基于CP2200与C8051F040的以太网总线与CAN总线接口转换电路,并给出部分相关硬件电路与软件设计分析。在保证数据完整和协议可靠的前提下,通过握手协议和简化的以太网协议,不仅实现了以太网数据与CAN数据的转发,同时还顺利的解决了以太网的高速性与CAN的低速率冲突,以及两者数据包之间的大小不同的矛盾。
关键词:CP2200;C8051F040;以太网;CAN;总线

    控制器局域网(Controller Area Network,CAN)总线是Bosch公司为解决现代汽车控制设备与测试仪器之间数据交换而开发的一种串行数据通信协议,主要用于各种设备的检测及控制。目前,CAN总线被广泛应用于汽车等交通运输工具、工业控制、智能楼宇、机械工业、医疗器械、传感器等领域,被称为最有前途的现场总线之一,但其主要缺点是不适合远距离传输。以太网接口开始是为了连接实验室的多个计算机设备,开发的快速连接方式。随着传输速率的提高和交换技术的使用,以太网的确定性和实时性得到了保证,工业以太网的安全性和网络生存性也得到了很大程度的提高。使其在工业控制领域得到广泛的应用。目前计算机已经广泛应用与各个操控领域,而计算机常用的连接端口就是以太网,只要接口标准统一,并安装好必要的软件,计算机就可以介入到各个控制系统中去。因此,为了提高效率,有必要采用技术手段,实现通过以太网接口使计算机融入CAN网络,把以太网的远距离传输性与CAN的专业性结合起来,优势组合。

1 芯片选择
1.1 CP2200芯片介绍
    CP2200芯片是Sificon Labs公司推出的工业界体积最小、性能最高、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的多种集成功能(如CRC校验、数据滤波等)有效减轻了单片机的载荷,它内部的收发接口单元操作起来灵活方便,为以太网数据包提供了有效缓冲。使用该芯片时,电路只需增加1个RJ-45快速以太网接口即可,其工作特性可以满足CAN总线的传输波特率要求。其内部结构如图1所示。


1.2 C8051F040芯片介绍
    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连接到以太网上。HR9011105A是HanRun公司生产的集以太网隔离变压器、RJ-45接口和指示灯为一体的网络连接器。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数据转发为以太网数据,称为上行通讯;由以太网数据转发为CAN数据,称为下行通讯。
相对于CAN总线的传输速率,本电路的以太网传输速率要高10倍,缓冲区大小也差很多。因此在下行通讯中,需要完成CAN数据的拆包和重新打包任务,属较慢的操作,采用定时查询方式发送。在上行通讯中,直接转发CAN接收到CP2200发送缓冲区。
3.1 CAN总线程序
    1)CAN总线发送任务  当以太网有新的数据转发给CAN时,主程序通知此任务运行。读出CP2200接收缓冲区中的数据到内存缓冲区,然后分成不大于8字节的数据包,增加CAN协议包头,送入C8051F040的发送缓冲区。
    此任务耗时最长。CAN发送任务收到主程序的运行通知,开始读取CP2200的接收缓冲区数据到内存,然后采用查询发送方式,把数发送到C8051F040的发送缓冲区。在查询过程中,如果C8051F040正处于发送中,将任务等待10 ms,然后再查询一次,直到发送成功。
    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’;选择地址线和数据线的非复用方式;选择存储器模式为不带块选择的分片方式:设置与片外存储器或外设接口的时序。初始化时按以下步骤进行:等待复位引脚电平升高;MCU通过中断请求信号得到振荡器是否完成初始化;MCU查询INT0来确定CP2200自身的初始化是否完成;禁止那些主处理器不监视或不处理的事件的中断;初始化物理层;用IOPWR寄存器使能所需要的活动(Ack)、连接(Link)LED;初始化媒体访问控制器(MAC);配置接收过滤器。
    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的低速率,以及两者数据包之间的大小矛盾,能够保证数据的完整和协议的可靠。本转换器可广泛应用于厂矿、油田等监控设施的改进。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭