基於LAN91C111的嵌入式乙太網接口設計

2021-01-05 電子產品世界

隨著CPU性能的大幅度提升, 嵌入式系統的設計已經進入了更廣泛的領域。隨著FPGA的不斷發展和規模的進一步強大, SOPC的應用也越來越廣泛。由於SOPC的可編程特性很受嵌入式系統開發人員的青睞, 因此, 隨著信息產業和微電子技術的發展, 可編程嵌入式系統設計已經成為信息產業最熱門的技術之一, FPGA正以各種電子產品的形式進入人們日常生活的各個角落。

  乙太網以其良好的通用性和帶寬性能成為新一代工業控制網絡的焦點, 目前, 關於嵌入式乙太網的設計方案大部分是基於單片機的。由於單片機的速度慢, 而FPGA作為一種特殊的嵌入式微處理器系統, 則具有快速處理數據的能力。因此, 在嵌入式網絡設備中引入FPGA技術, 可以使嵌入式乙太網的速度更快。為此, 本文介紹基於FPGA 的嵌入式系統與LAN91C111 型自適應10Mb/100Mb嵌入式乙太網的接口電路與實現方法。

  1 硬體設計

  1.1 FPGA的特點

  本系統的主控晶片採用ALTERA公司CycloneII系列的EP2C35F484。FPGA內部集成有鎖相環,可以把外部時鐘倍頻, 其核心頻率可以到幾百兆, 同時具有豐富的IO資源, 可以方便連接外設。FPGA的並行執行程序方式具有處理更複雜功能的能力, 而且內部嵌有SOPC和DSP。可編程SOPC是一種特殊的嵌入式系統, 具有靈活的設計方式, 而且可裁剪、可擴充, 同時軟硬體在系統可編程功能。

  1.2 嵌入式乙太網控制器LAN91C111

  乙太網控制晶片所選用的SMSC 公司LAN91C111晶片是專門用於嵌入式產品的10M/100M第三代快速乙太網控制器。該器件具有可編程、CRC校驗、同步或異步工作方式, 且具有低功耗CMOS設計和小尺寸等特點, 是設計嵌入式乙太網網絡接口的良好選擇。LAN91C111的原理框圖如圖1所示。


圖1 LAN91C111的原理框圖

  LAN91C111集成了CSMA/CD (帶碰撞的載波偵聽多路接入) 協議的MAC (媒體層) 和PHY (物理層)。其主要特點是支持IEEE802.3/802 U乙太網標準、自適應10M/100M, 全雙工/半雙工收發方式、有8KB的片上FIFO存儲器、支持8位或16位或32位總線方式、支持先進的傳輸隊列管理、有串行EEPROM選擇性配置口、並支持突發數據傳輸、支持全雙工交換式乙太網、增強式能量管理功能和低功耗的CMOS設計。

  總線接口模塊是由數據總線、地址總線、控制總線以8位、16位、或32位形式與外部數據進行交互。LAN91C111乙太網控制器遵循IEEE頒布的802.3 乙太網傳輸協議, 內部集成有8KB 的RAM, 可通過內部的內存管理模塊、仲裁模塊和DMA共同管理數據包的發送與接收。其仲裁器監視乙太網總線的數據交流, 一旦發生阻塞, 仲裁器一方面通過總線接口單元與外部CPU聯繫; 一方面控制內存控制單元, 實現總線的數據協調。

  LAN91C111內部的RAM可以緩存數據, 在全雙工工作模式下, 數據傳輸速率可達到10M/100Mbps。

  所有內部寄存器的初始值均放在EEPROM中, 自舉時可完成自動初始化。在數據傳輸過程中, 若以10Mbps速率傳輸, 則可採用Manchester編碼,並以兩層曼徹斯特代替三電平, 且沒有擾頻器和解擾頻器; 若以100Mbps速率傳輸, 則先將發送到RAM中的數據包以包號的形式存放在FIFO的發送隊列中, 然後按照規則逐個將數據包發送到PHY模塊進行4B-5B編碼, 發送數據端可將通過擾頻器整理後的4B-5B數據包變換成MLT-3後輸出。而在接收時, 則將數據包複製並發送到解擾頻器進行整理, 然後再發送到4B-5B解碼器進行解碼。

  1.3 硬體連接

  本設計在FPGA晶片EP2C35中嵌入了32位的NIOS II處理器。由於LAN91C111是專為嵌入式系統設計的, 因而其外圍電路相對比較簡單。圖2所示是其硬體連接圖, 圖中的地址線、數據線、控制線分別與FPGA相連。由於採用的是16位數據傳輸方式, 因此只用到數據總線的低16位。控制線中的AEN為片選信號, INTR0為外部中斷信號, WR為讀寫信號, BE0-BE1為字節選擇端。

  LAN91C111 中的ADS、LCLK、CYCLE、W/R、RDYRTN 信號應均加一個1kΩ 的上拉電阻。

  TG100-S050N2是乙太網的變壓濾波器。TX+ 、TX- 、RX+ 、RX- 分別與LAN91C111 的TPO+ 、TPO-、TPI+、YPI-相連。TG100-S050N2的CMT端也應接一個1kΩ的上拉電阻。RJ45 的TD+ 、TD-、RD+、RD-分別與TG100-S050N2的TD+、TD-、RD+、RD-相連。在TG100-S050N2的TCT和RCT亦應分別接一個75Ω的電阻和1nF的濾波電容。這樣即可在控制線的作用下完成FPGA與LAN91C111之間的數據通信。


