一种低成本的Ehternet嵌入式系统的设计
本设计是以全电子化铁路车站控制系统为背景,任务是实现铁路车站执行机与远程监测机之间的信息交换。其中,执行机包括各个执行单元,采用CAN总线接口。监测机为远程的PC控制机,采用以太网接口。本设计指在实现CAN通信链路和以太网通信链路的透明连接,最终形成通用的CAN总线以太网网关。
CAN总线与以太网通信,通常采用两种方案,一种是采用工控机加网卡来实现。这种连接方式成本高,开发周期长。另一种是采用32位MCU+RTOS的方案,这种方案采用32位高档单片机,在RTOS(实时多任务操作系统)的平台上进行软件开发,在嵌入式系统中实现TCP/IP的协议处理。它的缺点是:单片机价格较高,开发周期较长,需要购买昂贵的RTOS开发软件,对开发人员的开发能力要求较高。鉴于上述方案的优缺点,笔者设计一种单独的以太网网关互连系统,成功地实现了以太网与CAN总线的直接互联。
一、硬件设计
系统电路原理如图1所示。本系统以单片机为界,为了两部分:CAN总线控制部分和以太网控制部分。系统提供RJ45接口连接Ethernet网络,并且提供一个CAN总线接口供用户使用。系统可以把从Ethernet上过来的IP数据报解包送给CAN总线接口,也可把从CAN总线接口过来的数据封装为IP包送到局域网中。
图1 系统电路原理框图
(一)单片机及其外部存储器
单片机W78E58B为主要控制部分,实现对网络芯片和CAN控制器的控制。在微处理器内嵌入TCP/IP协议和CAN协议,完成两者之间的协议转换,实现CAN接口和以太网接口之间数据的透明传输。
62256是32K的外部RAM,用来缓存以太网数据包和CAN总线传来的数据,使用它的目的是提高单片机的数据传输速度和处理复杂的TCP/IP协议。由于以太网最大的数据包有1514字节,而单片机W78E58B只能256字节的RAM,无法存储这么大的数据包,只能放在外部RAM里,以使单片机能够高速地吞吐数据。P2.7为低电平时,62256被选通,因此其寻址范围为0000H~7FFFH。
单片机W78E58B内部有32K的EEPROM,可用来存储一些配置信息,如网关IP地址、MAC地址、SJA1000的ID网络标识符、网络掩码和总线定时(BTR0、BTR1)等。这样可以灵活方便地修改网关参数,适应不同的环境,同时也有利于以后的扩展。
(二)以太网控制部分
RTL8019AS是台湾Realtek公司制造的一种高集成度的全双工10M/S以太网控制芯片,可实现基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO,可完成数据包的接收和发送功能。
在该设计中,RTL8019AS使用跳线模式(JP置为高),数据线使用八位模式(IOCS16B用27kΩ电阻下拉接地),RTL8019AS的低五位地址线SA0~SA4对应接到单片机的P2.0~P2.4,SA6和SA9接VCC,其他地址线全部接地。当P2.6和P2.7同时为高电平时RTL8019AS的片选信号AEN使能。RTL8019AS的I/O地址需要映射为单片机的I/O地址,这样单片机才能操作RTL8019AS。根据电路设计,该系统中单片机的I/O地址与RTL8019AS的I/O地址之间的映射关系为:0XC000H~240H,0XC100H~241H…)XDF00H~25FH,共32个字节。RTL8019AS除与单片机连接外,还将其网络收发器的四根引脚HD、LD、TRIN+、TPIN-通过外部的隔离滤波器LPF与以太网相连,目的是提高网络通信的抗干扰能力。
(三)CAN总线控制部分
SJA1000为CAN总线控制器,具有多主结构、总线访问优先权、广播报文功能及硬件滤波功能,具有简单总线连接的SJA1000可完成物理层和数据链路层的所有功能。它具有两种工作模式BasicCAN和PeliCAN。BasicCAN仅支持标准模式(本文仅介绍BasicCAN模式),支持错误分析功能,对CAN收发器进行控制,为微控制器提供控制CAN总线的简单接口。单片机对SAJ1000的读写就像读写自己的外部RAM一样。P2.7取反后作为其片选信号线。因此,SJA1000对应地址为8000H~807FH。SJA1000的/INT引脚接单片机的INT1引脚,使单片机能够实时响应CAN的中断请求。
评论