千兆网络接口在S3C2440A系统中的应用
发送函数是网络驱动程序的关键过程之一,它与dev-> 发送函数是网络驱动程序的关键过程之一,它与dev->hard_start_xmit连接,在内核通过设备向外发送数据时调用它。系统给AX88180分配一块64K的地址空间,其中8000H-FBFFH作为发送缓冲区地址,在系统调用驱动程序的xmit时,发送的数据放在一个sk_buff结构中,发送到数据缓冲区地址,再由AX88180发送到网络上。如果发送成功,hard_start_xmit释放sk_buff,返回0;如果设备暂时无法处理,则返回1。硬件在发送结束后产生中断。
中断和接收函数
中断和接收函数也是驱动程序的关键过程之一,如果有数据收到,AX88180会产生一个中断通知系统,在中断处理程序中驱动程序申请一块sk_buff(),从AX88180读出数据并放置到接收缓冲区地址0000H~7000H里,然后来填充sk_buff中的一些信息,由skb->dev=dev判断收到帧的协泌类型,填入skb->protocol,再把指针skb->mac.raw指向硬件数据,然后丢弃帧头。之后还要设置skb->pkt_type,标明链路层数据类型,最后调用netif_rX()把数据传送给协议层。
下面是发送函数部分代码:
结语
本文介绍的千兆网络接口在S3C2440A系统中的应用方案已经得以实现,1000 Full-duplex模式下,数据传输速率可以达到200Mbp,在使用FTP下载数据时,速度可以达到4Mbps以上,是使用100M网络接口的5~6倍。如果使用其它更高速度的微处理器,网络接口的速度会更高。
- 基于嵌入式ARM9的USB设计与实现(07-16)
- 基于S3C2440的基础介绍、技术文献及设计方案大全(03-08)
- 多功能的单片网络接口芯片W5100完整数据手册和应用案例指南(09-18)
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)