《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 使用嵌入式處理器對可編程邏輯器件重編程
使用嵌入式處理器對可編程邏輯器件重編程
摘要: “在系統可重編程能力”指的是在可編程邏輯器件焊接到印制電路板上之后還可以對其重編程的一種特性。本文給出了如何通過嵌入式處理器使用Jam語言對具備“在系統可重編程能力”的可編程邏輯器件重編程的方法,包括軟件方面和硬件方面的考慮以及內存的使用情況,解決了在產品原型及制造階段由于條件所限無法通過下載電纜對可編程邏輯器件重編程的問題。
Abstract:
Key words :

  1 引言

  在嵌入式系統里除了嵌入式處理器外還會經常使用到可編程邏輯器件,有些可編程邏輯器件在被焊接到印制電路板上之后還可以對其程序進行更新,這種特性稱之為“在系統可重編程能力”(In SystemReprogrammability,ISR)。在單板開發階段,通常使用下載電纜通過IEEE Standard 1149.1 JTAG接口對可編程邏輯器件重編程。在產品原型及制造階段,單板上的JTAG接口很可能出于產品外形及內部結構設計的考慮已經無法與下載電纜相連接,此時將無法通過下載電纜對可編程邏輯器件重編程?;谇度胧较到y的產品通常對外提供串行接口或以太網接口,這些接口由嵌入式處理器來控制[1] ,因此可以通過這些接口將可編程邏輯器件的更新程序發送到處理器,由處理器對可編程邏輯器件重編程。

  2 實現方法

  2.1 軟件方面

  串行接口由于協議實現簡單、占用資源少而被嵌入式系統廣泛使用,只需要使用串行接口連接線將主機的串行接口與產品的串行接口相連接,通過主機上的串行接口通訊軟件將更新程序發送給處理器即可,文件傳輸協議一般采用Xmodem協議;而對于基于嵌入式系統的網絡產品而言,由于自身提供以太網接口,而且操作系統內嵌TCP/IP協議棧,因此可以使用以太網接口將更新程序發送給處理器,文件傳輸協議一般采用TFTP協議,嵌入式系統運行TFTP服務器程序,主機上運行TFTP客戶端程序[2] 。

  嵌入式處理器通過串行接口或以太網接口接收到的可編程邏輯器件的更新程序是一種Jam文件,使用類似于Altera公司Quartus II development tool的開發工具根據Jam標準和測試語言(Jam Standard Test andProgramming Language 以下簡稱Jam語言)的要求由Programmer Object File (*.pof,文件后綴名為pof)一類的目標文件轉換生成[3] 。Jam文件是一個ASCII文件,文件中包含了對可編程邏輯器件進行編程的所有信息,包括編程算法和數據,詳細介紹如下:

 ?。?)“注解字段”部分存儲了Jam文件的相關信息,包括可編程邏輯器件的名稱,Jam文件的創建時間,使用的Jam語言的版本等等。

 ?。?)“變量聲明/初始化”部分由編程/校驗的數據和Jam文件用到的一些變量聲明組成。

  (3)“算法部分”包含了對可編程邏輯器件編程需要用到的命令和代碼,包括空白檢查、擦除、編程和校驗等等所有可以在可編程邏輯器件上執行的功能。在代碼中可以使用分支或循環結構。

  嵌入式處理器在接收到Jam文件之后通過運行一個Jam Player程序來解析這個Jam文件,翻譯文件中每一條指令,并對JTAG端口進行數據的讀寫操作,從而完成對ISR可編程邏輯器件程序的更新工作。Jam Player是一個C語言程序,其main主程序執行所有的基本功能,包括對Jam文件內容的解析,指令的翻譯等,這部分內容對于所有的嵌入式系統和Jam文件來說都是一樣的。而Jam Player的I/O功能,包括I/O管腳的尋址、延時程序、文件的I/O以及操作系統相關的功能都包含在jamstub.c文件里,通過修改這個文件Jam Player可以適用于任何系統結構。當Jam Player接收數據的時候,jamstub.c能夠從Jam文件取回數據,或者從TDO管腳移位讀取數據。jamstub.c也能將處理過的JTAG數據發送到3個JTAG管腳(TDI、TMS和TCK),將出錯消息和相關信息返回給調用程序。升級ISR可編程邏輯器件的程序只需要改變Jam文件。

  Jam Player通過一個jam_jtag_io函數(int jam_jtag_io(int tms_tdi))來控制對JTAG接口的讀寫操作。每次調用這個函數的時候,JTAG的TMS和TDI輸出信號將被設定為需要的值,而TDO輸入信號將被采樣,值將被返回,之后TCK時鐘信號將產生一個下降沿。tms_tdi參數包含3比特信息,分別指示TMS信號和TDI信號的狀態以及是否需要讀取TDO的輸出(如果不需要用到TDO的值則可以跳過對TDO的讀取操作)。最低位比特代表TMS的值,第2位比特代表TDI的值,第3位比特指示是否讀取TDO:如果置位,則必須讀取TDO的值,否則不需要。如果TDO為低電平,返回零值,高電平則返回非零值。如果沒有對TDO進行讀取也將返回零值。

  2.2 硬件方面

  嵌入式處理器與JTAG 器件連接的方法有兩種,一種是直接將嵌入式處理器與JTAG 器件連接起來,這種方法處理器需要有專門四個管腳用于JTAG 接口,節省了電路板空間的同時卻占用了處理器的四個管腳;另一種方法通過一個接口邏輯將JTAG 器件連接到處理器的總線,處理器通過JTAG 器件對應的地址來對其進行讀寫操作[4] 。

 

  圖1 給出了接口邏輯的一個范例。當接口邏輯收到正確的地址和控制信號,它將對TDI、TCK 和TMS信號進行同步,并通過多路復用器驅動輸出管腳,下載電纜也可以通過多路復用器對JTAG 鏈進行編程或驗證[5] 。TDI、TCK 和TMS 信號的同步通過嵌入式處理器的時鐘信號和寄存器來完成,TDO 的緩沖區可以防止總線競爭,TDI、TCK 和TMS 的緩沖區在調試的時候還可以用來讀回寄存器的值。圖中的與門通過R/W 信號來控制執行讀或寫操作,而AS 和DS 信號則可以在另一個級別上對電路進行選擇和去選擇。

