嵌入式系統(tǒng)以太網(wǎng)卡控制器LAN91C96
關(guān)鍵詞:嵌入式系統(tǒng) NIC 網(wǎng)絡(luò)接口卡 LAN91C96
引 言
當今社會已經(jīng)進入數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC(Post-PC)時代,嵌入式系統(tǒng)已經(jīng)廣泛滲透到科學研究、工程設(shè)計、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)、娛樂業(yè)以及人們的日常生活等方方面面;而網(wǎng)絡(luò)技術(shù)的快速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用,使得嵌入式產(chǎn)品有了更廣泛的前景。各種家電設(shè)備、PDA、儀器儀表、工業(yè)生產(chǎn)中數(shù)據(jù)的采集與控制等設(shè)備正在逐漸走向網(wǎng)絡(luò)化,以共享互聯(lián)網(wǎng)絡(luò)中龐大的信息資源。嵌入式設(shè)備的網(wǎng)絡(luò)化開發(fā)有著廣闊的前景。
本文以SMSC公司的LAN91C96嵌入式以太網(wǎng)控制器為例,介紹嵌入式系統(tǒng)網(wǎng)絡(luò)接口卡(NIC)的軟硬件設(shè)計。
LAN91C96是SMSC公司生產(chǎn)的專門用于嵌入式產(chǎn)品的10M以太網(wǎng)控制器。其優(yōu)良的性能、低功耗及小尺寸,使LAN91C96成為嵌入式NIC中的主流產(chǎn)品。
圖1
1.1 主要特點
◆ 支持IEEE802.3(ANSI8802-3)以太網(wǎng)標準
◆ 全雙工收發(fā)方式,具有睡眠模式
◆ 6KB的片上RAM
◆ 與處理器接口可采用PCMCIA、ISA或Motorola 68000
◆ 支持先進的傳輸隊列管理
◆ 硬件MMU
◆通過串行EEPROM選擇性配置
◆ 全雙工傳輸模式
◆可連接同軸電纜和雙絞線,支持10Base5、10Base2、10BaseT,并可自動檢測所連介質(zhì)
◆ 高級的電源管理特性
◆ 支持“Magic Packet”電源管理技術(shù)
◆ 低功耗的CMOS設(shè)計
1.2 內(nèi)部框架
圖1是LAN91C96原理框圖。
LAN91C96網(wǎng)卡控制其內(nèi)部集成了6KB的RAM,用來存放數(shù)據(jù)包。內(nèi)部的MMU、判決器和DMA對數(shù)據(jù)包的傳輸發(fā)送進行有效的管理。CSMA/CD(載波監(jiān)聽多路訪問/沖突避免)模塊集成了IEEE 802.3 MAC層協(xié)議,負責監(jiān)聽網(wǎng)絡(luò)情況和地址過濾,若目的地址是LAN91C96的地址、廣播地址或多播地址,則接收此數(shù)據(jù)包,否則拋棄。內(nèi)部物理接口(PHY)包含一個ENDEC和10BaseT Transceiver。編解碼器(ENDEC)負責曼徹斯特(Manchester)編解碼,并提供標準6腳連接單元接口(AUI),外接同軸傳輸接收器,應(yīng)用10Base2/5。傳輸數(shù)據(jù)時,10BaseT Transceiver負責把主控制器傳過來的反向不歸零碼(NRZ)數(shù)據(jù)轉(zhuǎn)換為Manchester數(shù)據(jù),并以適當?shù)碾娖郊右则?qū)動;接收時負責連接完整性測試。外接的串行電可擦除只讀ROM(EEPROM)中可存儲網(wǎng)卡的MAC地址,當OS啟動加載網(wǎng)卡時,以太網(wǎng)控制器就從EEPROM的固定地址中讀取MAC地址并存儲在相應(yīng)的寄存器中。
LAN91C96內(nèi)部6KB的RAM為數(shù)據(jù)包的傳輸接收提供緩沖,使全雙工工作模式下數(shù)據(jù)傳輸率可達10Mbps;MMU把RAM分成256B的頁,并負責為每個數(shù)據(jù)幀分配一個或多個頁。
當主處理器傳輸數(shù)據(jù)時,MMU首先根據(jù)數(shù)據(jù)大小為其在RAM中分配若干頁。在數(shù)據(jù)傳送到RAM時,此數(shù)據(jù)幀的幀號也在TX FIFO中排隊,然后此數(shù)據(jù)幀在輪到時傳送到PHY模塊進行Manchester編碼,最后根據(jù)CSMA/CD協(xié)議把此數(shù)據(jù)幀傳送到相應(yīng)的介質(zhì)上。
在介質(zhì)上有數(shù)據(jù)時,LAN91C96將數(shù)據(jù)幀復(fù)制一份并傳送到ENDEC模塊進行Manchester解碼,而CSMA/CD模塊根據(jù)該數(shù)據(jù)幀頭的目的地址是否為本網(wǎng)卡MAC地址、廣播或多播地址來決定此數(shù)據(jù)幀的取舍。若地址匹配,MMU為其在RAM中開辟相應(yīng)大小的空間,并以中斷的方式告知主處理器。在數(shù)據(jù)幀被取走后,MMU釋放此塊內(nèi)存。
1.4 數(shù)據(jù)幀的構(gòu)成
一個IEEE 802.3數(shù)據(jù)幀由以下幾個部分組成:前導位(preamle)、幀起始位(SFD)、目的地址(destination)、源地址(source)、數(shù)據(jù)長度(length)、數(shù)據(jù)(data)、幀校驗字(FCS)。如圖2所示,數(shù)據(jù)的數(shù)量范圍46~1500B,如一組要傳送的數(shù)據(jù)為46B,就用零補足;超過1500B時,需要拆成多個幀傳送。前導位、幀起始位和幀校驗字僅供控制器本身用,主處理器收到的數(shù)據(jù)幀的組成依次包括:接收狀態(tài)(1B)、下一幀的頁地址指針(1B)、目的地址(6B)、源地址(6B)、數(shù)據(jù)長度/幀類型(2B)、數(shù)據(jù)。數(shù)據(jù)長度/幀類型的值小于或等于1500B時,表示數(shù)據(jù)場的長度;反之,表示數(shù)據(jù)幀的類型。如值依次為 0x08、0x00,表示數(shù)據(jù)為IP包;值依次為0x08、0x06,表示數(shù)據(jù)為ARP包。
2 以太網(wǎng)卡設(shè)計方案
2.1 硬件設(shè)計方案
此設(shè)計方案采用的嵌入式處理器是Intel公司的PXA250(XScale)。該處理器是Intel為了滿足便攜式和嵌入式應(yīng)用需求而優(yōu)化的微處理器。PXA250基于Intel XScale微體系結(jié)構(gòu),RISC架構(gòu),最高可以運行400MHz。 PXA250采用ARM指令、數(shù)據(jù)高速緩存、內(nèi)存管理單元(MMU)和讀/寫緩沖器。另外,PXA250提供系統(tǒng)支持邏輯、多串行通信通道、彩色/灰度刻度LCD控制器、支持PCMCIA、通用I/O端口、USB、串口、紅外接口、JTAG、音頻等。
圖3是嵌入式以太網(wǎng)卡的原理圖。LANC91C96內(nèi)部寄存器可通過對地址線A0、A1、A2、A3……的操作來訪問,LAN91C96內(nèi)部寄存器寬度是16bit;而PXA250的訪問寬度是32bit,所以LANC91C96的A1、A2、A3……分別與PXA250的A2、A3、A4……相連。LANC91C96的數(shù)據(jù)訪問寬度是16bit,所以其16根數(shù)據(jù)線與PXA250的低16根數(shù)據(jù)線相連。中斷INTR0與PXA250的GPIO11相連。
外接的93C46是1Kbit的串行EEPROM,6416陣列,按字訪問,用來存儲以太網(wǎng)卡的MAC地址。MAC地址是48bit,預(yù)先燒寫在EEPROM的指定位置。每次系統(tǒng)啟動時,LAN91C96從EEPROM重讀出自己的MAC地址,存在指定的寄存器中。EX2001是針對10M以太網(wǎng)的變壓濾波器。
圖3
該嵌入式設(shè)備運行Windows CE.net操作系統(tǒng)。Windows CE是一個搶先式多任務(wù)并具有強大通信和圖形顯示功能的Win32嵌入式操作系統(tǒng),具有可移植性、實時性、模塊化等特點;是微軟專門為信息設(shè)備、移動應(yīng)用、消費類電子產(chǎn)品、嵌入式應(yīng)用設(shè)計的高性能操作系統(tǒng)。Windows CE是從整體上為有限資源的平臺設(shè)計的多線程、完整優(yōu)先級、多任務(wù)的操作系統(tǒng)。其模塊化設(shè)計允許它對于從掌上電腦到專用工業(yè)控制器的用戶電子設(shè)備進行定制。
對LAN91C96的軟件操作采用中斷處理方式:當系統(tǒng)有數(shù)據(jù)要傳輸時,首先把該數(shù)據(jù)傳到LAN91C96,LAN91C96把數(shù)據(jù)封裝成幀,加上前導字、校驗字等部分,并檢測到網(wǎng)絡(luò)中沒有數(shù)據(jù)在傳輸,才把此數(shù)據(jù)幀傳輸?shù)骄W(wǎng)絡(luò)中,并向系統(tǒng)提出中斷,告知已成功傳輸數(shù)據(jù);當LAN91C96接收到一數(shù)據(jù)幀時,首先由CSMA/CD模塊察看此數(shù)據(jù)幀的目的地址,若為此網(wǎng)卡MAC地址、廣播地址或多播地址,才向系統(tǒng)提出中斷,并把此數(shù)據(jù)幀傳到LAN91C96的數(shù)據(jù)寄存器中。系統(tǒng)對此包進行處理,察看是否校驗字錯誤等,并剝?nèi)デ皩ё?,然后傳給上層NDIS進行處理。
3 結(jié) 論
基于上述方案的嵌入式以太網(wǎng)卡可以穩(wěn)定地工作,實際網(wǎng)絡(luò)速度可以達到9Mbps(依網(wǎng)絡(luò)狀況而定),并具有FTP等功能。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論