飞思卡尔MC9S12NE64以太网模块介绍
扫描二维码
随时随地手机看文章
MC9S12NE64是Freescale公司生产的基于HCS12 CPU内核的16位单片机,内嵌EMAC和EPHY模块。
NE64的以太网模块实现了以太帧的收发功能。其中包括以太网介质访问控制模块(Ethernet Media Access Controller,EMAC)和以太网物理层驱动模块(Ethernet PhysicalTransceiver,EPHY),这两个模块都遵循IEEE802.3标准。NE64的EMAC模块和EPHY模块的内部结构如图所示。
图中NE64的EMAC模块和EPHY模块可以独立使用,也可以集成使用。如果分开使用则通过MII接口的18个引脚与外界EMAC模块或者EPHY模块通信;如果使用内部模块,那么MII接口引脚对这两个模块均不可见,这样以太网模块对外通信的引脚只有4个:2差分个输入(RXN、RXP)和2个差分输出(TXN、TXP)。
1.EPHY模块
EPHY模块是物理接口收发器。支持IEEE-802.3定义的MII(Medium-independentinterface)介质无关端口。MII层定义了MAC和各种物理层之间的标准电气和机械接口,它们使得EPHY与EMAC之间的数据通信、EPHY的配置及通信状态的判断得以实现。EPHY模块一端与EMAC通信,另一端与传输介质进行通信。EPHY模块提供4个存储映射寄存器和18个MII寄存器,通过设置这些寄存器,使EPHY模块正常工作。
EPHY模块是遵循IEEE 802.3标准并兼容10/100Mbps的以太网收发器。可以配置成10BASE-T或者100BASE-TX模式。需要注意的是在外部总线模式下只能选择10BASE-T模式。
① 10BASE-T模式
10BASE-T模式中10表示传输速率为10Mb/S,BASE表示采用基带传输,T(twisted)为双绞线,每个网段最大传输距离为100M,实际传输距离受物理连线影响。使用曼彻斯特编码方式。可以采用3类UTP(Unshielded Twisted-Pair cable 非屏蔽双绞线)、集线器、RJ-45连接器连接。双绞线是两根绝缘导线互相绞结在一起的一种通用的传输介质,它可减少线间电磁干扰,适用于模拟、数据通信。
以太网通信是一种不可靠通信,实际它并不知道通信的对方有没有真正收到自己发出的数据。以太网中半双工模式下采用CSMA/CD ( Carrier Sense MultipleAccess/Collision Detect),即载波监听多路访问/冲突检测方法。CSMA/CD是一种分布式介质访问控制协议,网中的各个站(节点)都能独立地决定数据帧的发送与接收。每个站在发送数据帧之前,首先要进行载波监听,只有介质空闲时,才允许发送帧。
这时,如果两个以上的站同时监听到介质空闲并发送帧,则会产生冲突现象,这使发送的帧都成为无效帧,发送随即宣告失败。每个站必须有能力随时检测冲突是否发生,一旦发生冲突,则应停止发送,以免介质带宽因传送无效帧而被白白浪费,然后随机延时一段时间后,再重新争用介质,重发送帧。
假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号到达A时,数据包已经发完,则A不会重传这个数据包。
② 100BASE-TX模式
快速以太网技术100Base-TX是由10Base-T标准以太网发展而来的,主要解决网络带宽在局域网络应用中的瓶颈问题。可支持100Mbps的数据传输速率,在交换式以太网环境中可以实现全双工通信。在编码上,采用了效率更高的编码方式4B/5B编码。对NE64 EPHY模块的实际通信速度可以采用一些方法进行测试。比如将NE64通过网线(5类UTP)接到交换机的端口上,指示灯闪烁表示连接有效,并以颜色表示数据
速率:绿色-100Mbps,黄色-10Mbps。
2.EMAC模块
MC9S12NE64的EMAC实现了数据链路层的功能,提供将一台设备的网络层数据传输至另一台设备的机制。EMAC主要负责数据的传输,具有10Mbps/100Mbps的传输能力。在数据传输之前,EMAC自动对以太帧进行封装:添加帧的前导位、帧起始位以及CRC校验码。此外,EMAC具有MAC地址识别和滤波功能,并能进行错误检测。在半双工模式下,EMAC采用载波多路访问和冲突检测(CSMA/CD)机制;在全双工模式下,可采用流量控制机制。因此,EMAC模块的初始化应该是包括这些功能在内的初始化,它可以通过读写EMAC模块提供的21个寄存器来实现。