- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SC和DM的网卡接口设计.doc
基于S3C2410和DM9000的网卡接口设计
在现有嵌入式系统中,大多数选用的是10Mb/s的以太网卡,其传输速率慢,已不能再适应现在人们的要求。而其它10/100Mb/s网卡芯片或工艺复杂或成本较高,不适应工业制造。而DM9000是完全综合的、成本较低的单一快速以太网控制器芯片,具有通用的处理器接口。它被设计为低功耗、高处理性能,而其设计又非常简单,所以可以容易的完成不同系统的软件驱动开发。
??? DM9000——DAVICOM公司的10/100Mb/s自适应以太网芯片。其特点是:支持8位、16位、32位数据总线宽度;寄存器操作简单有效,有成熟的Linux驱动程序支持;3.3V接口电平;成本相当低廉;还可以使用MII接口和PHY芯片连接。
1.硬件设计
??? 硬件上要完成DM9000与ARM芯片S3C2410三大总线连接,以及DM9000与以太网水晶接头RJ45的连接。基于ARM 嵌入式系统和以太网的接口如图1。
图1 ARM 嵌入式系统与以太网的接口电路示意图
??? 实现DM9000与S3C2410连接,必须对两者间的数据、地址、控制三大总线进行连接和转换。S3C2410是32位微处理器,有32根地址线,支持4GB存储空间。其中01G空间被分为8块128M 空间,分别由NGCS0—NGCS7片选。DM9000为16位以太网控制芯片。
??? 对DM9000读写操作,首先对DM9000正确寻址。AEN (地址允许)是输入引脚片选信号。SA4~SA9是地址总线4~9位,当AEN低且SA9和SA8高,而SA7、SA6、SA5、SA4为低时,则DM9000被选中。
DM9000 默认I/0 基地址为300H。CMD 引脚用于设置COMMAND 模式,CMD为高时,选择数据端口。CMD为低时,选地址端口。数据端口和地址端口的地址码由下式决定:
DM9000地址端口=高位片选地址+300H+0H
DM9000数据端口=高位片选地址+300H+4H
其中,高位片选地址由S3C2410的NGCS3提供,即为:0X100000000H。
图2 S3C2410与DM9000的连接电路
??? 实际设计电路如图2所示,其中nWAIT为读写等待信号。由于在S3C2410中以太网卡的中断为9号中断,所以 EINT9_ETHERNET为中断信号。RESET为网卡芯片重启信号。25MHz OSCILLATOR为芯片提供25MHz的工作频率。(在本图中省去了S3C2410芯片)SD0~SD15数据总线与S3C2410的数据总线连接。
2.软件设计
2.1 驱动程序整体设计
??? Linux网络驱动程序的体系结构可划分为从上到下依次为网络协议接口、网络设备接口层、提供实际功能的设备驱动功能层以及网络设备媒介层。Linux内核中提供了网络设备接口级别以上层次的代码,所以移植(或编写)特定网络硬件的驱动程序最主要的工作就是完成设备驱动功能层,主要包括数据的接收、发送等控制。在Linux中所有网络都抽象为一个接口,由结构体 net_device来表示网络设备在内核中的运行情况,即网络设备接口。它既包括了网络设备接口,如回环(loopback)设备,也包括了硬件网络设备接口,如以太网卡。
驱动程序运行时,操作系统先调用检测例程以发现安装的网卡,如网卡支持即插即用,检测例程自动发现网卡参数。否则,驱动程序运行前,设置好网卡参数供驱动程序使用。核心发送数据时,调用驱动程序的发送例程。将数据写入空间,再激活物理发送过程。面向物理层接口程序中断处理例程。当网卡接收数据、发送过程结束或出错时,网卡产生中断,核心调用中断处理例程,再判断中断发生原因,并进行处理。
??? 驱动程序流程如图3,分为主程序和中断服务程序,主程序进行DM9000的初始化和网卡检测、网卡参数获取。中断服务程序以程序查询方式识别中断源,完成相应处理。具体分别如图3(a)和(b)。
图3 DM9000驱动程序流程
??? 在整个过程中,首先要通过检测物理设备的硬件特征判断网络物理设备是否存在,然后决定是否启动这个驱动程序。接着会对设备进行资源配置,比如,即插即用的硬件就可在这个时候进行配置;而在本嵌入式平台上,以太网的MAC地址也在这里指定。配置好硬件占用的资源后,就可向系统申请这些资源,如中断、I/O空间等。最后,对结构体net_device相应的成员变量初始化,使得一个网络设备可被系统使用。
??? 数据包的发送和接收是实现Linux网络驱动程序中关键的过程,对这两个过程处理的好坏将直接影响到网络的整体运行质量。驱动程序中并不存在一个接收方法。应由底层驱动程序来通知系统有数据收到。一般情况下,设备收到数据后都会产生一个中断,在中断处理程序中驱动程序申请一块sk_buff(
您可能关注的文档
- 城市规划原理历试卷.doc
- 城市规划原理历试卷答案.doc
- 城市规划师城市规划管理模拟题八.doc
- 城市规划师考试《城市规划管理》模拟题.doc
- 城市规划毕业外文翻译--地理信息系统在城市规划和管理的应用:以马来西亚为例.doc
- 城市规划选择题含答案.doc
- 城市贫困的代纪传递问题研究.doc
- 城市防洪相关部门基本职责和阶段主要工作表.doc
- 埔筏小学贯彻教育法制法规情况汇报-.doc
- 域与范式司DLR法刑法学DLR的视.doc
- JJF(石化)075-2023石油产品酸值测定仪校准规范.pdf
- 计量规程规范 JJF(石化)074-2023冷滤点测定仪校准规范.pdf
- JJF(石化)074-2023冷滤点测定仪校准规范.pdf
- 《JJF(石化)074-2023冷滤点测定仪校准规范》.pdf
- 计量规程规范 JJF(石化)075-2023石油产品酸值测定仪校准规范.pdf
- 计量规程规范 JJF(石化)076-2023抗乳化性能测定仪校准规范.pdf
- JJF(石化)076-2023抗乳化性能测定仪校准规范.pdf
- 《JJF(石化)075-2023石油产品酸值测定仪校准规范》.pdf
- 计量规程规范 JJF(石化)071-2023热封仪校准规范.pdf
- JJF(石化)071-2023热封仪校准规范.pdf
文档评论(0)