下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一種基于java的可編程嵌入式系統(tǒng)設計傳統(tǒng)的系統(tǒng)設計的主要目標是找到一種優(yōu)化的體系結構來完成單一的,特定的功能。對這樣的系統(tǒng)來說,asic和核心處理器是作為特殊的構件模塊加以考慮的:設計者按照應用的要求挑選適當?shù)腶sic,按照給定的性能要求比如處理器主頻,系統(tǒng)穩(wěn)定性,以及對功耗的要求等選用適當?shù)奶幚砥鲀群?。然而,在當今移動通信已經進入每個人的生活的今日,現(xiàn)在的嵌入式系統(tǒng)比如pda等已經不同于傳統(tǒng)意義上的嵌入式系統(tǒng)了,它們有自己的獨特特點??陀^需要要求它們能夠支持多種應用功能如網頁掃瞄,播放音頻/視頻文件,以及舉行無線網絡通信等。這樣看來,傳統(tǒng)的設計思路由于只面對單一的應用,無法滿足多應用嵌入式
2、系統(tǒng)的需求。而解決這一問題的良好途徑便是向嵌入式系統(tǒng)引入可編程能力,以使得系統(tǒng)能夠按照用戶的不同要求實現(xiàn)對不同應用的支持。為了向系統(tǒng)中引入可編程能力,我們考慮在系統(tǒng)中嵌入,由于fpga具有下列特點,使得它成為我們的首選:1.現(xiàn)在的fpga的處理能力和規(guī)律容量已經臨近于專用asic,功耗也比較低,能夠滿足我們系統(tǒng)設計的要求;2.因為fpga具有的可重編程能力,用法了fpga的嵌入式系統(tǒng)能夠滿足各種不同的應用要求;從嵌入式系統(tǒng)管理的角度來說,對網絡通信的支持也是很有須要的,也是很有特色的一個應用,由于它使得從遠端服務器下載新的應用程序并在本地運行成為可能。為實現(xiàn)對這個功能的支持,我們采納java作
3、為軟件平臺。由于java運行在java虛擬機之上,它能夠下載并執(zhí)行新的應用程序代碼,并且無需在下載后重新啟動系統(tǒng)。綜上所述,這個新的嵌入式系統(tǒng)是基于java的,有一個fpga和標準處理器相連。我們通過網絡下載java代碼和可以對fpga舉行編程的比特流。該系統(tǒng)也支持對fpga的動態(tài)重新配置。為了實現(xiàn)硬件(fpga)和軟件(java應用程序代碼)之間的通信,又定義了一組本地api,以使得從java應用層能夠拜訪到底層的硬件。為了調用這些本地api,采納了java本地接口(jni)。在本文中,將一些java函數(shù)(java method)用fpga可編程硬件來實現(xiàn),稱之為硬件辦法(hw method
4、)。2. 系統(tǒng)設計實現(xiàn)一個java函數(shù)功能的對應的硬件辦法實現(xiàn)的規(guī)律結構圖1所示。輸入緩存和輸出緩存分離用來接收輸入?yún)?shù)和存儲輸出結果。控制緩存用于對硬件辦法的控制和檢測,比如向硬件辦法發(fā)出啟動命令,檢查其所處的狀態(tài)并推斷操作是否完成等。該模塊中的全部緩存都映射處處理器物理地址空間中,處理器可以用法正常的讀寫命令完成對這些緩存的拜訪。圖2是該嵌入式系統(tǒng)的硬件平臺,由一個標準處理器,一個fpga和一個系統(tǒng)存儲單元構成。它們之間通過分享的系統(tǒng)銜接在一起。當處理器向一個硬件辦法發(fā)出讀寫操作命令時,該硬件辦法在其自己的地址的協(xié)助下向數(shù)據(jù)總線上發(fā)送對應的響應信號。在這里,我們可以認為是處理器發(fā)起的硬件/
5、軟件通信命令,而fpga則是作為一個從屬單元做出回應。由于在處理器發(fā)起初始命令后,就由可配置管理器來負責管理fpga編程。這樣一來,就實現(xiàn)了處理器和fpga的并行運行。3所示,我們挑選java作為軟件平臺,并且裝載了一個嵌入式操作系統(tǒng)為java實時應用程序提供基本的服務,比如線程和其它硬件管理等。通過系統(tǒng)管理器,可以從遠程服務器下載java應用程序。系統(tǒng)管理器主要實現(xiàn)了下面3種協(xié)議:1 應用程序代碼(包括可對fpga舉行編程的比特流)下載協(xié)議;2 用于遠程管理的系統(tǒng)維護相關的協(xié)議;3 控制對嵌入式系統(tǒng)拜訪權限的認證協(xié)議。系統(tǒng)管理器包括基于socket銜接的客戶端類加載器。遠端應用程序可以下載到
6、本地并根據(jù)下面的過程執(zhí)行:1. 完成認證過程,系統(tǒng)進入管理模式;2. 下載應用程序代碼,完成系統(tǒng)初始化,比如加載fpga可編程比特流到相應的存儲單元;3. 執(zhí)行新的應用程序。在該系統(tǒng)中,為了簡化起見,預先映射硬件辦法地址到確定的系統(tǒng)物理存儲區(qū),目的是為了尋址操作的便利快捷。因為我們用法了java軟件平臺,應用程序就無法挺直拜訪底層的硬件。這就是說,運行在處理器java虛擬機上的應用程序不能挺直拜訪映射到fpga中硬件辦法的緩存區(qū)域。為解決這個問題,理論上可以采納下面兩種辦法:1. 修改java虛擬機,使其具有對處理器物理地址的挺直拜訪能力;2. 單獨設計一種java本地接口(jni),使得應用
7、程序通過該接口提供的功能實現(xiàn)對硬件辦法映射到的物理地址的拜訪。盡管第一種計劃的效率較高,并且沒有引入額外開銷,但是修改java虛擬機內核是相當繁雜的工作,同時也可能會引起潛在的系統(tǒng)不穩(wěn)定。其次種計劃雖然引入了一定的額外開銷,但便于移植和實現(xiàn)。因此,我們采納計劃二,在java虛擬機和java本地接口之外又設計了一個本地通信庫。本地通信庫api形式如下:int hwwritexxx(int addr, xxx p);int hwwritearrayxxx(int addr, xxx p);xxx hwreadxxx(int addr);xxx hwreadarrayxxx(int addr);in
8、t hwconfig(int cf_mem_addr, int bitstr_size);java本地接口層接口的形式如下:class hwinterfacestatic int configstatus;public static native int setparam(cid hw_cid, object p)if(type_of_p = xxx)err = hwwritexxx(hw_cid.addr, (xxx)p);return err;public static native int getresult(cid hw_cid, object r);public static nat
9、ive int setcmd(cid hw_cid, int cmd);public static native int getstatus(cid hw_cid);public synchronized static native int confighw( cid hw_cid);在上面代碼中,xxx表示基本的java數(shù)據(jù)類型如整型(integer)、浮點型(float)、雙精度型(double)等。java應用程序通過類hwinterface提供的辦法拜訪本地庫。上面的代碼中給出了setparam的詳細實現(xiàn)。其中,cid是包括硬件辦法映射到的緩存地址的一個對象,對應于每個硬件辦法的cid
10、都是唯一的,因此,該地址和緩存區(qū)大小都是事先已經確定了的。但是,因為系統(tǒng)中惟獨一個配置控制器,我們無法同時就兩個或多個硬件辦法向fpga舉行編程,也可以說同一時刻只能有一個硬件辦法在用法配置控制器。為此,引入了一個靜態(tài)變量configstatus來反映配置控制器的當前狀態(tài)。所以,拜訪配置控制器的函數(shù)confighw()是靜態(tài)的同步的。用法上面給出的接口,則下面這段代碼methoda();int a = obja.m1(2); /sw methodint b = objb.m2(3); /hw methodint c = a + b;就應當寫成下面的形式:methoda();1 hwinterf
11、ace.confighw(cid2); / cid2 is the id of hw method m22 object p = new integer(3);3 hwinterface.setparam(cid2,p);4 hwinterface.starthw(cid2);5 int a = obja.m1(2);6 object r = new integer();7 while(hwinterface.getresult(cid2, r) = 0); /wait until hw method finished8 hwinterface.getresult(cid2, r);9 int
12、 b = (integer)r.getvalue();10 int c = a + b;在上例中,為了執(zhí)行fpga中的函數(shù)objb.m2(),首先對fpga舉行編程(line1)。然后,將參數(shù)拷貝到硬件辦法的輸入緩存中(line3),并對硬件辦法舉行初始化(line4)。最后,采納了一個循環(huán)函數(shù)持續(xù)檢查硬件辦法緩存的狀態(tài)(line7,8),直至計算完成,然后拷貝得到結果(line9)。3. 系統(tǒng)實現(xiàn)用法710t處理器和virtex的fpga,按照上文給出的設計計劃,我們實現(xiàn)了一個嵌入式系統(tǒng)開發(fā)平臺。該平臺包括一個網絡接口,兩個調試接口,一個pci主機接口和一個串行口。并移植了一個嵌入式操作系統(tǒng)和一個小巧的j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版生物質發(fā)電監(jiān)理服務合同三方協(xié)議3篇
- 二零二五版企業(yè)安全風險評估與安保服務合同3篇
- 二零二五年度高品質鋼結構裝配式建筑安裝服務合同3篇
- 二零二五版電影投資融資代理合同樣本3篇
- 二零二五版初級農產品電商平臺入駐合同2篇
- 二零二五年度電商平臺安全實驗報告安全防護方案合同3篇
- 二零二五年度白酒銷售區(qū)域保護與競業(yè)禁止合同3篇
- 二零二五版建筑工程專用防水材料招投標合同范本3篇
- 二零二五年研發(fā)合作與成果共享合同2篇
- 二零二五版鋼結構工程節(jié)能合同范本下載3篇
- 2024年四川省德陽市中考道德與法治試卷(含答案逐題解析)
- 施工現(xiàn)場水電費協(xié)議
- SH/T 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設計規(guī)范(正式版)
- 六年級數(shù)學質量分析及改進措施
- 一年級下冊數(shù)學口算題卡打印
- 真人cs基于信號發(fā)射的激光武器設計
- 【閱讀提升】部編版語文五年級下冊第三單元閱讀要素解析 類文閱讀課外閱讀過關(含答案)
- 四年級上冊遞等式計算練習200題及答案
- 法院后勤部門述職報告
- 2024年國信證券招聘筆試參考題庫附帶答案詳解
- 道醫(yī)館可行性報告
評論
0/150
提交評論