- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网卡上电复位
网卡上电复位
RTL8019AS
操作方式Operating Mode:跳线方式Jumperless(不是即插即用Plug and Play)端口I/O base:0240-25FH中断Interrupt: 2/9(程序没有用到网卡中断,所以也可以不用设置在介绍网卡驱动程序之前,先介绍一下RTL8019AS的基本情况:
输入输出地址:共32个,地址偏移量为00H--1FH,(对应于240H--25FH,240H的地址偏移量为0,241H的地址偏移量为1,。。。25FH的地址偏移量为1FH)。
其中00H--0FH共16个地址,为寄存器地址。10H--17H共8个地址,为DMA地址。18H--1FH共8个地址,为复位端口。对于8位的操作方式,上面的地址中只有18个是有用的:00H--0FH共16个寄存器地址。10H DMA地址 (10H--17H的8个地址是一样的,都可以用来做DMA端口,只要用其中的一个就可以了)1FH 复位地址。(18H到1FH共8个地址都是复位地址,每个地址的功能都是一样的,只要其中的一个就可以了,但实际上只有18H,1AH,1CH,1EH这几个复位端口是有效的,其他不要使用,有些兼容卡不支持19H,1BH,1DH等奇数地址的复位)跟复位有关的引脚:
RSTDRV连接到ISA总线的RSTDRV的引脚上。RSTDRV同时也是ISA总线的复位信号。RSTDRV为高电平有效,至少需要 800ns的宽度。给该引脚施加一个1us以上的高电平就可以复位。施加一个高电平之后,然后施加一个低电平。RSTDRV从高电平到低电平之后要等多久,单片机才可以对网卡进行操作?复位的过程将执行一些操作,比如将93c46读入,将内部寄存器初始化等。这些至少需要2毫秒的时间。推荐大家等待更久的时间之后才对网卡操作,比如100毫秒之后才对它操作,以确保完全复位。对RSTDRV可以接单片机的一个引脚进行对网卡的复位。但也可以直接将RSTDRV跟单片机的RESET引脚并联,单片机复位的时候,网卡也复位,以减少一个单片机的引脚的使用。这种情况下,为了保证能够完全复位,可以使用下面介绍的热复位代码。
跟复位有关的寄存器:
18H--1FH共8个地址,为复位端口。对该端口偶数地址的读,或者写入任何数,都引起网卡的复位。跟复位有关的标志位: 其中的第7位RST跟复位有关。网卡执行正确的复位之后该位为1。在linux或windows的驱动程序中,一般在复位之后检查该标志位以确认是否正确复位,特别是在即插即用的检测过程中。对于用单片机控制网卡来说,可以不检查该标志位,因为如果复位不正常的情况通常是网卡坏了。寄存器:00H--0FH共16个地址是寄存器地址。寄存器分成4页PAGE3,但NE2000兼容的寄存器只有3页(Page2),(第四页是RTL8019AS自己定义的,不用去管这些寄存器,因为你对第四页的寄存器的操作仅对这个网卡是有效的,如果换成其他Ne2000兼容的网卡,例如DM9008,DP8390等,程序将无法正常运行。 为了保证驱动程序对所有Ne2000的网卡有效,不要去操作第四页的寄存器)由于寄存器较多,将在用到该寄存器的时候才对该寄存器介绍。对网卡进行复位:这是网卡驱动程序的需要做的第一个内容,由于我们将网卡设置为跳线模式,而不是即插即用的模式,RTL8019AS.PDF中介绍的PLUG and PLAY的一些过程,不需要做,因为单片机的资源有限,能够减少的操作,都尽量减少。
下面介绍网卡的复位子程序:/*
reset rtl8019
*/
void rtl8019as_rst(void)
{
BYTE a;
a=P1;
P1=a0xfb;
//P1^2=0;
}网卡复位两种情况,相当于冷复位相当于热复位对网卡的复位端口的读或写将复位网卡,网卡内部将执行复位过程。读写是随意的,写入任意的数都将复位网卡。 实际上只要使用冷复位就可以了,热复位程序可以不要。热复位主要在电脑里有用,冷复位就像电脑的冷启动,热复位相当于电脑的热启动。
完成复位之后,你要对网卡的工作参数进行设置.以使网卡开始工作.先介绍一个子函数#define reg00 XBYTE[0xc000] /* 240H*//*
select the page0 1 2 or 3
*/
void page(BYTE pagenumber)
{
BYTE data temp;
temp=reg00; //command register
temp=temp0x3b; //注意不是0x3F ,TXP位在平时一定要置为0. pagenumber=pagenumber 6;
temp=temp | pag
您可能关注的文档
最近下载
- 《插花与花艺设计》课件——项目四 礼仪插花.pptx VIP
- 机关干部保密培训课件.pptx VIP
- (高清版)B/T 42583-2023 信息安全技术 政务网络安全监测平台技术规范.pdf VIP
- 棕色中国风项羽刘邦PPT模板.pptx VIP
- 浦发银行公司网银安装使用说明.docx VIP
- 高中物理竞赛知识点总结.pdf VIP
- 2025山西运城夏县招聘司法协理员27人(一)备考试题及答案解析.docx VIP
- 十二年国民基本教育课程纲要国民中学暨普通型高级中等学校.PDF
- 《阿甘正传》电影赏析.pptx VIP
- 《二次函数与一元二次方程、不等式大单元》教学设计【高中数学人教A版必修第一册教案】.docx VIP
文档评论(0)