面向LwIP的NiosII网络驱动程序开发

面向LwIP的NiosII网络驱动程序开发

ID:41420445

大小:60.91 KB

页数:5页

时间:2019-08-24

面向LwIP的NiosII网络驱动程序开发_第1页
面向LwIP的NiosII网络驱动程序开发_第2页
面向LwIP的NiosII网络驱动程序开发_第3页
面向LwIP的NiosII网络驱动程序开发_第4页
面向LwIP的NiosII网络驱动程序开发_第5页
资源描述:

《面向LwIP的NiosII网络驱动程序开发》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、摘要:木文介绍了以DM9000AE作为网络控制器的嵌入式系统以太网通信功能的实现方法。系统设计釆用DE2作为开发平台。该系统基于NiosII软核处理器,以太网控制器使用DM9000AE;运行UC/OS-II操作系统,加载网络协议LwIP。本文研究DM9000AE的初始化、数据包收发的软件编程算法,重点分析LwIP的网络接口驱动层设计。开发了DM9000AE在LwIP下的驱动程序,完成LwIP在DM9000AE芯片上的移植。最后,通过开发通信软件来测试系统的通信功能。引言:使用IP软核进行SOPC设计的方法正因为其低成本,可剪裁,可重构等特性受到越來越广泛的应用

2、。Altera公司的SOPCBuilder正是一款使用1P软核进行SOPC设计的优秀工具。DE2是Altera为了推广其大学计划,面向广大学生、教师推出的用于学习SOPC设计的开发板。本系统设计使用该开发板作为开发平台。而随着Internet的发展,网络功能正被越来越多的集成到嵌入式系统屮。其屮DM9000AE就是一款优秀的嵌入式系统网络控制芯片。LwIP网络协议栈因为其独有的特性而被广泛应用到嵌入式系统中以实现网络功能,但是DE2并没有提供DM9000AE在LwIP下的驱动程序。本文将介绍DM9000AE在LwIP下的驱动程序开发。1硬件设计DE2有着丰富的

3、器件资源和外设接口。其屮包括一块CycloneII2C35FPGA芯片,4MBFLASH,512KBSRAM和8MBSDRAM。外部接口包括了:PS/2,以太网接口,VGA,TV,AV,串口,SD读卡器,IrDA,USB主/从接口。可以利用该开发板来学习和设计嵌入式系统。DE2采用DM9000AE嵌入式网络控制芯片。与现在广泛使用的LAN91C111芯片相比,它具有更快的I/O访问速度(约为10ns左右),只有48针脚,支持AUTO-MDIX,价格更低,支持TCP/IP硬件加速,可以冇效的减轻CPU的负担,内部提供了高达16KB的数据收发缓存。其屮3KB用来作

4、为发送数据缓冲区,其它的13KB用来作为接收数据缓冲区。该芯片提供了8位或16位位宽模式,设计人员在系统设计的时候按照相应的位宽进行引脚连接就可。本设计使MSOPCBuilder构建硬件平台。本设计的硬件构成有:NiosII软核处理器,片上存储器,Flash,SDRAM,SRAM,LED,DM9000AE网络控制芯片及其桥接器组件。这些器件构成的硬件系统如图1所示:图1硬件系统框图图中的Avalon交换架构是由SOPCBuilder自动生成的互连逻辑。Avalon交换架构将系统各个功能模块连接起来,从而构成一个完整的系统。2软件设计在完成系统的硬件设计后,利用

5、Altera供的NiosIIIDE软件,针对系统的硬件平台开发相应的软件,实现网络通信模块的软件设计。本系统的软件平台采用uC/OS-II嵌入式操作系统,使用LwIP网络协议栈。针对所使用的DM9000AE芯片,设计其驱动程序。使该驱动程序可以为LwIP所用。在此基础上开发网络通信程序。系统模型如图2所示:应用程序LwIP协议栈uC/OS-II硬件图2系统模型图2.1LwIP协议介绍LwIP是LightWeight(轻量级)IP协议,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,一-般它只需要几百字节的R

6、AM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用叫LwIP主要可以分为以下儿个层次,如图3o主要有以下儿个功能模块:操作系统模拟层、网络接口函数、实现TCP/IP协议的各部分模块(IP,UDP,TCP,ICMP,ARP)、缓冲和存储管理子系统、校验和函数。BSDSocketAPILwIPAPIIP,UD匕TCRICM匕ARP操作系统模拟层网络接口驱动层图3LwIP软件层次图LwIPAPI是一组应用程序接口,通过该接口程序员就可以使用LwIP所有的功能。另外,LwIP也为开发者提供了更加高级的BSDSocketAPL它的优点在于

7、可以使用通用的Socket函数来编写网络通讯软件。这为熟悉传统Socket编程人员提供了极大的方便。也就是说对于软件编程人员来说,利用BSDSocketAPI来编写网络程序和在PC上编写网络程序完全一样。当然,为开发者提供BSDSocketAPI也使系统付出了代价。BSDSockets要求在TCP/IP协议栈屮将要发送的数据从应用程序拷贝到内部缓存。需要拷贝数据的原因是通常TCP/IP协议栈和应用程序一般都处在不同的保护区域。大多数时候应用程序是位于用户进程而TCP/IP却在操作系统内核中。这样的拷贝需要分配额外的内存,每个消息包都浪费了双倍内存⑶。而且,花费

8、了不少CPU时间。降低了系统性能。操作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。