圖2 系統硬體連接圖

  2 軟體設計

  ALTERA公司提供的硬體抽象層(HAL) 中封裝了系統中硬體的相關細節和驅動程序, 用戶可在HAL的基礎上方便地開發存儲等應用程式。

  NIOS II IDE環境中集成有μCOS II和LWIP, 其中LWIP必須在μCOS的支持下使用。μC/OS II是一種免費公開原始碼, 結構小巧, 而且具有可剝奪實時內核的作業系統, 它可移植、可裁剪, 最多可管理64個任務, 其每個任務都擁有自己獨立的堆棧, 大部分源碼可使用ANSI C語言編寫, 整個軟體部分可在NIOS II IDE開發環境下完成。由於程序的內容較多, 本文著重介紹LAN91C111的初始化、發送數據、接收數據三個部分的軟體設計方法。

  2.1 初始化

  ALTERA提供有LWIP的NIOS II 埠, 其原始碼包含在NIOS II 開發工具包中。LWIP可為NIOS II處理器提供對乙太網連接棧的快速、開源地訪問。ALTERA的LWIP埠包括套接字API封裝, 提供有標準的、文檔說明齊全的套接字API。LWIP協議棧的主要接口是標準的套接字接口。除了套接字接口以外, 還可調用lwip_stack_init ()函數和lwip_devices_init () 函數來對堆棧和驅動程序初始化。通過HAL 系統代碼可調用init_done_func ()、get_mac_addr () 和get_ip_addr() 函數來設置MAC地址和IP位址。為了初始化堆棧, 在調用OSStart啟動μC/OS II 調度程序之前應調用函數lwip_stack_init ( ) , 其原型為voidlwip_stack_init ( int thread_prio, void(*init_done_func) (void*), void *arg)。堆棧初始化後, 還必須調用函數init_done_func (), 而該函數必須調用函數lwip_devices_init () 。利用函數lwip_devices_init () 可以對在system.h中定義的所有已安裝的乙太網設備驅動程序進行註冊, 若返回一個非0值則表示註冊成功。註冊成功後,TCP/IP棧即可使用, 之後便可在程序中創建任務。該函數的參數是接收線程的優先級。LWIP系統碼在設備初始化過程中, 可通過lwip_devices_init ( ) 函數調用函數get_mac_addr ( ) 和get_ip_addr ()。用戶通過編寫這些函數, 可在系統中將MAC和IP位址存放在任意位置, 從而代替在設備驅動程序中固定位置的硬編碼, 並增加系統的靈活性。設計時, 可以將MAC地址存放在Flash存儲器中, 也可以將MAC地址存放在片上內嵌的存儲器中。當所有的初始化都準備好後即可調用OSStart () 以啟動RTOS進行任務調度。這個過程需要設置乙太網目的地址、乙太網源地址、協議類型, 然後再按照所設置的協議類型來設置數據包。

  2.2 數據的發送和接收

  數據的接收和發送可採用中斷方式。中斷服務程序通過檢查LAN91C111的中斷狀態寄存器來判斷是發送中斷請求還是接收中斷請求。初始化完成後, 即可創建任務, 建立套接字, 綁定埠, 綁定完之後, 再*埠。當LAN91C111接收到數據包時, 可由EPH模塊察看此數據包的目的地址, 若為本網卡的MAC地址或廣播地址或多播地址, 則把此數據包傳送到LAN91C111的RAM中, 並向處理器發送中斷, 由處理器進行數據處理。由於採用的是TCP/IP協議, 接收數據應調用read () 函數來接收建立連接的套接字中的數據,並將其放入緩衝區。發送過程則是由FPGA將數據傳送到LAN91C111, 再由LAN91C111將接收到的數據封裝成數據包, 並檢測網絡, 當沒有數據傳輸時, 再將數據包傳輸到網絡中, 並向處理器發送中斷信號, 以表示數據傳送完畢。發送數據時通過調用write () 函數可將要發送的數據發送到指定連接的目的地址。

  3 結束語

  本文的整個設計使用了邏輯單元(LE) 5314個, 佔用EP2C35F484晶片內部資源的16%, 這充分體現了FPGA資源的豐富性。在傳統設計中,通常選用單片機和低速網卡的設計方案, 這在實際應用中, 網絡速度相對較慢, 而本設計中選用高速的乙太網控制晶片LAN91C111和高速的FPGA,極大地提高了系統的網絡數據處理能力,並可滿足網絡數據採集的需求。另外, 基於FPGA的NIOS II方案, 還可根據實際需要添加不同IP, 這也體現了SOPC的靈活性與可裁減性。

