李斌 武健
摘要:本文提出一種FC網(wǎng)絡設備可編程邏輯遠程在線升級維護方法,通過在FC網(wǎng)絡設備中增加代理邏輯和軟件,由控制端基于自定義交互控制協(xié)議完成代理端FC設備可編程邏輯文件的固化存儲。以Xilinx Virtex5 芯片為例的系統(tǒng)設計證明了本方法可行并且高效,一個控制端能控制相連的所有FC設備并行、快速地維護可編程邏輯,有效提高了系統(tǒng)維護效率,降低了維護成本。
關鍵詞:FC網(wǎng)絡 可編程邏輯 升級
引言
面向綜合化模塊化的航空電子系統(tǒng)通常采用分布式、開放體系架構,并通過高速光纖通道(FC, Fibre Channel)交換網(wǎng)絡實現(xiàn)資源、信息共享和系統(tǒng)功能綜合。機載FC網(wǎng)絡系統(tǒng)由一組網(wǎng)絡終端設備和網(wǎng)絡交換設備構成,網(wǎng)絡終端設備和網(wǎng)絡交換設備統(tǒng)稱為FC網(wǎng)絡設備。其中,F(xiàn)C網(wǎng)絡交換設備是FC交換網(wǎng)絡系統(tǒng)的核心部件,所有FC網(wǎng)絡終端設備通過物理鏈路與網(wǎng)絡交換設備相連,網(wǎng)絡終端設備作為機載系統(tǒng)傳感、計算、作動等功能設備的通信接口為其提供通信服務。
通常情況下,為滿足航空電子系統(tǒng)需求變化、功能升級或優(yōu)化配置等要求,F(xiàn)C網(wǎng)絡設備的主要功能采用現(xiàn)場可編程門陣列(FPGA, Field–Programmable Gate Array)實現(xiàn)。傳統(tǒng)的FPGA升級維護采用JTAG接口連接FPGA將新邏輯燒寫到PROM中完成,但是這種方式存在諸多不足,首先,操作不方便,在機載環(huán)境下,各種功能模塊都被裝進機箱里,如果需要對其中邏輯進行升級就必須拆開機箱取出模塊,過程繁瑣而且容易造成設備損壞;其次,編程速度慢,JTAG編程速度較慢,一般200T的邏輯即使在選擇最高速率時仍然需要大于10分鐘;不能并行操作,若要同時升級多個FC設備的可編程邏輯,則需要多個FPGA仿真器及相應的軟件環(huán)境。由于以上原因,對于上百個節(jié)點機構成的FC網(wǎng)絡,若采用JTAG接口升級其中所有FC設備邏輯,則非常耗時耗力。
本文提出一種遠程升級FC設備可編程邏輯的方法,為FC設備邏輯升級提供除通過JTAG升級的另外一種途徑,支持不拆卸硬件、快速、并行升級多個FC設備的可編程邏輯。
1 系統(tǒng)組成
為實現(xiàn)FC設備的可編程邏輯遠程升級維護,構建如圖 1所示的系統(tǒng),該系統(tǒng)由一個控制端和相連的FC設備的代理端組成,代理端和控制端通過自定義的交互協(xié)議基于FC網(wǎng)絡或者以太網(wǎng)完成交互。
2 代理端
代理端由代理邏輯和代理軟件兩部分組成。代理邏輯是在主要功能邏輯中增加的用于PROM訪問控制的邏輯功能模塊;代理軟件作為FC設備驅(qū)動軟件的一部分運行于嵌入式目標機上,它接收控制端發(fā)送的邏輯文件,并依據(jù)其控制指令實現(xiàn)邏輯文件編程。
2.1代理邏輯
如圖 2所示為代理邏輯示意圖。在FC網(wǎng)絡設備的主要功能邏輯中增加PROM訪問代理邏輯,兩部分邏輯共用主機接口資源。代理邏輯包括部分主機接口邏輯和PROM控制接口邏輯,其中,主機接口可以是PCI/PCIe或者RapidIO等常用總線接口。代理邏輯用于執(zhí)行代理軟件下發(fā)的PROM讀寫操作。由于邏輯在運行時是并行進行的,所以加入代理邏輯不會對主要功能邏輯產(chǎn)生影響。
在代理軟件訪問PROM過程中,代理邏輯解析主機接口的命令,產(chǎn)生讀或者寫操作至PROM訪問接口,并在特定的時間點上撤銷命令結束操作。如果是讀操作還需要在特定的時間點上鎖存總線上的數(shù)據(jù)并傳遞給主機接口。PROM讀寫訪問對各個信號跳變的時間有嚴格要求。為了保證正確的讀寫訪問,設計必須滿足其要求的時序。
2.2代理軟件
代理軟件運行于嵌入式目標機處理器上,與控制端軟件通過網(wǎng)絡進行信息交互,依據(jù)控制軟件的命令完成PROM編程。
代理軟件首先接收控制端發(fā)送的邏輯文件記錄行,通過解析記錄行獲取有效數(shù)據(jù)和目標地址,然后調(diào)用相應的RPOM訪問驅(qū)動接口,將有效數(shù)據(jù)寫入目標地址,即可實現(xiàn)邏輯文件的更新。
與一般FLASH相似,對PROM的編程也遵循相應的命令序列。以Virtex-5系列PROM手冊中詳細描述了PROM讀、擦除、編程等功能的命令序列要求,依此可實現(xiàn)PROM的訪問控制驅(qū)動接口,具體實現(xiàn)不再贅述。
記錄行是指邏輯文件(*.mcs)中的一行記錄,其數(shù)據(jù)格式分為32位和16位兩種,16位格式支持20位段地址空間,32位支持32位線性地址空間。Virtex-5系列FPGA使用的是32位格式。每個記錄(行)包括數(shù)據(jù)長度、數(shù)據(jù)類型、地址、有效數(shù)據(jù)以及校驗和信息。
圖 3所示代理軟件中PROM編程流程圖,其步驟如下:
a.等待接收邏輯(*.mcs)文件的第i行記錄;
b.依據(jù)文件格式定義解析第i行記錄;
c.若記錄類型為04,則更新基址,轉步驟(a),等待接收下一行記錄,(i=i+1);
d.若記錄類型為00,則根據(jù)當前的基址計算地址,寫入數(shù)據(jù)后進行行記錄校驗,轉步驟(a),讀取下一行記錄,(i=i+1);
e.若類型為01,則為文件結束標識,編程結束。
f.其中,數(shù)據(jù)的寫入地址由基地址和偏移兩部分構成,04類型記錄為當前基地址,00記錄類型為當前偏移,由兩部分相加即可得到實際的地址。另外,文件解析所得地址為字節(jié)地址,即其以字節(jié)為單位進行編址,而PROM地址以字(16位)為單位進行編址,因此需要注意字節(jié)地址和字地址的轉換。
3 控制端
控制端是一個運行在PC機上的軟件,具有圖形化用戶界面的軟件,它通過FC網(wǎng)絡或者以太網(wǎng)將邏輯(*.mcs)文件傳輸至代理端,并通過相應的交互協(xié)議控制代理端軟件實現(xiàn)FC節(jié)點機FPGA邏輯遠程升級。一個控制端能同時控制網(wǎng)絡中所有FC目標設備進行可編程邏輯升級維護。
4 交互協(xié)議
控制端通過FC網(wǎng)絡或者以太網(wǎng)將可編程邏輯文件傳輸至代理端。其處理流程如下。圖 4所示為控制端與代理端之間的交互流程。
a.控制軟件首先發(fā)起邏輯升級請求,請求中攜帶軟件版本信息和編程密鑰;
b.代理軟件收到邏輯升級請求后,檢查版本信息是否匹配,編程密鑰是否正確,并將結果反饋至控制軟件;
c.版本及密鑰正確時控制軟件啟動編程,否則結束流程;
d.控制軟件讀取待更新邏輯文件的第i行記錄并發(fā)送至代理軟件;
e.代理軟件收到第i行記錄后進入如圖2所示的編程流程,并將結果反饋至控制端軟件;
f.控制軟件檢查當前記錄行編程結果,如果正確則轉(d),i=i+1;否則顯示錯誤信息,并退出;
g.當全部記錄行編程結束后進入校驗環(huán)節(jié),控制端軟件發(fā)送第i行記錄校驗請求;
h. 代理軟件收到第i行校驗請求后依據(jù)計算所得偏移地址和長度調(diào)用驅(qū)動接口讀取已完成編程的數(shù)據(jù),并將數(shù)據(jù)發(fā)送反饋至控制軟件;
i. 控制軟件收到第i行數(shù)據(jù)后與第i行記錄文件進行數(shù)據(jù)比對,檢查是否一致,比對正確時轉步驟(g),否則顯示錯誤信息并退出;
j.當全部記錄行校驗結束后,控制軟件發(fā)送結束請求;
k.代理軟件收到結束請求后,釋放相應資源并回復應答;
l.邏輯升級結束。
5 結束語
提出一種遠程升級FC網(wǎng)絡設備可編程邏輯的方法,為FC網(wǎng)絡設備邏輯升級提供除通過JTAG升級的另外一種途徑。該方法無需拆卸硬件和額外的輔助工具,具有操作簡單、編程速度快、可支持并行升級等優(yōu)點??刂栖浖赏瑫r控制全網(wǎng)絡FC設備可編程邏輯升級,極大地提升了升級維護效率。
參考文獻
[1]牛文生綜合化航空電子系統(tǒng)對軟件開發(fā)技術的挑戰(zhàn)[J],航空計算技術,2008,38(1):1-6.
[2]Fibre Channel: Framing and Signaling[S]. New York: American National Standards Institute, 2003.
[3]孔璇,李斌.一種基于海明碼的PROM文件系統(tǒng)軟件校驗方法[J],電腦知識與技術,2016,12(6):78-81.