下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 基于JTAG接口 實現(xiàn)ARM的FPGA在線配置 基于JTAG接口 實現(xiàn)ARM的FPGA在線配置 類別:嵌入式系統(tǒng) 引 言 隨著通信技術(shù)的發(fā)展,出現(xiàn)越來越多的無線接人技術(shù),為了解決不同標(biāo)準(zhǔn)間的互通和兼容,人們提出了軟件無線電(Software Defined Radio,SDR)技術(shù)。SDR技術(shù)要求通信終端具有可重配置能力,根據(jù)特定通信網(wǎng)絡(luò)情況,動態(tài)地改變調(diào)制解調(diào)、編解碼、交織解交織等方案
2、。SDR終端的實現(xiàn)往往都是基于可重配置的硬件環(huán)境,如現(xiàn)場可編程邏輯陣列(Field Programmable Gate Array,F(xiàn)PGA)、數(shù)字信號處理器(Digital Signal Processor,DSP),而不是專用集成電路(Application Specific Integrated Circuit,ASIC)等特定的硬件電路和芯片。在線配置(In System Programming,ISP)或者動態(tài)配置FPGA就是一種重要的SDR實現(xiàn)技術(shù)。本文介紹作者開發(fā)實現(xiàn)的一種基于ARM的嵌入式Linux下通過JTAG接口動態(tài)配置FPGA的方法。 系統(tǒng)使用三星公司基于ARM9的S3C
3、2410處理器芯片,Altera公司CycloneII系列的EP2C70 FPGA芯片,ARM處理器上運行基于S3C2410裁剪后的嵌入式Linux系統(tǒng),內(nèi)核版本為2418。 1 FPGA的配置方式及配置文件 Altera公司CycloneII系列FPGA芯片,是Altera公司推出的基于90 nm工藝制造、低成本的FPGA,主要面向數(shù)字終端、手持設(shè)備等對成本敏感的應(yīng)用領(lǐng)域。EP2C70擁有68 416個邏輯單元,115 200位RAM,150個乘法器模塊,是CycloneII系列處理能力最強的芯片。與大部分FPGA一樣,CycloneII系列FPGA的配置信息保存在SRAM中,掉電后就丟失配
4、置信息,每次上電后需要重新配置。CycloneII系列FPGA支持3種配置方式:主動串行(AS)方式、被動串行(PS)方式、JTAG方式。 在主動串行和被動串行兩種方式中,F(xiàn)PGA芯片支持在配置過程中對配置數(shù)據(jù)進行解壓縮,也就是配置數(shù)據(jù)可以采用壓縮格式存放;而使用JTAG配置時,F(xiàn)PGA芯片不支持解壓縮過程,不能采用壓縮格式的配置數(shù)據(jù)。 不同的配置方式,往往要求不同格式的配置文件。使用Altera公司提供的QuartusII集成開發(fā)環(huán)境可以生成各種配置文件。QuartusII默認(rèn)產(chǎn)生sof和pof格式的配置文件,基于ARM的嵌入式Linux中對FPGA進行JTAG下載,必須使用jam或者jbc
5、格式的配置文件。 2 JTAG接口工作方式 JTAG接口是一個業(yè)界標(biāo)準(zhǔn),主要用于芯片測試和配置等功能,使用IEEE Std 11491聯(lián)合邊界掃描接口引腳。JTAG最初用于芯片功能的測試,其工作原理是在器件內(nèi)部定義一個測試訪問端口(Test Access Port,TAP),通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試和調(diào)試。TAP是一個通用的端口,外部控制器通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器和指令寄存器?,F(xiàn)在JTAG接口還常用于芯片的在線配置,對PLD、Flash等器件進行配置。為了完成系統(tǒng)的調(diào)試,任何原型系統(tǒng)都支持JTAG配置方式,因而JTAG配置也就成為最廣泛支持的配置方式。不同
6、廠商和不同型號的絕大部分FPGA芯片都支持JTAG配置方式。在Altera公司的FPGA芯片中,JTAG配置方式比其他任何一種配置方式的優(yōu)先級都高。JTAG允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,實現(xiàn)對各個器件分別測試和配置。 JTAG接口由4個必需的信號TDI、TD0、TMS和TCK,以及1個可選信號TRST構(gòu)成。 3 Jam STAPL套件 在嵌入式Linux環(huán)境中,使用JTAG接口配置FPGA,必須使用標(biāo)準(zhǔn)測試與編程語言(Standard Test AndProgramming Language,STAPL)標(biāo)準(zhǔn)。STAPL是一種專門用于描述可編程邏輯設(shè)備(Progr
7、ammable Logic Device,PLD)配置文件的編程語言,由EIAJEDEC組織制定標(biāo)準(zhǔn)。使用STAPL描述的配置文件具有通用性,獨立于PLD生產(chǎn)廠商。 Jam STAPL是Altera公司提供的支持STAPL的套件。使用Jam STAPL進行配置包含兩部分,Jam Player(Jam解釋器或者稱為Jam虛擬機)和Jam配置文件。Jam Player運行在微處理器中,讀取Jam文件并解析Jam文件表達(dá)的內(nèi)容,在JTAG接口上產(chǎn)生用于配置的二進制數(shù)據(jù)流并讀取反饋數(shù)據(jù)。 Jam STAPL的工作方式如圖l所示。利用PLD廠商提供的集成開發(fā)環(huán)境Jam Composer,可以產(chǎn)生Jam配
8、置文件(該文件包含目標(biāo)沒備、應(yīng)用數(shù)據(jù)等完整配置信息,與廠商和配置平臺無關(guān))。然后使用Jam Player解釋并產(chǎn)生JTAG配置數(shù)據(jù),對JTAG鏈中的各個設(shè)備進行配置。 使用Jam STAPL進行配置時,針對不用的應(yīng)用和不同的目標(biāo)設(shè)備(不同型號或者不同廠商),只需要改變Jam配置文件,而無需改變Jam Player。因為Jam Player不包含任何與應(yīng)用或者設(shè)備相關(guān)的信息,它只負(fù)責(zé)解析Jam配置文件中的內(nèi)容。它的工作方式與Java編程語言非常相似,Jam P1ayer相當(dāng)于Java虛擬機,而Jam文件相當(dāng)于編譯之后的Java字節(jié)碼文件(class文
9、件)。Jam配置文件有兩種格式: ASCII文本格式文件,也就是用STAPL描述的配置源文件,文件后綴名是jam。該格式便于閱讀和理解,但由于采用ASCII文本編碼,體積較大。 字節(jié)碼(ByteCode)格式文件,STAPL源文件編譯好之后的字節(jié)碼文件,文件后綴名是“jbc”。對于同樣的配置信息,該格式比jam格式體積小,節(jié)省存儲空間;其缺點是,無法直接閱讀其中的配置信息。 與之對應(yīng),Jam Player也有兩種:普通Jam Player,負(fù)責(zé)對jam文件的解釋;Jam Byte一Code Player,負(fù)責(zé)對jbc文件的解釋。從AItera官方網(wǎng)站上可以免費下載到用C語言編寫的兩種Playe
10、r源代碼。 4 系統(tǒng)設(shè)計與實現(xiàn)41 系統(tǒng)硬件設(shè)計 系統(tǒng)硬件連接方案如圖2所示。系統(tǒng)中只使用JTAG配置方式,所以與AS、PS相關(guān)的nCONFIG、MSELO和MSEL1引腳都不使用,而將nCONFIG拉高,MSELO和MSEL1接地。DATA0和DCLK引腳可以任意配置,在這里都接地。使用S3C2410的通用引腳GPB7、GPB8、GPB9、GPBlO引腳分別作為JTAG接口的TMS、TDl、TCK和TDO。 42 系統(tǒng)軟件設(shè)計421 生成Jam配置文件 使用Jam STAPL進行JTAG配置,需要有Jam配置文件。集成開發(fā)環(huán)境QuartusII默
11、認(rèn)生成的是sol和pof格式的配置文件,要生成jam和jbc文件,可以使用2種方法: 第1種方法,在工程編譯之前設(shè)置QuartusII的生成配置文件選項。在QuartusII的主菜單中,選擇【Assignments】【)evice】菜單,進入【Setting】窗口,單擊“Device&Pin Options”按鈕,在彈出的對話框中選擇“Programming Files”標(biāo)簽,在該標(biāo)簽頁中選擇jam或者jbc文件格式,單擊“0K”按鈕即可。 第2種方法,編譯完成后利用QuartusII自帶的文件格式轉(zhuǎn)換工具,將sof或pof文件轉(zhuǎn)換為jam或jbc文件類型。在QuartusII的主菜單
12、中,選擇【File】【ConvertProgramming Flies】菜單,進入【Convert ProgrammingFiles】窗口。在該窗口的“Programming file type'中選擇jam或者jbc類型,在“File name”中指定文件保存路徑和文件名(默認(rèn)使用與sof或pof同路徑同名),最后單擊“OK”按鈕,即可生成jam或者jbc配置文件。422 移植Jam Player Altera公司提供的Jam Player源程序文件包含了DOS、Windows和Unix三種平臺的代碼。在類似Unix的Linux平臺中使用,必須進行定制和移植。 Jam Player源
13、程序組織結(jié)構(gòu)如圖3所示。與配置平臺的IO處理相關(guān)的功能都安排在jbistubc文件中,使用Jam Player的用戶只需要根據(jù)平臺和硬件環(huán)境修改jbistubc中的函數(shù),而不需要修改其他的文件。 將Jam Player移植到嵌入式Linux中,主要進行下列的定制: 更改平臺預(yù)定義環(huán)境,添加預(yù)處理語句,去除不必要的源代碼; 將JTAG信號映射到具體硬件引腳; 定制錯誤信息輸出方式; 根據(jù)具體微處理器的處理能力,定制延時函數(shù)。 關(guān)于更詳細(xì)的定制和移植過程可參考文獻(xiàn)7和8。 為了幫助Jam Player移植過程,Altera公司提供了調(diào)試和驗證使用的id
14、code文件。該文件有jam格式和jbc格式,分別供移植普通Jam Player和Jam Byte一CodePlayer使用。其功能都是讀取目標(biāo)設(shè)備的IDCODE(每種型號的FPGA芯片都有一個與其一一對應(yīng)的IDC0DE,可參見芯片的數(shù)據(jù)手冊)。如果移植成功,Jam Player會將讀取的IDCODE和對應(yīng)的芯片型號打印出來;否則輸出詳細(xì)的相關(guān)錯誤信息,以供調(diào)試使用。423 JTAG驅(qū)動程序 由于Jam Player運行在嵌入式Linux環(huán)境中,無法直接訪問ARM芯片的引腳寄存器,也就無法直接操作引腳的輸入輸出。所以還必須為用于JTAG接口的引腳編寫驅(qū)動程序,將它們封裝成Jam Player可
15、以讀寫的字符型文件。 該驅(qū)動遵守普通Linux字符型文件驅(qū)動編寫規(guī)則,無需向系統(tǒng)申請中斷和實現(xiàn)中斷函數(shù),最關(guān)鍵的就是對引腳讀寫時,要符合JTAG接口引腳的時序控制。JTAG接口的引腳時序如圖4所示。從圖中可知,對于ARM的JTAG接口,TDI和TMS輸出信號是在TCK時鐘信號的下降沿鎖存的,而TDO反饋信號是在TCK時鐘信號的上升沿有效。 在驅(qū)動程序中,與操作系統(tǒng)的write和read調(diào)用相對應(yīng)的jtag_write和jtag_read的函數(shù)如下(這兩個函數(shù)實現(xiàn)了JTAG輸入輸出信號的具體操作過程): Jam Player中調(diào)用該驅(qū)動時,在buff
16、er中只提供TMS和TDI信號,如圖5(a)所示。根據(jù)硬件設(shè)計,系統(tǒng)使用的是S3C24lO的GPB端口的7、8、9、10引腳,GPB數(shù)據(jù)寄存器(GPBDAT)的結(jié)構(gòu)如圖5(b)所示。所以將buffer0的內(nèi)容寫到GPBDAT寄存器時,需要左移7位;讀取TDO信號時,僅需返回第10位數(shù)據(jù)。424 JTAG在線配置的性能和時間 由于使用JTAG配置不支持配置信息的壓縮形式,JTAG配置的時間只與目標(biāo)芯片的型號有關(guān),而與具體應(yīng)用無關(guān)。我們在PC系統(tǒng)中已驗證:一個源程序為10行的與門操作應(yīng)用和一個源程序超過6 000行的IEEE80216物理層實現(xiàn)的應(yīng)用,在QuartusII中使用JTAG下載時,下載配置的時間相同。 根據(jù)上述嵌入式系統(tǒng)設(shè)計,Jam Player運行在基于S3C2410處理器的Linux環(huán)境中,時鐘頻率為200 MHz,一次配置EP2C70的時間約為70 s。在相同的Jam Player運行環(huán)境下,盡管不同應(yīng)用的Jam文件的大小不同,其配置時間是一樣的。要減少配置時間,可以有3種方法:一是提高運行Jam Player系統(tǒng)的CPU速率;二是修改JamPlayer源程序的代碼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年黑龍江中醫(yī)藥大學(xué)附屬第二醫(yī)院公開招聘工作人員9人備考題庫附答案
- 2026四川濟廣制藥有限公司(高原明珠制藥)招聘筆試備考題庫及答案解析
- 2026河南師范大學(xué)科研助理崗位招聘1人筆試備考試題及答案解析
- 2026榆林子洲縣裴家灣中心衛(wèi)生院招聘筆試模擬試題及答案解析
- 2026四川自貢市消防救援支隊第一批次面向社會招錄政府專職消防員48人筆試模擬試題及答案解析
- 2026年西安市曲江第二學(xué)校教師招聘筆試備考試題及答案解析
- 2026湖南張家界市桑植縣第一季度縣直事業(yè)單位公開選調(diào)工作人員9人筆試備考試題及答案解析
- 2026年福建省寧德市周寧縣獅城第一幼兒園招聘筆試參考題庫及答案解析
- 2026中國廣西人才市場玉林分市場招聘工作人員筆試模擬試題及答案解析
- 2026貴州峰鑫建設(shè)投資(集團)有限公司招聘14人筆試參考題庫及答案解析
- 護理學(xué)導(dǎo)論題庫第五版及答案解析
- 變電站繼保知識培訓(xùn)課件
- 中國聯(lián)通昆明市2025秋招寫作案例分析萬能模板直接套用
- 幼兒園小班語言《馬路上的車》課件
- 2024河南建筑職業(yè)技術(shù)學(xué)院教師招聘考試真題及答案
- 發(fā)電專業(yè)的畢業(yè)論文
- 2025秋季學(xué)期國開電大法律事務(wù)??啤缎淌略V訟法學(xué)》期末紙質(zhì)考試案例分析題庫珍藏版
- 患者身份識別管理標(biāo)準(zhǔn)WST840-2025學(xué)習(xí)解讀課件
- 2025年N1叉車司機考試試題(1000題)(含答案)
- 醫(yī)院醫(yī)療質(zhì)量分析會
- 鐵路甲供料管理辦法
評論
0/150
提交評論