接口邏輯

圖1 接口邏輯

  2.3 內存使用情況

  下面討論使用嵌入式處理器對可編程邏輯器件重編程時內存的使用情況。為了能夠兼容沒有內存分配服務的嵌入式處理器,Jam Player 不僅需要程序存儲空間而且需要動態內存。程序存儲空間(如硬盤驅動器或ROM)用于存儲Jam Player 可執行二進制文件和Jam 文件;動態內存(如RAM)將在調用Jam Player的時候使用。

  Jam Player 按照下面的步驟來使用內存:

  (1)嵌入式處理器從ROM 中調用Jam Player;

  (2)Jam Player 從ROM 中讀取Jam 文件,然后把它存入RAM;

  (3)Jam Player 對Jam 文件中包含的壓縮程序數據解壓,并將解壓后的數據存入RAM;

 ?。?)Jam Player 在RAM 中初始化符號表(symbol table)、堆棧(stack)和堆(heap)。

  符號表包含Jam 文件的標記(labels)和變量(variables);堆棧用于FOR 循環,CALL 和PUSH 語句;堆作為臨時內存用于數學表達式的求值以及填充數據的存儲。在處理Jam 文件時每碰到一個命令堆棧和堆大小都將增加,可用動態內存越來越少,而Jam 文件、解壓縮后的數據以及符號表需要的動態內存空間在整個過程中則保持不變。

  Jam Player 的內存使用情況如圖2 所示。

Jam Player 的內存使用情況

圖2 Jam Player 的內存使用情況

  2.3.1 程序存儲空間(ROM)使用情況

  所需程序存儲空間為:

所需程序存儲空間

Jam Player的大小由使用的嵌入式處理器以及接口邏輯的復雜度決定,Jam文件總的程序存儲空間由JTAG鏈上正在被編程的器件數量決定。如果JTAG鏈上只有一個器件,該器件對應Jam文件的大小即為所需程序存儲空間的大小。Jam文件的大小還取決于目標器件,在壓縮后一般在26K字節到30K字節。假設JTAG鏈中有3個器件,所有3個器件都將要編程,所需Jam文件存儲空間將為3個Jam文件大小的總和。表1給出了單器件所需要程序存儲空間的情況。

表1 單器件需要的程序存儲空間

單器件需要的程序存儲空間

  2.3.2 動態內存(RAM)的使用情況

  所需RAM 空間為:

所需RAM 空間

