基于 CAN 总线与以太网的嵌入式网关电路设计

2017-08-18 84 0

本文提出一种工业现场总线与以太网互联的方法,介绍以太网与 CAN 现场总线之间协议转换网关的设计与实现:采用 AT89C55 作为主处理器,通过两个接口芯片实现 CAN 总线与以太网的互连,并分别给出其硬件结构和软件设计思想,为企业信息网络与控制网络集成提供一种可行的方法。

以太网接口模块:该系统选择了性能价格比高的 Atmel 公司 AT89C55 单片机。它面向测控对象和嵌入式应用,其体系结构以及 CPU、指令系统、外围单元电路都是按照这种要求专门设计的:内部带高达 20KB 的 FLASH 程序存储器,完全兼容 8051 指令集,片上 FLASH 方便使用者在线编程;工作速率最高可达 33MHz,具有 256B 内部 RAM、32 个可编程的 I/O 口、3 个 16 位定时/计数器、8 个中断源,并支持低功耗的空闲工作模式。以太网接口选用 RTL8019AS 芯片,它是由 Realtek 公司生产的一种高度集成的以太网控制器,能实现以太网媒介访问层(MAC)和物理层(PHY)的全部功能。RTL8019AS 内部有两个 RAM 区域:一是 16KB,地址为 0x4000~0x7FFF,接收和发送数据包必须通过 DMA 读写该 16KB RAM,它实际上是双端口 RAM,即有两条总线与其连接,一条总线用于 RTL8019AS 读/写或写/读该 RAM,即本地 DMA,另一条总线用于单片机读或写该 RAM,即远程 DMA;二是 32 字节,地址为 0x0000~0x001F,用于存储以太网物理地址。主控芯片和以太网接口芯片的硬件接口原理图见图 2。值得注意的是,由于以太网的包最大可以超过 1500 字节,而 AT89C55 的片内 RAM 只有 256 字节,无法存储这么大的包,因此这里扩展了一个 32KB 的外部 RAM,这样同时也能提高单片机的数据传输速度。

基于 CAN 总线与以太网的嵌入式网关电路设计

CAN 接口模块:组成 CAN 系统的主要器件是 CAN 控制器和收发器。该设计中,CAN 接口模块选用 SJA1000 芯片和 PCA82C250 芯片。SJA1000 是一个独立的 CAN 控制器,它是 Philips 公司另一款 CAN 控制器 PCA82C200 的替代产品,且增加了一种新的工作模式(Peli CAN),该模式支持 CAN 2.0B 协议。SJA1000 主要完成 CAN 的通信协议,实现报文的装配和拆分、接收信息的过滤和校验等。

基于 CAN 总线与以太网的嵌入式网关电路设计

PCA82C250 是 CAN 控制器与物理总线之间的接口,主要用于增强系统的驱动能力;采用收发器的系统中,节点数至少可以达到 110 个,同时还具有降低射频干扰(RFI)和很强的抗电磁干扰(EMI)能力。在处理这部分电路时,有几个地方要特别注意:

(1)晶振电路:89C55 和 SJA1000 都应该有各自独立的晶振电路,不能够用 SJA1000 的时钟输出信号 CLKOUT 来驱动单片机。

(2)复位引脚:虽然 SJA1000 的复位是低电平,但不能通过一个非门直接连接单片机的复位引脚。一般解决复位引脚问题有两种方式:第一种是使用单片机的 I/O 引脚控制 SJA1000 的复位引脚,好处是单片机可以完全控制 SJA1000 的复位过程;第二种是采用适当的复位芯片。为了降低成本,该设计采取的是第一种方法。

(3)RX1 引脚的电位必须维持在约 0.5VCC 上,否则将不能形成 CAN 协议所要求的逻辑电平。

(4)一定要注意电缆的终端阻抗匹配,它直接影响 CAN 总线是否能正常工作和网络性能。CAN 接口模块的硬件电路图见图 3,在 PCA82C250 的 RS 脚上接有一个斜率电阻 R,可根据总线通信速度适当调整电阻的大小。

相关文章

压敏电阻的参数、特性与应用
基于 STC12C 与 SIM300 的智能家电防盗系统电路设计
基于 nRF24L01 与 DHT11 的无线温湿度测试系统电路设计
电冰箱电子温控器的原理与半自动除霜电路
基于 586-Engine 的无人机飞行控制器电路设计
三极管开关电路的改进接法:加速电容、图腾柱与驱动电路

发布评论