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


嵌入式工業(yè)以太網控制器的設計和應用

嵌入式工業(yè)以太網的應用研究


100MByte自適應以太網口怎么擴展?
C 語言嵌入式系統(tǒng)
LAN91C96
以太網接口怎么實現(xiàn)嵌入式系統(tǒng)的網絡互連?
嵌入式以太網控制器WIZNET相關資料推薦
嵌入式以太網開發(fā)
嵌入式系統(tǒng)硬件層嵌入式處理器
Android系統(tǒng)啟動以太網卡及支持雙網卡共存的操作流程
TMS320LF2407與LAN91C111型嵌入式以太網接口電路的實現(xiàn)方法是什么?
TransFlash存儲卡在嵌入式系統(tǒng)調試中有哪些應用?
亞信USB以太網卡macOS Big Sur 11.3驅動程序安裝疑難問題排除步驟
什么是嵌入式以太網數(shù)字語音廣播系統(tǒng)解決方案?
單片機以太網控制器LAN91C111資料推薦
基于嵌入式以太網控制的接口電路及軟硬件實現(xiàn)方法
基于嵌入式系統(tǒng)的以太網接口電路實現(xiàn)設計
基于嵌入式操作系統(tǒng)μcLinux怎么實現(xiàn)對網卡的驅動?
基于嵌入式模塊comX的實時以太網
基于嵌入式微控制器LPC2214的遠程圖像監(jiān)控系統(tǒng)
基于AM186ed嵌入式系統(tǒng)以太網接口設計和實現(xiàn)
基于ARM7內核和嵌入式系統(tǒng)的VME總線控制器的研制
基于CP2200的嵌入式系統(tǒng)以太網接口
基于DSP的嵌入式以太網接口電路設計
基于FPGA的嵌入式以太網接口硬件設計
基于Linux的嵌入式工業(yè)測控系統(tǒng)該怎么設計?
基于MCU的嵌入式物聯(lián)網設計中的以太網連接
基于TCP IP協(xié)議棧的嵌入式以太網終端設計
基于雙以太網處理器Jupiter實現(xiàn)嵌入式設備網絡的設計
基于實時操作系統(tǒng)的嵌入式控制器的設計
如何去實現(xiàn)S3C2440嵌入式系統(tǒng)的以太網接口設計?
如何去實現(xiàn)一種基于CPCI總線的以太網卡?
如何完成嵌入式串行千兆以太網的設計
如何設計一個由LPC2378和MAX4357構成的嵌入式系統(tǒng)?
學FPGA為什么要學以太網控制器
工業(yè)以太網有什么優(yōu)點?
怎么實現(xiàn)嵌入式以太網數(shù)字語音廣播系統(tǒng)的設計?
怎么實現(xiàn)基于S3C4480X的嵌入式以太網接口設計?
怎樣去設計一種基于嵌入式Linux的千兆以太網卡驅動程序
怎樣在嵌入式操作系統(tǒng)μcLinux下實現(xiàn)對網卡的驅動?
推薦:AT91RM9200嵌入式核心控制器模塊
請問嵌入式系統(tǒng)實現(xiàn)以太網,TCP/IP協(xié)議棧是都是移植的嗎?
請問怎樣去設計嵌入式以太網控制器?
請問有synopsys三速以太網卡的驅動文件嗎?
誰知道SOPC技術在嵌入式工業(yè)以太網中有哪些應用呢?
高效的以太網卡電路怎么實現(xiàn)?
基于EPA的嵌入式控制器軟件協(xié)議棧實現(xiàn)

基于CP2200 的嵌入式系統(tǒng)以太網接口設計

基于ARM 嵌入式以太網接口設計與實現(xiàn)Design and

嵌入式以太網工業(yè)設備接入系統(tǒng)的設計

高性能嵌入式工業(yè)以太網監(jiān)控系統(tǒng)設計

基于以太網和嵌入式Web Server的控制系統(tǒng)設計研究

嵌入式以太網設計


基于CPCI總線10/100 Mb/s以太網卡的設計與實現(xiàn)


Intel發(fā)布業(yè)界首款雙網口10Gb以太網卡

SFN5122F低功耗低延遲10G以太網卡

基于以太網的PXI系統(tǒng)控制器

結合LAN91C96的嵌入式TCP/IP開發(fā)

TMS320LF2407與LAN91C111型嵌入式以太網接口電路的實現(xiàn)


以太網控制器_以太網控制器2012完整版

亞信電子推出針對嵌入式網絡應用USB轉以太網控制芯片AX88772C

lan91c96局部總線PCMCIA集成以太網控制器

嵌入式以太網控制器設計


具有RGMII的超高速USB的以太網控制器LAN7801詳細中文數(shù)據(jù)手冊

LAN7500和LAN7500i高速USB 2.0以太網控制器的數(shù)據(jù)手冊免費下載

W5500 TCP IP嵌入式以太網控制器的數(shù)據(jù)手冊免費下載

智能千兆以太網網絡門禁控制器專為惡略軍事環(huán)境設計

基于通用型單片機和以太網控制器實現(xiàn)嵌入式以太網接口的設計


LAN9512和LAN9513及LAN9514以太網控制器的數(shù)據(jù)手冊免費下載

基于Intel 82551以太網控制芯片實現(xiàn)CPCI以太網卡電路的設計


什么是以太網卡 以太網卡的未來

以太網卡、IB網卡的詳細介紹以及區(qū)別分析


LAN9221I-ABZJ 以太網控制器詳細參數(shù)


LAN9730I-ABZJ 以太網控制器


高度靈活的以太網控制器|LAN Module 13.2上線!


PXIe40G以太網卡資料文件

評論