<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于動(dòng)態(tài)重構技術(shù)和GSM通信的FPGA動(dòng)態(tài)配置

基于動(dòng)態(tài)重構技術(shù)和GSM通信的FPGA動(dòng)態(tài)配置

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

隨著(zhù)現場(chǎng)可編程門(mén)陣列的廣泛應用,對其進(jìn)行靈活的重新的研究也越來(lái)越多。目前絕大多數都是基于查找表LUT(Look UP Table)的技術(shù),采用SRAM工藝生產(chǎn)。這種工藝的有兩層結構,上層為存儲器,下層是硬件邏輯層。通過(guò)上層信息控制硬件層門(mén)電路的通斷,改變芯片內基本邏輯塊的布線(xiàn),從而形成特定的功能。這種架構為動(dòng)態(tài)重構技術(shù)實(shí)現提供了可能。一個(gè)大型數字系統總是由很多功能模塊組合而成,這樣各個(gè)系統模塊的激活狀態(tài)就可能在時(shí)間軸上產(chǎn)生分離,時(shí)間上分離的模塊就可以共用一個(gè)硬件邏輯區,根據需要對這個(gè)邏輯區動(dòng)態(tài)地改變配置,實(shí)現不同的功能,這就是局部動(dòng)態(tài)重構[1]。FPGA的動(dòng)態(tài)重構使其應用更加靈活,減少了硬件的資源消耗,縮短了開(kāi)發(fā)周期。但是對一些特殊場(chǎng)合,如深海數據采集或機器人野外勘探,開(kāi)發(fā)者可以為某個(gè)系統模塊設計幾個(gè)功能,設備在自主運行過(guò)程中根據需要選擇相應的配置數據進(jìn)行配置。如果遇到特殊環(huán)境,事先設計的功能有可能不適合工作要求,需要增加新的功能。在目前硬件進(jìn)化技術(shù)還無(wú)法進(jìn)行實(shí)際應用的情況下,本文設計了一種遠程動(dòng)態(tài)重構的系統來(lái)解決上述問(wèn)題。

1 遠程動(dòng)態(tài)重構系統的結構

遠程動(dòng)態(tài)重構系統有PowerPC處理器和89C54微控制器兩個(gè)核心。VirtexII-Pro FPGA內部集成有2個(gè)PowerPC405嵌入式處理器[2],本文系統使用其中一個(gè),實(shí)現對動(dòng)態(tài)重構進(jìn)行控制和調配。FPGA內部用于對局部重構區域PRR進(jìn)行重新配置的硬件模塊有3個(gè),分別是嵌入式內核PowerPC、系統高級配置環(huán)境System ACE和內部配置訪(fǎng)問(wèn)通道ICAP。System ACE是一種在系統編程的高級配置解決方案,它提供CF(Compact Flash)、MPU和Test JTAG等多個(gè)接口,本系統采用CF卡作為配置數據的來(lái)源,可以更方便地改變和存儲配置數據。ICAP的主要作用就是按照特定時(shí)序將配置數據重新配置到PRR中[3]。

遠程數據傳輸通過(guò)外接控制器89C54完成,一方面控制器要通過(guò)UART接口接收模塊TC35傳來(lái)的數據;另一方面要把接收到的配置數據寫(xiě)入CF卡中,以供FPGA系統讀取。
System ACE和89C54控制器共用CF卡的控制接口。為避免互相影響,本系使用多路復用器將CF卡端口做分時(shí)復用處理,即配置過(guò)程中與System ACE連接,而數據傳輸存儲過(guò)程中與89C54進(jìn)行連接。遠程動(dòng)態(tài)重構系統結構如圖1所示。


2 遠程動(dòng)態(tài)重構的本地準備

本文引用地址:http://dyxdggzs.com/article/201706/348922.htm

以機械手臂的控制為例,采用PID控制、模糊控制和備用三種控制方案,每個(gè)控制算法經(jīng)過(guò)驗證綜合生成獨立的bit流模塊。這三個(gè)模塊共用一個(gè)可重構的區域PRregion,根據具體情況,選用最適合的算法模塊,動(dòng)態(tài)地配置重構區域來(lái)控制機械手臂,其他靜態(tài)邏輯區域則仍然正常運行。這樣不僅提高了系統的靈活性,而且節省了配置時(shí)間、減少了不必要的消耗。FPGA的設計流程一般包括設計、仿真、綜合、實(shí)現過(guò)程,本文根據系統自身結構提出如圖2所示的設計流程。

