嵌入式開發系統編程文件格式解析
擴展的Tektronix HEX相對Tektronix HEX格式具有較為靈活的記錄類型和地址空間。它包括3種類型的記錄:數據、符號和結束記錄。數據記錄中的是目標代碼;符號記錄中的是編程部分的信息,編程器下載時符號記錄是被忽略的;結束記錄包括頭部、下載地址和目標代碼。
擴展的Tektronix HEX格式模型如下:
%BBMEEAAAAADDDDDD-DCC
%:占1個ASXCII字符,標示擴展Tek HEX記錄開始。
BB:長度域。占1個字節,表示該記錄中除開始標志之外的字節數。
M:類型域,一個ASCII字符。類型域中:6代表數據記錄,3代表符號記錄,8代表結束記錄。
EE:地址和長度數據的校驗和,大小為1個字節。
AAAAA:地址域。地址域包括2~1 7個字符,第1個字符決定了地址的長度,一般為8,0代表16個字符的地址長度。地址域第1個字符之外的字符指出了數據在存儲器存放的地址。
DD:數據域。包括可執行代碼,下載到存儲器的數據以及傳輸中的描述信息。
CC:校驗和,占一個字節。校驗和域對本條記錄中除了“%”和校驗數據本身之外的所有數據計算校驗和。
根據是否有數據和結束記錄,記錄中域的數量是不一樣的,2種記錄都有6個字符的頭以及2~17個字符的地址。
1.3 描述類文件格式
描述類文件格式的文件信息有相對豐富的文件格式,文件不僅有關于數據的記錄信息,還包含了關于目標機的一些說明信息,改變硬件結構的信息或者測試信息等。該類型的文件最常見的是用于PLD和FPGA的下載文件。
1.3.1 JEDEC文件
JEDEC(Joint ELectron Device Engineermg Council)標準是用于現場可編程邏輯器件的。該標準定義了在開發系統和編程器之間傳輸熔絲狀態的數據格式。它并不涉及諸如邏輯陣列類型和輸出宏單元等設備結構信息。現場可編程邏輯器件比可編程的存儲器件需要更多的測試信息,所以該標準還定義了一些簡單的測試格式。JEDEC格式的合法字符包括所有可打印的ASCII字符和4個控制字符,包括STX(Start of Text)、ETX(End of Text)、CR(Carriage Return)和LF(Line Feed)。一般使用BNF(Backus-Naur Form,巴科斯一諾爾范式)來定義JEDEC格式的語法。
JEDEC格式的第1個域是強制的關于設備信息設計規格書,這個域沒有開始標記符。在JEDEC文件中每一個域都有域識別符以指明該域的類型,每一個域都是以星號結束。JEDEc文件各種域識別符如表3所列。本文引用地址:http://www.104case.com/article/149949.htm
描述及定義域主要用來說明用戶和廠商信息、日期和版本號等各種信息。
N——說明域。用來在JEDEC文件傳輸中插入說明信息,編程器是忽略這一域的。
D——器件域。編程器支持的器件并不是遵從這一域,而是由QF和QP域以及手動選擇器件而決定。
QF,QP和QV——數值域。QF子域定義了器件中熔絲的數量,在器件編程或者測試域之前,這些數值域都是必須的;只有測試域的文件不需要QF域,編程數據的文件不需要QP和QV域;QF子域向編程器指出了熔絲數據需要多少存儲器,多少熔絲要被設置到初始條件以及計算校驗和所包含的熔絲數;QP子域定義了測試向量中的引腳數目或者測試條件;QV子域指出了測試向量的最大數。
器件編程域。每一個熔絲有2種可能的狀態:0為低阻連接,1為高阻連接。熔絲編號從0開始一直到最大熔絲數目。L域中L之后是該域第一個熔絲的十進制序號數字,接下來就是指示熔絲狀態的二進制數字列表,熔絲號和熔絲列表之間由空格或者回車分開。F域定義了L域中未明確定義的熔絲狀態信息。C域是把從第一個熔絲開始的整個器件的熔絲狀態每8位作為一個字節來計算的,最后一個字中若有未使用的位則填0。U域允許指定JEDEC文件中的不影響邏輯和電特性的用戶數據熔絲。E域允許定義不影響器件邏輯功能也不影響已有的JEDEC文件的特性,數據可以用二進制或者十六進制來表示。J——器件標識域。提供邏輯識別碼指出文件對應器件的邏輯結構,由以空格分開的分別大于等于0昀2個十進制數組成:第1個是結構碼,第2個是引腳碼。J域中的編碼是由JEDEC組織分配的。
設備測試域。功能性的測試由測試向量包含的測試條件來定義,每一個測試向量包括n個測試條件。n是器件引腳數,測試條件如表4所列。
X——默認測試條件域。定義了未精確定義的測試向量的輸入邏輯電平,即把QV域中的測試向量1設置為默認輸入測試條件。若使用X域,應當在QV和QP域之后第一個測試向量之前。V——測試向量域。由十進制的向量編號開始,之后是空格以及每個引腳的一串測試條件。P——Pin引腳序列域。P域映射出了器件輸出引腳,一般和V域一起使用。代碼如下所示:
P 1 2 3 4 5 6 14 15 16 17 7 8 9 10 11 12 13 18 19 20*
V0001 111000HLHHNNNNNNNNNN*
V0002 100000HHHLNNNNNNNNNN*
編程及測試選項類域:G為熔絲安全域。用來使能某些邏輯器件的加密熔絲,在G域發送1,即G1*;R、S、T為屬性分析測試;A為訪問時間域,定義了測試向量在十億分之一秒內的傳播延時。
1.3.2 POF文件
POF文件中的包類型如表5所列。POF(Programmer Object File,編程目標文件)格式提供高度壓縮的數據文件,可方便有效地傳輸大量的邏輯器件編程信息。這種文件目前主要應用于MAX系列器件。POF文件由文件頭和各種包組成,每個包對應一個標記,指出包中的數據類型以及數據本身結構,各個包的長度和結構各異。每個數據包的最前6個字節是包類型和其余字節的數量。編程設備在讀取POF文件時,若包類型未被識別,則該包棄之不用。在一個POF文件中,除了結束標記包外,各種類型都可多次出現。有些包編程器是需要包中信息的,有些包編程器是不使用的(跳過),有些包則是編程器只讀包中信息但不直接應用該信息的(只讀)。
2 總結
為方便用戶使用,目前大多數主流公司生產的編程器都能夠在下載文件時自動進行某幾種文件格式的檢測識別以及文件格式的轉換。然而這畢竟解決不了文件格式之間互不兼容的實際問題。因此,我們期望在未來幾年內文件格式可以逐步走向統一,擁有一種或少數幾種格式標準。
評論