<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于LAN91C111的嵌入式以太網(wǎng)接口設計

基于LAN91C111的嵌入式以太網(wǎng)接口設計

作者: 時(shí)間:2011-09-28 來(lái)源:網(wǎng)絡(luò ) 收藏

隨著(zhù)CPU性能的大幅度提升, 嵌入式系統的設計已經(jīng)進(jìn)入了更廣泛的領(lǐng)域。隨著(zhù)FPGA的不斷發(fā)展和規模的進(jìn)一步強大, SOPC的應用也越來(lái)越廣泛。由于SOPC的可編程特性很受嵌入式系統開(kāi)發(fā)人員的青睞, 因此, 隨著(zhù)信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展, 可編程嵌入式系統設計已經(jīng)成為信息產(chǎn)業(yè)最熱門(mén)的技術(shù)之一, FPGA正以各種電子產(chǎn)品的形式進(jìn)入人們日常生活的各個(gè)角落。

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

  1 硬件設計

  1.1 FPGA的特點(diǎn)

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

  1.2 嵌入式以太網(wǎng)控制器

  以太網(wǎng)控制芯片所選用的SMSC 公司芯片是專(zhuān)門(mén)用于嵌入式產(chǎn)品的10M/100M第三代快速以太網(wǎng)控制器。該器件具有可編程、CRC校驗、同步或異步工作方式, 且具有低功耗CMOS設計和小尺寸等特點(diǎn), 是設計嵌入式以太網(wǎng)網(wǎng)絡(luò )接口的良好選擇。LAN91C111的原理框圖如圖1所示。

LAN91C111的原理框圖

圖1 LAN91C111的原理框圖

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

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

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

  所有內部寄存器的初始值均放在EEPROM中, 自舉時(shí)可完成自動(dòng)初始化。在數據傳輸過(guò)程中, 若以10Mbps速率傳輸, 則可采用Manchester編碼,并以?xún)蓪勇鼜厮固卮嫒娖剑?且沒(méi)有擾頻器和解擾頻器; 若以100Mbps速率傳輸, 則先將發(fā)送到RAM中的數據包以包號的形式存放在FIFO的發(fā)送隊列中, 然后按照規則逐個(gè)將數據包發(fā)送到PHY模塊進(jìn)行4B-5B編碼, 發(fā)送數據端可將通過(guò)擾頻器整理后的4B-5B數據包變換成MLT-3后輸出。而在接收時(shí), 則將數據包復制并發(fā)送到解擾頻器進(jìn)行整理, 然后再發(fā)送到4B-5B解碼器進(jìn)行解碼。

  1.3 硬件連接

  本設計在FPGA芯片EP2C35中嵌入了32位的NIOS II處理器。由于LAN91C111是專(zhuān)為嵌入式系統設計的, 因而其外圍電路相對比較簡(jiǎn)單。圖2所示是其硬件連接圖, 圖中的地址線(xiàn)、數據線(xiàn)、控制線(xiàn)分別與FPGA相連。由于采用的是16位數據傳輸方式, 因此只用到數據總線(xiàn)的低16位??刂凭€(xiàn)中的AEN為片選信號, INTR0為外部中斷信號, WR為讀寫(xiě)信號, BE0-BE1為字節選擇端。

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

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


圖2 系統硬件連接圖

  2 軟件設計

  ALTERA公司提供的硬件抽象層(HAL) 中封裝了系統中硬件的相關(guān)細節和驅動(dòng)程序, 用戶(hù)可在HAL的基礎上方便地開(kāi)發(fā)存儲等應用程序。

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

  2.1 初始化

  ALTERA提供有LWIP的NIOS II 端口, 其源代碼包含在NIOS II 開(kāi)發(fā)工具包中。LWIP可為NIOS II處理器提供對以太網(wǎng)連接棧的快速、開(kāi)源地訪(fǎng)問(wèn)。ALTERA的LWIP端口包括套接字API封裝, 提供有標準的、文檔說(shuō)明齊全的套接字API。LWIP協(xié)議棧的主要接口是標準的套接字接口。除了套接字接口以外, 還可調用lwip_stack_init ()函數和lwip_devices_init () 函數來(lái)對堆棧和驅動(dòng)程序初始化。通過(guò)HAL 系統代碼可調用init_done_func ()、get_mac_addr () 和get_ip_addr() 函數來(lái)設置MAC地址和IP地址。為了初始化堆棧, 在調用OSStart啟動(dòng)μ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中定義的所有已安裝的以太網(wǎng)設備驅動(dòng)程序進(jìn)行注冊, 若返回一個(gè)非0值則表示注冊成功。注冊成功后,TCP/IP棧即可使用, 之后便可在程序中創(chuàng )建任務(wù)。該函數的參數是接收線(xiàn)程的優(yōu)先級。LWIP系統碼在設備初始化過(guò)程中, 可通過(guò)lwip_devices_init ( ) 函數調用函數get_mac_addr ( ) 和get_ip_addr ()。用戶(hù)通過(guò)編寫(xiě)這些函數, 可在系統中將MAC和IP地址存放在任意位置, 從而代替在設備驅動(dòng)程序中固定位置的硬編碼, 并增加系統的靈活性。設計時(shí), 可以將MAC地址存放在Flash存儲器中, 也可以將MAC地址存放在片上內嵌的存儲器中。當所有的初始化都準備好后即可調用OSStart () 以啟動(dòng)RTOS進(jìn)行任務(wù)調度。這個(gè)過(guò)程需要設置以太網(wǎng)目的地址、以太網(wǎng)源地址、協(xié)議類(lèi)型, 然后再按照所設置的協(xié)議類(lèi)型來(lái)設置數據包。

  2.2 數據的發(fā)送和接收

  數據的接收和發(fā)送可采用中斷方式。中斷服務(wù)程序通過(guò)檢查L(cháng)AN91C111的中斷狀態(tài)寄存器來(lái)判斷是發(fā)送中斷請求還是接收中斷請求。初始化完成后, 即可創(chuàng )建任務(wù), 建立套接字, 綁定端口, 綁定完之后, 再*端口。當LAN91C111接收到數據包時(shí), 可由EPH模塊察看此數據包的目的地址, 若為本網(wǎng)卡的MAC地址或廣播地址或多播地址, 則把此數據包傳送到LAN91C111的RAM中, 并向處理器發(fā)送中斷, 由處理器進(jìn)行數據處理。由于采用的是TCP/IP協(xié)議, 接收數據應調用read () 函數來(lái)接收建立連接的套接字中的數據,并將其放入緩沖區。發(fā)送過(guò)程則是由FPGA將數據傳送到LAN91C111, 再由LAN91C111將接收到的數據封裝成數據包, 并檢測網(wǎng)絡(luò ), 當沒(méi)有數據傳輸時(shí), 再將數據包傳輸到網(wǎng)絡(luò )中, 并向處理器發(fā)送中斷信號, 以表示數據傳送完畢。發(fā)送數據時(shí)通過(guò)調用write () 函數可將要發(fā)送的數據發(fā)送到指定連接的目的地址。

  3 結束語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>