基于ENC424J600的以太网与串行接口转换技术
论述了在STM32系列的MCU上移植TCP/IP协议栈LwIP,并利用新型以太网控制器ENC424J600实现网络数据传输功能。该系统主要完成的功能是接收上位机发送的数据,并将这些数据转换成通用串行接口输出。ENC424J600是Microchip新推出的一款以太网控制器,其速度优于ENC28J60,同时为用户提供两种接口模式。本文介绍了其基于SPI接口模式下的实现过程,详细描述了该网卡驱动的硬件电路和软件流程。
引言
随着Internet的发展和应用,越来越多的设备需要接入网络以实现远程控制或资源共享。以太网接口布线方便,通信带宽较宽,可达100 Mb/s甚至1000 Mb/s。嵌入式系统由于具有体积小、价格低、专用性能高的优势,被广泛应用于各种电子设备和工业测试设备中。随着嵌入式系统与网络的日益紧密结合,在嵌入式系统中引入TCP/IP协议栈已成为嵌入式系统领域的重要研究方向。
本文在以太网接口实现基本数据传输的基础上将其转换成其他通用串行接口(如SPI、UART、CAN),更利于应用在广泛的工业控制领域中。目前市面上的以太网控制芯片大多功耗高、功能复杂,不适合用在中低端的嵌入式系统中。之前Microchip推出的芯片ENC28J60的网络接口速度只能达到10 Mbps,其SRAM buffer也不大容易造成接收溢出,而ENC424J600速度可达100 Mbps,功能将更加完善,并提供两种接口给嵌入式开发者选择,是一款很好的网络接口芯片。STM32F103RET6是一款ARM处理器,它的功耗低、价格低廉、功能强大、具备丰富的串行接口,具有512 KB的Flash,在一般的应用中可以不用外扩Flash,是中低端嵌入式开发系统的最佳选择之一。将两者结合不但能实现网络通信,而且可以灵活转换成其他串行接口,用途广泛。
图1 SRAM Buffer的分配
1 ENC424J600简介
ENC424J600是Microchip公司推出的单独可用的快速以太网控制器。其与MCU的连接方式可采用具有工业标准的串行总线SPI或灵活的并行接口。SPI接口数据速率可达14 Mb/s、并行接口速率可达140 Mb/s。ENC424J600满足10 baseTX全双工、半双工模式、100 baseTX全双工、半双工模式,4种模式均符合IEEE 802.3协议。芯片内置PHY物理
层及MAC媒体访问控制层。引擎具有RSA、DiffieHelman、AES、MD5、和SHA1算法。芯片具有44引脚TQFP和QFN两种封装形式。该芯片另一个突出特点是具有24 KB的SRAM Buffer,基本不需要外接SRAM。芯片SRAM Buffer的分配如图1所示。
SRAM Buffer被分为两个区域,一般将General Purpose Buffer设为发送区,RX FIFO Buffer设为接收区,通过指针ERXST区分两个区域,通常将接收区设置较大以防止接收帧溢出。
2 系统硬件电路设计
2.1 网络控制器外围硬件电路
ENC424J600网络控制器外围硬件电路设计需要注意的几点有:ENC424J600的SPISEL引脚需要通过100 kΩ电阻上拉至电源,这样系统上电时就能进入SPI模式,同时引出INT引脚作为接收中断使用;每个电源引脚与地之间都应连接一个电容,为更好地防止干扰在设计时加了两个电容,布线时使001 μF电容更靠近电源引脚;RBIAS引脚需接一个12.4 kΩ的电阻到地;另外RD+、RD-差分信号处的接法与一般的网络控制器不同,它不是直接通过电阻接到电源上,需要特别注意。以太网接口则采用HR961160C,该插座集成以太网隔离变压器、LED灯于一体,同时是贴片式的,节约PCB制板空间。在PCB布线时需要注意的是RD+、RD-和TD+、TD-两对高频差分线的走线应对称并尽可能短。
ENC424J600外围硬件电路及HANRUN以太网变压器插座外围电路图如图2、图3所示。
图2 ENC424J600外围硬件电路
图3 HANRUN以太网变压器插座外围电路
2.2 系统硬件结构
网络转串行通信接口的系统结构框图如图4所示。
图4 网络转串行通信接口的系统结构框图
STM32F103RET6通过SPI1串行通信接口、一个GPIO引脚作为中断引脚与网络控制器相连,系统再引出SPI2、CAN总线通信接口的引脚。将UART1串行接口作为控制台供调试使用。STM32F103RET6具有串口ISP下载功能,将BOOT0接高电平,BOOT1接低电平即可进入ISP下载模式。该系统可以通过跳线选择ISP下载功能。
3 系统软件设计
软件的设计主要是移植LwIP协议栈,添加各串行通信接口的初始化程序,编写网络控制器底层驱动,编写上层应用程序。
3.1 网络控制器底层驱动实现过程
网络控制器底层驱动初始化程序放在low_level_init函数中,整个过程为:初始化SPI1接口,对网络控制器进行系统复位;设置发送、接收缓冲区指针;初始化PHY层为100 Mbase全双工模式,使能接收中断。网络控制器底层发送程序放在low_level_output函数中,整个过程
- 以太网接入技术简介(01-09)
- 以太网技术的发展(01-24)
- 基于PC104总线的嵌入式以太网卡设计(01-31)
- 下一代SDH技术发展趋势及应用分析(中)(01-05)
- PLC(电力线通信)技术简介(01-08)
- 电信接入网设备的安全和过压防护测试(01-08)