技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于嵌入式SoPC的以太網(wǎng)接口設(shè)備

基于嵌入式SoPC的以太網(wǎng)接口設(shè)備

時間:2007-12-12 09:33:00來源:zhaohy

導語:?介紹的系統(tǒng)是一個以PowerPC 405為微處理器,基于VME總線的以太網(wǎng)接口設(shè)備,它通過以太網(wǎng)和VME總線接口,實現(xiàn)VME系統(tǒng)與外部局域網(wǎng)的實時數(shù)據(jù)交換
SoPC(片上系統(tǒng))的概念已日益普及,而隨著FPGA技術(shù)的迅速發(fā)展,可編程系統(tǒng)芯片(SoPC)作為一種特殊的嵌入式微處理器系統(tǒng),融合了SoC和FPGA各自的優(yōu)點,并具備軟硬件在系統(tǒng)可編程、可裁減、可擴充、可升級的功能,已逐漸成為一個新興的技術(shù)方向。SoPC的核心是在FPGA上實現(xiàn)的嵌入式微處理器核,目前主要有Xilinx公司的32位軟核MicroBlaze、32位PowerPC系列處理器硬核PowerPC 405,以及Altera公司的Nios系列微處理器軟核等。 本文介紹的系統(tǒng)是一個以PowerPC 405為微處理器,基于VME總線的以太網(wǎng)接口設(shè)備,它通過以太網(wǎng)和VME總線接口,實現(xiàn)VME系統(tǒng)與外部局域網(wǎng)的實時數(shù)據(jù)交換。 硬件開發(fā) 開發(fā)采用Xilinx公司的EDK7.1(嵌入式開發(fā)套件)和ISE7.1工具軟件。EDK工具包中集成了硬件平臺生成器(Platgen)、軟件平臺生成器(Libgen)、仿真模型生成器(Simgen)、軟件編譯器(Mb-gcc/ppc-gcc)和軟件調(diào)試工具(Mb-gdb/ppc-gdb)等,通過提供的集成開發(fā)環(huán)境XPS,用戶可以調(diào)用上述所有工具,來完成嵌入式系統(tǒng)開發(fā)的整個流程。 首先在XPS界面環(huán)境下生成硬件系統(tǒng)框架并添加所需的IP核,也可以用文本編輯器直接編寫硬件描述文件(.MHS文件),再調(diào)用Platgen將其生成嵌入式處理系統(tǒng)的網(wǎng)表文件(.NGC文件);然后通過系統(tǒng)生成或手工編輯的軟件描述文件(.MSS文件)來設(shè)置系統(tǒng)軟件配置,并調(diào)用Libgen生成驅(qū)動層和庫。雖然EDK的IP庫中有一些很有用的功能模塊和外設(shè)接口的IP核,如DCM(數(shù)字時鐘管理器)、處理器復位、PLB/OPB總線接口、外部存儲控制器(EMC)、UART、GPIO、中斷控制器、定時器等,充分利用這些資源就可以構(gòu)建一個較為完善的嵌入式微處理器系統(tǒng),但是對于許多有特殊專用電路的嵌入式計算機系統(tǒng)的應用還是不夠的。如何將用戶專用電路設(shè)計到EDK系統(tǒng)中,一般有兩種方法,第一種是將EDK工程作為一個子系統(tǒng)在XPS中用Export to PorjNav生成ISE工程,然后在ISE中將專用電路和處理器子系統(tǒng)(system.vhd)合成為頂層HDL文件(system_stub.vhd)后,在ISE中完成綜合布線,最后在XPS中用Import from PorjNav得到硬件的.bit文件,便可以回到XPS中完成和應用軟件的合成、下載和調(diào)試了。第二種方法是將專用電路設(shè)計成為用戶自定義的IP Core,然后直接在系統(tǒng)中調(diào)用來實現(xiàn)。自定義的IP Core用HDL設(shè)計并要滿足EDK的規(guī)范,如有專門目錄結(jié)構(gòu)和處理器外設(shè)定義文件(.MPD)、外設(shè)分析定義文件(.PAO)等。如果自定義的IP Core要具有軟件驅(qū)動,那設(shè)計還要完全符合相應的PLB或OPB總線接口規(guī)范。完成了硬件和驅(qū)動的設(shè)計后,就可以在XPS工程中添加應用軟件項目并編寫應用軟件,然后調(diào)用處理器對應的編譯器編譯并和硬件綜合后生成的.bit文件合成后下載到目標板便可以進行調(diào)試了。 本系統(tǒng)硬件組成框圖如圖1所示。本設(shè)計選用Virtex-II Pro系列FPGA芯片XC2VP40,將系統(tǒng)的程序存儲器和數(shù)據(jù)存儲器都放在片內(nèi)用Block RAM來實現(xiàn),在系統(tǒng)中添加DCM模塊,將外部參考時鐘4倍頻提供給PowerPC 405作處理器時鐘,并分頻后再送給OPB總線作總線時鐘,降低慢速外設(shè)的總線速度,使系統(tǒng)搭配更合理。
[IMG=系統(tǒng)硬件組成框圖]/uploadpic/THESIS/2007/12/2007121209330179972H.jpg[/IMG]
圖1 系統(tǒng)硬件組成框圖
PowerPC 405是此嵌入式系統(tǒng)的核心,它通過PLB總線實現(xiàn)和程序存儲器和數(shù)據(jù)存儲器的快速通道,并通過PLB-OPB橋?qū)崿F(xiàn)了片上的OPB總線,然后通過OPB 總線進行各種外設(shè)的擴展,OPB外設(shè)包括一個RS232串口,一個OPB_EMC用于擴展以太網(wǎng)控制器芯片,一個GPIO作以太網(wǎng)控制器輸出的中斷請求,一個中斷控制器OPB_INTC將GPIO輸入的外部中斷通知PowerPC 405并可以設(shè)置優(yōu)先級,還有一個用戶自定義的IP Core用于實現(xiàn)和VME總線的接口電路。 PowerPC 405 是專門為嵌入式應用而設(shè)計的高性能32位PowerPC系列處理器芯核,對于Virtex-II Pro系列FPGA,其實現(xiàn)型號為PowerPC 405D5。 PLB是處理器本機總線,它為指令和數(shù)據(jù)一側(cè)提供獨立的32位地址和64位數(shù)據(jù)總線。 PLB總線架構(gòu)支持多主從設(shè)備,每一個PLB主控機通過獨立的地址總線、讀數(shù)據(jù)總線和寫數(shù)據(jù)總線與PLB連接,有一個中央判決機構(gòu)來授權(quán)對PLB的訪問以允許主控機通過競爭來獲得總線的所有權(quán)。OPB是片上外設(shè)總線,提供分離的32位地址總線和32位數(shù)據(jù)總線,一般用來訪問低速和低性能的系統(tǒng)資源。它是一種完全同步總線,但不直接連接到處理器內(nèi)核,處理器內(nèi)核通過“PLB to OPB”橋和OPB總線來訪問OPB接口外設(shè)。 網(wǎng)絡控制器采用Cirrus Logic公司的通用單片10/100M以太網(wǎng)控制器CS8900A,該芯片完全遵從與IEEE 802.3以太網(wǎng)標準,支持完全的全雙工操作。應用EDK的OPB_EMC IP可以很方便地將CS8900A擴展為系統(tǒng)OPB總線上的一個設(shè)備,只要將EMC端口的地址、數(shù)據(jù)總線以及控制信號分別接到CS8900A的地址、數(shù)據(jù)總線和控制端口上,并將EMC的時序參數(shù)設(shè)置成與CS8900A手冊上要求的一致就可以了。另外將CS8900A的中斷輸出INTRQ作為一個GPIO引 入系統(tǒng)以實現(xiàn)以太網(wǎng)的中斷服務功能。 自定義的IP Core內(nèi)容如圖2所示,它用FPGA內(nèi)的Block RAM資源實現(xiàn)64KB的雙口RAM用來完成和VME總線上其他設(shè)備的通信和數(shù)據(jù)交換。我們用上述的第二種方法來實現(xiàn)將用戶專用電路嵌入微處理器系統(tǒng)中,自定義的IP主要包括OPB總線接口和用戶電路兩部分,我們用EDK提供的OPB總線的IPIF模板修改后,作為自定義IP的總線接口,64KB的雙口 RAM和VME總線接口是真正的用戶電路。
[IMG=自定義的IP Core結(jié)構(gòu)]/uploadpic/THESIS/2007/12/2007121209331256813R.jpg[/IMG]
圖2 自定義的IP Core結(jié)構(gòu)
軟件開發(fā) 嵌入式開發(fā)環(huán)境EDK(Embedded Development Kit)將軟件開發(fā)分為兩大部分,一是底層系統(tǒng)軟件的開發(fā),主要完成BSP(板級支持包)的功能;另一部分則是用戶應用軟件的開發(fā)(包括用戶硬件驅(qū)動及用戶上層應用軟件)。由于EDK中帶有許多IP核以及相應的驅(qū)動軟件,因此底層系統(tǒng)軟件的開發(fā)大部分可以借助EDK集成開發(fā)環(huán)境來完成的,如操作系統(tǒng)的選擇、設(shè)備驅(qū)動程序的選擇、中斷/異常處理例程的設(shè)置、操作系統(tǒng)參數(shù)設(shè)置等在內(nèi)的各種系統(tǒng)級軟件參數(shù)的設(shè)置。而用戶應用軟件的開發(fā)由于有底層驅(qū)動的隔離,可移植性好。整個用戶軟件的開發(fā)及調(diào)試工作都可以在EDK中完成。 底層系統(tǒng)軟件開發(fā) 在本設(shè)計中,沒有使用操作系統(tǒng),使用所謂的standalone模式,即EDK僅提供硬件初始化及引導代碼。此外還需要對GPIO、EMC、RS232、中斷控制器等一些外設(shè)生成底層驅(qū)動,這些都可以通過在EDK集成環(huán)境XPS中選擇菜單Project->Software Platform Settings的對話框進行設(shè)置,如圖3所示。其實質(zhì)是自動修改工程的.MSS文件。例如中斷函數(shù)的處理例程可在如圖4所示的界面中加以設(shè)置。也可以手工編輯.MSS文件如下設(shè)置:PARAMETER int_handler = CS8900A_INT_HANDLER, int_port = IP2INTC_Irpt
[IMG=在XPS中設(shè)置操作系統(tǒng)和驅(qū)動程序]/uploadpic/THESIS/2007/12/2007121209331785795K.jpg[/IMG]
圖3 在XPS中設(shè)置操作系統(tǒng)和驅(qū)動程序
[IMG= 在XPS中設(shè)置中斷服務例程]/uploadpic/THESIS/2007/12/2007121209332639751L.jpg[/IMG]
圖4 在XPS中設(shè)置中斷服務例程
設(shè)置完成后在XPS中運行Tools->Generate Libraries and BSPs將調(diào)用LibGen自動生成驅(qū)動庫文件,這些CPU和外設(shè)驅(qū)動庫的設(shè)置、操作函數(shù)實現(xiàn)或定義可在工程項目根目錄下的以處理器實例名為名字的目錄下的libsrc目錄下相應的各模塊子目錄中找到,參考其實現(xiàn)有助于深刻理解事實上發(fā)生的操作。例如中斷向量表可在中段向量控制器模塊子目錄(本例中為 intc_v1_00_c\src)下的xintc_g.c文件中找到。 用戶軟件開發(fā) 用戶軟件主要是對網(wǎng)絡控制器、GPIO、RS232串口等的操作,其中控制CS8900A的程序是重要部分,它要完成TCP/IP協(xié)議。CS8900A所有的控制寄存器和數(shù)據(jù)寄存器都映射在被稱為PacketPage的片上4K地址空間內(nèi),這4K空間可映射到主機地址空間中(存儲器模 式),或通過8個16位I/O口進行存?。↖/O模式)。本設(shè)計中CS8900A工作于I/O模式,通過EDK的OPB_EMC IP作為OPB總線上的一個設(shè)備,并給EMC控制器和所映射的設(shè)備分配操作地址空間,在程序中用Xuint32 XIo_In32(XIo_Address InAddress);void XIo_Out32(XIo_Address OutAddress, Xuint32 Value);讀寫映射的設(shè)備,這兩個I/O函數(shù)同*pDestMem = Value(直接讀寫存儲器操作)的差別在于前者做了讀寫同步(調(diào)用eieio匯編指令)。參考芯片手冊編寫CS8900A的驅(qū)動,實現(xiàn)基本I/O操作CS8900A_SendFrame和CS8900A_RecvFrame。EDK中有需付費的以太網(wǎng)IP CORE并附帶有一些TCP/IP協(xié)議棧,該協(xié)議棧實現(xiàn)了大部分常用功能,但也有一些重要功能并未實現(xiàn),例如TCP包的超時未達重發(fā),收發(fā)操作的中斷工作方式。通過修改、增加和完善這些軟件包,實現(xiàn)了真正面向用戶更高層應用軟件的網(wǎng)絡編程接口。 軟件開發(fā)中的部分問題 軟件開發(fā)過程中遇到的幾個主要問題歸納如下: (1)IEEE 802.3網(wǎng)絡及網(wǎng)絡控制器CS8900A采用的均是Little Endian編碼,而XC2VP40內(nèi)含的處理器PowerPC 405D5采用的是Big Endian編碼方式,因此在數(shù)據(jù)I/O過程中需要做一下轉(zhuǎn)換。 (2)可通過編寫鏈接控制腳本文件控制應用程序的鏈接過程,從而控制程序映像在存儲器中的重定位過程。這在FPGA這種存儲器資源有限的環(huán)境中有時很有用。 (3)要將EDK提供的默認bootloop程序打包到硬件初始化流中,這樣做的目的是提供默認的CPU復位后運行程序,保證CPU處在可預知的狀態(tài),而不是因為執(zhí)行了存儲器中的隨機代碼而處于一種未知的狀態(tài)。 系統(tǒng)調(diào)試方法 由于PowerPC 405處理器核中已包含調(diào)試模塊,并用JTAG端口引出,只要在系統(tǒng)中添加一個叫做JTAGPPC的IP模塊并和PowerPC 405相連便可將其調(diào)試端口串入FPGA的JTAG鏈中,這樣只需使用FPGA本身的下載電纜和JTAG接口便可完成系統(tǒng)軟件調(diào)試而不需要增加額外電路。 EDK提供的軟件調(diào)試工具主要有XMD和GDB。值得一提的是利用XMD下載可執(zhí)行程序映像時還會顯示各程序段的重定位情況,在發(fā)生錯誤時 會報告錯誤,諸如要求的地址空間大于實際提供的地址空間等錯誤,而這在EDK集成環(huán)境下是看不到的。在存在多種類型存儲器資源的情況下,編寫鏈接控制腳本 文件控制重定位過程可能能夠解決上述某地址空間不夠的問題。網(wǎng)絡通信部分的調(diào)試主要由Sniffer軟件輔助完成。 GDB是EDK附帶的GNU的主機方圖形界面調(diào)試工具,它通過和XMD通信完成圖形界面調(diào)試功能,此時XMD則扮演了一個主機方調(diào)試代理的角色,所有的調(diào)試通信是由XMD同目標機通信完成的。 結(jié)語 SoPC使得硬件設(shè)計能真正實現(xiàn)象搭積木一樣方便迅速,而利用EDK開發(fā)工具就可以實現(xiàn)一個基于FPGA的嵌入式系統(tǒng)的軟硬件一體化的開發(fā),的確大大提高了嵌入式系統(tǒng)的開發(fā)效率,但是目前它還有許多不夠完善的方面。 首先是系統(tǒng)設(shè)計對設(shè)計工具軟件的依賴性很大,而這些軟件還有許多有待修正完善的地方,設(shè)計師無法避免將在使用熟悉軟件方面花許多時間。其次,IP Core的不斷豐富和完善是SoPC的基礎(chǔ),昂貴的付費IP核不利于此技術(shù)的推廣,尤其在國內(nèi),而要設(shè)計驗證用戶自己的IP Core對設(shè)計者的要求較高。如今一個完善的嵌入式系統(tǒng)都有實時操作系統(tǒng)在運行,SoPC要成為主流也需要更豐富的RTOS的支持。

標簽:

點贊

分享到:

上一篇:基于uClinux的嵌入式無線IPSe...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。

相關(guān)資訊

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號