• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 基于C8051F040的以太网-CAN转换电路设计

基于C8051F040的以太网-CAN转换电路设计

录入:edatop.com     点击:

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的低速率,以及两者数据包之间的大小矛盾,能够保证数据的完整和协议的可靠。本转换器可广泛应用于厂矿、油田等监控设施的改进。

作者:中国电子科技集团 车行 郭建洲 来源:电子设计工程

上一篇:SIMULINK下基带传输系统的设计
下一篇:基于MPEG-4编码的近距离无线视频传输系统

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图