国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于fpga的嵌入式網(wǎng)絡(luò)接口控制器設(shè)計

2016-01-18 12:08王輝
電腦知識與技術(shù) 2015年33期

王輝

摘要:近年來,網(wǎng)絡(luò)技術(shù)發(fā)展迅速,且為推動社會各個生產(chǎn)生活領(lǐng)域的發(fā)展做出了較大貢獻(xiàn),而工業(yè)以太網(wǎng)技術(shù)的出現(xiàn)也使得其進(jìn)一步融入到控制系統(tǒng)網(wǎng)絡(luò)中的控制層與設(shè)備層。為了進(jìn)一步促進(jìn)以太網(wǎng)技術(shù)的發(fā)展,該文以基于fpga的嵌入式網(wǎng)絡(luò)接口控制器作為主要研究對象,通過對嵌入式網(wǎng)絡(luò)接口控制器的工作原理進(jìn)行簡要闡述,進(jìn)而對基于fpga的嵌入式網(wǎng)絡(luò)接口控制器的硬件和軟件平臺展開了全面的設(shè)計和分析。

關(guān)鍵詞:fpga;嵌入式網(wǎng)絡(luò)接口;板級支持包

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)33-0025-02

對傳統(tǒng)的控制系統(tǒng)進(jìn)行分析可知,其在信息層大都以以太網(wǎng)為主,而在設(shè)備層與控制層則選取不同的現(xiàn)場總線支持局域網(wǎng)聯(lián)網(wǎng)。而隨著工業(yè)以太網(wǎng)技術(shù)的產(chǎn)生與發(fā)展,以太網(wǎng)也由傳統(tǒng)的信息層逐漸滲透到了控制層與設(shè)備層。在此背景下,將以微控制器和微處理作為硬件核心的嵌入式網(wǎng)絡(luò)接口控制器融入到數(shù)控機(jī)床、機(jī)械手等工業(yè)設(shè)備中,并促使其與以太網(wǎng)形成有效連接,提高設(shè)備的控制效率,已成為當(dāng)前工業(yè)以太網(wǎng)領(lǐng)域需要著重開展的關(guān)鍵工作。

1 嵌入式網(wǎng)絡(luò)接口控制器工作原理

對嵌入式網(wǎng)絡(luò)接口控制器進(jìn)行分析可知,其選用的是DM9000E芯片為主控制器,以此來實現(xiàn)接口數(shù)據(jù)信息同上層以太網(wǎng)的數(shù)據(jù)交換,并以32位微處理器s3c2410與嵌入式Linux系統(tǒng)為基礎(chǔ)實現(xiàn)協(xié)議與數(shù)據(jù)處理,而后,將經(jīng)處理的數(shù)據(jù)下傳至底層的設(shè)備終端,同時,將來自底層設(shè)備終端的數(shù)據(jù)進(jìn)行處理并實現(xiàn)協(xié)議,在經(jīng)由DM900E芯片傳至互聯(lián)網(wǎng)中[1]。

2 基于fpga的嵌入式網(wǎng)絡(luò)接口控制器硬件設(shè)計

2.1 fpga簡介

設(shè)計中的核心控制器fpga選取Altrea公司的EP2C8Q208C8型號fpga為主,其是Altera CycloneⅡ系列器件的關(guān)鍵組成部分,其應(yīng)用主要集中在終端市場,如計算機(jī)、工業(yè)以及汽車等相關(guān)領(lǐng)域。fpga中的鎖相環(huán)以及全局時鐘網(wǎng)絡(luò)和邏輯單元的個數(shù)分別為2、8和8256,此外,還具有36個M4K RAM與138個I/O端口,具有成本低、性能高、低功耗與強(qiáng)擴(kuò)展等諸多優(yōu)勢。但由于其內(nèi)部的塊隨機(jī)存儲器,即BlockRam的容量并不能夠滿足VxWorks以及Linux等操作系統(tǒng)對存儲空間的需求,故引入一32MB的Flash作為映像與引導(dǎo)程序的主要存儲模塊,同時,以256MB的新生代內(nèi)存標(biāo)準(zhǔn)DDR2提供程序運行空間,另引入1個RS232通訊接口和GPIO以供調(diào)試[2]。

