日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

用雙MicroBlaze監(jiān)控汽車應(yīng)用

出處:電子系統(tǒng)設(shè)計 發(fā)布于:2012-02-01 09:28:26

  基于軟核處理器的多處理器片上系統(tǒng)(MPSoC)設(shè)計正日益風(fēng)靡于嵌入式系統(tǒng)設(shè)計領(lǐng)域。為了向多個處理器提供一致的數(shù)據(jù),存儲區(qū)架構(gòu)和管理已成為設(shè)計工作中非常重要的組成部分。在原型汽車應(yīng)用中,我們準(zhǔn)備構(gòu)建一個雙MicroBlaze系統(tǒng),用于在兩個MicroBlaze上支持賽靈思(Xilinx)公司嵌入式處理器內(nèi)核Xilkernel.

  在開發(fā)自主汽車原型轉(zhuǎn)向平臺前,我們根據(jù)Xilinx技術(shù)規(guī)范、參考設(shè)計和雙處理器設(shè)計套件,研究出一套通用的設(shè)計工作流和工藝。該設(shè)計結(jié)合了多種功能,比如:防碰撞、行車道檢測和自動停放。Xilkernel設(shè)計提供了諸如Posix線程這樣的庫函數(shù),可重復(fù)利用基于QNX的防碰撞應(yīng)用以及對其進(jìn)行分割。

  緊密連接

  我們構(gòu)建了一個緊密連接的處理器系統(tǒng),內(nèi)含兩個配置完全相同的MicroBlaze處理器,在Harvard架構(gòu)中,每個處理器都與一個16KB的局部塊RAM(BRAM)相連(圖1)。另外,這兩個處理器還與一個128MB的DDR存儲器模塊相連,用于存儲代碼和數(shù)據(jù)交換。Xilinx平臺工作室(XPS)Mutex內(nèi)核負(fù)責(zé)對兩個MicroBlaze共享的存儲器訪問進(jìn)行同步。兩個處理器還能通過一對快速單工鏈路(FSL)直接通信,F(xiàn)SL支持主/從和流水線處理器設(shè)計概念。采用FSL實現(xiàn)這兩個MicroBlaze的互聯(lián),而不采用XPS Mailbox實現(xiàn),可以提高性能,并降低資源耗用。

圖1:面向XtremeDSP開發(fā)平臺的雙MicroBlaze Xilkernel配置

圖1:面向XtremeDSP開發(fā)平臺的雙MicroBlaze Xilkernel配置。

  兩個定時器外設(shè)負(fù)責(zé)為Xilkernel的調(diào)度實現(xiàn)提供中斷源。開發(fā)階段的步,我們通過UART接口將激光掃描儀連接到系統(tǒng),為防碰撞系統(tǒng)提供目標(biāo)檢測。為以中斷控制器而非直接連接的時鐘中斷部署Xilkernel,我們在板支持包(BSP)設(shè)置中調(diào)整了與Xilkernel相關(guān)的參數(shù)sysintc_spec.

  我們把兩個MicroBlaze連接到MicroBlaze調(diào)試模塊進(jìn)行調(diào)試,并通過microblaze_1的JTAG UART輸出ST.DIO.我們分析了系統(tǒng)的兩種實現(xiàn)方案,一種用XtremeDSP開發(fā)平臺搭配Spartan-3A DSP 1800A FPGA,另一種用ML605評估板搭配Virtex-6 XC6VLX240T FPGA.

  存儲器和高速緩存架構(gòu)

  多端口存儲器控制器(MPMC)通過Xilinx緩存鏈路(XCL)將Microblaze與外部DDR2存儲器相連,并分配直接存儲訪問。由于采用統(tǒng)一的存儲器架構(gòu),每個處理器具有相同的存儲延遲和訪問方式。我們?yōu)槊總€MicroBlaze配置了8KB指令和8KB數(shù)據(jù)緩存,均連接到單一MPMC PIM.這種布線方式可以讓我們將多8個MicroBlaze關(guān)聯(lián)到一個MPMC.

  單一MPMC地址總線連接和數(shù)據(jù)總線連接,會導(dǎo)致MPMC與外部存儲器之間出現(xiàn)數(shù)據(jù)流和取指瓶頸。但內(nèi)部的時間片輪轉(zhuǎn)仲裁,能夠保證所有請求都能順序訪問存儲器。另外,MicroBlaze還能通過處理器局部總線(PLB)保持與MPMC的連接,以提供對無緩存共享存儲區(qū)的訪問。

  在多處理器環(huán)境中,確保數(shù)據(jù)高速緩存的一致性非常重要。因此,我們將外部存儲的地址范圍分為三段(圖2)。每個MicroBlaze占有自己的地址空間,而只有數(shù)據(jù)存儲在其特定的區(qū)域,XCL才會緩存數(shù)據(jù)。第三個地址空間提供一個獨立段,可通過PLB訪問,而用于交換未緩存的共享數(shù)據(jù)。通過在鏈接腳本中預(yù)定義變量,軟件工程師可以得到一個指向該段基址的指針。我們用寫通策略配置高速緩存,因為如果采用回寫策略,處理多個寫訪問會導(dǎo)致更多延遲。

