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


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

嵌入式工業以太網的應用研究


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

基于CP2200 的嵌入式系統以太網接口設計

基于ARM 嵌入式以太網接口設計與實現Design and

嵌入式以太網工業設備接入系統的設計

高性能嵌入式工業以太網監控系統設計

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

嵌入式以太網設計


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


Intel發布業界首款雙網口10Gb以太網卡

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

基于以太網的PXI系統控制器

結合LAN91C96的嵌入式TCP/IP開發

TMS320LF2407與LAN91C111型嵌入式以太網接口電路的實現


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

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

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

嵌入式以太網控制器設計


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

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

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

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

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


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

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


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

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


LAN9221I-ABZJ 以太網控制器詳細參數


LAN9730I-ABZJ 以太網控制器


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


PXIe40G以太網卡資料文件

評論