2.2 Temac設(shè)計

首先,對Temac,即三態(tài)以太網(wǎng)媒體訪問控制器進(jìn)行設(shè)計,Temac的原語包括了一對10/100/1000MB的以太網(wǎng)Mac,而對Virtex系列器件進(jìn)行分析可知,其所含有的以太網(wǎng)mac模塊數(shù)大都為4個,故其完全符合IEEE802.3規(guī)范。對以太網(wǎng)Mac的模塊結(jié)構(gòu)進(jìn)行設(shè)計,以對外接口的類型為依據(jù),可將其接口模塊劃分為物理接口、客戶端接口以及控制接口,且每一個Mac還具備一可選管理的數(shù)據(jù)I/O接口,利用此接口能夠?qū)崿F(xiàn)對物理層中管理寄存器以及以太網(wǎng)Mac本身的物理接口管理寄存器的訪問[3]。

其次,為了提高設(shè)計的全面性和可靠性,以跳線選擇的方式將以太網(wǎng)Mac的物理接口劃分為GMⅡ(密碼設(shè)備應(yīng)用接口)與SGMⅡ(串行千兆位煤質(zhì)獨立接口),當(dāng)選擇GMⅡ接口時,外部的88E1111-RCJ配置寄存器為物理層芯片,而選擇SGMⅡ接口時,則可減少Temac同外部物理層接口的接線數(shù)量,利用脈沖編碼調(diào)制/物理媒介適配層模塊,即PCS/PMA同RocketIO收發(fā)器共同工作,從而為Temac提供GBIC或是小型的SFP光纖收發(fā)器所具備的全部功能,從而有效防止1000Base-X網(wǎng)絡(luò)在應(yīng)用過程中所需外部物理層芯片而造成結(jié)構(gòu)和數(shù)據(jù)冗余的問題[4]。還需說明的是,為了進(jìn)一步簡化設(shè)計并為后續(xù)片上系統(tǒng)集成奠定基礎(chǔ),還應(yīng)引入PLB控制總線,所引入的PLB_Temac總線核中具有大小可調(diào)的先入先出隊列與直接內(nèi)存存取引擎,從而使嵌入式的PowerPc系統(tǒng)構(gòu)建得以進(jìn)一步簡化。

2.3片上系統(tǒng)集成設(shè)計

在片上系統(tǒng)的定制方面,其核心工作即系統(tǒng)主頻的設(shè)計,并實現(xiàn)對質(zhì)量、數(shù)據(jù)Cache大小和外部數(shù)據(jù)指令的選配,其外設(shè)IP包括了DDR2協(xié)議標(biāo)準(zhǔn)下的控制接口IP以及外部Flash與GPIO接口IP和PLB_Temac網(wǎng)絡(luò)接口IP。在Flash單元模塊方面,需對其類型與讀寫時間進(jìn)行設(shè)計,并視情況引入調(diào)試用串口Uart16550,以供調(diào)試。同時,還需對DCM即時鐘管理模塊與FPGA的Ram區(qū)域進(jìn)行設(shè)置,以分別實現(xiàn)時鐘管理和.boot文件的存放功能。在外設(shè)方面,以PLB總線與PPC通信地址的統(tǒng)一分配共同實現(xiàn),并將DDR2的內(nèi)存空間地址分至初始狀態(tài)0×0。

對DDR2協(xié)議標(biāo)準(zhǔn)下的控制器進(jìn)行設(shè)計,其采用XPS生產(chǎn)的Memory Controller模塊,并對DDR2的芯片廠商以及芯片內(nèi)存大小與容納數(shù)據(jù)位數(shù)等進(jìn)行設(shè)計,還需說明的是,除了上述各項模塊、功能的配置的外,還需另外設(shè)置兩條獨立的PLB總線,并將其同PPC線相連,使二者共同作為PPC的指令總線與數(shù)據(jù)總線。此外,將XPS的PLB_Temac模塊加至MAC單元當(dāng)中實現(xiàn)接口控制[5]。

2.4外圍電路設(shè)計