FPGA重構系統綜合使用EDK(Embedded Development Kit)、ISE和PlanAhead多種工具平臺,采用分層化設計,以簡(jiǎn)化設計過(guò)程。其過(guò)程如下:

(1)利用嵌入式開(kāi)發(fā)工具EDK設計一個(gè)基于PowerPC405的嵌入式控制系統[4],添加SystemACE_CompactFlash外設以支持從CF卡配置FPGA;添加IP核opb_hwicap以支持嵌入式內核通過(guò)ICAP讀取配置數據動(dòng)態(tài)地配置FPGA。

(2)EDK包含有軟件開(kāi)發(fā)工具SDK,因此利用SDK對PowerPC405進(jìn)行軟件編程和調試,最終生成應用程序二進(jìn)制executable.elf文件;利用EDK外設創(chuàng )建向導,創(chuàng )建多個(gè)控制算法IP模塊,在各自的VHDL文件中編寫(xiě)相應的算法;使用ISE工具對多個(gè)算法模塊進(jìn)行綜合、創(chuàng )建頂層模塊、實(shí)例化嵌入式系統和算法模塊。綜合產(chǎn)生top網(wǎng)表文件。

(3)創(chuàng )建PlanAhead工程,使用以上產(chǎn)生的網(wǎng)表文件和約束文件進(jìn)行布局布線(xiàn)。其中最重要的是將算法模塊設置為可重構模塊,對其進(jìn)行嚴格的區域約束[5],其約束代碼如下:
AREA_GROUP AL_PRregion RANGE = SLICE_(minX)(minY):SLICE_(maxX)(maxY)
AREA_GROUP AL_PRregion RANGE = RAMB16_(minX)(minY):RAMB16(maxX)(maxY)
在PlanAhead工具中可以通過(guò)可視化方法進(jìn)行區域約束,既直觀(guān)又簡(jiǎn)單??芍貥嬆K在運行過(guò)程中如果需要實(shí)現不同的控制算法,則需要在重構區中添加所有算法模塊綜合生成的網(wǎng)表文件、使用PR Assemble命令生成多個(gè)不同的算法bit流文件。除了動(dòng)態(tài)bit流文件外,PlanAhead還會(huì )產(chǎn)生一個(gè)靜態(tài)完整的bit流文件static_full.bit??蓤绦幸韵聝蓚€(gè)命令生成ace配置文件:

(1)data2mem -bm implementation/system_stub_bd -bt implementation/static_full.bit -bd TestApp/executable.elf tag ppc310_0 –o b implementation/static.bit。
(2)xmd -tcl genace.tcl -jprog -target ppc_hw -hw implementation/static.bit -elf TestApp/executable.elf -board ml310 -ace system.ace。

3 遠程動(dòng)態(tài)重構的實(shí)現

經(jīng)過(guò)動(dòng)態(tài)重構本地準備之后,得到如表1所示的CF卡配置文件列表。設置保留模塊,是為了給新的控制算法保留一個(gè)接口(以一個(gè)空文件存儲在CF卡中)。

傳統的本地重構設計完成后,針對重構區域會(huì )得到幾個(gè)不同的配置文件,如針對機械臂控制算法重構區得到兩個(gè)初期設計的控制算法配置文件。在實(shí)際運行過(guò)程中,有些環(huán)境只需PID控制就可滿(mǎn)足要求,而有些環(huán)境采用模糊控制更合適。如果采用這兩種控制方法都不能滿(mǎn)足工作要求時(shí),必然要對初期設計進(jìn)行升級,對復雜危險的工作現場(chǎng)進(jìn)行遠程動(dòng)態(tài)重構。
本文提出的設計方法是:模塊作為遠程數據傳輸工具,與89C54單片機通過(guò)UART端口連接,單片機接收到一個(gè)扇區512 B的數據寫(xiě)入CF卡reserved.bit文件中。模塊采用西門(mén)子公司的TC35模塊,它支持AT指令,由89C54發(fā)送AT指令ASCI碼對TC35進(jìn)行控制[5]。本設計主要涉及到的AT指令如表2所示,TC35以串行模式與89C54進(jìn)行通信。

