新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于JTAG接口實現(xiàn)ARM的FPGA在線配置

基于JTAG接口實現(xiàn)ARM的FPGA在線配置

作者: 時間:2012-11-30 來源:網(wǎng)絡(luò) 收藏

 ?、谧止?jié)碼(Byte—Code)格式文件,STAPL源文件編譯好之后的字節(jié)碼文件,文件后綴名是“.jbc”。對于同樣的配置信息,該格式比.jam格式體積小,節(jié)省存儲空間;其缺點是,無法直接閱讀其中的配置信息。

  與之對應(yīng),Jam Player也有兩種:普通Jam Player,負責對.jam文件的解釋;Jam Byte一Code Player,負責對.jbc文件的解釋。從AItera*****上可以免費下載到用C語言編寫的兩種Player源代碼。

  4 系統(tǒng)設(shè)計與實現(xiàn)

  4.1 系統(tǒng)硬件設(shè)計

  系統(tǒng)硬件連接方案如圖2所示。系統(tǒng)中只使用JTAG配置方式,所以與AS、PS相關(guān)的nCONFIG、MSELO和MSEL1引腳都不使用,而將nCONFIG拉高,MSELO和MSEL1接地。DATA0和DCLK引腳可以任意配置,在這里都接地。使用的通用引腳GPB7、GPB8、GPB9、GPBlO引腳分別作為的TMS、TDl、TCK和TDO。


  4.2 系統(tǒng)軟件設(shè)計

  4.2.1 生成Jam配置文件

  使用Jam STAPL進行JTAG配置,需要有Jam配置文件。集成開發(fā)環(huán)境QuartusII默認生成的是.sol和.pof格式的配置文件,要生成.jam和.jbc文件,可以使用2種方法:

  第1種方法,在工程編譯之前設(shè)置QuartusII的生成配置文件選項。在QuartusII的主菜單中,選擇【Assign—ments】→【【)evice】菜單,進入【Setting】窗口,單擊“Device.Pin Options…”按鈕,在彈出的對話框中選擇“Program—ming Files”標簽,在該標簽頁中選擇.jam或者.jbc文件格式,單擊“0K”按鈕即可。

  第2種方法,編譯完成后利用QuartusII自帶的文件格式轉(zhuǎn)換工具,將.sof或.pof文件轉(zhuǎn)換為.jam或.jbc文件類型。在QuartusII的主菜單中,選擇【File】→【ConvertProgramming Flies】菜單,進入【Convert ProgrammingFiles】窗口。在該窗口的“Programming file type'’中選擇.jam或者.jbc類型,在“File name”中指定文件保存路徑和文件名(默認使用與.sof或.pof同路徑同名),最后單擊“OK”按鈕,即可生成.jam或者.jbc配置文件。

  4.2.2 移植Jam Player

  Altera公司提供的Jam Player源程序文件包含了DOS、Windows和Unix三種平臺的代碼。在類似Unix的Linux平臺中使用,必須進行定制和移植。

  Jam Player源程序組織結(jié)構(gòu)如圖3所示。與配置平臺的I/O處理相關(guān)的功能都安排在jbis—tub.c文件中,使用Jam Player的用戶只需要根據(jù)平臺和硬件環(huán)境修改jbistub.c中的函數(shù),而不需要修改其他的文件。


  將Jam Player移植到嵌入式Linux中,主要進行下列的定制:

  ①更改平臺預定義環(huán)境,添加預處理語句,去除不必要的源代碼;

  ②將JTAG信號映射到具體硬件引腳;

  ③定制錯誤信息輸出方式;

  ④根據(jù)具體微處理器的處理能力,定制延時函數(shù)。

  關(guān)于更詳細的定制和移植過程可參考文獻[7]和[8]。

  為了幫助Jam Player移植過程,Altera公司提供了調(diào)試和驗證使用的idcode文件。該文件有.jam格式和.jbc格式,分別供移植普通Jam Player和Jam Byte一CodePlayer使用。其功能都是讀取目標設(shè)備的IDCODE(每種型號的芯片都有一個與其一一對應(yīng)的IDC0DE,可參見芯片的數(shù)據(jù)手冊)。如果移植成功,Jam Player會將讀取的IDCODE和對應(yīng)的芯片型號打印出來;否則輸出詳細的相關(guān)錯誤信息,以供調(diào)試使用。

  4.2.3 JTAG驅(qū)動程序

  由于Jam Player運行在嵌入式Linux環(huán)境中,無法直接訪問芯片的引腳寄存器,也就無法直接操作引腳的輸入輸出。所以還必須為用于的引腳編寫驅(qū)動程序,將它們封裝成Jam Player可以讀寫的字符型文件。

  該驅(qū)動遵守普通Linux字符型文件驅(qū)動編寫規(guī)則,無需向系統(tǒng)申請中斷和實現(xiàn)中斷函數(shù),最關(guān)鍵的就是對引腳讀寫時,要符合引腳的時序控制。JTAG接口的引腳時序如圖4所示。從圖中可知,對于的JTAG接口,TDI和TMS輸出信號是在TCK時鐘信號的下降沿鎖存的,而TDO反饋信號是在TCK時鐘信號的上升沿有效。

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: JTAG接口 ARM FPGA 在線配置 S3C2410

評論


相關(guān)推薦

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

關(guān)閉