积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 接口设计 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
LPC23xx的自适应以太网通信接口设计
 
作者:南京北方信息产业集团有限公司 扶文树 何军 陈国胜 琚璐   来源:单片机与嵌入式系统应用    点击数:123   更新时间:2008-7-23
您可以添加到网摘 让更多人关注此文章:

    

以太网接口是嵌入式系统进行以太网通信的硬件基础。随着微电子技术的进步,许多嵌入式控制芯片集成了以太网控制器,这使得嵌入式系统中以太网接口的开发更为便利[1]。LPC23xx是NXP半导体公司(由Philips公司创建)于2006年12月前后推出的基于ARM7TDMIS内核的微控制器,与LPC21xx和LPC22xx相比,最为突出的特点是片上集成了10 Mbps/100 Mbps以太网控制器。

1  LPC23xx以太网控制器的结构和配置

  如图1所示,LPC23xx以太网接口主要部分的功能如下[2]:

① 控制寄存器,用于配置以太网控制器的工作方式、读取控制器的当前状态等;
  ② 总线接口,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);
  ⑥ 使能接收/发送通道。

  在以上6个步骤中,较为关键是对接收/发送缓冲区的配置(步骤④),以下为详细的配置过程。为不影响以太网接口数据传输的实时性,一般选取LPC23xx以太网控制器专用的16 KB RAM作为收/发缓冲区的物理载体。按以太网帧的结构,可将收/发缓冲区分别划分为若干个相对独立的缓冲单元(也可以不划分),每个单元对应着一个或多个描述符和状态符。描述符用来设置对应部分的首地址和控制信息,状态符存储着对应单元最新的状态信息。这些描述符和状态符在逻辑上分别组成一个环形阵列:描述符环形阵列的首地址由RxDescriptor(接收描述符基址寄存器) /TxDescrip tor(发送描述符基址寄存器)指定,大小由RxDecriptorNumber(接收描述符寄存器数量) /TxDescriptorNumber(发送描述符寄存器数量)指定;状态符的阵列首地址由RxStatus(接收状态基址寄存器) / TxStatus(发送状态基址寄存器)指定,大小与描述符阵列相同。在描述符阵列和状态符阵列形成后,就可以通过RxProducerIndex(接收产生索引寄存器) /TxProducerIndex(发送产生索引寄存器)、RxConsumerIndex(接收消耗索引寄存器) /TxConsumerIndex(发送消耗索引寄存器)对描述状态符阵列进行操作而实现数据的收/发。

2  网络数据接收和发送的控制

  NXP公司在LPC23xx的用户指南(参考文献[2])中对其以太网控制器中数据的接收和发送有较为详细的介绍;但没有涉及描述符和状态符的环形阵列的概念,接收和发送的控制过程较为机械,本文在实际工程应用的基础上对此做了改进。以发送为例,图2为一个连续发送过程,将发送缓冲区分为4个单元,0和4、1和5、2和6、3和7是与这4个单元对应的描述符。发送过程如下:

  ① 如果上次数据发送完毕,就得到图2(a)所示的状态,此时TxProducerIndex=TxConsumerIndex
  ② 将要发送的数据写入4个缓冲单元中,将TxProduceIndex更新为4TxProducerIndex,即为图2(b)所示的状态,此后数据开始发送;
  ③ 等待上次发送结束(用中断或查询均可以实现等待),得到图2(c)数据发送完毕的状态;
  ④ 若有后续的数据要发送,再将数据写入4个缓冲单元中,将TxProducerIndex更新为4TxProducerIndex,就得到图2(d)所示的状态,此后数据开始发送;
  ⑤ 重复以上过程,就得到了图2所示的连续发送过程。


图2  LPC23xx以太网控制器的连续发送过程

  接收与发送过程类似。如果已经对LPC23xx控制器的接收通道进行了正确的配置,当4个缓冲单元(假定接收缓冲区也被划分为4个单元)满时,会产生中断。在中断服务程序中读取这4个缓冲单元,然后将RxConsumerIndex更新为4RxConsumerIndex,就完成了一次接收过程。需要指出的是,LPC23xx以太网控制器的接收和发送通道均需要先“产生”后“消耗”。对接收通道而言,以太网控制器是“产生者”,主机是“消耗者”;发送通道则恰好相反。

