郭 靜,陳曉宇
(河南機(jī)電高等專科學(xué)校,河南 新鄉(xiāng) 453000)
RTL8019AS是我國(guó)臺(tái)灣Realtek公司生產(chǎn)的一種高集成度的以太網(wǎng)控制器,適用于即插即用NE2000可兼容適配器,并具有全雙工和省電特點(diǎn)。三種省電控制特點(diǎn)使得RTL8019AS成為綠色PC系統(tǒng)網(wǎng)絡(luò)器件的理想選擇。全雙工功能使得RTL8019AS可通過(guò)雙絞線與全雙工以太網(wǎng)網(wǎng)關(guān)連接,進(jìn)行同步收發(fā)。雖然ISO推出了網(wǎng)絡(luò)協(xié)議模型,并且實(shí)際應(yīng)用中出現(xiàn)了多種網(wǎng)絡(luò)及協(xié)議,目前應(yīng)用最廣泛的應(yīng)該是TCP/IP協(xié)議。
所謂的傳輸介質(zhì),就是用什么辦法將各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)連接起來(lái)。我們生活中最常見(jiàn)的就是網(wǎng)線,一般是灰色的塑料皮,里面包有8根,4對(duì)不同顏色的導(dǎo)線。兩端接口處,使用RJ45接頭(也叫水晶頭)連接起來(lái)。通常網(wǎng)線有兩種類型:直通網(wǎng)線和交叉網(wǎng)線。所謂的直通網(wǎng)線就是RJ45兩端的導(dǎo)線排列方式一致,實(shí)際使用時(shí),一端接在PC機(jī)的網(wǎng)卡上,另一端接在HUB或者路由器上[1]。
在網(wǎng)線上進(jìn)行傳輸?shù)氖菙?shù)字信號(hào),因此需要對(duì)這些信號(hào)進(jìn)行組織,并且建立同步信號(hào)。通常將一組數(shù)據(jù)信號(hào)叫做一幀。目前物理層使用的通信標(biāo)準(zhǔn)是802.3,它定義的每幀中的各域如圖1所示。
圖1 802.3幀格式
填充位可變,如果數(shù)據(jù)域的數(shù)據(jù)小于46字節(jié),那么就由填充位將不夠的部分補(bǔ)齊,以保證整個(gè)幀的數(shù)據(jù)(除去前導(dǎo)位和幀起始位)為60字節(jié)。目的MAC地址為此幀要發(fā)送到的MAC地址(此地址全球唯一),源MAC地址為發(fā)送本節(jié)點(diǎn)的MAC地址,一共6字節(jié),由低位到高位分別用16進(jìn)制表示,可在dos命令行中用ipconfig命令查詢本機(jī)的網(wǎng)卡地址。
TCP/IP在整個(gè)網(wǎng)絡(luò)系統(tǒng)的地位如圖2所示。
電子郵件協(xié)議:SMTP,遠(yuǎn)程登錄協(xié)議:TELNET,RPC,文件傳輸協(xié)議:FTP,TFTP,WWW瀏覽協(xié)議:HTML(超文本標(biāo)記語(yǔ)言),網(wǎng)絡(luò)管理協(xié)議:SNMP,域名系統(tǒng):DNS,抽象語(yǔ)法記號(hào):ASN.1,引導(dǎo)程序:BOOTP&DHCP。查錯(cuò)和控制報(bào)文協(xié)議:ICMP,組播協(xié)議:IGMP,地址解釋協(xié)議:ARP,RARP,路由協(xié)議:GGP,SPF,EGP,RIP,OSPF 等。
圖2 TCP/IP協(xié)議
由臺(tái)灣Realtek公司生產(chǎn)的RTL8019AS以太網(wǎng)控制器,由于其優(yōu)良的性能、低廉的價(jià)格,使其在市場(chǎng)上10Mbps網(wǎng)卡中占有相當(dāng)?shù)谋壤?/p>
主要性能:
1)符號(hào) Ethernet II與 IEEE802.3(10Base5、10Base2、10BaseT)標(biāo)準(zhǔn);
2)全雙工,收發(fā)可同時(shí)達(dá)到10Mbps的速率;
3)內(nèi)置16KB的SRAM,用于收發(fā)緩沖,降低對(duì)主處理器的速度要求;
4)支持8/16位數(shù)據(jù)總線,8個(gè)中斷申請(qǐng)線以及16個(gè)I/O基地址選擇;
5)支持 UTP、AUI、BNC 自動(dòng)檢測(cè),還支持對(duì)10BaseT拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;
6)允許4個(gè)診斷LED引腳可編程輸出;
7)100腳的PQFP封裝,縮小了PCB尺寸。
RTL8019AS內(nèi)部可分為遠(yuǎn)程 DMA接口、本地DMA接口、MAC(介質(zhì)訪問(wèn)控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。
此次調(diào)試RTL8019AS所用的實(shí)驗(yàn)箱型號(hào)為:S3CEV40-I,Arm型號(hào)為S3C44B0X。與RTL8019AS的連接如圖3所示。
圖3 S3C44B0X與RTL8019AS的連接圖
由上圖可以看出,地址線的 A13-9連接到RTL8019AS的SA[4-0],另外片選線通過(guò)74LV138接到RTL8019AS的AEN引腳。若使CS7為0,必須nGCS1=0(A25=1),A20=1,A19=1,A18=0,即RTL8019AS 的基地址為 0000,0010,0001,10000,0000,0000,0000,0000B,即 RegAdd(Base)=2180000H。
由于SA0連接到A9,所以RTL8019AS的對(duì)應(yīng)到S3C44B0X的地址必須右移9位,即:
按照下圖4格式向RTL8019AS的遠(yuǎn)程DMA(地址10H~17H,任何一個(gè)都可)后,啟動(dòng)發(fā)送命令,RTL8019AS就按照802.3的格式發(fā)出數(shù)據(jù)幀。
圖4 向RTL8019AS發(fā)送數(shù)據(jù)的格式
從RTL8019AS接收到的數(shù)據(jù)的幀格式如圖5。
圖5 RTL8019AS接收幀格式
對(duì)于網(wǎng)絡(luò)的分析,必須查看物理連接是否正確,然后再查看幀的各域數(shù)據(jù)是否完整、正確。完成這一功能的軟件,稱為抓包工具,常用的是Ethereal。Ethereal的使用如下:
安裝完成后,打開(kāi)Ethereal后,點(diǎn)擊圖8中紅色圓圈圈住的地方,進(jìn)行基本配置,出現(xiàn)的配置界面如圖6示。
圖6 捕獲選項(xiàng)設(shè)置
如圖8所示,點(diǎn)擊下拉框的箭頭處,按照所使用的計(jì)算機(jī)的實(shí)際配置選擇網(wǎng)卡。設(shè)置好網(wǎng)卡后,點(diǎn)擊Start,軟件就開(kāi)始抓包了,如圖7。
圖7 Ethereal正在抓取UDP包
點(diǎn)擊Stop,Ethereal停止,顯示抓到的數(shù)據(jù)包的分析結(jié)果,如下圖8所示。
圖8 對(duì)抓到的UDP數(shù)據(jù)報(bào)的分析結(jié)果
對(duì)圖8所抓到的UDP數(shù)據(jù)報(bào)進(jìn)行分析,可以更加深刻地理解以太網(wǎng)的通信原理。從0-5的6個(gè)字節(jié)數(shù)據(jù)是目的節(jié)點(diǎn)的MAC地址(此處是筆者所使用的PC機(jī)的網(wǎng)卡MAC),UDP數(shù)據(jù)報(bào)進(jìn)行分析見(jiàn)表1所示。
注:Ethereal把所有經(jīng)過(guò)所選擇網(wǎng)卡的數(shù)據(jù)包全部抓取,并分析顯示。
在實(shí)際編程時(shí),經(jīng)常用VC或VB等高級(jí)語(yǔ)言所提供的控件進(jìn)行快速開(kāi)發(fā),如WinSocket等。在使用此類控件進(jìn)行編程時(shí),在程序調(diào)試時(shí),程序員所能看到的數(shù)據(jù)僅僅是收到的應(yīng)用數(shù)據(jù),比如使用UDP協(xié)議,只能看到UDP數(shù)據(jù)域中的數(shù)據(jù)(即是表3中的6個(gè)字節(jié)的數(shù))。
如果下位機(jī)發(fā)送出去數(shù)據(jù),PC機(jī)沒(méi)有反應(yīng),應(yīng)該是下面幾方面的問(wèn)題:
(1)物理連接不正常,網(wǎng)線沒(méi)有連接好。
(2)發(fā)出的數(shù)據(jù)幀格式不正確,或者校驗(yàn)和數(shù)據(jù)不對(duì)。
(3)IP或者UDP的長(zhǎng)度與實(shí)際長(zhǎng)度不一致。
(4)IP地址不在同一個(gè)網(wǎng)段內(nèi),或者目的MAC地址與接收方的MAC地址不一致。
對(duì)于前三種情況,最好運(yùn)行Ethereal進(jìn)行抓包,如果沒(méi)有任何數(shù)據(jù),說(shuō)明物理連接有問(wèn)題,使用萬(wàn)用表或者網(wǎng)絡(luò)測(cè)試儀測(cè)試一下。如果數(shù)據(jù)幀中的數(shù)據(jù)不對(duì),Ethereal會(huì)指出錯(cuò)誤所在,并給出正確的數(shù)據(jù)。
如果屬于第4種情況,在dos命令行運(yùn)行arp–a命令,查看設(shè)置,如果沒(méi)有,這需要使用arp–s IP MAC根據(jù)實(shí)際情況進(jìn)行設(shè)置,然后再調(diào)試程序即可。(此處設(shè)置的目的是告訴PC機(jī),它的數(shù)據(jù)包的目的MAC和IP地址),如圖9所示。
圖9 目的MAC、IP的設(shè)置
本文以基于TCP/IP技術(shù)終端系統(tǒng)的研究為例,詳細(xì)講述了RTL8019AS網(wǎng)卡芯片的實(shí)現(xiàn)方法,并給出了單片機(jī)中TCP/IP協(xié)議的精簡(jiǎn)方案。本系統(tǒng)已經(jīng)在實(shí)踐中得到較好的應(yīng)用,其可行性、可靠性和靈活性已經(jīng)得到證實(shí),并且基于以太網(wǎng)系統(tǒng)低廉的造價(jià)、簡(jiǎn)潔的布線更使得基于RTL8019AS的以太網(wǎng)技術(shù)成為了替代傳統(tǒng)現(xiàn)場(chǎng)總線技術(shù)的一種重要手段。
[1]吳全玉,陳杰.基于RTL8019AS的單片機(jī)網(wǎng)絡(luò)通信接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,(1).
[2]陳傳虎.基于RTL8019AS的串口與以太網(wǎng)接口轉(zhuǎn)換器的設(shè)計(jì)[J].電子工程師,2008,(5).
[3]蘇錦秀,楊慶江,張廣璐.以太網(wǎng)控制芯片RTL8019AS詳細(xì)配置[J].現(xiàn)代電子技術(shù),2007,(2).