<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式SoPC,以太網(wǎng),接口設(shè)備

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

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

          SoC(片上系統(tǒng))的概念已日益普及,而隨著FPGA技術(shù)的迅速發(fā)展,可編程系統(tǒng)芯片(SoPC)作為一種特殊的嵌入式微處理器系統(tǒng),融合了SoC和  FPGA各自的優(yōu)點(diǎn),并具備軟硬件在系統(tǒng)可編程、可裁減、可擴(kuò)充、可升級(jí)的功能,已逐漸成為一個(gè)新興的技術(shù)方向。SoPC的核心是在FPGA上實(shí)現(xiàn)的嵌入式微處理器核,目前主要有Xilinx公司的32位軟核MicroBlaze、32位PowerPC系列處理器硬核PowerPC  405,以及Altera公司的Nios系列微處理器軟核等。 本文介紹的系統(tǒng)是一個(gè)以PowerPC  405為微處理器,基于VME總線的以太網(wǎng)接口設(shè)備,它通過(guò)以太網(wǎng)和 VME總線接口,實(shí)現(xiàn)VME系統(tǒng)與外部局域網(wǎng)的實(shí)時(shí)數(shù)據(jù)交換。

          本文引用地址:http://www.ex-cimer.com/article/201809/388468.htm

          硬件開(kāi)發(fā)  開(kāi)發(fā)采用Xilinx公司的EDK7.1(嵌入式開(kāi)發(fā)套件)和ISE7.1工具軟件。EDK工具包中集成了硬件平臺(tái)生成器(Platgen)、軟件平臺(tái)生成器(Libgen)、仿真模型生成器(Simgen)、軟件編譯器(Mb-gcc/ppc-gcc)和軟件調(diào)試工具(Mb-gdb/ppc-gdb)  等,通過(guò)提供的集成開(kāi)發(fā)環(huán)境XPS,用戶可以調(diào)用上述所有工具,來(lái)完成嵌入式系統(tǒng)開(kāi)發(fā)的整個(gè)流程。  

          首先在XPS界面環(huán)境下生成硬件系統(tǒng)框架并添加所需的IP核,也可以用文本編輯器直接編寫(xiě)硬件描述文件  (.MHS文件),再調(diào)用Platgen將其生成嵌入式處理系統(tǒng)的網(wǎng)表文件(.NGC文件);然后通過(guò)系統(tǒng)生成或手工編輯的軟件描述文件(.MSS文件)  來(lái)設(shè)置系統(tǒng)軟件配置,并調(diào)用Libgen生成驅(qū)動(dòng)層和庫(kù)。雖然EDK的IP庫(kù)中有一些很有用的功能模塊和外設(shè)接口的IP核,如DCM(數(shù)字時(shí)鐘管理器)、處理器復(fù)位、PLB/OPB總線接口、外部存儲(chǔ)控制器(EMC)、UART、GPIO、中斷控制器、定時(shí)器等,充分利用這些資源就可以構(gòu)建一個(gè)較為完善的嵌入式微處理器系統(tǒng),但是對(duì)于許多有特殊專用電路的嵌入式計(jì)算機(jī)系統(tǒng)的應(yīng)用還是不夠的。

          如何將用戶專用電路設(shè)計(jì)到EDK系統(tǒng)中,一般有兩種方法,第一種是將EDK工程作為一個(gè)子系統(tǒng)在XPS中用Export  to PorjNav生成ISE工程,然后在ISE中將專用電路和處理器子系統(tǒng)(system.vhd)合成為頂層HDL文件  (system_stub.vhd)后,在ISE中完成綜合布線,最后在XPS中用Import from  PorjNav得到硬件的.bit文件,便可以回到XPS中完成和應(yīng)用軟件的合成、下載和調(diào)試了。第二種方法是將專用電路設(shè)計(jì)成為用戶自定義的IP  Core,然后直接在系統(tǒng)中調(diào)用來(lái)實(shí)現(xiàn)。自定義的IP  Core用HDL設(shè)計(jì)并要滿足EDK的規(guī)范,如有專門目錄結(jié)構(gòu)和處理器外設(shè)定義文件(.MPD)、外設(shè)分析定義文件(.PAO)等。如果自定義的IP  Core要具有軟件驅(qū)動(dòng),那設(shè)計(jì)還要完全符合相應(yīng)的PLB或OPB總線接口規(guī)范。完成了硬件和驅(qū)動(dòng)的設(shè)計(jì)后,就可以在XPS工程中添加應(yīng)用軟件項(xiàng)目并編寫(xiě)應(yīng)用軟件,然后調(diào)用處理器對(duì)應(yīng)的編譯器編譯并和硬件綜合后生成的.bit文件合成后下載到目標(biāo)板便可以進(jìn)行調(diào)試了。  

          本系統(tǒng)硬件組成框圖如圖1所示。本設(shè)計(jì)選用Virtex-II Pro系列FPGA芯片XC2VP40,將系統(tǒng)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都放在片內(nèi)用Block  RAM來(lái)實(shí)現(xiàn),在系統(tǒng)中添加DCM模塊,將外部參考時(shí)鐘4倍頻提供給PowerPC  405作處理器時(shí)鐘,并分頻后再送給OPB總線作總線時(shí)鐘,降低慢速外設(shè)的總線速度,使系統(tǒng)搭配更合理。

          圖1 系統(tǒng)硬件組成框圖

          PowerPC  405是此嵌入式系統(tǒng)的核心,它通過(guò)PLB總線實(shí)現(xiàn)和程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的快速通道,并通過(guò)PLB-OPB橋?qū)崿F(xiàn)了片上的OPB總線,然后通過(guò)OPB總線進(jìn)行各種外設(shè)的擴(kuò)展,OPB外設(shè)包括一個(gè)RS232串口,一個(gè)OPB_EMC用于擴(kuò)展以太網(wǎng)控制器芯片,一個(gè)GPIO作以太網(wǎng)控制器輸出的中斷請(qǐng)求,一個(gè)中斷控制器OPB_INTC將GPIO輸入的外部中斷通知PowerPC  405并可以設(shè)置優(yōu)先級(jí),還有一個(gè)用戶自定義的IP Core用于實(shí)現(xiàn)和VME總線的接口電路。 PowerPC 405  是專門為嵌入式應(yīng)用而設(shè)計(jì)的高性能32位PowerPC系列處理器芯核,對(duì)于Virtex-II Pro系列FPGA,其實(shí)現(xiàn)型號(hào)為PowerPC 405D5。

          PLB是處理器本機(jī)總線,它為指令和數(shù)據(jù)一側(cè)提供獨(dú)立的32位地址和64位數(shù)據(jù)總線。PLB總線架構(gòu)支持多主從設(shè)備,每一個(gè)PLB主控機(jī)通過(guò)獨(dú)立的地址總線、讀數(shù)據(jù)總線和寫(xiě)數(shù)據(jù)總線與PLB連接,有一個(gè)中央判決機(jī)構(gòu)來(lái)授權(quán)對(duì)PLB的訪問(wèn)以允許主控機(jī)通過(guò)競(jìng)爭(zhēng)來(lái)獲得總線的所有權(quán)。OPB是片上外設(shè)總線,提供分離的32位地址總線和32位數(shù)據(jù)總線,一般用來(lái)訪問(wèn)低速和低性能的系統(tǒng)資源。它是一種完全同步總線,但不直接連接到處理器內(nèi)核,處理器內(nèi)核通過(guò)“PLB  to OPB”橋和OPB總線來(lái)訪問(wèn)OPB接口外設(shè)。

          網(wǎng)絡(luò)控制器采用Cirrus  Logic公司的通用單片10/100M以太網(wǎng)控制器CS8900A,該芯片完全遵從與IEEE  802.3以太網(wǎng)標(biāo)準(zhǔn),支持完全的全雙工操作。應(yīng)用EDK的OPB_EMC  IP可以很方便地將CS8900A擴(kuò)展為系統(tǒng)OPB總線上的一個(gè)設(shè)備,只要將EMC端口的地址、數(shù)據(jù)總線以及控制信號(hào)分別接到CS8900A的地址、數(shù)據(jù)總線和控制端口上,并將EMC的時(shí)序參數(shù)設(shè)置成與CS8900A手冊(cè)上要求的一致就可以了。

          另外將CS8900A的中斷輸出INTRQ作為一個(gè)GPIO引入系統(tǒng)以實(shí)現(xiàn)以太網(wǎng)的中斷服務(wù)功能。  自定義的IP Core內(nèi)容如圖2所示,它用FPGA內(nèi)的Block  RAM資源實(shí)現(xiàn)64KB的雙口RAM用來(lái)完成和VME總線上其他設(shè)備的通信和數(shù)據(jù)交換。我們用上述的第二種方法來(lái)實(shí)現(xiàn)將用戶專用電路嵌入微處理器系統(tǒng)中,自定義的IP主要包括OPB總線接口和用戶電路兩部分,我們用EDK提供的OPB總線的IPIF模板修改后,作為自定義IP的總線接口,64KB的雙口  RAM和VME總線接口是真正的用戶電路。

          圖2 自定義的IP Core結(jié)構(gòu) 軟件開(kāi)發(fā)

          嵌入式開(kāi)發(fā)環(huán)境EDK(Embedded  Development  Kit)將軟件開(kāi)發(fā)分為兩大部分,一是底層系統(tǒng)軟件的開(kāi)發(fā),主要完成BSP(板級(jí)支持包)的功能;另一部分則是用戶應(yīng)用軟件的開(kāi)發(fā)(包括用戶硬件驅(qū)動(dòng)及用戶上層應(yīng)用軟件)。由于EDK中帶有許多IP核以及相應(yīng)的驅(qū)動(dòng)軟件,因此底層系統(tǒng)軟件的開(kāi)發(fā)大部分可以借助EDK集成開(kāi)發(fā)環(huán)境來(lái)完成的,如操作系統(tǒng)的選擇、設(shè)備驅(qū)動(dòng)程序的選擇、中斷/異常處理例程的設(shè)置、操作系統(tǒng)參數(shù)設(shè)置等在內(nèi)的各種系統(tǒng)級(jí)軟件參數(shù)的設(shè)置。而用戶應(yīng)用軟件的開(kāi)發(fā)由于有底層驅(qū)動(dòng)的隔離,可移植性好。整個(gè)用戶軟件的開(kāi)發(fā)及調(diào)試工作都可以在EDK中完成。  

          ● 底層系統(tǒng)軟件開(kāi)發(fā)  

          在本設(shè)計(jì)中,沒(méi)有使用操作系統(tǒng),使用所謂的standalone模式,即EDK僅提供硬件初始化及引導(dǎo)代碼。此外還需要對(duì)GPIO、EMC、RS232、中斷控制器等一些外設(shè)生成底層驅(qū)動(dòng),這些都可以通過(guò)在EDK集成環(huán)境XPS中選擇菜單Project->Software  Platform  Settings的對(duì)話框進(jìn)行設(shè)置,如圖3所示。其實(shí)質(zhì)是自動(dòng)修改工程的.MSS文件。例如中斷函數(shù)的處理例程可在如圖4所示的界面中加以設(shè)置。也可以手工編輯.MSS文件如下設(shè)置:  PARAMETER int_handler = CS8900A_INT_HANDLER, int_port = IP2INTC_Irpt

          圖3 在XPS中設(shè)置操作系統(tǒng)和驅(qū)動(dòng)程序

          圖4 在XPS中設(shè)置中斷服務(wù)例程

          設(shè)置完成后在XPS中運(yùn)行Tools->Generate Libraries and  BSPs將調(diào)用LibGen自動(dòng)生成驅(qū)動(dòng)庫(kù)文件,這些CPU和外設(shè)驅(qū)動(dòng)庫(kù)的設(shè)置、操作函數(shù)實(shí)現(xiàn)或定義可在工程項(xiàng)目根目錄下的以處理器實(shí)例名為名字的目錄下的libsrc目錄下相應(yīng)的各模塊子目錄中找到,參考其實(shí)現(xiàn)有助于深刻理解事實(shí)上發(fā)生的操作。

          例如中斷向量表可在中段向量控制器模塊子目錄(本例中為  intc_v1_00_csrc)下的xintc_g.c文件中找到。

          ● 用戶軟件開(kāi)發(fā)  

          用戶軟件主要是對(duì)網(wǎng)絡(luò)控制器、GPIO、RS232串口等的操作,其中控制CS8900A的程序是重要部分,它要完成TCP/IP協(xié)議。CS8900A所有的控制寄存器和數(shù)據(jù)寄存器都映射在被稱為PacketPage的片上4K地址空間內(nèi),這4K空間可映射到主機(jī)地址空間中(存儲(chǔ)器模式),或通過(guò)8個(gè)16  位I/O口進(jìn)行存取(I/O模式)。本設(shè)計(jì)中CS8900A工作于I/O模式,通過(guò)EDK的OPB_EMC  IP作為OPB總線上的一個(gè)設(shè)備,并給EMC控制器和所映射的設(shè)備分配操作地址空間,在程序中用 Xuint32 XIo_In32(XIo_Address  InAddress); void XIo_Out32(XIo_Address OutAddress, Xuint32 Value);  讀寫(xiě)映射的設(shè)備,這兩個(gè)I/O函數(shù)同*pDestMem =  Value(直接讀寫(xiě)存儲(chǔ)器操作)的差別在于前者做了讀寫(xiě)同步(調(diào)用eieio匯編指令)。參考芯片手冊(cè)編寫(xiě)CS8900A的驅(qū)動(dòng),實(shí)現(xiàn)基本I/O操作  CS8900A_SendFrame和CS8900A_RecvFrame。EDK中有需付費(fèi)的以太網(wǎng)IP  CORE并附帶有一些TCP/IP協(xié)議棧,該協(xié)議棧實(shí)現(xiàn)了大部分常用功能,但也有一些重要功能并未實(shí)現(xiàn),例如TCP包的超時(shí)未達(dá)重發(fā),收發(fā)操作的中斷工作方式。通過(guò)修改、增加和完善這些軟件包,實(shí)現(xiàn)了真正面向用戶更高層應(yīng)用軟件的網(wǎng)絡(luò)編程接口。  

          ● 軟件開(kāi)發(fā)中的部分問(wèn)題

          軟件開(kāi)發(fā)過(guò)程中遇到的幾個(gè)主要問(wèn)題歸納如下:

          (1)IEEE 802.3網(wǎng)絡(luò)及網(wǎng)絡(luò)控制器CS8900A采用的均是Little  Endian編碼,而XC2VP40內(nèi)含的處理器PowerPC 405D5采用的是Big Endian編碼方式,因此在數(shù)據(jù)I/O過(guò)程中需要做一下轉(zhuǎn)換。  

          (2)可通過(guò)編寫(xiě)鏈接控制腳本文件控制應(yīng)用程序的鏈接過(guò)程,從而控制程序映像在存儲(chǔ)器中的重定位過(guò)程。這在FPGA這種存儲(chǔ)器資源有限的環(huán)境中有時(shí)很有用。  

          (3)要將EDK提供的默認(rèn)bootloop程序打包到硬件初始化流中,這樣做的目的是提供默認(rèn)的CPU復(fù)位后運(yùn)行程序,保證CPU處在可預(yù)知的狀態(tài),而不是因?yàn)閳?zhí)行了存儲(chǔ)器中的隨機(jī)代碼而處于一種未知的狀態(tài)。  

          系統(tǒng)調(diào)試方法 由于PowerPC 405處理器核中已包含調(diào)試模塊,并用JTAG端口引出,只要在系統(tǒng)中添加一個(gè)叫做JTAGPPC的IP模塊并和PowerPC  405相連便可將其調(diào)試端口串入FPGA的JTAG鏈中,這樣只需使用FPGA本身的下載電纜和JTAG接口便可完成系統(tǒng)軟件調(diào)試而不需要增加額外電路。  

          EDK提供的軟件調(diào)試工具主要有XMD和GDB。值得一提的是利用XMD下載可執(zhí)行程序映像時(shí)還會(huì)顯示各程序段的重定位情況,在發(fā)生錯(cuò)誤時(shí)會(huì)報(bào)告錯(cuò)誤,諸如要求的地址空間大于實(shí)際提供的地址空間等錯(cuò)誤,而這在EDK集成環(huán)境下是看不到的。在存在多種類型存儲(chǔ)器資源的情況下,編寫(xiě)鏈接控制腳本文件控制重定位過(guò)程可能能夠解決上述某地址空間不夠的問(wèn)題。網(wǎng)絡(luò)通信部分的調(diào)試主要由Sniffer軟件輔助完成。  

          GDB是EDK附帶的GNU的主機(jī)方圖形界面調(diào)試工具,它通過(guò)和XMD通信完成圖形界面調(diào)試功能,此時(shí)XMD則扮演了一個(gè)主機(jī)方調(diào)試代理的角色,所有的調(diào)試通信是由XMD同目標(biāo)機(jī)通信完成的。  

          結(jié)語(yǔ)

          SoPC使得硬件設(shè)計(jì)能真正實(shí)現(xiàn)象搭積木一樣方便迅速,而利用EDK開(kāi)發(fā)工具就可以實(shí)現(xiàn)一個(gè)基于FPGA的嵌入式系統(tǒng)的軟硬件一體化的開(kāi)發(fā),的確大大提高了嵌入式系統(tǒng)的開(kāi)發(fā)效率,但是目前它還有許多不夠完善的方面。  

          首先是系統(tǒng)設(shè)計(jì)對(duì)設(shè)計(jì)工具軟件的依賴性很大,而這些軟件還有許多有待修正完善的地方,設(shè)計(jì)師無(wú)法避免將在使用熟悉軟件方面花許多時(shí)間。其次,IP  Core的不斷豐富和完善是SoPC的基礎(chǔ),昂貴的付費(fèi)IP核不利于此技術(shù)的推廣,尤其在國(guó)內(nèi),而要設(shè)計(jì)驗(yàn)證用戶自己的IP  Core對(duì)設(shè)計(jì)者的要求較高。如今一個(gè)完善的嵌入式系統(tǒng)都有實(shí)時(shí)操作系統(tǒng)在運(yùn)行,SoPC要成為主流也需要更豐富的RTOS的支持。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();