3  PHY设备的配置

  LPC23xx控制器提供了RMII和MMII与PHY设备进行数据通信。其中RMII负责网络数据的收发,MMII负责PHY设备的配置和当前状态的读取。本设计选取国家半导体公司DP83848I芯片作为以太网接口的PHY设备,其应用电路如图3所示。DP83848I可由硬件来配置,也可由软件来配置。本设计选择由硬件来配置,而通过MMII来读取DP83848I最新的状态。

  以太网接口的自适应能力由DP83848I的自动协商功能体现出来。自动协商功能提供了一种在网络连接的两端之间交换配置信息的机制,在该机制下,这两端将自动选择最优的配置[34]。

  DP83848I支持4种不同的以太网工作方式(10 Mbps半双工、10 Mbps全双工、100 Mbps半双工和100 Mbps全双工),自动协商功能在芯片配置的基础上自动选择性能最高的工作方式。DP83848I的AN_EN、AN1 和AN0 引脚的电平控制着自动协商功能。在RESET_N引脚输入低脉冲(复位信号)期间,会采样AN_EN、AN1 和AN0的电平来决定芯片的工作方式,当AN_EN、AN1 和AN0全为“1”的时候,即图3中接入R1、R2和R3,4种工作方式均在协商的范围之内[5]。

  LPC23xx对DP83848I的配置过程如下:

  ① 发送脉宽大于1 μs的复位信号,等待自动协商过程完成;
  ② 查询基本模式状态寄存器(BMSR)的第5位,当该位变高时,表明自动协商过程完成,结束等待;
  ③ 查询BMSR的15、14、13、12和11位,获取以太网接口的工作方式;
  ④ 配置LPC23xx以太网控制器的工作方式。


图3以太网接口的PHY设备的硬件电路

  关于如何通过MMII读写DP83848I的内部寄存器,请查阅参考文献[2]的149150页,在此不再赘述。

  本文介绍了以LPC23xx以太网控制器为依托、以DP83848I为PHY设备而设计的一种自适应以太网接口。应用了较新的电子器件和电子技术,为嵌入式系统中以太网底层的软硬件设计提供了参考,也为TCP/IP协议在嵌入式系统上实现提供了硬件平台。

参考文献

[1]  韩光洁, 赵海,等.Embedded Internet 技术及其综述[J].小型微型计算机系统,2004, 25(5):798-802.
[2]  Philips Semiconductor.LPC2364/6/8/78 User manual, Rev 016,200610.
[3]  王廷尧.以太网技术与应用[M].北京:人民邮电出版社,2005.
[4]  刘树波,叶季平.嵌入式系统中快速以太网适配器设计[J].武汉大学学报: 工学版,2003,36(5):123-126.
[5]  National Semiconductor.DP83848I PHY TER Industrial Temperature Single Port 10/100 Mb/s Ethernet Physical Layer Transceiver,200704.

扶文树(博士、工程师),主要从事嵌入式系统的软硬件研发工作。



相关文章
· Microchip推出适用于8位、16位及32位PIC®单片机和...[87]
· 基于SPE61A单片机的非接触式高压验电器的开发[172]
· 多通道智能温湿度测试仪的研制[204]
· 多通道智能温湿度测试仪的研制[166]
· 51系列单片机输出PWM的两种方法[235]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
赛普拉斯为用于机器视觉与运动分析应用
赛普拉斯针对机器视觉与全息数据存储应
金融危机来袭 台湾LED产
半导体市场环境恶化 安森美
Vishay 的新型&nb
Intersil推出采用小尺寸QFN
富士通微电子携手西安电子科技大学成立
纤巧和高压的 LDO&nb
华为计划收购北电业务 华为
华为计划收购北电业务 华为
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
四折批发各种数码相机,摄相机等...
最低价销售各种品牌手机...
震撼出售各种品牌笔记本电脑等!...
IC design 的流程...
电子工程师,别拿一分钱不当回事...
新款安全多用途非接触式芯片(T...
关于ARM启动的一篇文章!...
Linux网络设备驱动编程...
linux文件系统基础知识...
求奇想达QXD-DM642开发...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网