外圍電路的設(shè)計需要以現(xiàn)場可編程門陣列fpga為核心,并逐步向外延伸各類設(shè)備,在設(shè)置fpga的引腳時需要對不同的電壓控制晶體振蕩器的電壓予以充分考慮,且考慮到DDR2與物理層PHY芯片分別在+2.5V和+1.8V的電壓下方能運轉(zhuǎn),且外設(shè)所需電壓為3.3V,故與DDR2及PHY芯片連接的引腳電源應(yīng)分別提供2.5V與1.8V電壓,而與片外設(shè)相連的引腳所在電源應(yīng)提供3.3V電壓。此外,還需將DCM時鐘管理模塊置于全局時鐘引腳處,實現(xiàn)時鐘信號的管理和傳遞。在DDR2進(jìn)行布線過程中,要確保數(shù)據(jù)線與地址線等長,且數(shù)據(jù)線和地址線要分別控制在10Mil(千分之一英寸)和20Mil之內(nèi),而時鐘線除了需要進(jìn)行差分等長設(shè)置外,還應(yīng)保證其長度大于地址線,從而避免時鐘信號接受延遲。

3 基于fpga的嵌入式網(wǎng)絡(luò)接口控制器軟件設(shè)計

首先,對板級支持包BSP的移植進(jìn)行分析。以微處理器與嵌入式操作系統(tǒng)為平臺和依據(jù),EDK(嵌入式開發(fā)套件)中的BSP生成器BSP_GEN能夠自動產(chǎn)生供用戶裁剪的BSP,其不僅能夠支持Boot代碼和設(shè)備驅(qū)動的初始化,而且也能夠支持操作系統(tǒng)本身的初始化。利用BSP_GEN,將可編程邏輯完整解決方案的相關(guān)驅(qū)動進(jìn)行打包,并存至BSP子目錄當(dāng)中,同時,將上述驅(qū)動同Vxworks操作系統(tǒng)的集成開發(fā)環(huán)境進(jìn)行無縫集成,用以縮短控制器的開發(fā)周期。但需要說明的是,BSP生成器BSP_GEN實質(zhì)上是一類固定的BSP模板,故難以將RAM/ROM存儲器映射予以正確、全面反映,且并不能夠?qū)τ脩敉ㄟ^BSP_GEN茲定于核驅(qū)動予以良好支持,基于此,還需要對BSP_GEN所生成的BSP做出相應(yīng)的改進(jìn):1)修改Makefile文件中的RAM與ROM地質(zhì)和串口波特率,對串口進(jìn)行正確設(shè)置;2)引入難以同Vxworks操作系統(tǒng)無縫集成的器件所對應(yīng)的驅(qū)動文件,并對systemNet.c中的以太網(wǎng)參數(shù)進(jìn)行配置,實現(xiàn)對MAC地址的準(zhǔn)確設(shè)置;3)以EDK中的相關(guān)配置為依據(jù),將Cache禁止并修改systemLih.c,確保生成器顯示的信息準(zhǔn)確無誤,且對主機(jī)的IP地址進(jìn)行科學(xué)設(shè)置。

其次,對雙向通信連接的Socket端的用戶數(shù)據(jù)報協(xié)議,即UDP進(jìn)行程序設(shè)計,BSP的配置與修改工作完成后,進(jìn)入到UDP服務(wù)端程序書寫環(huán)節(jié)。在網(wǎng)絡(luò)通信方面,大都能夠通過Socket予以實現(xiàn),其編程選取的是基于客戶端/服務(wù)器的數(shù)據(jù)通信模式,對Vxworks系統(tǒng)進(jìn)行分析可知,其向用戶提供了標(biāo)準(zhǔn)的BSDsocket用以支持UDP協(xié)議的傳輸,并允許同遠(yuǎn)程計算機(jī)建立連接,從而實現(xiàn)基于UDP協(xié)議的數(shù)據(jù)傳輸。

服務(wù)器工作的具體流程為:1)服務(wù)器調(diào)用Socket(),建立起套接字socket,并調(diào)用bind()將套接字同本地網(wǎng)絡(luò)地址進(jìn)行捆綁,以供客戶端準(zhǔn)確識別;2)服務(wù)器調(diào)用listen()將套接字置于準(zhǔn)備接收狀態(tài)中,并標(biāo)明套接字請求隊列的長度,而后,對accept()進(jìn)行調(diào)用,用以接受客戶連接;3)上述工作完成后,服務(wù)器進(jìn)程便進(jìn)入相對阻塞的狀態(tài),使客戶端、服務(wù)器的關(guān)系轉(zhuǎn)為非對稱,而服務(wù)器則率先啟動,并根據(jù)某一時刻,客戶端發(fā)出的請求,進(jìn)行被動應(yīng)答。

