1. general
下图是网口结构简图.网口由CPU、MAC和PHY三部分组成.DMA控制器一般归于CPU的一部分,用虚线放在这儿是为了表明DMA控制器可能会参加到网口数据传输中.
关于上述的三部分,并不一定都是独立的芯片,依据组合方法,可分为下列几种类型:
- CPU集成MAC与PHY;
- CPU集成MAC,PHY选用独立芯片;
- CPU不集成MAC与PHY,MAC与PHY选用集成芯片;
本例中选用计划二做进一步阐明,因为CPU总线接口很常见,一般都会做成能够像拜访内存相同去拜访,没必要拿出来说,而Mac与PHY之间的MII接口则需求多做些阐明.
下图是选用计划二的网口结构图.虚框表明CPU,MAC集成在CPU中.PHY芯片经过MII接口与CPU上的Mac衔接.
在软件上对网口的操作一般分为下面几步:
- 为数据收发分配内存;
- 初始化MAC存放器;
- 初始化PHY存放器(经过MIIM);
- 发动收发;
2. MII
MII接口是MAC与PHY衔接的标准接口.因为各厂家选用了相同的接口,用户能够依据所需的功能、价格,选用不同类型,乃至不同公司的phy芯片.
需求发送的数据经过MII接口中的收发两组总线完结.而对PHY芯片存放器的装备信息,则经过MII总的一组串口总线完结,即MIIM(MII Management).
下表列出了MII总线中首要的一些引脚
PIN Name |
Direction |
Description |
TXD[0:3] |
Mac to Phy |
Transmit Data |
TXEN |
Mac to Phy |
Transmit Enable |
TXCLK |
Mac to Phy |
Transmit Clock |
RXD[0:3] |
Phy to Mac |
Receive Data |
RXEN |
Phy to Mac |
Receive Enable |
RXCLK |
Phy to Mac |
Receive Clock |
MDC |
Mac to Phy |
Management Data Clock |
MDIO |
Bidirection |
Management Data I/O |
MIIM只要两个线, 时钟信号MDC与数据线MDIO.读写指令均由Mac建议, PHY不能经过MIIM主意向Mac发送信息.因为MIIM只能有Mac建议, 咱们能够操作的也就只要MAC上的存放器.
3. DMA
收发数据总是间费时吃力的事,特别关于网络设备来说更是如此.CPU做这些工作明显不合适.既然是数据搬移, 最简略的方法当然是让DMA来做.究竟专业的才是最好的.
这样CPU要做的工作就简略了.只需求告知DMA开始地址与长度, 剩余的工作就会主动完结.
一般在MAC中会有一组存放器专门用户记载数据地址, tbase与rbase, cpu按MAC要的格局把数据放好后, 发动MAC的数据发送就能够了.发动进程常会用到存放器tstate.
4. MAC
CPU上有两组存放器用与MAC.一组用户数据的收发,对应上面的DMA;一组用户MIIM,用户对PHY进行装备.两组存放器因为都在CPU上,装备方法与其他CPU上存放器相同,直接读写即可.数据的转发经过DMA完结.
5. PHY
该芯片是一个10M/100M Ethernet网口芯片
PHY芯片有一组存放器用户保存装备,并更新状况.CPU不能直接拜访这组存放器,只能经过MAC上的MIIM存放器组完结直接拜访.一起PHY芯片担任完结MII总线的数据与Media Interface上数据的转发.该转发依据存放器装备主动完结,不需求外接干涉.