正文 基於ARM平台的嵌入式RTL8019AS網卡芯片數據通信的設計與實現(1 / 2)

基於ARM平台的嵌入式RTL8019AS網卡芯片數據通信的設計與實現

理論研究

作者:胡劍

嵌入式以太網,是一種PC上用到的以太網的精簡版,利用編程實現適合工業或商業的特殊需求,在設計時要做到各方麵性能滿足工業的需要。

ARM平台嵌入式RTL8019AS網卡數據通信

0引言

隨著網絡技術的發展與普及,嵌入式Ethernet技術也得到了迅速的發展使Ethernet全麵應用於工業控製領域成為可能。嵌入式以太網,是一種PC上用到的以太網的精簡版,利用編程實現適合工業或商業的特殊需求,在設計時要做到各方麵性能滿足工業的需要。

1係統設計

嵌入式以太網設計時主要用到S3C44B0X處理器和RTL8019網卡芯片,完成整體硬件電路設計後編寫網卡的驅動程序,在S3C44BOX微處理器上配合局域網接口芯片RTL8019AS是目前價格最低廉的設計方式,但有很高的性能,以太網控製器RTL8019AS的主要性能符合EthernetⅡ與IEEE802.3標準,全雙工,收發可同時達到10Mb/s的速率。S3C44B0X處理器提供對外圍設備的多個BANK映射,在本設計中使用其BANK5用於RTL8019AS芯片RAM的通信,I/O基地址為0X。S3C44BOX與RTL8019AS的接口采用UTPRJ-45,RTL8019AS與主機有3種接口工作模式:跳線方式、網卡的I/O和中斷由跳線決定;即插即用方式,由軟件進行自動配置即插即用;免跳線方式,網卡的I/O和中斷由外界的93C46中的內容決定。本設計中RTL8019AS采用INT0中斷連接到外部處理器的INT3中斷,片選AEN引腳接處理器的nGCS5,BANK6,使用16位數據總線,處理器與RTL8019AS的數據線連接時連接必須將處理器的A1引腳與RTL8019AS芯片的SA0數據線引腳相連。

2嵌入式以太網數據通信的軟件實現

對RTL8019AS的驅動主要包括:芯片初始化,接收和發送數據3個方麵。初始化程序是針對以太網RTL8019AS進行的初始設置,使其能正常芯片複位、設置芯片寄存器及啟動芯片。上電後芯片自動硬件複位,為確保完全複位,可向以太網的複位寄存器寫入任意數據進行軟複位,之後使芯片進入停止狀態,對RTL8019AS內部寄存器進行設置。

軟件複位主要步驟:

(1)EN_CR=ENCR_PAGE0+ENCR_NODMA+ENCR_START,其值為21選擇頁0寄存器,禁止收發數據;

(2)EN_RBCR0=0x00;EN_RBCR1,其值為0x00清除遠程字節數;

(3)EN_RCR=ENRCR_RXOFF,設置接收配置寄存器其值為0X20,監聽模式;

(4)EN_TCR=ENTCR_TXOFF,設置發送配置寄存器其值為0X02,回環模式;

(5)EN_PSTART=0x46,EN_PSTART=0x5f,設置接收RAM範圍;

(6)EN_CR=0x61,選擇頁1寄存器。

最後,使芯片進入運行狀態以結束初始化。

RTL8019AS的芯片初始化流程:

(1)RTL8019AS數據接收。接收程序工作過程比較複雜,主要在是寄存器的操作上。如果以太網接口芯片是處於複位狀態,則對芯片進行初始化然後退出。如果處於正常狀態,可調用while(1)語句和接收函數getethernet()不斷檢測網絡中是否有數據送到本節點,如果有則根據先前工程定義好的網卡接收緩存區地址(0x46~0x5f)用CURR將接收到的數據讀取到內存中,當CURR指針同BURY指針地址相同時說明接收數據結束。如果寫指針指向的位置出錯,則退出;否則增加讀指針。判斷接收到的數據,如果沒有則做出錯退出;如果接收到數據包,讀取接收數據長度等信息,並檢查接收狀態等是否正確。若檢查無誤,則將接收到的數據讀取至緩存區並調用相應的處理函數進行處理。如果檢查發現有錯誤,則清空以太網接口芯片的接收緩衝區,退出。