以太网接口是嵌入式系统进行以太网通信的硬件基础。随着微电子技术的进步,许多嵌入式控制芯片集成了以太网控制器,这使得嵌入式系统中以太网接口的开发更为便利[1]。LPC23xx是NXP半导体公司(由Philips公司创建)于2006年12月前后推出的基于ARM7TDMIS内核的微控制器,与LPC21xx和LPC22xx相比,最为突出的特点是片上集成了10 Mbps/100 Mbps以太网控制器。
1 LPC23xx以太网控制器的结构和配置
如图1所示,LPC23xx以太网接口主要部分的功能如下[2]:
图1 LPC23xx以太网接口示意结构框图
① 控制寄存器,用于配置以太网控制器的工作方式、读取控制器的当前状态等;
② 总线接口,AHB总线与以太网控制器进行数据交换的接口;
③ 接收/发送DMA,实现接收/发送缓冲区到总线接口的批量数据传输;
④ 接收/发送缓冲区,与DMA协同工作,暂存接收/发送的数据;
⑤ 发送流量控制,在网络负载过大时插入以太网暂停帧以控制网络流量;
⑥ 接收过滤器,滤除以太网帧的控制部分,提取有效的数据;
⑦ MII(介质无关接口)/RMII(裁减的介质无关接口),与外部PHY设备按规定的时序进行实时数据通信的接口;
⑧ MMII(MII管理接口),配置PHY设备的工作方式,读取PHY设备的当前状态信息。
在使用LPC23xx的以太网控制器之前,用户须将正确的配置信息写入图1中的控制寄存器。其步骤如下:
① 清除LPC23xx以太网控制器的软件复位状态;
② 通过MMII对PHY设备进行正确的配置;
③ 选择与PHY设备的通信接口(RMII或MII),受芯片尺寸所限,NXP已推出的LPC 2364、LPC 2366、LPC2368和LPC2378只有RMII的引脚;
④ 配置DMA引擎和收发缓冲区的首地址及长度;
⑤ 配置以太网接口的MAC(介质存取控制)地址,选择以太网速率(10 Mbps或100 Mbps);
⑥ 使能接收/发送通道。