CF卡必須格式化成FAT16格式才能用于FPGA的配置文件存儲。FAT格式磁盤(pán)必須一次性對一個(gè)扇區進(jìn)行操作,所以單片機必須從TC35接收滿(mǎn)512 B的數據才可以對CF卡進(jìn)行寫(xiě)操作。FPGA配置完成之后CF卡處于閑置狀態(tài),通過(guò)多路復用器將CF卡與外接控制器連接以完成對.bit文件的讀寫(xiě)操作。單片機對CF卡進(jìn)行操作本質(zhì)就是對FAT文件系統的讀寫(xiě)。
FAT格式磁盤(pán)的邏輯分區依次為:引導扇區、文件分配表(FAT1和FAT2)、文件目錄區(FDT)和數據區[6]。引導扇區用于存儲引導程序和磁盤(pán)信息,外界訪(fǎng)問(wèn)CF卡都要經(jīng)過(guò)引導區的識別驗證;FAT是給每個(gè)文件分配磁盤(pán)物理空間的表格,數據區的劃分單元為簇,一個(gè)簇包括64個(gè)扇區,FAT表正是為每個(gè)文件構造一個(gè)簇鏈表;文件目錄區是尋找文件的入口,其內容是每個(gè)文件的目錄信息;在文件目錄之后的扇區都是以簇為單位進(jìn)行數據存儲,這就是數據區。

CF卡與89C54接口配置關(guān)系如圖3所示,單片機使用TrueIDE模式對CF卡進(jìn)行讀寫(xiě),采用邏輯塊LAB(Logical Block Addressing)方式進(jìn)行尋址。

CF卡寫(xiě)一個(gè)扇區(讀扇區基本相似,限于篇幅不列出)的代碼如下:
Write_Sectors: mov R2,#1 ;一次寫(xiě)一個(gè)扇區
mov R3,#0Ah;假設 LBA為000000Ah
mov R4,#0
mov R5,#0
mov R6, #0
mov R7, #WriteSctr
acall Function;將參數寫(xiě)入CF控制寄存器
acall WaitDRQ ;等待數據請求
acall Write512
ret
Write512:mov R0,#high(data);取數據高地址
mov R1,#low(data); 取數據低地址
mov R7,#2 ;512 B= 2 * 256
mov R6,#0 ;256 B
write: mov dph,R0;獲取地址
mov dpl, R1
clr a
movc a, @a+dptr ;獲取一個(gè)數據
inc dptr ;指向下一個(gè)數據
mov R0, dph ;保存地址
mov R1, dpl
mov DPTR,#Data_Reg;到CF數據寄存器
movx @dptr, a ;向CF卡寫(xiě)一個(gè)數據
djnz R6, write
djnz R7, write ;將512 B的數據全部寫(xiě)入CF卡
ret

遠程動(dòng)態(tài)重構的流程如圖4所示?,F場(chǎng)TC35接收到新短信數據時(shí)會(huì )有觸發(fā)信號發(fā)送給89C54單片機,單片機開(kāi)始讀取TC35Flash數據。在對CF卡進(jìn)行寫(xiě)操作之前,首先要讀取reserved.bit文件的首簇號;讀取CF卡文件目錄表FDT,得到reserved.bit的信息,其中偏移地址為1Ah~1Bh,所存儲的2 B為文件首簇號,而接下來(lái)4 B代表文件大小。由文件首簇號在FAT表中找到文件入口,然后跟蹤簇鏈至簇尾(0XFFFF),按照LAB尋址方式將數據按扇區寫(xiě)入CF卡數據區,邏輯扇區號LBA可由簇號按公式“LBA=(簇號-2)×64+513”計算得到。如果文件數據量比舊文件多,則在FAT中增加鏈表,直至把數據存儲完畢;如果文件較小,則將原文件剩余FAT簇鏈都寫(xiě)入0x0000,以釋放空間。對CF卡的寫(xiě)操作則不對其他區域進(jìn)行更改。

CF卡數據更新完畢后,接通CF卡與SystemACE控制器之間的多路復用器,對控制算法重構區進(jìn)行局部動(dòng)態(tài)配置,配置過(guò)程中不對其他邏輯區域的運行造成影響。

遠程動(dòng)態(tài)重構結合了FPGA局部動(dòng)態(tài)重構和GSM無(wú)線(xiàn)數據傳輸的優(yōu)勢,對用在野外勘測的機器人和數據采集處理系統有很高的應用價(jià)值,允許設計人員根據系統運作情況實(shí)時(shí)地改變機器人的控制算法或數據處理算法,使其更加適合工作環(huán)境,既方便了設計人員對遠程設備的配置升級,又節省了大量人力物力。今后該方案將計算機與FPGA硬件平臺連接,可以為硬件的外部進(jìn)化遠程下載染色體到硬件平臺提供有效途徑。



關(guān)鍵詞: 配置 GSM FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>