相關焦點

  • 基於S3C4480X的嵌入式乙太網接口設計
    乙太網(Ethemet)由於它的普遍性及低廉的接口價格,因而已經作為一種最通用的網絡,廣泛應用於生產和生活中。另一方面,嵌入式設備在價格、體積及實時性等方面是通用計算機無法比擬的,也已廣泛應用於自動化控制、數據採集、通信網絡等領域。因此,嵌入式乙太網技術有著廣闊的前景,首先要解決的問題就是嵌入式乙太網接口問題。
  • 基於DM9000A的乙太網接口設計與實現
    摘要:為了實現DSP與外圍設備進行乙太網數據通信,採用了一種基於網絡控制晶片DM9000A的DSP乙太網接口實現方式。隨著網絡技術的發展,在工業控制、智能儀器、智能家庭等領域,越來越多的DSP設備要求具有乙太網通信功能,以便與外部網絡設備進行數據通信。乙太網控制晶片是乙太網接口的核心器件,其性能是影響網絡性能的關鍵因素之一,如何正確使用網絡控制器是設計乙太網接口的關鍵。
  • 一種基於SoPC的千兆乙太網接口卡設計
    摘要:研究並設計了一種基於SoPC的千兆乙太網接口卡,重點對千兆乙太網接口卡的組成、工作流程、EMAC、時鐘管理、用戶邏輯設計和軟體設計等關鍵技術進行了描述,並基於Xilinx平臺驗證了千兆乙太網接口卡的有效性。本文的研究為基於SoPC實現自主化的千兆乙太網產品具有一定的工程參考價值。
  • CP2200實現乙太網接口電路設計須知
    當前,嵌入式設計人員在為遠程控制或監控設備提供乙太網接入時,使用的乙太網控制器(如RTL8019、DM9008、CS8900A($6.1200)等)都是專為個人計算機系統設計的。這些器件不僅接口電路複雜,體積較大,而且比較昂貴。
  • 如何使用STM32設計嵌入式乙太網控制門禁系統
    如何使用STM32設計嵌入式乙太網控制門禁系統 電子設計 發表於 2018-09-03 11:06:17 引言 當前,有很多的企業是採用佩戴工作證來完成門禁管理,而且還是採用傳統的人工方式完成,
  • 基於嵌入式技術的MultiBus―CPU模塊設計
    該模塊利用嵌入式系統解決了顯示接口實現困難的問題,具有較好的實際應用前景。關鍵詞:嵌入式技術;MultiBus―CPU模塊;顯示接口本文引用地址:http://www.eepw.com.cn/article/151769.htm引言 MultiBus―CPU模塊是基於AT91RM9200微控制器的智能化多總線測控模塊。
  • 基於RS-232串行接口的串口轉乙太網橋設計
    數以千計的工業設備是基於RS-232接口開發出來的。但對於電子通信而言,發展的步伐已進入到一個更高水平。 今天,乙太網是用於本地和廣域網應用、定義完善的標準。無數設備通過乙太網TCP/IP協議訪問網際網路。儘管存在其它物理層實現,但直到電子通信因需要引入更快、更先進的協議之前,乙太網仍將會佔有相當話語權。 無數新設計仍將乙太網作為主要網絡標準。
  • 基於乙太網的信號處理平臺動態重構設計
    隨著電子技術的發展,以「FPGA+DSP+嵌入式處理器」為核心的信號處理平臺需要基於資源動態重組設計思想採用開放式、標準化的通用架構,按用戶需求對平臺進行資源重組,實現系統功能的可重構,以滿足在設備資源有限情況下工作模式多樣化、靈活配置的用戶需求[1-3]。
  • 基於VxWorks系統的嵌入式實時PLC設計
    基於VxWorks系統的嵌入式實時PLC設計 作者:51Touch時間:2010-05-27 來源:中國傳動網     北京時間05月27日消息,中國觸控螢幕網訊, 隨著數字信息技術和網絡技術的高速發展,人類正步入一個嶄新的後PC時代。
  • 一種嵌入式乙太網/CAN網關的設計
    在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制區域網的標準總線,並且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。近年來,其所具有的高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用於汽車計算機控制系統和環境溫度惡劣、電磁輻射強和振動大的工業環境。CAN與乙太網採用的網絡協議,為計算機網絡中進行數據交換而建立的規則、標準或約定的集合。
  • 基於PXA255設計的圖像採集傳輸系統
    本文結合實際系統中的前端圖像處理和圖像數據傳輸需要.充分利用ARM的靈活性和FPGA的並行性特點,設計了一種基於ARM+FPGA的圖像快速採集傳輸系統。所選的ARM (Ad-vanced RISC Machines)體系結構是32位嵌入式RISC微處理器結構,該微處理器擁有豐富的指令集且編程靈活。
  • 基於ARM的嵌入式無線視頻採集系統設計
    在網際網路的普遍推廣和網絡帶寬逐漸提高的背景下,視頻監控技術飛速發展,出現了集多媒體技術、網絡通信技術、嵌入式技術於一體的嵌入式網絡視頻監控系統。   目前國內嵌入式視頻監控系統的研究有了很大的發展,但是國內對嵌入式無線視頻監控系統的研究還比較少。本文介紹了自主開發的基於ARM的嵌入式無線視頻採集系統設計方案。
  • 串口轉乙太網實現了TCP/IP的嵌入式協議轉換
    打開APP 串口轉乙太網實現了TCP/IP的嵌入式協議轉換 zstel 發表於 2020-12-02 12:17:36 串口轉乙太網模塊是嵌入式設備、單片機和物聯網採集系統基於TCP/IP協議接入網絡的一種方便、穩定的解決方案。
  • 實現RS-232接口與RJ45乙太網接口轉換器的設計方案
    打開APP 實現RS-232接口與RJ45乙太網接口轉換器的設計方案 陳傳虎 發表於 2020-02-06 08:10:00
  • 基於51單片機的嵌入式SNMP代理器設計與實現
    由於其傳輸媒介是Internet,所以傳輸距離不受限制,這相對於其他工業控制總線有不可比擬的優勢,SNMP最大的優點是協議簡潔,適合嵌入式應用。SNMP體系可擴展性強,只要將新的MIB裝載在管理軟體上就可以實現對新的終端的控制與訪問,本文介紹了一種基於廉價的微控制器的實現嵌入式代理器的方案,以微處理器核心實現相關硬體及軟體。
  • 基於網絡的嵌入式IP可視電話設計方案
    筆者基於TI公司的單顆600 MHz TMS320DM643(簡稱為DM643)數字媒體處理器,開發了一套性能優異、價格低廉的嵌入式IP可視電話,實現點對點網絡音視頻實時通信。1 基於TMS320DM643的硬體設計DM643數字媒體處理器[1]集成了一系列外設,以適應視頻和影像技術的發展。
  • 基於嵌入式WEB的電站數據動態監控軟體設計
    摘要:採用ARM11微處理器SC6410結合485及乙太網通信構建了嵌入式Linux上的WEB伺服器,實現了對太陽能發電站監測系統的動態數據採集、分析、處理、存儲和顯示。
  • 基於Simulink的嵌入式網絡化控制仿真實現
    摘要:實現了基於Simulink/Real-Time Workshop(RTW)的嵌入式網絡化控制仿真系統,構建了以ARM7TDMI型CPU為核,運行uClinux作業系統的嵌入式平臺。建立了廣域網範圍的網絡環境,通過延時測量實驗獲得了網絡延時統計特性,並針對該網絡環境下的分布式控制系統的前向通道和反饋通道分別提出了延時補償方法。
  • 基於EM8620的IPTV機頂盒設計
    1 硬體設計 1.1 設計要求分析 通過為iptv業務特性的詳細分析,總結出fpga機頂盒硬體設計方面的四項要求: (1)具有網絡接入功能,能夠利用lan、dsl等方式接入到網際網路、支持tcp/ip、ftp、rtp、rtsp、rtcp、igmp多種網絡協議。
  • 實時乙太網EtherCAT從站的硬體系統設計
    本文引用地址:http://www.eepw.com.cn/article/201610/306372.htm引言將乙太網技術應用於工業控制領域形成的工業乙太網技術是當前工業控制網絡和現場總線技術的一個很重要的發展方向。與傳統的現場總線相比,乙太網現場總線具有性價比高、傳輸速度快、數據量大、可接入標準乙太網端等優點。