java怎么拦截某个对象
286
2022-10-31
LPC23xx的自适应以太网通信接口设计
1 LPC23xx以太网控制器的结构和配置
如图1所示,LPC23xx以太网接口主要部分的功能如下[2]:
在使用LPC23xx的以太网控制器之前,用户须将正确的配置信息写入图1中的控制寄存器。其步骤如下:
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所示的连续发送过程。
接收与发送过程类似。如果已经对LPC23xx控制器的接收通道进行了正确的配置,当4个缓冲单元(假定接收缓冲区也被划分为4个单元)满时,会产生中断。在中断服务程序中读取这4个缓冲单元,然后将RxConsumerIndex更新为4RxConsumerIndex,就完成了一次接收过程。需要指出的是,LPC23xx以太网控制器的接收和发送通道均需要先“产生”后“消耗”。对接收通道而言,以太网控制器是“产生者”,主机是“消耗者”;发送通道则恰好相反。
3 PHY设备的配置
以太网接口的自适应能力由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以太网控制器的工作方式。
关于如何通过MMII读写DP83848I的内部寄存器,请查阅参考文献[2]的149150页,在此不再赘述。
参考文献
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~