新聞中心

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

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

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

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

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

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

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

  系統(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è)計(jì)

  4.2.1 生成Jam配置文件

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

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

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

  4.2.2 移植Jam Player

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

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


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

 ?、俑钠脚_(tái)預(yù)定義環(huán)境,添加預(yù)處理語(yǔ)句,去除不必要的源代碼;

 ?、趯TAG信號(hào)映射到具體硬件引腳;

  ③定制錯(cuò)誤信息輸出方式;

 ?、芨鶕?jù)具體微處理器的處理能力,定制延時(shí)函數(shù)。

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

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

  4.2.3 JTAG驅(qū)動(dòng)程序

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

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

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




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

評(píng)論


相關(guān)推薦

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

關(guān)閉