www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于FPGA和LAN91C111的嵌入式以太網(wǎng)接口設(shè)計(jì)

摘要:介紹了SMSC公司生產(chǎn)的嵌入式以太網(wǎng)控制器LAN91C111的主要特點(diǎn)及工作原理,并從系統(tǒng)方案、硬件設(shè)計(jì)、軟件設(shè)計(jì)等方面,詳細(xì)介紹了基于ALTERA公司的NIOS II軟核處理器芯片LAN91C111芯片來(lái)實(shí)現(xiàn)以太網(wǎng)互聯(lián)通信的原理和方法。
關(guān)鍵詞:以太網(wǎng);互聯(lián)網(wǎng)通信;LAN91C111;NIOS

0 引言
    隨著CPU性能的大幅度提升,嵌入式系統(tǒng)的設(shè)計(jì)已經(jīng)進(jìn)入了更廣泛的領(lǐng)域。隨著FPGA的不斷發(fā)展和規(guī)模的進(jìn)一步強(qiáng)大,SOPC的應(yīng)用也越來(lái)越廣泛。由于SOPC的可編程特性很受嵌入式系統(tǒng)開發(fā)人員的青睞,因此,隨著信息產(chǎn)業(yè)和微電子技術(shù)的發(fā)展,可編程嵌入式系統(tǒng)設(shè)計(jì)已經(jīng)成為信息產(chǎn)業(yè)最熱門的技術(shù)之一,F(xiàn)PGA正以各種電子產(chǎn)品的形式進(jìn)入人們?nèi)粘I畹母鱾€(gè)角落。
    以太網(wǎng)以其良好的通用性和帶寬性能成為新一代工業(yè)控制網(wǎng)絡(luò)的焦點(diǎn),目前,關(guān)于嵌入式以太網(wǎng)的設(shè)計(jì)方案大部分是基于單片機(jī)的。由于單片機(jī)的速度慢,而FPCA作為一種特殊的嵌入式微處理器系統(tǒng),則具有快速處理數(shù)據(jù)的能力。因此,在嵌入式網(wǎng)絡(luò)設(shè)備中引入FPGA技術(shù),可以使嵌入式以太網(wǎng)的速度更快。為此,本文介紹基于FPGA的嵌入式系統(tǒng)與LAN91C111型自適應(yīng)10Mb/100Mb嵌入式以太網(wǎng)的接口電路與實(shí)現(xiàn)方法。

1 硬件設(shè)計(jì)
1.1 FPGA的特點(diǎn)
    本系統(tǒng)的主控芯片采用ALTERA公司CycloneII系列的EP2C35F484。FPGA內(nèi)部集成有鎖相環(huán),可以把外部時(shí)鐘倍頻,其核心頻率可以到幾百兆,同時(shí)具有豐富的IO資源,可以方便連接外設(shè)。FPGA的并行執(zhí)行程序方式具有處理更復(fù)雜功能的能力,而且內(nèi)部嵌有SOPC和DSP。可編程SOPC是一種特殊的嵌入式系統(tǒng),具有靈活的設(shè)計(jì)方式,而且可裁剪、可擴(kuò)充,同時(shí)軟硬件在系統(tǒng)可編程功能。
