很多事情看上去简单的,背后是复杂的设计思想。
以太网正如上面所说一样,顺手插上网线,新世界的大门就打开了,普通人无需关心那一瞬间发生了什么,但开发者需要知道每一秒,以太网都在做什么事情。Okay,进入正题,现在的C主板上都带有以太网接口,称为板载以太网或集成网卡。这里的集成或板载指的是以太网的接口和控制芯片都在主板上。
学过网络编程开发,都知道TCP/IP是四层模型,是依照OSI七层参考模型而设计出来的。
普通用户对模型的认识只在软件和硬件层的表面上,如IP,HTTP,网口。软件层上是靠TCP/IP协议栈实现,目前三大操作系统上对TCP/IP协议的实现,大都是参考BSD的TCP/IP实现,其中Linux的协议栈在PC中比较常用。嵌入式开发中协议栈也有不同的实现方式,以方便开发者移植到不同的芯片上。
硬件层上,有两个部分PHY(Physcial)和MAC(Medium Access Controller)。PHY对应的是物理层上信号的收发,MAC是控制器,对下是控制PHY的数据工作,对上提供接口,用户可以访问和控制以太网接口。MAC是通过MII(Medium Independent Interface)接口对PHY控制。除了MII还有RMII和SMII。所以,MAC可以通过不同接口访问不同PHY,如果MAC支持可以连接多个PHY,通过地址线选择当前与哪个PHY通信。
MII是四个bit通信,至少需要25MHz,同步的并行接口。
RMII是两个bit通信,至少50MHz。
以太网对传输速度的表示有10BASE-T,100BASE-TX,1000BASE-T,分别对应10Mbit/s, 100Mbit/s, 1000Mbit/s。BASE表示Baseband,T表示双绞线(Twisted pair),F表示光纤(Fiber),X表示编码方式(Encoding Method)。