新聞中心

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

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

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

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

          與之對(duì)應(yīng),Jam Player也有兩種:普通Jam Player,負(fù)責(zé)對(duì).jam文件的解釋;Jam Byte一Code Player,負(fù)責(zé)對(duì).jbc文件的解釋。從AItera*****上可以免費(fèi)下載到用C語言編寫的兩種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配置文件。集成開發(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)簽頁中選擇.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ù)處理語句,去除不必要的源代碼;

          ②將JTAG信號(hào)映射到具體硬件引腳;

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

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

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

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

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

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

          該驅(qū)動(dòng)遵守普通Linux字符型文件驅(qū)動(dòng)編寫規(guī)則,無需向系統(tǒng)申請(qǐng)中斷和實(shí)現(xiàn)中斷函數(shù),最關(guān)鍵的就是對(duì)引腳讀寫時(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)閉
        主站蜘蛛池模板: 娄底市| 长泰县| 宝鸡市| 开原市| 清流县| 黑龙江省| 巨鹿县| 鹤壁市| 禄丰县| 南通市| 来安县| 漯河市| 惠州市| 新安县| 扶绥县| 潢川县| 寻乌县| 隆化县| 淳化县| 晋宁县| 济源市| 姜堰市| 竹北市| 临澧县| 四平市| 巴里| 永清县| 神池县| 建昌县| 贵州省| 平顺县| 吴旗县| 禹州市| 尼勒克县| 新密市| 双流县| 玉树县| 宁城县| 竹溪县| 靖安县| 姜堰市|