icmade.com 新闻出处:IC交易网 发布时间:2011-8-11 10:29:00
2 硬件设计
2.1 网卡硬件特点
KSZ8851整合了一个快速以太网MAC/PHY与一个8/16/32位的普通主机处理器接口和SPI接口。该设备拥有在RXQ和TXQ之间进行共享的18KB内部缓冲存储器。该缓冲存储器在接收队列的缓存容量是12KB,而在发送队列则是6KB。凭借引脚与麦瑞半导体现有的KSZ8841MQL和KSZ8842MQL系列兼容,该设备可提供80Mbps或更高的性能。该解决方案支持大端(Big—Endian)和小端(Little—Endian)处理器,还支持IPv4/IPv6 checksum生成与校验。这些功能大大减少了对CPU的使用,并提高了系统整体性能。通过能量检测模式、可编程的3.3V/2.5V/1.8V IO选项以及一个零下40摄氏度至85摄氏度的工作温度范围,KSZ8851还为设计师提供了更强的功率管理功能。最后,该设备以多种封装形式推出,包括128引脚PQFP封装、48引脚LQFP封装和32引脚QFN封装。
2.2 网卡初始化
为正常使用网卡收发数据功能,首先需要对Micrel网卡进行初始化。初始化工作应在网卡正常工作前完毕,所以应在HEROS系统初始化过程中一并完成Micrel网卡的初始化工作。下面这个函数是写命令用的:
2.3 发送处理函数
首先,在网卡初始化时,就需要设置一些有关发送数据的发送寄存器,然后,网卡才能正常发送数据。Mierel网卡发送寄存器的初始化框图如图2所示。
在网卡发送模式正确初始化后,即可进行数据发送操作。首先用户层发出发送数据的请求,然后该请求通过HEROS系统协议栈发给MICREL网卡驱动层,最后发出数据。发送前要注意:
(1)此时该网卡没有在接收数据包,否则会引起时序混乱,导致网卡最后失效,所以在发送的时候要去判断信号量micrel_int_1_flag是否为0,如果为0,则可以发送,为1则表明此时正在接收数据包,不可以发送。
(2)发送长度要以四个字节对齐。GET_4BYTES_AUGNMENT(uOrgPktLen,&len);
实际发送长度为len。
2.4 接收处理函数
Micrel网卡接收寄存器的初始化框图如图3所示。在网卡接收模式正确初始化后,即可进行数据接收操作。首先用户层发出接收数据的请求,然后该请求通过HEROS系统协议栈发给MICREL网卡驱动层,最后接收数据。接收时需注意:
(1)首先要从帧头中获取帧长度byte_count,最大为1518,并且必须把byte_count按4个字节对齐;
(2)其次要将Micrel芯片的接收中断关闭,接收完毕后,再打开接收中断。
(3)注意帧开始的2个字节和最后4个字节不要读到接收缓冲区。
3 结束语
本文介绍了以HEROS为核心、KS8851作为网络接口芯片的终端接口,通过TCP/IP协议栈与本文讨论的网卡驱动,用ping ip地址命令可以得到ICMP reply响应。MICREL芯片具有性价比高、连接方便等特点,是进行嵌入式以太网终端设计时的主要控制芯片之一。
Copyright © 2010 icmade.com Corporation, All Rights Reserved
咨询热线:0571-89738363,89738362 | 在线客服QQ: 网页技术QQ:
芯片供应、芯片采购、鼎一下!