1.2 嵌入式以太網(wǎng)控制器LAN91C111
    以太網(wǎng)控制芯片所選用的SMSC公司LAN91C111芯片是專門用于嵌入式產(chǎn)品的10M/100M第三代快速以太網(wǎng)控制器。該器件具有可編程、CRC校驗(yàn)、同步或異步工作方式,且具有低功耗CMOS設(shè)計(jì)和小尺寸等特點(diǎn),是設(shè)計(jì)嵌入式以太網(wǎng)網(wǎng)絡(luò)接口的良好選擇。LAN91C111的原理框圖如圖1所示。


    LAN91C111集成了CSMA/CD(帶碰撞的載波偵聽多路接入)協(xié)議的MAC(媒體層)和PHY(物理層)。其主要特點(diǎn)是支持IEEE802.3/802 U以太網(wǎng)標(biāo)準(zhǔn)、自適應(yīng)10M/100M,全雙工/半雙工收發(fā)方式、有8KB的片上FIFO存儲(chǔ)器、支持8位或16位或32位總線方式、支持先進(jìn)的傳輸隊(duì)列管理、有串行EEPROM選擇性配置口、并支持突發(fā)數(shù)據(jù)傳輸、支持全雙工交換式以太網(wǎng)、增強(qiáng)式能量管理功能和低功耗的CMOS設(shè)計(jì)。
    總線接口模塊是由數(shù)據(jù)總線、地址總線、控制總線以8位、16位、或32位形式與外部數(shù)據(jù)進(jìn)行交互。LAN91C111以太網(wǎng)控制器遵循IEEE頒布的802.3以太網(wǎng)傳輸協(xié)議,內(nèi)部集成有8KB的RAM,可通過(guò)內(nèi)部的內(nèi)存管理模塊、仲裁模塊和DMA共同管理數(shù)據(jù)包的發(fā)送與接收。其仲裁器監(jiān)視以太網(wǎng)總線的數(shù)據(jù)交流,一旦發(fā)生阻塞。仲裁器一方面通過(guò)總線接口單元與外部CPU聯(lián)系;一方面控制內(nèi)存控制單元,實(shí)現(xiàn)總線的數(shù)據(jù)協(xié)調(diào)。LAN91C111內(nèi)部的RAM可以緩存數(shù)據(jù),在全雙工工作模式下,數(shù)據(jù)傳輸速率可達(dá)到10M/100Mbps。所有內(nèi)部寄存器的初始值均放在EEPROM中,自舉時(shí)可完成自動(dòng)初始化。在數(shù)據(jù)傳輸過(guò)程中,若以10Mbps速率傳輸,則可采用Manchester編碼,并以兩層曼徹斯特代替三電平,且沒(méi)有擾頻器和解擾頻器;若以100Mbps速率傳輸,則先將發(fā)送到RAM中的數(shù)據(jù)包以包號(hào)的形式存放在FIFO的發(fā)送隊(duì)列中,然后按照規(guī)則逐個(gè)將數(shù)據(jù)包發(fā)送到PHY模塊進(jìn)行4B-5B編碼,發(fā)送數(shù)據(jù)端可將通過(guò)擾頻器整理后的4B-5B數(shù)據(jù)包變換成MLT-3后輸出。而在接收時(shí),則將數(shù)據(jù)包復(fù)制并發(fā)送到解擾頻器進(jìn)行整理,然后再發(fā)送到4B-5B解碼器進(jìn)行解碼。[!--empirenews.page--]
1.3 硬件連接
    本設(shè)計(jì)在FPGA芯片EP2C35中嵌入了32位的NIOS II處理器。由于LAN91C111是專為嵌入式系統(tǒng)設(shè)計(jì)的,因而其外圍電路相對(duì)比較簡(jiǎn)單。圖2所示是其硬件連接圖,圖中的地址線、數(shù)據(jù)線、控制線分別與FPGA相連。由于采用的是16位數(shù)據(jù)傳輸方式,因此只用到數(shù)據(jù)總線的低16位??刂凭€中的AEN為片選信號(hào),INTR0為外部中斷信號(hào),WR為讀寫信號(hào),BE0-BE1為字節(jié)選擇端。LAN91C111中的ADS、LCLK、CYCLE、W/R、RDYR-TN信號(hào)應(yīng)均加一個(gè)1kΩ的上拉電阻。TG10o-S050N2是以太網(wǎng)的變壓濾波器。TX+、TX-、RX+、RX-分別與LAN91C111的TPO+、TPO-、TPI+、YPI-相連。TG100-S050N2的CMT端也應(yīng)接一個(gè)1kΩ的上拉電阻。RJ45的TD+、TD-、RD+、RD-分別與TG100-S050N2的TD4+、TD-、RD+、RD-相連。在TG100-S050N2的TCT和RCT亦應(yīng)分別接一個(gè)75Ω的電阻和1nF的濾波電容。這樣即可在控制線的作用下完成FPGA與LAN91C111之間的數(shù)據(jù)通信。



2 軟件設(shè)計(jì)
    ALTERA公司提供的硬件抽象層(HAL)中封裝了系統(tǒng)中硬件的相關(guān)細(xì)節(jié)和驅(qū)動(dòng)程序,用戶可在HAL的基礎(chǔ)上方便地開發(fā)存儲(chǔ)等應(yīng)用程序。
NIOSⅡIDE環(huán)境中集成有μCOS II和LWIP,其中LWIP必須在μCOS的支持下使用。μC/OSⅡ是一種免費(fèi)公開源代碼,結(jié)構(gòu)小巧,而且具有可剝奪
實(shí)時(shí)內(nèi)核的操作系統(tǒng),它可移植、可裁剪,最多可管理64個(gè)任務(wù),其每個(gè)任務(wù)都擁有自己獨(dú)立的堆棧,大部分源碼可使用ANSI C語(yǔ)言編寫,整個(gè)軟件部分可在NIOS II IDE開發(fā)環(huán)境下完成。由于程序的內(nèi)容較多,本文著重介紹LAN91C111的初始化、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)三個(gè)部分的軟件設(shè)計(jì)方法。
2.1 初始化
    ALTERA提供有LWIP的NIOS II端口,其源代碼包含在NIOS II開發(fā)工具包中。LWIP可為NIOS II處理器提供對(duì)以太網(wǎng)連接棧的快速、開源