客戶端的具體工作流程為:1)調(diào)用Socket()函數(shù),建立客戶端與系統(tǒng)連接的套接口,同時,將各套接口所對應(yīng)的ID號予以返回;2)對某一套接口的結(jié)構(gòu)體進(jìn)行初始化,并向其賦予返回ID號和服務(wù)端IP地址及IP端口號,而后,將其作為關(guān)聯(lián)函數(shù)connect()的主要參數(shù),對connect()函數(shù)進(jìn)行調(diào)用,促使客戶端主動與服務(wù)端相連,實現(xiàn)數(shù)據(jù)傳輸。

最后,對系統(tǒng)進(jìn)行調(diào)試。為了確保系統(tǒng)調(diào)試的有效性,借助ChipScope Pro內(nèi)嵌邏輯分析儀對fpga片上系統(tǒng)的內(nèi)部數(shù)據(jù)進(jìn)行抓取分析,以達(dá)到快速調(diào)試和驗證優(yōu)化的目的。此外,根據(jù)內(nèi)嵌邏輯分析儀存儲器在進(jìn)行讀寫過程中捕獲的實時數(shù)據(jù)仿真結(jié)果,進(jìn)而對接口控制器的時序進(jìn)行優(yōu)化設(shè)計,完成控制器的調(diào)試及驗證。

4結(jié)論

本文通過對嵌入式網(wǎng)絡(luò)接口控制器的工作原理進(jìn)行簡要說明,在對fpga進(jìn)行簡要介紹的基礎(chǔ)上,分別從Temac、片上系統(tǒng)集成與外圍電路等方面對嵌入式網(wǎng)絡(luò)接口控制器的硬件部分展開設(shè)計,又從板級支持包及其修改、Socket下的UDP程序等方面對嵌入式網(wǎng)絡(luò)接口控制器的軟件部分展開設(shè)計。研究結(jié)果表明,將fpga加入操作系統(tǒng)后,能夠更為輕松地實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的接收與發(fā)送,對于促進(jìn)工業(yè)以太網(wǎng)技術(shù)的發(fā)展以及實現(xiàn)工業(yè)設(shè)備接口與以太網(wǎng)的有效連接具有重要的現(xiàn)實意義。

參考文獻(xiàn):

[1] 劉存,周曉波.基于FPGA的嵌入式千兆以太網(wǎng)接口設(shè)計[J].光通信技術(shù),2013,2(12):56-59.

[2] 郭鳳鳴,冉成科,余波,等.基于FPGA的嵌入式智能家居控制器設(shè)計[J].自動化技術(shù)與應(yīng)用,2011,10(05):72-75.

[3] 劉金龍,史忠科.基于FPGA的以太網(wǎng)與1553B網(wǎng)絡(luò)接口設(shè)計[J].測控技術(shù),2012,10(8):84-87.

[4] 劉巖,王曉君.基于FPGA和LAN91C111的嵌入式以太網(wǎng)接口設(shè)計[J].電子元器件應(yīng)用,2012,12(18):1-3.

[5] 王鵬,秦文進(jìn).基于ARM和FPGA的嵌入式工業(yè)控制器設(shè)計[J].自動化與儀器儀表,2014,1(18):53-55.

郎溪县| 宁津县| 织金县| 且末县| 察哈| 措勤县| 郯城县| 同心县| 泗水县| 灵台县| 玉环县| 修水县| 乐至县| 察雅县| 岳普湖县| 墨江| 赣榆县| 库车县| 昌都县| 湘阴县| 盖州市| 密云县| 册亨县| 通许县| 磐石市| 定结县| 卢氏县| 凤台县| 卓尼县| 平邑县| 陕西省| 辽阳市| 虎林市| 高青县| 昭平县| 前郭尔| 蚌埠市| 许昌县| 榆林市| 阳曲县| 大名县|