圖1所示為RTL8019AS的部分電路圖,其工作時(shí)鐘為20 MHz。RTL8019AS的引腳懸空時(shí),輸入狀態(tài)為低電平,因?yàn)樾酒_內(nèi)部已經(jīng)接了一個(gè)100 kΩ的下拉電阻。AEN引腳為I/O端口操作允許使能腳,接地使地址一直處于有效;IOCSl6B引腳用一個(gè)27 kΩ的電阻下拉到地,復(fù)位時(shí)刻為低電平,選擇8位總線模式;讀寫(xiě)引腳IORB、IOWB分別與單片機(jī)的RD,WR引腳相連;8位數(shù)據(jù)總線SD0~sD7接到單片機(jī)的PA口;IOSO~I(xiàn)OS3為I/O基地址選擇引腳,懸空設(shè)置為300H,所以SA5~SA7,SAl0~SAl9接地,SA8和SA9接高電平,真正用到的地址線只有SA0~SA4,接到單片機(jī)的地址線上;IRQS0~I(xiàn)RQS2為中斷選擇引腳,懸空選擇中斷INT0,實(shí)際上并沒(méi)有使用中斷,而是使用了查詢(xún)方式;AUI引腳用于AUI接口外部MAU檢測(cè),決定使用AUI還是BNC接口,BNC接口方式支持8線雙絞或同軸電纜,所以將該引腳懸空選擇使用RJ45接口;SMEMRB和SMEMWB為存儲(chǔ)器讀寫(xiě)引腳,由于我們使用的是I/O模式讀寫(xiě)網(wǎng)絡(luò)芯片,所以將它們接高電平;TPIN和TPOUT為差分輸入輸出引腳,分別用來(lái)接收來(lái)自雙絞線和向雙絞線發(fā)送10 Mb/s的差分曼徹斯特編碼信號(hào),RTL8019AS需要經(jīng)過(guò)隔離處理才能和RJ45接口相連,然后接入以太網(wǎng),隔離低通濾波器選用的是20F001N,內(nèi)部有兩個(gè)傳輸變壓器,用來(lái)傳輸信號(hào)以及抑制噪聲干擾。
2 系統(tǒng)軟件實(shí)現(xiàn)
2.1 RTL8019AS地址空間與寄存器
RTL8019AS內(nèi)部的16 KB的RAM用于收發(fā)緩沖,地址為Ox4000~07FFF,收發(fā)緩沖以頁(yè)為單位,每頁(yè)256 B,共64頁(yè),如果某頁(yè)沒(méi)有完全填滿數(shù)據(jù),則下包數(shù)據(jù)也不能繼續(xù)使用該頁(yè),只能使用新的頁(yè)。一般將前12頁(yè)作為發(fā)送緩沖區(qū),分為兩個(gè)6頁(yè)的緩沖區(qū)(因?yàn)橐粋€(gè)最大數(shù)據(jù)包占6頁(yè)),兩個(gè)發(fā)送緩沖區(qū)交替使用,可提高發(fā)送效率,后52頁(yè)作為接收緩沖區(qū)。該RAM是雙端口的,具有兩套總線,一套是RTL8019AS讀寫(xiě)該RAM,即本地DMA;另一套是單片機(jī)讀寫(xiě)該RAM,即遠(yuǎn)程DMA,要接收和發(fā)送數(shù)據(jù)包就必須對(duì)這塊RAM進(jìn)行DMA讀寫(xiě)。