地訪問(wèn)。ALTERA的LWIP端口包括套接字API封裝,提供有標(biāo)準(zhǔn)的、文檔說(shuō)明齊全的套接字API。LWIP協(xié)議棧的主要接口是標(biāo)準(zhǔn)的套接字接口。
除了套接字接口以外,還可調(diào)用lwip_stack_init()函數(shù)和lwip_devices_init()函數(shù)來(lái)對(duì)堆棧和驅(qū)動(dòng)程序初始化。通過(guò)HAL系統(tǒng)代碼可調(diào)用
init_done_func()、get_mac_addr()和get_ip_addr()函數(shù)來(lái)設(shè)置MAC地址和IP地址。為了初始化堆棧,在調(diào)用OSStart啟動(dòng)μC/OS II調(diào)度程序之前應(yīng)調(diào)用函數(shù)lwip_stack_init(),其原型為voidlwip_stack_init( int thread_prio, void(*init_done_func)(void*),void*arg)。堆棧初始化后,還必須調(diào)用函數(shù)init_done_func(),而該函數(shù)必須調(diào)用函數(shù)lwip_devices_init()。利用函數(shù)lwip_devices_init()可以對(duì)在system.h中定義的所有已安裝的以太網(wǎng)設(shè)備驅(qū)動(dòng)程序進(jìn)行注冊(cè),若返回一個(gè)非0值則表示注冊(cè)成功。注冊(cè)成功后,TCP/IP棧即可使用,之后便可在程序中創(chuàng)建任務(wù)。該函數(shù)的參數(shù)是接收線程的優(yōu)先級(jí)。LWIP系統(tǒng)碼在設(shè)備初始化過(guò)程中,可通過(guò)lwip_devices_init()函數(shù)調(diào)用函數(shù)get_mac_addr()和get_ip_addr()。用戶通過(guò)編寫這些函數(shù),可在系統(tǒng)中將MAC和IP地址存放在任意位置,從而代替在設(shè)備驅(qū)動(dòng)程序中固定位置的硬編碼,并增加系統(tǒng)的靈活性。設(shè)計(jì)時(shí),可以將MAC地址存放在Flash存儲(chǔ)器中,也可以將MAC地址存放在片上內(nèi)嵌的存儲(chǔ)器中。當(dāng)所有的初始化都準(zhǔn)備好后即可調(diào)用OSStart()以啟動(dòng)RTOS進(jìn)行任務(wù)調(diào)度。這個(gè)過(guò)程需要設(shè)置以太網(wǎng)目的地址、以太網(wǎng)源地址、協(xié)議類型,然后再按照所設(shè)置的協(xié)議類型來(lái)設(shè)置數(shù)據(jù)包。
2.2 數(shù)據(jù)的發(fā)送和接收
    數(shù)據(jù)的接收和發(fā)送可采用中斷方式。中斷服務(wù)程序通過(guò)檢查L(zhǎng)AN91C111的中斷狀態(tài)寄存器來(lái)判斷是發(fā)送中斷請(qǐng)求還是接收中斷請(qǐng)求。初始化完成后,即可創(chuàng)建任務(wù),建立套接字,綁定端口,綁定完之后,再監(jiān)聽端口。當(dāng)LAN91C111接收到數(shù)據(jù)包時(shí),可由EPH模塊察看此數(shù)據(jù)包的目的地址,若為本網(wǎng)卡的MAC地址或廣播地址或多播地址,則把此數(shù)據(jù)包傳送到LAN91C111的RAM中,并向處理器發(fā)送中斷,由處理器進(jìn)行數(shù)據(jù)處理。由于采用的是TCP/IP協(xié)議,接收數(shù)據(jù)應(yīng)調(diào)用read()函數(shù)來(lái)接收建立連接的套接字中的數(shù)據(jù),并將其放入緩沖區(qū)。發(fā)送過(guò)程則是由FPGA將數(shù)據(jù)傳送到LAN91C111,再由LAN91C111將接收到的數(shù)據(jù)封裝成數(shù)據(jù)包,并檢測(cè)網(wǎng)絡(luò),當(dāng)沒(méi)有數(shù)據(jù)傳輸時(shí),再將數(shù)據(jù)包傳輸?shù)骄W(wǎng)絡(luò)中,并向處理器發(fā)送中斷信號(hào),以表示數(shù)據(jù)傳送完畢。發(fā)送數(shù)據(jù)時(shí)通過(guò)調(diào)用write()函數(shù)可將要發(fā)送的數(shù)據(jù)發(fā)送到指定連接的目的地址。

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