圖2:DMX系統(tǒng)的內(nèi)存印象圖

圖2:DMX系統(tǒng)的內(nèi)存印象圖

  連接器腳本的配置

  連接器腳本的作用是,根據(jù)硬件設(shè)計信息,正確的板支持包和軟件應(yīng)用本身,來定義處理器系統(tǒng)的存儲分段。XPS工具負(fù)責(zé)為每個MicroBlaze的復(fù)位、中斷和異常向量分配固定段,這些向量將存儲在處理器的BRAM中。常用的方法是把。heap和。stack段也存儲在局部BRAM中,以便在執(zhí)行線程的時候快速訪問局部變量。

  考慮到實時操作系統(tǒng)(RTOS)具有眾多庫函數(shù),.text和。data段對BRAM顯得過大,因此,我們將這些函數(shù)存放在外部存儲器中。在多處理器系統(tǒng)中,如果多個處理器需要對相同存儲區(qū)域?qū)ぶ罚@樣做會導(dǎo)致問題復(fù)雜化。因此,開發(fā)人員必須手動調(diào)整存儲分段。如前文所述,兩個處理器只緩存自己專用的存儲區(qū),并共享對代碼段和數(shù)據(jù)段之外定義區(qū)域的訪問。通過PLB請求XPS Mutex,可對該共享存儲區(qū)域進(jìn)行同步訪問,從而實現(xiàn)在兩個MicroBlaze之間交換數(shù)據(jù)。為了在主/從或者流水線處理器系統(tǒng)中實現(xiàn)直接通信和同步,我們采用了FSL.這樣可以避免在訪問共享存儲器時,因多次存儲器總線分配而導(dǎo)致更高的訪問延遲。

  我們首先使用SDK鏈接腳本生成程序創(chuàng)建鏈接腳本。該腳本為文本文件,由三段組成,定義了堆和棧的大小、存儲區(qū)以及每個段的地址。下段代碼描述了雙MicroBlaze Xilkernel系統(tǒng)Microblaze_0的鏈接腳本。我們調(diào)整了代碼段和數(shù)據(jù)段存儲區(qū)的大小,并增加了一個用于共享存儲區(qū)的新段。我們也相應(yīng)調(diào)整了microblaze_1的鏈接腳本,將代碼段和數(shù)據(jù)段的起始存儲區(qū)地址設(shè)定為0x8A000000,并為共享存儲器分配了一個相等的段。

  /*定義microblaze_0的堆和棧大小*/

  _STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE :

  0x1000;

  _HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE :

  0x1000;

  /*定義系統(tǒng)中用于microblaze_0的存儲器*/

  MEMORY

  {

  ilmb_cntlr_dlmb_cntlr :

  ORIGIN = 0x00000050, LENGTH = 0x00003FB0

  /*重新設(shè)定用于代碼段和數(shù)據(jù)段的存儲器大小*/

  DDR2_SDRAM_MPMC_BASEADDR :

  ORIGIN = 0x88000000, LENGTH = 0x02000000

  /*為共享存儲器新增一個分段*/

  DDR2_SDRAM_SHARED_BASEADDR :

  ORIGIN = 0x8C000000, LENGTH = 0x04000000

  }

  […]

  /*定義各段和它們在存儲器中映射的位置*/

  SECTIONS

  {

  […]

  sharedmem : {

  __sharedmem_start = .;

  *(sharedmem)

  __sharedmem_end = .;

  } > DDR2_SDRAM_SHARED_BASEADDR

  […]

  }

  MPSOC的和調(diào)試選項

  SDK環(huán)境為、運行和調(diào)試多處理器系統(tǒng)的軟件提供了兩種方法。一方面,基于Eclipse的工具能夠為軟件工程提供和ST.DIO狀態(tài)的配置;另一方面,可以使用Xilinx微處理器調(diào)試(XMD)控制臺來處理這些任務(wù)。

  另外,SDK還可以使用位流和。bmm文件重配置FPGA.根據(jù)鏈接腳本中定義的段,F(xiàn)PGA編程對話框(Program FPGA Dialog)可以隨意將整個軟件段直接傳輸?shù)脚c特定處理器相關(guān)聯(lián)的BRAM中。如上所述,由于。elf文件會因使用Xilkernel庫函數(shù)的應(yīng)用而增大,因此,在多處理器系統(tǒng)中,我們一般會將這些段存放在外部存儲器中。在這種情況下,可以選擇FPGA編程對話框軟件配置設(shè)置中的bootloop,來提供后續(xù)的軟件。

  SDK環(huán)境

  SDK在工程瀏覽器(Project Explorer)窗口中,提供了包括軟件工程選擇的運行與調(diào)試(Run & Debug)配置,以及在Run菜單中打開"Run configurations…".系統(tǒng)中每個處理器都有相關(guān)聯(lián)的"Run & Debug"配置。在個例子中,選擇配置對話框主標(biāo)簽中的工程。elf文件。在"Device Initialization"標(biāo)簽中將"Reset Processor Only"選為復(fù)位方式,以避免在復(fù)位時將整個系統(tǒng)重置。

  另外,通過配置ST.DIO Connection標(biāo)簽,可以讓ST.DIO直接打印到SDK控制臺。將單處理器的"Run & Debug"配置捆。綁在一起,它們就可以同時運行各自的軟件。,SDK基于Eclipse的調(diào)試窗口可以讓開發(fā)人員插入斷點,并提供變量賦值和存儲分配方面的信息。

  XMD控制臺

  對我們來說,重要的XMD控制臺命令是關(guān)于多處理器系統(tǒng)使用的命令。用幫助命令可以直接從XMD控制臺調(diào)出這些命令的詳細(xì)列表。為將XMD控制臺用于多處理器系統(tǒng)的和調(diào)試,可使用命令connect mb mdm –debugdevice cpunr ,將處理器經(jīng)由MicroBlaze調(diào)試模塊(MDM)連接到XMD控制臺。其中,參數(shù)用于定義每個處理器的標(biāo)識符。在完成所有處理器的連接后,使用命令Target ,選擇一個Microblaze用于處理當(dāng)前的目標(biāo)連接。"Target"命令可顯示已連接目標(biāo)的列表。要將。elf文件到特定的目標(biāo)處理器上,開發(fā)人員可使用"dow"命令輸入完整的路徑和文件名:dow .用戶既可以運行"run"命令啟動被選中目標(biāo)上的軟件,也可以使用"stp"命令單步調(diào)試運行代碼。如果MDM具有PLB連接XMD控制臺,可使用命令Read_uart start輸出JTAG UART.在定義端口后,JTAG UART服務(wù)器即可接收這些輸出,并使本地主機(jī)上的輸出可供終端程序使用(例如:HTerm或者Tera Term):Terminal jtag_uart_server .

  流水線系統(tǒng)

  我們逐步設(shè)計實現(xiàn)的雙處理器平臺系統(tǒng),由兩個得到Xilkernel支持的MicroBlaze處理器構(gòu)成,它們通過FSL共享兩個通信接口,并訪問共享存儲器。每個處理器都配置了運行在外部DDR2 SDRAM模塊中獨立存儲區(qū)上的指令和數(shù)據(jù)高速緩存。而且,XPS Mutex模塊能夠?qū)蚕泶鎯ζ髟L問進(jìn)行同步,以保證數(shù)據(jù)一致性。此外,我們還為兩個MicroBlaze調(diào)整了鏈接腳本,以便將專用存儲區(qū)分配給兩個處理器的指令段和存儲段,以及一個共享數(shù)據(jù)段。

  表1是在默認(rèn)綜合約束條件下,Spartan-3A DSP 1800A和Virtex-6 XC6VLX240T FPGA的資源分配和使用情況。即便是中等大小的Spartan器件,也能夠為與雙MicroBlaze系統(tǒng)PLB或FSL接口相連的額外加速器IP提供大量slice資源。

表1:雙MicroBlaze Xilkernel系統(tǒng)的資源使用情況

表1:雙MicroBlaze Xilkernel系統(tǒng)的資源使用情況

  這些尚未利用的FPGA資源,讓我們能夠為激光掃描儀的原始數(shù)據(jù)增加一個加速器處理單元。接下來我們的工作重點是,將基于QNX的防碰撞應(yīng)用和線程任務(wù)分配給兩個處理器。

  由于障礙物識別、環(huán)境建模和遠(yuǎn)程控制構(gòu)成了一系列的條件和順序計算,所以我們選擇了流水線處理系統(tǒng)。在今后的工作中,我們準(zhǔn)備后續(xù)集成攝像頭行車道檢測功能,自動停放功能,以及其它所推薦的組件,比如:車輛測距和巡航控制。

關(guān)鍵詞:用雙MicroBlaze監(jiān)控汽車應(yīng)用

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!