<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è) > 嵌入式系統 > 設計應用 > 基于FPGA和LAN91C111的嵌入式以太網(wǎng)接口設計

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

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

1.3 硬件連接
芯片EP2C35中嵌入了32位的NIOS II處理器。由于是專(zhuān)為系統的,因而其外圍電路相對比較簡(jiǎn)單。圖2所示是其硬件連接圖,圖中的地址線(xiàn)、數據線(xiàn)、控制線(xiàn)分別與相連。由于采用的是16位數據傳輸方式,因此只用到數據總線(xiàn)的低16位??刂凭€(xiàn)中的AEN為片選信號,INTR0為外部中斷信號,WR為讀寫(xiě)信號,BE0-BE1為字節選擇端。中的ADS、LCLK、CYCLE、W/R、RDYR-TN信號應均加一個(gè)1kΩ的上拉電阻。TG10o-S050N2是的變壓濾波器。TX+、TX-、RX+、RX-分別與的TPO+、TPO-、TPI+、YPI-相連。TG100-S050N2的CMT端也應接一個(gè)1kΩ的上拉電阻。RJ45的TD+、TD-、RD+、RD-分別與TG100-S050N2的TD4+、TD-、RD+、RD-相連。在TG100-S050N2的TCT和RCT亦應分別接一個(gè)75Ω的電阻和1nF的濾波電容。這樣即可在控制線(xiàn)的作用下完成與LAN91C111之間的數據通信。

本文引用地址:http://dyxdggzs.com/article/150920.htm

b.JPG



2 軟件
ALTERA公司提供的硬件抽象層(HAL)中封裝了系統中硬件的相關(guān)細節和驅動(dòng)程序,用戶(hù)可在HAL的基礎上方便地開(kāi)發(fā)存儲等應用程序。
NIOSⅡIDE環(huán)境中集成有μCOS II和LWIP,其中LWIP必須在μCOS的支持下使用。μC/OSⅡ是一種免費公開(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處理器提供對連接棧的快速、開(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中定義的所有已安裝的設備驅動(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ù),建立套接字,綁定端口,綁定完之后,再監聽(tīng)端口。當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Ⅱ方案,還可根據實(shí)際需要添加不同IP,這也體現了SOPC的靈活性與可裁減性。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(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>