?? 00000023.htm
字號:
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>單片機與TCP/IP網絡(五) jacobw </title></head><body><center><h1>BBS 水木清華站∶精華區</h1></center><a name="top"></a>發信人: turbolinux (hoho~神啊,救救我吧...), 信區: Embedded <br />標 題: 單片機與TCP/IP網絡(五) <br />發信站: BBS 水木清華站 (Fri Jul 13 00:33:20 2001) <br /> <br /> 單片機與TCP/IP網絡 <br />(五)接口電路圖詳解(1) <br /> <br />----89c52單片機部分 <br /> <br /> <br /> <br />——ISA接口的A,B部分. <br /> <br /> <br /> <br />這是RTL8019網卡ISA的前半部分A1--A31(1...31),B1--B31(32...62)共62個引腳. <br /> <br />DATA0--DATA7是網卡的8位數據總線,接單片機的P0口. <br />RESDRV(33腳)(RESET)接單片機的T0(P3.4),單片機用P3.4來復位網卡。 <br />IRQ9接單片機的INT0(P3.2),IRQ9是網卡的中斷9,接到單片機的中斷0上。(但我 <br />的程序沒有使用中斷操作,我是用查詢操作的) <br />IOR,IOW接到單片機的p3.6,p3.7(/WR,/RD) <br />GND是地,VCC為+5V的電源。 <br />A0--A19為網卡的地址線,共20根,我們用到網卡的地址為十六進制的 <br />0240H---025FH, 轉換為二進制為 <br /> <br />地址線 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 <br />A1 A0 <br />240H 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 <br />... 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 X X X X X <br />25FH 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 1 1 1 <br /> <br />我們看到從地址240H到25FH,地址線的A19---A5是固定的000000000010010,因此 <br />A10--A19接地,A7-A8接地,ADDR8--ADDR15對應地址線的A0--A6.(實際上A5也可 <br />以接地,這樣可以減少一個單片機的引腳。這是作者在設計電路時沒有注意到,同 <br />時A9也可以接VCC)。 <br /> <br />A0--A6(ADDR8--ADDR15)接單片機的P2口。 <br />因此當P2口為 <br /> <br />地址線 A6,A9(ADDR15) A5(ADDR13) A4(ADDR12) A3(ADDR11) A2(ADDR10 <br />A1(ADDR9) A0(ADDR8) <br /> 1 0 X X X X X <br />P2口 P2.7 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 <br /> 1 0 X X X X X <br /> <br />當P2口為二進制 1X0XXXXX時 將選中網卡的I/O地址空間。在程序里,我使用 <br />110XXXXX來選中網卡的地址。 <br /> <br />地址映射: <br /> <br /> 單片機(P2口)也就是DPH 網卡(I/O) <br /> 11000000 (0C0H) 240H <br /> 110XXXXX 2XXH <br /> 11011111 (0DFH) 25FH <br /> <br />我在程序里定義了 reg00--reg1f 來對應240H--25FH端口。 <br /> <br />#define reg00 XBYTE[0xc000] /* 240H*/ <br />#define reg01 XBYTE[0xc100] /* 241H*/ <br />#define reg02 XBYTE[0xc200] <br />#define reg03 XBYTE[0xc300] <br />... <br />#define reg1f XBYTE[0xDF00] /* 25FH*/ <br /> <br /> <br />---ISA接口的C,D部分 <br /> <br />這是網卡的接口的后半部分,ISA槽的擴展部分。只用到GND,VCC,IOCS16.其中的 <br />IOCS16是16位I/O的選擇腳。當網卡上電復位的時候,這個腳為網卡的輸入腳,如 <br />果這個腳為低電平,網卡將選擇8位模式,如果這個腳為高電平,網卡將選擇16位 <br />的模式。我用了個電阻R10下拉,因此在復位時,這個腳為低電平,網卡選擇8位模 <br />式。 <br /> <br />--網卡可以兼容8位和16位操作。由于89c52是8位的數據總線,因此要用網卡的 <br />8位總線模式(每次讀入或寫入1個字節)。如果你是用80c196或dsp等16位總線的 <br />芯片的話,你可以使用16位的操作模式,這樣有更快的傳輸速度(每次讀入或寫入 <br />2個字節)。(16位總線時,這個下拉電阻去掉,不用接,同時網卡的 <br />DATA8--DATA15要接到你的CPU的數據8--15上。DMA操作為16位) <br /> <br />(未完) <br /> <br /> <br />-- <br /> <br />※ 來源:·BBS 水木清華站 smth.org·[FROM: 166.111.174.125] <br /><a href="00000022.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一頁</a><a href="index.htm">回到目錄</a><a href="#top">回到頁首</a><a href="00000024.htm">下一篇</a></h1></center><center><h1>BBS 水木清華站∶精華區</h1></center></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -