




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)如何控制以太網(wǎng)網(wǎng)卡進(jìn)行傳輸數(shù)據(jù),如何加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),這些都是一些令人感興趣的問(wèn)題??梢哉f(shuō)以太網(wǎng)和TCP/IP協(xié)議已經(jīng)成為使用最廣泛的協(xié)議,而其它總線(xiàn)協(xié)議如RS485、RS232,CAN,LANWORKS,都只是一些局部系統(tǒng)的總線(xiàn)。圍繞以太網(wǎng)而制造的集線(xiàn)器,交換機(jī)已進(jìn)入大小公司,企業(yè),家庭。我現(xiàn)在在眾達(dá)天網(wǎng)公司,由于公司是搞電腦防火墻的,所以對(duì)網(wǎng)絡(luò)的接觸也越來(lái)越多,我研 究的主要是網(wǎng)絡(luò)的底層,并掌握了很多網(wǎng)絡(luò)分析工具如(SNIFFER),對(duì)以太網(wǎng)和TCP/IP協(xié)議的研究就更加深入了。我比較熟悉的網(wǎng)卡是10M的網(wǎng)卡,100M的以太網(wǎng)卡還在研究之中。曾經(jīng)用單片機(jī)(89C52)
2、控制和驅(qū)動(dòng)10M的NE2000兼容型以太網(wǎng)卡與電腦主機(jī)傳輸數(shù)據(jù)?,F(xiàn)在將我的一些研究成果寫(xiě)成一系列的文單,提供給大家。也許有一天研究了100M的網(wǎng)卡之后,可以讓單片機(jī)驅(qū)動(dòng)它,那是可能的事,只不過(guò)接口可能會(huì)復(fù)雜一些。我所寫(xiě)的驅(qū)動(dòng)程序并不是標(biāo)準(zhǔn)的,因?yàn)槲覜](méi)有學(xué)過(guò)UNIX,無(wú)法使用UNIX提供的原代碼。如果能使用UNIX的原代碼,那將是很好的事。我也正在接觸UNIX和VC+,DDK等方面的內(nèi)容,希望有一天能夠重寫(xiě)我現(xiàn)在所寫(xiě)的驅(qū)動(dòng)程序。我知道有很多人在了解單片機(jī)與以太網(wǎng)方面的東西,在BBS上也發(fā)現(xiàn)了很多這方面的內(nèi)容,有些人的研究甚至比我還深入,我也希望能跟這些人交流交流,如果對(duì)我的文章感興趣 ,當(dāng)然可以
3、給我發(fā)電子郵件啦。在接下來(lái)的文章將介紹以太網(wǎng)協(xié)議,網(wǎng)卡驅(qū)動(dòng),IP協(xié)議,ICMP協(xié)議,ARP協(xié)議,TCP協(xié)議等 。-以太網(wǎng)協(xié)議(用于10MBPS的以太網(wǎng),作者以下所說(shuō)的以太網(wǎng)均指10M以太網(wǎng),而不是100M,1000M的以太網(wǎng))以太網(wǎng)協(xié)議有兩種,一種是IEEE802.2/IEEE802.3,還有一種是以太網(wǎng)的封裝格式。現(xiàn)代的操作系統(tǒng)均能同時(shí)支持這兩種類(lèi)型的協(xié)議格式。因此對(duì)我們來(lái)說(shuō)只需要了解其中的一種就夠了,特別是對(duì)單片機(jī)來(lái)說(shuō),不可能支持太多的協(xié)議格式。以太網(wǎng)的物理傳輸幀:(僅介紹第二種格式)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超過(guò)1500字節(jié)可選32位PR:
4、同步位,用于收發(fā)雙方的時(shí)鐘同步,同時(shí)也指明了傳輸?shù)乃俾剩?0M和100M的時(shí)鐘頻率不一樣,所以100M網(wǎng)卡可以兼容10M網(wǎng)卡),是56位的二進(jìn)制數(shù)101010101010.SD: 分隔位,表示下面跟著的是真正的數(shù)據(jù),而不是同步時(shí)鐘,為8位的10101011,跟同步位不同的是最后2位是11而不是10.DA:目的地址,以太網(wǎng)的地址為48位(6個(gè)字節(jié))二進(jìn)制地址,表明該幀傳輸給哪個(gè)網(wǎng)卡.如果為FFFFFFFFFFFF,則是廣播地址,廣播地址的數(shù)據(jù)可以被任何網(wǎng)卡接收到.SA:源地址,48位,表明該幀的數(shù)據(jù)是哪個(gè)網(wǎng)卡發(fā)的,即發(fā)送端的網(wǎng)卡地址,同樣是6個(gè)字節(jié).-TYPE:類(lèi)型字段,表明該幀的數(shù)據(jù)是什么類(lèi)型
5、的數(shù)據(jù),不同的協(xié)議的類(lèi)型字段不同。如:0800H 表示數(shù)據(jù)為IP包,0806H 表示數(shù)據(jù)為ARP包,814CH是SNMP包,8137H為IPX/SPX包,(小于0600H的值是用于IEEE802的,表示數(shù)據(jù)包的長(zhǎng)度。)-DATA:數(shù)據(jù)段 ,該段數(shù)據(jù)不能超過(guò)1500字節(jié)。因?yàn)橐蕴W(wǎng)規(guī)定整個(gè)傳輸包的最大長(zhǎng)度不能超過(guò)1514字節(jié)。(14字節(jié)為DA,SA,TYPE)-PAD:填充位。由于以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于60字節(jié), 除去(DA,SA,TYPE 14字節(jié)),還必須傳輸46字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46字節(jié)時(shí),后面補(bǔ)000000.(當(dāng)然也可以補(bǔ)其它值)-FCS:32位數(shù)據(jù)校驗(yàn)位.為32位
6、的CRC校驗(yàn),該校驗(yàn)由網(wǎng)卡自動(dòng)計(jì)算,自動(dòng)生成,自動(dòng)校驗(yàn),自動(dòng)在數(shù)據(jù)段后面填入.對(duì)于數(shù)據(jù)的校驗(yàn)算法,我們無(wú)需了解.-事實(shí)上,PR,SD,PAD,FCS這幾個(gè)數(shù)據(jù)段我們不用理它 ,它是由網(wǎng)卡自動(dòng)產(chǎn)生的,我們要理的是DA,SA,TYPE,DATA四個(gè)段的內(nèi)容.-所有數(shù)據(jù)位的傳輸由低位開(kāi)始(但傳輸?shù)奈涣魇怯寐鼜厮固鼐幋a的) -以太網(wǎng)的沖突退避算法就不介紹了,它是由硬件自動(dòng)執(zhí)行的.DA+SA+TYPE+DATA+PAD最小為60字節(jié),最大為1514字節(jié).-以太網(wǎng)卡可以接收三種地址的數(shù)據(jù),一個(gè)是廣播地位,一個(gè)是多播地址(我們用不上),一個(gè)是它自已的地址.但網(wǎng)卡也可以設(shè)置為接收任何數(shù)據(jù)包(用于網(wǎng)絡(luò)分析和監(jiān)控
7、).-任何兩個(gè)網(wǎng)卡的物理地址都是不一樣的,是世界上唯一的,網(wǎng)卡地址由專(zhuān)門(mén)機(jī)構(gòu)分配.不同廠家使用不同地址段,同一廠家的任何兩個(gè)網(wǎng)卡的地址也是唯一 的.根據(jù)網(wǎng)卡的地址段(網(wǎng)卡地址的前三個(gè)字節(jié)),可以知道網(wǎng)卡的生產(chǎn)廠家.有些網(wǎng)卡的地址也可以由用戶(hù)去設(shè)定,但一般不需要. (三)ISA總線(xiàn)接口定義ISA ISA=Industry Standard Architecture (isa總線(xiàn))Pin Name Description 引腳 名稱(chēng) 含義A1 /I/O CH CK I/O channel check; active low=parity error A2 D7 Data bit 7 A3 D6 D
8、ata bit 6 A4 D5 Data bit 5 A5 D4 Data bit 4 A6 D3 Data bit 3 A7 D2 Data bit 2 A8 D1 Data bit 1 A9 D0 Data bit 0 A10 I/O CH RDY I/O Channel ready, pulled low to lengthen memory cycles A11 AEN Address enable; active high when DMA controls bus A12 A19 Address bit 19 A13 A18 Address bit 18 A14 A17 Addre
9、ss bit 17 A15 A16 Address bit 16 A16 A15 Address bit 15 A17 A14 Address bit 14 A18 A13 Address bit 13 A19 A12 Address bit 12 A20 A11 Address bit 11 A21 A10 Address bit 10 A22 A9 Address bit 9 A23 A8 Address bit 8 A24 A7 Address bit 7 A25 A6 Address bit 6 A26 A5 Address bit 5 A27 A4 Address bit 4 A28
10、 A3 Address bit 3 A29 A2 Address bit 2 A30 A1 Address bit 1 A31 A0 Address bit 0 B1 GND Ground B2 RESET Active high to reset or initialize system logic B3 +5V +5 VDC B4 IRQ2 Interrupt Request 2 B5 -5VDC -5 VDC B6 DRQ2 DMA Request 2 B7 -12VDC -12 VDC B8 /NOWS No WaitState B9 +12VDC +12 VDC B10 GND Gr
11、ound B11 /SMEMW System Memory Write B12 /SMEMR System Memory Read B13 /IOW I/O Write B14 /IOR I/O Read B15 /DACK3 DMA Acknowledge 3 B16 DRQ3 DMA Request 3 B17 /DACK1 DMA Acknowledge 1 B18 DRQ1 DMA Request 1 B19 /REFRESH Refresh B20 CLOCK System Clock (67 ns, 8-8.33 MHz, 50% duty cycle) B21 IRQ7 Inte
12、rrupt Request 7 B22 IRQ6 Interrupt Request 6 B23 IRQ5 Interrupt Request 5 B24 IRQ4 Interrupt Request 4 B25 IRQ3 Interrupt Request 3 B26 /DACK2 DMA Acknowledge 2 B27 T/C Terminal count; pulses high when DMA term. count reached B28 ALE Address Latch Enable B29 +5V +5 VDC B30 OSC High-speed Clock (70 n
13、s, 14.31818 MHz, 50% duty cycle) B31 GND Ground C1 SBHE System bus high enable (data available on SD8-15) C2 LA23 Address bit 23 C3 LA22 Address bit 22 C4 LA21 Address bit 21 C5 LA20 Address bit 20 C6 LA18 Address bit 19 C7 LA17 Address bit 18 C8 LA16 Address bit 17 C9 /MEMR Memory Read (Active on a
14、ll memory read cycles) C10 /MEMW Memory Write (Active on all memory write cycles) C11 SD08 Data bit 8 C12 SD09 Data bit 9 C13 SD10 Data bit 10 C14 SD11 Data bit 11 C15 SD12 Data bit 12 C16 SD13 Data bit 13 C17 SD14 Data bit 14 C18 SD15 Data bit 15 D1 /MEMCS16 Memory 16-bit chip select (1 wait, 16-bi
15、t memory cycle) D2 /IOCS16 I/O 16-bit chip select (1 wait, 16-bit I/O cycle) D3 IRQ10 Interrupt Request 10 D4 IRQ11 Interrupt Request 11 D5 IRQ12 Interrupt Request 12 D6 IRQ15 Interrupt Request 15 D7 IRQ14 Interrupt Request 14 D8 /DACK0 DMA Acknowledge 0 D9 DRQ0 DMA Request 0 D10 /DACK5 DMA Acknowle
16、dge 5 D11 DRQ5 DMA Request 5 D12 /DACK6 DMA Acknowledge 6 D13 DRQ6 DMA Request 6 D14 /DACK7 DMA Acknowledge 7 D15 DRQ7 DMA Request 7 D16 +5 V D17 /MASTER Used with DRQ to gain control of system D18 GND Ground Note: Direction is Motherboard relative ISA-Cards. (四)89C52單片機(jī)與網(wǎng)卡接口電路圖電路是由作者自己設(shè)計(jì)的,可能不是很標(biāo)準(zhǔn),也
17、可能不是理想的,但是它可以實(shí)現(xiàn)。網(wǎng)卡是ne2000兼容型的網(wǎng)卡。作者所用的網(wǎng)卡是TP-LINK的TE-2008,接口為ISA接口,網(wǎng)卡的主芯片是RTL8019AS.此款網(wǎng)卡在電腦城可以買(mǎi)到。價(jià)錢(qián)不超過(guò)50元。如果買(mǎi)不到,也可以使用別的ne2000的兼容網(wǎng)卡,例如芯片Davicom的DM9008,NSI的DP8390,MXIC的MX98905,還有華邦的,dlink的。這些芯片的資料可以在本站的硬件程序下載區(qū)下載。但推薦使用RTL8019AS。為閱讀以下的內(nèi)容,請(qǐng)?jiān)诒菊鞠螺dRTL8019AS的芯片資料。這是縮小的圖,點(diǎn)擊這里放大。放大的圖可能還不是很清楚,要看更為清楚的圖,點(diǎn)擊這里下載SCH電路
18、圖。(可以用PROTEL 98或PROTEL 99打開(kāi)。如果你沒(méi)有protel98,可以在本站下載protel98安裝程序(要下載幾個(gè)小時(shí))。_電路用到的主要芯片有MAX232(串口的電平轉(zhuǎn)換),24c02(IIC總線(xiàn)的 eeprom),373(8位鎖存),62256(32K的RAM).其中的24C02也可以不要,可以通過(guò)存取網(wǎng)卡上的93C46來(lái)實(shí)現(xiàn),但我沒(méi)有這樣 做。62256為外部32K的Ram,也可以不用,可以用網(wǎng)卡上的RAM來(lái)代替,但是網(wǎng)卡上的Ram的存取比較復(fù)雜,速度會(huì)比加62256慢。為了編程的 方便,和實(shí)現(xiàn)快的傳輸速度,以及為完成更為復(fù)雜的應(yīng)用,推薦使用62256,用77E58單
19、片機(jī)和外加62256,可以實(shí)現(xiàn)500KBPS以上的傳輸速 度。電路圖上方的兩大塊為ISA槽,網(wǎng)卡是插在這ISA槽上的。本站還有一個(gè)一體化的電路圖,是將RTL8019AS也做到板上的,來(lái)自http:/8052.lphard.cz ,這個(gè)網(wǎng)站還有現(xiàn)成的程序,是用asm寫(xiě)的,用到的I/O 300H.作者以下文章的描述全部基于自己的電路圖,而不是來(lái)自8052.lphard.cz的電路圖,請(qǐng)不要混在一起。作者的全部程序用C51編寫(xiě),而不是匯編,為了方便大家移植和擴(kuò)充。(五)接口電路圖詳解(1)-89c52單片機(jī)部分ISA接口的A,B部分.這是RTL8019網(wǎng)卡ISA的前半部分A1-A31(1.31),B
20、1-B31(32.62)共62個(gè)引腳.DATA0-DATA7是網(wǎng)卡的8位數(shù)據(jù)總線(xiàn),接單片機(jī)的P0口.RESDRV(33腳)(RESET)接單片機(jī)的T0(P3.4),單片機(jī)用P3.4來(lái)復(fù)位網(wǎng)卡。IRQ9接單片機(jī)的INT0(P3.2),IRQ9是網(wǎng)卡的中斷9,接到單片機(jī)的中斷0上。(但我的程序沒(méi)有使用中斷操作,我是用查詢(xún)操作的)IOR,IOW接到單片機(jī)的p3.6,p3.7(/WR,/RD)GND是地,VCC為5V的電源。 A0-A19為網(wǎng)卡的地址線(xiàn),共20根,我們用到網(wǎng)卡的地址為十六進(jìn)制的0240H-025FH, 轉(zhuǎn)換為二進(jìn)制為地址線(xiàn)A19A18A17A16A15A14A13A12A11A10A9
21、A8A7A6A5A4A3A2A1A0240H00000000001001000000.000000000010010XXXXX25FH00000000001001011111我們看到從地址240H到25FH,地址線(xiàn)的A19-A5是固定的 000000000010010,因此A10-A19接地,A7-A8接地,ADDR8-ADDR15對(duì)應(yīng)地址線(xiàn)的A0-A6.(實(shí)際上A5也可以 接地,這樣可以減少一個(gè)單片機(jī)的引腳。這是作者在設(shè)計(jì)電路時(shí)沒(méi)有注意到,同時(shí)A9也可以接VCC)。A0-A6(ADDR8-ADDR15)接單片機(jī)的P2口。因此當(dāng)P2口為地址線(xiàn) A6,A9(ADDR15)A5(ADDR
22、13)A4(ADDR12)A3(ADDR11)A2(ADDR10A1(ADDR9)A0(ADDR8) 10XXXXXP2口 P2.7P2.5P2.4P2.3P2.2P2.1P2.0 10XXXXX當(dāng)P2口為二進(jìn)制 1X0XXXXX時(shí) 將選中網(wǎng)卡的I/O地址空間。在程序里,我使用110XXXXX來(lái)選中網(wǎng)卡的地址。地址映射: 單片機(jī)(P2口)也就是DPH網(wǎng)卡(I/O) 11000000 (0C0H)240H 110XXXXX2XXH 11011111 (0DFH)25FH我在程序里定義了 reg00-r
23、eg1f 來(lái)對(duì)應(yīng)240H25FH端口。#define reg00 XBYTE0xc000 /* 240H*/#define reg01 XBYTE0xc100 /* 241H*/#define reg02 XBYTE0xc200#define reg03 XBYTE0xc300.#define reg1f XBYTE0xDF00 /* 25FH*/ISA接口的C,D部分 這 是網(wǎng)卡的接口的后半部分,ISA槽的擴(kuò)展部分。只用到GND,VCC,IOCS16.其中的IOCS16是16位I/O的選擇腳。當(dāng)網(wǎng)卡上電復(fù)位的時(shí)候, 這個(gè)腳為網(wǎng)卡的輸入腳,如果這個(gè)腳為低電平,網(wǎng)卡將選
24、擇8位模式,如果這個(gè)腳為高電平,網(wǎng)卡將選擇16位的模式。我用了個(gè)電阻R10下拉,因此在復(fù)位時(shí), 這個(gè)腳為低電平,網(wǎng)卡選擇8位模式。網(wǎng)卡可以兼容8位和16位操作。由于89c52是8位的 數(shù)據(jù)總線(xiàn),因此要用網(wǎng)卡的8位總線(xiàn)模式(每次讀入或?qū)懭?個(gè)字節(jié))。如果你是用80c196或dsp等16位總線(xiàn)的芯片的話(huà),你可以使用16位的操作模 式,這樣有更快的傳輸速度(每次讀入或?qū)懭?個(gè)字節(jié))。(16位總線(xiàn)時(shí),這個(gè)下拉電阻去掉,不用接,同時(shí)網(wǎng)卡的DATA8-DATA15要接到你的 CPU的數(shù)據(jù)815上。DMA操作為16位)(六)接口電路圖詳解(2)-89c52單片機(jī)部分外部存儲(chǔ)器62256和373。-這是外部存
25、儲(chǔ)器62256(32K字節(jié)的RAM),62256的DATA0-DATA7接單片機(jī)的P0口。/OE接單片機(jī)的/RD/WE接單片機(jī)的/WR/CE接單片機(jī)的P2.7A0-A14接單片機(jī)的P2.0-P2.6-373的DATA0-DATA7接單片機(jī)的P0口/OE接地LE接單片機(jī)的ALE。因此外部存儲(chǔ)器62256占用單片機(jī)的外部數(shù)據(jù)地址空間0000H-7FFFH,共32K字節(jié)。我們使用外部RAM的目的是提高單片機(jī)的數(shù)據(jù)傳輸速度,和復(fù)雜的TCP/IP的處理。由于以太網(wǎng)的包最大可以有1500多字節(jié),89c52單片機(jī)是無(wú)法存 儲(chǔ)這么大的包的,只有放到外部的RAM里。同時(shí)這外部的RAM也用作串行口的輸入輸出緩沖。
26、以使單片機(jī)可以高速的吞吐數(shù)據(jù)。(用網(wǎng)卡上的RAM來(lái)代替 62256會(huì)影響速度)MAX232,24c02 24C02是IIC總線(xiàn)的eeprom,可以用來(lái)存儲(chǔ)用戶(hù)的一些設(shè)置,比如IP地址,網(wǎng)關(guān)等。SCL接單片機(jī)的T1(P3.5)SDA接單片機(jī)的INT1(P3.3)MAX232為串口電平轉(zhuǎn)換電路。CPUTXD接單片機(jī)的TXDCPURXD接單片機(jī)的RXDPCRXD和PCTXD是RS232電平,為標(biāo)準(zhǔn)串口電平。數(shù)據(jù)可以從串口輸入到單片機(jī),單片機(jī)再把數(shù)據(jù)送到網(wǎng)卡傳出去。晶振可以用11.0592Mhz,也可以用22.1184Mhz,或更高的頻率。 (七)網(wǎng)卡上電復(fù)位-當(dāng)你買(mǎi)到一個(gè)新的RTL8019AS網(wǎng)卡,
27、你要先將該網(wǎng)卡設(shè)置為以下的配置:操作方式Operating Mode:跳線(xiàn)方式Jumperless(不是即插即用Plug and Play)端口I/O base:0240-25FH中斷Interrupt: 2/9(我的程序沒(méi)有用到網(wǎng)卡中斷,所以也可以不用設(shè)置)你要將這個(gè)網(wǎng)卡插到你的電腦里,用這個(gè)網(wǎng)卡帶的設(shè)置程序RSET8019.exe將這個(gè)卡按照上面的配置設(shè)置好。(最好在純DOS方式下設(shè)置) . 在介紹網(wǎng)卡驅(qū)動(dòng)程序之前,先介紹一下RTL8019AS的基本情況:輸入輸出地址:共32個(gè),地址偏移量為00H-1FH,(對(duì)應(yīng)于240H25FH,240H的地址偏移量為0,241H的地址偏移量為1,。25
28、FH的地址偏移量為1FH)。其中00H0FH共16個(gè)地址,為寄存器地址。10H17H共8個(gè)地址,為DMA地址。18H1FH共8個(gè)地址,為復(fù)位端口。對(duì)于8位的操作方式,上面的地址中只有18個(gè)是有用的:00H0FH共16個(gè)寄存器地址。10H DMA地址 (10H17H的8個(gè)地址是一樣的,都可以用來(lái)做DMA端口,只要用其中的一個(gè)就可以了)1FH 復(fù)位地址。(18H到1FH共8個(gè)地址都是復(fù)位地址,每個(gè)地址的功能都是一樣的,只要其中的一個(gè)就可以了,但實(shí)際上只有18H,1AH,1CH,1EH這 幾個(gè)復(fù)位端口是有效的,其他不要使用,有些兼容卡不支持19H,1BH,1DH等奇數(shù)地址的復(fù)位)跟復(fù)位有關(guān)的引腳:R
29、STDRV連接到ISA總線(xiàn)的RSTDRV的引腳上。RSTDRV同時(shí)也是ISA總線(xiàn)的復(fù)位信號(hào)。RSTDRV為高電平有效,至少需要 800ns的寬度。給該引腳施加一個(gè)1us以上的高電平就可以復(fù)位。施加一個(gè)高電平之后,然后施加一個(gè)低電平。RSTDRV從高電平到低電平之后要等多久,單片機(jī)才可以對(duì)網(wǎng)卡進(jìn)行操作?復(fù)位的過(guò)程將執(zhí)行一些操作,比如將93c46讀入,將內(nèi)部寄存器初始化等。這些至少需要2毫秒的時(shí)間。我們推薦大家等待更久的時(shí)間之后才對(duì)網(wǎng)卡操作,比如100毫秒之后才對(duì)它操作,以確保完全復(fù)位。對(duì)RSTDRV可以接單片機(jī)的一個(gè)引腳進(jìn)行對(duì)網(wǎng)卡的復(fù)位。但也可以直接將RSTDRV跟單片機(jī)的RESET引腳并聯(lián),單
30、片機(jī)復(fù)位的時(shí)候,網(wǎng)卡也復(fù)位,以減 少一個(gè)單片機(jī)的引腳的使用。這種情況下,為了保證能夠完全復(fù)位,可以使用下面介紹的熱復(fù)位代碼。 跟復(fù)位有關(guān)的寄存器:18H1FH共8個(gè)地址,為復(fù)位端口。對(duì)該端口偶數(shù)地址的讀,或者寫(xiě)入任何數(shù),都引起網(wǎng)卡的復(fù)位。跟復(fù)位有關(guān)的標(biāo)志位: 其中的第7位RST跟復(fù)位有關(guān)。網(wǎng)卡執(zhí)行正確的復(fù)位之后該位為1。在linux或windows的驅(qū)動(dòng)程序中,一般在復(fù)位之后檢查該標(biāo)志位以確認(rèn)是否正確復(fù)位,特別是在即插即用的檢測(cè)過(guò) 程中。對(duì)于我們用單片機(jī)控制網(wǎng)卡來(lái)說(shuō),我們可以不檢查該標(biāo)志位,因?yàn)槿绻麖?fù)位不正常的情況通常是網(wǎng)卡壞了。寄存器:00H0FH共16個(gè)地址是寄存器地址。寄存器分成4 頁(yè)P(yáng)
31、AGE0-PAGE3,但NE2000兼容的寄存器只有3頁(yè)(Page0-Page2),(第四頁(yè)是RTL8019AS自己定義的,我們不用去管這 些寄存器,因?yàn)槟銓?duì)第四頁(yè)的寄存器的操作僅對(duì)這個(gè)網(wǎng)卡是有效的,如果你換成其他Ne2000兼容的網(wǎng)卡,例如DM9008,DP8390等,你的程序?qū)o(wú) 法正常運(yùn)行。 為了保證驅(qū)動(dòng)程序?qū)λ蠳e2000的網(wǎng)卡有效,不要去操作第四頁(yè)的寄存器)由于寄存器較多,我將在用到該寄存器的時(shí)候才對(duì)該寄存器介紹。對(duì)網(wǎng)卡進(jìn)行復(fù)位:這是網(wǎng)卡驅(qū)動(dòng)程序的需要做的第一個(gè)內(nèi)容,由于我們將網(wǎng)卡設(shè)置為跳線(xiàn)模式,而不是即插即用的模式,RTL8019AS.PDF中介紹的PLUG and PLAY的一
32、些過(guò)程,我們不需要做,因?yàn)閱纹瑱C(jī)的資源有限,能夠減少的操作,都盡量減少。程序從main()開(kāi)始執(zhí)行:#include <my.h> /*my.h 為作者所用的頭文件,包含所有89c52寄存器的大寫(xiě)和小寫(xiě)的定義,和一些常用的子函數(shù),一些宏的定義*/main()delaymsecond(10);/延時(shí)大約1秒,保證電源穩(wěn)定和網(wǎng)卡自身的上電完成。netcardreset();/復(fù)位網(wǎng)卡的子程序 。下面介紹網(wǎng)卡的復(fù)位子程序:#define reg1f XBYTE0xdf00 /網(wǎng)卡的復(fù)位端口的地址,對(duì)應(yīng)于網(wǎng)卡的地址25FH。#define uint unsigned int /uint 代
33、表unsigned int ,作者一般使用縮寫(xiě)uint#define uchar unsigned char /uchar 代表unsigned char,我比較懶,不愿意多寫(xiě)sbit reset=p34; /單片機(jī)的p3.4腳連接到網(wǎng)卡的RSTDRV復(fù)位引腳void netcardreset()uint data i;uchar data temp;reset=1; /使網(wǎng)卡的RSTDRV引腳變成高電平,網(wǎng)卡是高電平復(fù)位的。for(i=0;i<250;i+);/延時(shí)程序,至少需要reset=0; /使網(wǎng)卡的RSTDRV引腳變成低電平,網(wǎng)卡上電復(fù)位完畢f(xié)or(i=0;i<250;i
34、+);temp=reg1f;/讀網(wǎng)卡的復(fù)位端口reg1f=temp; /寫(xiě)網(wǎng)卡的復(fù)位端口for(i=0;i<250;i+); 上面所講的實(shí)際上是網(wǎng)卡復(fù)位的兩種情況,reset=1;reset=0相當(dāng)于冷復(fù)位temp=reg1f;reg1f=temp相當(dāng)于熱復(fù)位對(duì)網(wǎng)卡的復(fù)位端口的讀或?qū)憣?fù)位網(wǎng)卡,網(wǎng)卡內(nèi)部將執(zhí)行復(fù)位過(guò)程。讀寫(xiě)是隨意的,寫(xiě)入任意的數(shù)都將復(fù)位網(wǎng)卡。 實(shí)際上只要使用冷復(fù)位就可以了,熱復(fù)位程序可以不要。熱復(fù)位主要在電腦里有用,冷復(fù)位就像電腦的冷啟動(dòng),熱復(fù)位相當(dāng)于電腦的熱啟動(dòng)。作者的復(fù)位網(wǎng)卡的過(guò)程是簡(jiǎn)化了的,一個(gè)電腦里的復(fù)位過(guò)程是比較復(fù)雜的,如果你有網(wǎng)卡驅(qū)動(dòng)的UNIX,LINUX程序
35、的源代碼,它的代碼將會(huì)做一些判斷和檢查,檢查網(wǎng)卡是否存在,和是否工作正常,和是否存在地址和中斷沖突 。但在我們的這個(gè)系統(tǒng)里可以省去這些,我們認(rèn)為網(wǎng)卡的地址和I/O是沒(méi)有沖突和正常工作的。當(dāng)然如果讀者愿意,也可以寫(xiě)一些檢查代碼。(八)網(wǎng)卡初始化- 完成復(fù)位之后,你要對(duì)網(wǎng)卡的工作參數(shù)進(jìn)行設(shè)置.以使網(wǎng)卡開(kāi)始工作.先介紹一個(gè)子函數(shù)#define reg00 XBYTE0xc000 /對(duì)應(yīng)于地址240H 為命令寄存器CR地址void page(uchar pagenumber) uchar data temp; temp=reg00;/command register temp=temp&0x3
36、f;pagenumber=pagenumber <<6; temp=temp | pagenumber;reg00=temp;錯(cuò)誤修正:(2001年11月10日) :以上程序有問(wèn)題,在中斷驅(qū)動(dòng)或發(fā)送數(shù)據(jù)包不作等待時(shí),因?yàn)榘l(fā)送數(shù)據(jù)包的命令是讓TXP置位,如果在發(fā)送數(shù)據(jù)包的過(guò)程中,使用該函數(shù),就會(huì)不斷地向外發(fā)送 數(shù)據(jù)包.原因是TXP置位之后,只能是發(fā)完數(shù)據(jù)包的時(shí)候,由網(wǎng)卡內(nèi)部將TXP位清0,命令不能使TXP清0,對(duì)該位寫(xiě)入0沒(méi)有作用.讀取時(shí)要屏蔽該位,上 面的程序修正如下,請(qǐng)用戶(hù)使用下面的程序:void page(uchar pagenumber)uchar data temp;tem
37、p=reg00;temp=temp&0x3B; /注意不是0x3F ,TXP位在平時(shí)一定要置為0.pagenumber=pagenumber<<6temp=temp|pagenumber;reg00=temp;從實(shí)驗(yàn)當(dāng)中也發(fā)現(xiàn),只要再置位TXP位就可以重發(fā)該數(shù)據(jù)包(重發(fā)數(shù)據(jù)包時(shí),不需要設(shè)置TPSTART,TBCR0,TBCR1). 作用是選擇指定的頁(yè),網(wǎng)卡共有4頁(yè)寄存器,Ne2000兼容的有3頁(yè)。第四頁(yè)可以不用。 reg00命令寄存器:CR,command register,地址偏移量00H,為一個(gè)字節(jié)位76543210名字PS1PS0RD2RD1RD0TXPSTASTP&
38、#160; PS1和PS0這兩個(gè)位用來(lái)選擇寄存器頁(yè),PS1 PS0=00時(shí)選擇寄存器頁(yè)0,=01時(shí)選擇寄存器頁(yè)1, =10時(shí)選擇寄存器頁(yè)2,=11時(shí)選擇寄存器頁(yè)3.上面的程序的參數(shù)為pagenumber,用來(lái)指定第幾頁(yè)。temp=reg00 ;/讀入命令寄存器的值。temp=temp&0x3f;/將高2位,即PS1,PS0清0pagenumber=pagenumber<<6;/將低2位移至高端temp=temp|pagenumber, /寫(xiě)入高2位reg00=temp; /設(shè)置第幾
39、頁(yè)當(dāng)然也可以寫(xiě)成更加簡(jiǎn)單的幾句:temp=reg00&0x3f;pagenumber=pagenumber<<6;reg00=temp|pagenumber; 但這樣對(duì)讀者來(lái)說(shuō)不好理解。從執(zhí)行的速度來(lái)說(shuō),上面的代碼也不是最快的。但作者主要講述原理,而不是探討最快的實(shí)現(xiàn)。RD2,RD1,RD0這3個(gè)位代表要執(zhí)行的功能。001 讀網(wǎng)卡內(nèi)存010 寫(xiě)網(wǎng)卡內(nèi)存011 發(fā)送網(wǎng)卡數(shù)據(jù)包1* 完成或結(jié)束DMA的讀寫(xiě)操作TXP這個(gè)位寫(xiě)入1時(shí)發(fā)送數(shù)據(jù)包,發(fā)完自動(dòng)清零STA,STP這兩個(gè)位用來(lái)啟動(dòng)命令或停止命令10 啟動(dòng)命令01 停止命令下面介紹網(wǎng)卡的初始化子程序:void ne2000ini
40、t() reg00=0x21; /選擇頁(yè)0的寄存器,網(wǎng)卡停止運(yùn)行,因?yàn)檫€沒(méi)有初始化。reg01=0x4c; /寄存器Pstartreg02=0x80; /Pstopreg03=0x4c; /BNRYreg04=0x45; /TPSRreg0c=0xcc; /RCRreg0d=0xe0; /TCRreg0e=0xc8; /DCR 數(shù)據(jù)配置寄存器 8位數(shù)據(jù)dma reg0f=0x00; /IMR disable all interrupt page(1); /選擇頁(yè)1的寄存器reg07=0x4d; /CURRreg08=0x00; /MAR0reg09=0x41; /MAR1reg0a=0x00;
41、 /MAR2reg0b=0x80; /MAR3reg0c=0x00; /MAR4reg0d=0x00; /MAR5reg0e=0x00; /MAR6reg0f=0x00; /MAR7reg00=0x22;/選擇頁(yè)0寄存器,網(wǎng)卡執(zhí)行命令。 PSTART 接收緩沖區(qū)的起始頁(yè)的地址。PSTOP 接收緩沖區(qū)的結(jié)束頁(yè)地址。(該頁(yè)不用于接收)BNRY 指向最后一個(gè)已經(jīng)讀取的頁(yè)(讀指針)CURR 當(dāng)前的接收結(jié)束頁(yè)地址。(寫(xiě)指針)網(wǎng)卡含有16K字節(jié)的RAM,地址為0x4000-0x7fff(指的是網(wǎng)卡上的存儲(chǔ)地址,而不是ISA總線(xiàn)的地址,是網(wǎng)卡工作用的存儲(chǔ)器),每256個(gè)字節(jié)稱(chēng)為一頁(yè),共有64頁(yè)。頁(yè)的地址就是
42、地址的高8位,頁(yè)地址為0x40-0x7f 。這16k的ram的一部分用來(lái)存放接收的數(shù)據(jù)包,一部分用來(lái)存儲(chǔ)待發(fā)送的數(shù)據(jù)包。當(dāng)然也可以給用戶(hù)使用。(例如把網(wǎng)卡設(shè)置成使用8K的ram,另外8K的ram就可以用來(lái)給單片機(jī)作為存儲(chǔ)器,但我沒(méi)有這樣做,原因是操作網(wǎng)卡上的ram比較復(fù)雜)在我的程序中使用0x40-0x4B為網(wǎng)卡的發(fā)送緩沖區(qū),共12頁(yè),剛好可以存儲(chǔ)2個(gè)最大的以太網(wǎng)包。使用0x4c0x7f為網(wǎng)卡的接收緩沖區(qū), 共52頁(yè)。因此PSTART=0x4c,PSTOP=0x80(0x80為停止頁(yè),就是直到0x7f,是接收緩沖區(qū),不包括0x80) 剛開(kāi)始,網(wǎng)卡沒(méi)有接收到任何數(shù)據(jù)包,所以,BNRY設(shè)置為指向第
43、一個(gè)接收緩沖區(qū)的頁(yè)0x4c) 這四個(gè)寄存器用于接收的設(shè)置。CURR是網(wǎng)卡寫(xiě)內(nèi)存的指針。它指向當(dāng)前正在寫(xiě)的頁(yè)的下一頁(yè)。那么初始化它就應(yīng)該指向0x4c10x4d 。網(wǎng)卡寫(xiě)完接收緩沖區(qū)一頁(yè),就將這個(gè)頁(yè)地址加一,CURRCURR1。這是網(wǎng)卡自動(dòng)加的。當(dāng)加到最后的空頁(yè)(這里是0x80,PSTOP)時(shí),將CURR置為接收緩沖區(qū)的第一頁(yè)(這里是 0x4c,PSTART),也是網(wǎng)卡自動(dòng)完成的。當(dāng)CURRBNRY時(shí),表示緩沖區(qū)全部被存滿(mǎn),數(shù)據(jù)沒(méi)有被用戶(hù)讀走,這時(shí)網(wǎng)卡將停止往內(nèi)存寫(xiě)數(shù)據(jù),新收 到的數(shù)據(jù)包將被丟棄不要,而不覆蓋舊的數(shù)據(jù)。此時(shí)實(shí)際上出現(xiàn)了內(nèi)存溢出。而B(niǎo)NRR要由用戶(hù)來(lái)操作。用戶(hù)從網(wǎng)卡讀走一頁(yè)數(shù)據(jù),要將
44、BNRY加一,然后再寫(xiě)到BNRY寄存器。 當(dāng)BNRY加到最后的空頁(yè)(0x80,PSTOP)時(shí),同樣要將BNRY變成第一個(gè)接收頁(yè)(PSTART,0x4c)BNRY=0x4c;CURR和BNRY主要用來(lái)控制緩沖區(qū)的存取過(guò)程,保證能順次寫(xiě)入和讀出)。當(dāng)CURR=BNRY+1(或當(dāng)BNRY0x7f ,CURR=0x4c)時(shí),網(wǎng)卡的接收緩沖區(qū)里沒(méi)有數(shù)據(jù),表示沒(méi)有收到數(shù)據(jù)包。 用戶(hù)通過(guò)這個(gè)判斷知道沒(méi)有包可以讀。當(dāng)上述條件不成立時(shí),表示接收到新的數(shù)據(jù)包。然后用戶(hù)應(yīng)該讀取數(shù)據(jù)包,直到上述條件成立時(shí),表示所以數(shù)據(jù)包已經(jīng)讀完, 此時(shí)停止讀取數(shù)據(jù)包。TPSR 為發(fā)送頁(yè)的起始頁(yè)地址。初始化為指向第一個(gè)發(fā)送緩沖區(qū)的頁(yè),
45、0x40。RCR 接收配置寄存器,設(shè)置為使用接收緩沖區(qū),僅接收自己的地址的數(shù)據(jù)包(以及廣播地址數(shù)據(jù)包)和多點(diǎn)播送地址包,小于64字節(jié)的包丟棄(這是協(xié)議的規(guī)定,設(shè)置成接收是用于網(wǎng)絡(luò)分析),校驗(yàn)錯(cuò)的數(shù)據(jù)包不接收。TCR 發(fā)送配置寄存器,啟用crc自動(dòng)生成和自動(dòng)校驗(yàn),工作在正常模式。DCR 數(shù)據(jù)配置寄存器,設(shè)置為使用FIFO緩存,普通模式,8位數(shù)據(jù)傳輸模式,字節(jié)順序?yàn)楦呶蛔止?jié)在前,低位字節(jié)在后(符合我們的習(xí)慣)(如果用16位的單片機(jī),設(shè)置成16位的數(shù)據(jù)總線(xiàn)操作會(huì)更快,但80c52是8位總線(xiàn)的單片機(jī))IMR 中斷屏蔽寄存器,設(shè)置成0x00,屏蔽所有的中斷。設(shè)置成0xff將允許中斷)MAR0MAR8是設(shè)
46、置多點(diǎn)播送的參數(shù),這點(diǎn)我也不是很清楚,我從電腦讀出來(lái)是什么數(shù),我也將這8個(gè)寄存器設(shè)置成這幾個(gè)數(shù). 由于我們不使用多點(diǎn)播送,所以不要緊,只要保證網(wǎng)卡能正常工作就可以了。PAGE2的寄存器是只讀的,所以不可以設(shè)置,不用設(shè)置,PAGE3的寄存器不是NE2000兼容的,所以也不用設(shè)置。 (九)讀取網(wǎng)卡的網(wǎng)卡地址- 完成上面的過(guò)程之后,網(wǎng)卡還不能正確的接收數(shù)據(jù)包,因?yàn)槲覀冞€沒(méi)有對(duì)網(wǎng)卡的物理地址(網(wǎng)卡地址,48位的地址)進(jìn)行設(shè)置。網(wǎng)卡還不知道它應(yīng)該什么地址的數(shù)據(jù)包。要對(duì)網(wǎng)卡的物理地址進(jìn)行設(shè)置,就必須知道網(wǎng)卡的物理地址是多少。讀取網(wǎng)卡的物理地址的子程序:union u uint word; structuc
47、har high;uchar low;bytes; /我定義的數(shù)據(jù)結(jié)構(gòu),為兩個(gè)字節(jié)的結(jié)構(gòu) /,可以按照uint(unsigned int)來(lái)讀取,也可以按照高低字節(jié)high和low來(lái)讀取。 union u mynodeid3;/存儲(chǔ)網(wǎng)卡的物理地址union u protocal; /臨時(shí)變量void readmynodeid() uchar data i,temp;page(0);reg09=0;/寄存器RSAR1 dma read highaddress=0 reg08=0;/RSAR0 dma read lowaddress=0;reg0b=0; /RBCR1 read count hig
48、h reg0a=12;/RBCR0 count low reg00=0x0a;/dma read and startfor (i=0;i<6;i+) temp=reg10;/讀取一個(gè)字節(jié)if (i % 2=0)protocal.bytes.high=temp;else protocal.bytes.low=temp;mynodeidi/2.word=protocal.word;temp=reg10;/讀取一個(gè)重復(fù)的字節(jié),這個(gè)字節(jié)被丟棄-網(wǎng)卡除了16k(地址0x40000x7FFFF)的接收發(fā)送存儲(chǔ)RAM之外,還有別的RAM,還有一塊大小為256字節(jié)的RAM,地址為0x00000x00FF
49、,這部分RAM是eeprom 93C46的影像存儲(chǔ)(不完全一樣),存儲(chǔ)的內(nèi)容的一部分跟93C46存儲(chǔ)的是一樣的。 網(wǎng)卡在上電的時(shí)候?qū)?3C46的一部分內(nèi)容讀到這256字節(jié)的RAM里。存儲(chǔ)是WORD類(lèi)型,其中地址:0x0000-0x000b共12個(gè)字節(jié)是網(wǎng)卡的物理地址。(網(wǎng)卡的物理地址是6個(gè)字節(jié)的,為什么要用12字節(jié)?因?yàn)檫@12字節(jié)是重復(fù)存儲(chǔ)的。例如網(wǎng)卡物理地址0x52544CC118CF,存儲(chǔ)在0x0000-0x000b里是這樣的:525254544C4CC1C11818CFCF我們可以看到單和雙的地址存儲(chǔ)的是一樣的。0x000b后面的地址存儲(chǔ)的是生產(chǎn)廠商的代碼和產(chǎn)品標(biāo)識(shí)代碼,也是單雙地址重復(fù)
50、存儲(chǔ),這里就不說(shuō)了。 這個(gè)程序又用到4個(gè)新的寄存器:RSAR1 RSAR0 RBCR1 RBCR0這4個(gè)寄存器是專(zhuān)門(mén)用于讀取網(wǎng)卡上面的ram的。RSAR1 網(wǎng)卡上的RAM的起始地址高8位RSAR0 網(wǎng)卡上的RAM的起始地址低8位程序中的reg09,reg08都設(shè)成0,所以是從網(wǎng)卡上的0x0000地址開(kāi)始讀。RBCR1 要讀取的字節(jié)數(shù)的計(jì)數(shù)(高8位)RBCR0 要讀取的字節(jié)數(shù)的計(jì)數(shù)(低8位)程序中的reg0b0,reg0a=12,所以要讀取12個(gè)字節(jié)。 reg00=0x0a 的意思是進(jìn)行DMA的內(nèi)存讀取操作。結(jié)果將網(wǎng)卡地址存儲(chǔ)在mynodeid3(共6個(gè)字節(jié))里。 (十)設(shè)置網(wǎng)卡地址- 很久沒(méi)有
51、寫(xiě)網(wǎng)卡的文章了,很多網(wǎng)友很關(guān)心其他方面的內(nèi)容,也只好寫(xiě)下去.以下程序是設(shè)置網(wǎng)卡的地址,只有符合這個(gè)地址的數(shù)據(jù)包才接收. void writemynodeid() page(1);reg01=mynodeid0.bytes.high; /PAR0reg02=mynodeid0.bytes.low; /PAR1reg03=mynodeid1.bytes.high; /PAR2reg04=mynodeid1.bytes.low; /PAR3reg05=mynodeid2.bytes.high; /PAR4reg06=mynodeid2.bytes.low; /PAR5又用到幾個(gè)新的寄存器,
52、是頁(yè)1的幾個(gè)寄存器:PAR0,PAR1, PAR2, PAR3,PAR4,PAR5這幾個(gè)寄存器是網(wǎng)卡的工作時(shí)候用的地址,只有符合這個(gè)地址的數(shù)據(jù)包才接收,這個(gè)地址是可以設(shè)置為其他的值,不一定設(shè)置為網(wǎng)卡的物理地址,為了不跟別的網(wǎng)卡地址沖突,最好設(shè)置為網(wǎng)卡的地址,(如果用戶(hù)需要設(shè)置為其他的值,也是可以的).(十一)RTL8019AS網(wǎng)卡的電路圖有些人想做成一體化的電路板,我在這里提供一下RTL8019AS網(wǎng)卡的電路圖。電路圖為雙端口的網(wǎng)卡(含utp和bnc接口)。有該原理圖,就可以自己制造isa接口的網(wǎng)卡。 (十二)RTL8019AS的跳線(xiàn)方式rtl8019as有3種工作方式:第一種為跳線(xiàn)方式,網(wǎng)卡
53、的i/o和中斷由跳線(xiàn)決定第二種為即插即用方式,由軟件進(jìn)行自動(dòng)配置plug and play第三種為免跳線(xiàn)方式,網(wǎng)卡的i/o和中斷由外接的93c46里的內(nèi)容決定。我們買(mǎi)到的網(wǎng)卡一般只支持第2和第3種。在嵌入式應(yīng)用的 場(chǎng)合,如果可以不使用93c46的話(huà),可以降低成本,同時(shí)又減少連線(xiàn)。那么我們?nèi)绾问褂玫?種方式跳線(xiàn)方式呢?網(wǎng)卡使用哪種方式由rtl8019as的第65腳JP決定。我們來(lái)看引腳圖:第65腳jp是輸入引腳,當(dāng)65腳為低電平時(shí),8019工作在第2種或第3種方式,具體由 93c46里的內(nèi)容決定。我們買(mǎi)到的 rtl8019as網(wǎng)卡一般第65腳為懸空的,rtl8019as懸空時(shí),引腳的 輸入狀態(tài)為
54、低電平(其他引腳也是這樣,懸空的輸入腳的電平為低電平,里面有一個(gè)100k的下拉電阻),網(wǎng)卡工作在第2,3種工作方式,需要使用93c46 芯片。如果我們把65腳接高電平(vcc),那么網(wǎng)卡的i/o和中斷就不是用93c46的內(nèi)容決定,這時(shí)不需要使用93c46,可以不接93c46。那么 這時(shí)候的i/o和中斷irq是多少呢?這時(shí)需要用到64,65,78,79,80,81,82,84,85等引腳。64腳aui,該引腳決定使用aui還是bnc接口。我們用的網(wǎng)卡的接口一般是bnc的,很少用aui。bnc接口方式支持8線(xiàn)雙絞或同軸電纜。高電平時(shí)使用aui接口,懸空為低電平,使用bnc接口。我們將該引腳懸空即可
55、。65腳jp 為高電平時(shí)(接到vcc或通過(guò)一個(gè)10k的電阻上拉)使用跳線(xiàn)方式,這時(shí)芯片的i/o地址由以下幾個(gè)引腳85,84,82,81(IOS3.IOS0)決定:芯片的中斷線(xiàn)由以下引腳80,79,78(IRQS2.IRQS0)決定:芯片的brom地址由以下引腳72,71,69,68,67(BS4.BS0)決定:在嵌入式領(lǐng)域一般都不用該brom。brom是boot rom的縮寫(xiě)。在電腦里用來(lái)做無(wú)盤(pán)工作站時(shí)候用到,可以從網(wǎng)卡進(jìn)行引導(dǎo),而不是從a盤(pán),c盤(pán)等引導(dǎo)系統(tǒng)。網(wǎng)絡(luò)接口類(lèi)型由74,77(PL0,PL1)引腳決定:我們使用第一種自動(dòng)檢測(cè)就可以了。會(huì)自動(dòng)檢測(cè)接口類(lèi)型然后進(jìn)行工作。自動(dòng)檢測(cè)是用同軸還是雙絞線(xiàn)。作為一個(gè)例子來(lái)自http:/8052.lphard.cz的電路
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 頂旺新材料有限公司年產(chǎn) 氣柱袋 1000 萬(wàn)件異址擴(kuò)建項(xiàng)目環(huán)評(píng)報(bào)告表
- 2025年碳硫分析儀合作協(xié)議書(shū)
- 四川學(xué)校人造草坪施工方案
- 張家口自建輕鋼房施工方案
- ?;髽I(yè)危險(xiǎn)源辨識(shí)與控制方案
- 工程建設(shè)領(lǐng)域信息化與廉政風(fēng)險(xiǎn)防控策略
- 數(shù)字化轉(zhuǎn)型的關(guān)鍵技術(shù)
- 高中化學(xué)大單元教學(xué)策略的運(yùn)用探討
- 污染防治違規(guī)施工方案
- 四級(jí)人力資源管理師-2019年5月四級(jí)人力資源管理師考試《理論知識(shí)》真題
- 2025屆上海市(春秋考)高考英語(yǔ)考綱詞匯對(duì)照表清單
- 湘教(湖南美術(shù))版小學(xué)美術(shù)四年級(jí)下冊(cè)全冊(cè)PPT課件(精心整理匯編)
- 《XX醫(yī)院安寧療護(hù)建設(shè)實(shí)施方案》
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- (完整版)考研英美文學(xué)名詞解釋
- 第3章MAC協(xié)議
- 中小學(xué)基本辦學(xué)條件標(biāo)準(zhǔn)(建設(shè)用地校舍建設(shè)標(biāo)準(zhǔn))
- 《醫(yī)院感染法律法規(guī)》最新PPT課件
- word公章模板
- 中西醫(yī)結(jié)合腫瘤學(xué)試卷(含答案)
- 制衣常識(shí)中英對(duì)照精講
評(píng)論
0/150
提交評(píng)論