Jam 文件需要的RAM 空間與ROM 空間大小一樣,在程序存儲空間使用情況里已經討論過了。在Jam Player從ROM 讀出Jam 文件存儲到RAM 之后,Jam Player 對Jam 文件里的壓縮數據解壓并將解壓后的數據存儲到RAM。解壓后的數據占用RAM 空間的大小可以通過Jam 文件里的ACA 變量來得到。每個ACA 變量都在“變量聲明/初始化”部分列出,每個數組的大小由變量聲明方括號里的數值決定。例如:

公式

說明解壓后的ACA變量大小為434460比特,也就是大約53K字節。

  符號表的大小由下式給出:

公式

一個變量或標記名稱的大小為48字節,JAM_C_MAX_SYMBOL_COUNT在jamdefs.h文件里定義,默認值為1021。實際上大多數Jam文件最多使用400個變量和標記名稱。將JAM_C_MAX_SYMBOL_COUNT修改為400能節省一部分動態內存,

公式

  相比較Jam Player使用的總RAM空間大小而言堆棧和堆需要很少的RAM,jamdefs.h文件里的JAMC_MAX_NESTING_DEPTH常量定義堆棧的最大深度。表2給出了單器件所需要RAM空間的情況。

表2 單器件需要的RAM 空間

單器件需要的RAM 空間

  3 結論

  本文通過軟件、硬件以及內存的使用情況等方面的介紹,詳細描述了一種通過嵌入式處理器使用Jam編程與測試語言對ISR器件重編程的新方法,為在產品原型及制造階段對可編程邏輯器件重編程提供了參考,具有很強的實用意義。

  本文作者創新點:由于在產品原型及制造階段,單板上的JTAG接口很可能出于產品外形及內部結構設計的考慮已經無法與下載電纜相連接,此時將無法通過下載電纜對可編程邏輯器件重編程。而通過串行接口或以太網接口將可編程邏輯器件的更新程序發送到處理器,由處理器對可編程邏輯器件重編程,解決了這個難題。

 

  參考文獻

  [1] 杜延,劉從越.嵌入式實時系統軟件測試實踐[J].微計算機信息,2007,4-2:86-88.

  [2] Kamal,Raj.嵌入式系統:體系結構、編程設計[M].清華大學出版社,2005.

  [3] 鄭亞民,董曉舟.可編程邏輯器件開發軟件QuartusII[M].國防工業出版社,2006.

  [4] Stuart,R.Ball.嵌入式微處理器系統設計實例(第三版)[M].電子工業出版社,2004.

  [5] 田澤.嵌入式系統開發與應用[M].北京航空航天大學出版社,2005.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          日韩一级在线| 国产亚洲精品aa午夜观看| 久久久亚洲国产美女国产盗摄| 国产精品伦理| 久久久久久久久综合| 精品96久久久久久中文字幕无| 国产精品一区二区男女羞羞无遮挡| 亚洲欧美电影院| 亚洲欧洲日韩在线| 久久色在线观看| 国产精品扒开腿做爽爽爽视频| 欧美日本国产在线| 亚洲电影免费在线观看| 亚洲一区二区不卡免费| 欧美视频二区36p| 一区二区三区视频在线观看| 欧美日韩国产综合一区二区| 亚洲自拍高清| 欧美日韩一二区| 日韩网站在线看片你懂的| 国产字幕视频一区二区| 久久久久高清| 午夜久久影院| 欧美日韩精品一区二区| 久久久精品国产一区二区三区| 亚洲国产成人av好男人在线观看| 国产亚洲人成网站在线观看| 国产精品免费视频观看| 亚洲精品影视在线观看| 激情av一区| 亚洲视频自拍偷拍| 欧美mv日韩mv国产网站app| 欧美日韩理论| 国产精品夜色7777狼人| 国产精品国产福利国产秒拍| 国产精品色在线| 在线观看国产欧美| 亚洲日本电影在线| 欧美日韩一区精品| 国产性猛交xxxx免费看久久| 中日韩午夜理伦电影免费| 久久国产直播| 精品动漫3d一区二区三区| 国产日韩欧美不卡在线| 性欧美xxxx视频在线观看| 在线观看国产一区二区| 欧美影院视频| 国产一区二区看久久| 欧美三区美女| 国自产拍偷拍福利精品免费一| 国产亚洲综合在线| 欧美成人a∨高清免费观看| 国产精品第三页| 欧美美女操人视频| 久久国产精品久久精品国产| 午夜欧美不卡精品aaaaa| 在线观看av不卡| 久久九九久精品国产免费直播| 影音先锋日韩精品| 国产精品久久午夜夜伦鲁鲁| 亚洲高清视频一区二区| 宅男噜噜噜66一区二区66| 亚洲欧美一区二区原创| 国产精品免费一区豆花| 欧美一区二区三区在线视频| 欧美一区二区视频免费观看| 免费成人激情视频| 久久精品亚洲一区二区三区浴池| 欧美激情aⅴ一区二区三区| 99精品99| 欧美三级在线播放| 欧美色综合天天久久综合精品| 久久久欧美精品| 麻豆av福利av久久av| 在线免费观看日韩欧美| 国产精品久久久久国产精品日日| 欧美夫妇交换俱乐部在线观看| 欧美乱妇高清无乱码| 亚洲深夜福利在线| 欧美日韩在线观看一区二区三区| 国产精品一区二区女厕厕| 国产欧美综合一区二区三区| 亚洲国产视频直播| 亚洲国产成人精品女人久久久| 韩国欧美一区| 欧美成人免费在线观看| 国产区亚洲区欧美区| 男女视频一区二区| 亚洲曰本av电影| 国产欧美日韩另类视频免费观看| 在线成人黄色| 中国日韩欧美久久久久久久久| 久久综合精品国产一区二区三区| 亚洲福利在线观看| 日韩一区二区免费高清| 久久日韩粉嫩一区二区三区| 日韩视频一区二区| 欧美日韩午夜| 久久www免费人成看片高清| 欧美视频在线看| 国产日韩精品久久久| 亚洲精品欧美激情| 欧美福利电影网| 免费观看成人| 亚洲高清二区| 亚洲精品久久久久久久久久久久| 亚洲黄页一区| 免费观看亚洲视频大全| 国产精品久久久久久久久婷婷| 9久草视频在线视频精品| 久久男人资源视频| 欧美精品亚洲一区二区在线播放| 欧美片第1页综合| 欧美日韩国产欧| 性欧美大战久久久久久久久| 久久男人资源视频| 久久久99久久精品女同性| 蜜桃久久av一区| 一本色道久久精品| 激情五月综合色婷婷一区二区| 国产精品色网| 尤物yw午夜国产精品视频| 亚洲欧美综合另类中字| 另类图片综合电影| 在线精品国精品国产尤物884a| 雨宫琴音一区二区在线| 国产亚洲免费的视频看| 国产精品一区亚洲| 亚洲欧洲日韩在线| 在线观看亚洲a| 欧美日韩国产色站一区二区三区| 欧美大片18| 国产精品乱码一区二三区小蝌蚪| 一区二区在线不卡| 一本一本大道香蕉久在线精品| 国产精品国产三级国产专区53| 亚洲国产精品久久久久秋霞蜜臀| 一区二区三区在线不卡| 亚洲天堂av高清| 国产午夜精品久久| 国产美女高潮久久白浆| 国产精品一区二区久激情瑜伽| 永久域名在线精品| 国产欧美日韩三级| 亚洲电影免费观看高清完整版在线| 永久免费精品影视网站| 国产一区二区精品久久91| 国产精品乱子乱xxxx| 国产伦精品一区二区三区| 亚洲一区亚洲二区| 欧美激情亚洲精品| 羞羞视频在线观看欧美| 欧美日韩麻豆| 亚洲图中文字幕| 亚洲一区网站| 亚洲日本乱码在线观看| 韩国女主播一区二区三区| 免费亚洲一区| 欧美亚洲动漫精品| 国产精品一区在线观看你懂的| 国产亚洲精品久久久| 国产精品丝袜久久久久久app| 99视频在线精品国自产拍免费观看| 国产精品成人av性教育| 国产精品亚洲综合| 久久网站热最新地址| 国产啪精品视频| 久久久精品tv| 久久丁香综合五月国产三级网站| 国产欧美日韩一级| 欧美国产另类| 久久久久国色av免费看影院| 国产日韩成人精品| 亚洲一区二区视频| 国产欧美高清| 伊人久久亚洲美女图片| 国产精品午夜av在线| 久久久99爱| 久久天堂成人| 久久久久久久久综合| 欧美日韩国产二区| 久久精品久久99精品久久| 极品尤物一区二区三区| 亚洲国产99精品国自产| 欧美日韩国产一中文字不卡| 亚洲一级影院| 久久天堂成人| 亚洲精品自在在线观看| 欧美日韩视频一区二区三区| 六十路精品视频| 久久久91精品国产一区二区精品| 一区二区三区欧美视频| 美日韩精品视频| 国产一区二区三区在线观看精品| 激情文学综合丁香| 欧美国产精品人人做人人爱| 亚洲视频欧美视频| 久久精品国产亚洲高清剧情介绍| 欧美日韩在线一二三| 久热精品视频在线观看| 久久久噜噜噜久噜久久| 国内揄拍国内精品久久| 欧美极品影院| 99视频国产精品免费观看| 在线亚洲观看| 男女av一区三区二区色多| 国产精品蜜臀在线观看| 欧美一区二区三区在线视频| 一区二区三区四区五区精品视频| 国产午夜精品理论片a级大结局| 亚洲午夜精品一区二区三区他趣| 国产精品综合色区在线观看| 欧美三级网址| 一区二区三区在线免费播放| 国产欧美综合在线| 黄色成人av网站| 国产精品二区二区三区| 亚洲性图久久| 欧美日韩一区在线| 国产在线麻豆精品观看| 久久成人av少妇免费| 国产欧美一区二区三区另类精品| 久久字幕精品一区| aa日韩免费精品视频一| 欧美三级资源在线| 欧美另类极品videosbest最新版本| 欧美在线精品免播放器视频| 久久激情五月丁香伊人| 亚洲人成小说网站色在线| 亚洲美女精品一区| 国产精品久久久久久久久久久久久| 久久蜜桃资源一区二区老牛| 欧美日韩国产精品成人| 欧美色精品天天在线观看视频| 伊大人香蕉综合8在线视| 激情五月***国产精品| 亚洲人成网站999久久久综合| 国产一区视频观看| 一区二区视频在线观看| 一区二区三区产品免费精品久久75| 欧美日韩一区二区在线视频| 欧美日韩国产免费观看| 亚洲欧美在线网| 欧美一二区视频| 国产精品久久久久久久久久直播| 亚洲二区视频在线| 亚洲大片在线| 欧美日韩国产在线播放网站| 久久久久久久一区| 亚洲欧美日韩中文在线制服| 久久国产主播精品| 亚洲影院色无极综合| 欧美激情区在线播放| 亚洲精品一区在线| 一本久道久久综合中文字幕| 一区二区三区视频在线看| 国产综合久久| 国产精品视频| 欧美久久精品午夜青青大伊人| 亚洲综合色网站| 欧美成人r级一区二区三区| 亚洲第一在线综合在线| 亚洲国产小视频在线观看| 狠狠色综合色综合网络| 亚洲精品1234| 国内精品模特av私拍在线观看| 欧美 亚欧 日韩视频在线| 久久精品导航| 亚洲一区二区三| 国内精品久久久久久久影视麻豆| 欧美成人第一页| 免费成人高清在线视频| 性欧美xxxx视频在线观看| 一区二区欧美在线| 91久久中文| 亚洲欧美影音先锋| 欧美一区精品| 国模 一区 二区 三区| 精品91在线| 欧美激情一区二区三区在线视频观看| 国产精品成av人在线视午夜片| 亚洲在线日韩| 国产麻豆精品theporn| 国产一区二区日韩| 宅男66日本亚洲欧美视频| 欧美成人日本| 亚洲欧美日韩另类精品一区二区三区| 欧美一级电影久久| 国产精品夜夜嗨| 一本到12不卡视频在线dvd| 欧美日韩一区二区在线视频| 亚洲国产一区二区三区在线播| 欧美日本不卡| 日韩视频在线观看国产| 亚洲最新在线| 狠狠色狠狠色综合日日tαg| 国产精品亚洲产品| 夜夜嗨av一区二区三区中文字幕| 一区二区冒白浆视频| 久久久国产精彩视频美女艺术照福利| 国产日韩欧美中文在线播放| 亚洲一区999| 欧美一区二区三区四区在线| 欧美精品不卡| 久久激情网站| 免费在线一区二区| 篠田优中文在线播放第一区| 亚洲国产另类久久久精品极度| 亚洲日本成人女熟在线观看| 亚洲一区免费视频| 国产亚洲欧美日韩精品| 欧美国产一区二区在线观看| 最新亚洲激情| 欧美在线亚洲综合一区| 亚洲福利视频免费观看| 亚洲欧美日韩精品综合在线观看| 国产精品一区二区在线| 黄色成人在线免费| 今天的高清视频免费播放成人| 欧美成年人在线观看| 国产精品久久久久91| 欧美国产在线观看| 欧美另类一区二区三区| 欧美日韩午夜在线视频| 在线观看国产精品网站| 欧美另类极品videosbest最新版本| 一本久道久久综合狠狠爱| 欧美激情精品久久久久久黑人|