?

一種用于筒彈測試條件下的軟件升級方法

2023-04-06 07:30王召利范文晶張明利馬少飛謝先群
空天防御 2023年1期
關鍵詞:機軟件扇區上位

王召利,范文晶,張明利,馬少飛,顧 杰,謝先群

(1.上海無線電設備研究所,上海 201109;2.上海機電工程研究所,上海 201109)

0 引 言

隨著控制局域網絡(controller area network,CAN)總線技術的快速發展,導彈系統內連接CAN 總線的節點產品數目也隨之增加。同時要求在全彈情況下導彈內部各個節點產品的調試測試具備快速、靈活及便捷性的優點。傳統的軟件升級方法通過JTAG口進行燒錄,通過數字信號處理(digital signal processing,DSP)仿真器連接至產品JTAG口上,每個產品的JTAG 口升級需要9 根信號線。在全彈情況下,單機產品的JTAG口不會都連接至艙體上,所以該情況下若要對某個導彈艙內產品軟件進行升級,須對艙體進行拆除,拿出需升級產品才可以實現該產品的軟件升級。這種升級方法在導彈總裝廠房測試或者外場試驗情況下工作量比較大,不利于試驗的順利進行。

針對以上需求,本文設計了一種基于TI公司DSP芯片TMSF28335 系列型號的CAN 總線軟件升級方法。該方法通過CAN_H 及CAN_L 兩根信號線即可實現全彈產品CAN 總線組網,每個產品都處在CAN網絡中,將導彈內每個產品定義為多個節點,通過設計導彈內每個節點不同的CAN_ID 身份號用以區分導彈系統內各個節點產品。通過CAN 總線上位機軟件可加載編譯后的.out 文件,點擊燒寫按鈕,CAN 網絡中的節點產品可根據約定的CAN_ID 身份號將目標文件燒錄至目標DSP芯片內置FLASH中。產品上電后自動將FLASH 中軟件加載至片內隨機存儲器(random access memory,RAM)中運行,完成產品的DSP 軟件升級功能。上述方法保證了在筒彈測試條件下,不拆卸導彈系統內各個產品即可達到對系統內某個節點產品的軟件更新,提升了導彈產品調試效率及產品維護性,并滿足外場試驗情況下的調試需求。

1 軟件升級方法

TI公司TMSF28335為一款浮點DSP[1-3],與TI公司6000系列的DSP不相同之處在于6000系列DSP的加載需要外置FLASH 芯片與DSP 總線連接[4-5],而該款28 系列的DSP 芯片內置了一片256 kB×16 位的嵌入式FLASH存儲器。使用該DSP無需在硬件外圍再增加FLASH 芯片便可完成存儲及加載程序功能[6-7]。在DSP 的連接命令文件(.CMD 文件)中對FLASH 芯片按地址進行分區,將其劃分為A 扇區、B 扇區、C 扇區、D 扇區、E 扇區、F 扇區、G 扇區、H 扇區共8 個扇區[8-9]。每個扇區的起始地址不同,A 扇區從起始地址開始存放DSP 默認的系統軟件代碼;B 扇區至G 扇區按扇區地址順序存放將要升級的產品工作軟件代碼,即存放將要升級至節點產品中的目標軟件。升級前該扇區地址中默認存放著上一版本的軟件目標代碼,成功執行節點產品升級軟件功能后,該扇區代碼才會被更新。H扇區從起始地址開始存放單個節點產品的升級軟件執行代碼,該代碼可以響應上位機指令并執行該指令。由于A扇區及H扇區分別存放了DSP系統引導程序及升級軟件執行代碼,故設計A 扇區及H 扇區內容在執行FLASH擦除功能時不可被擦除。

TI 公司TMSF28335 DSP 自帶增強型控制器局域網eCAN 總線模塊[10-12],其包含了兩個增強型eCANA 及eCANB 總線模塊,該模塊與CAN 協議版本2.0B 完全兼容,可支持最高達1 Mbps 的數據速率[13-15]。本文所述導彈內節點產品選擇eCANB 模塊進行產品與上位機的軟件升級通信,對節點產品內eCANB 模塊進行驅動能力配置,發送及接收數據傳輸配置為8 kB,設計最大數據量傳輸;eCANB 模塊通信速率配置為500 kbps;eCANB 配置為標準幀通信。eCANB 模塊配置完成后,在DSP 初始化程序部分對eCANB 模塊管腳及驅動配置進行初始化,完成模塊初始化后該模塊可進入與上位機的正常CAN 通信狀態。

產品上電后,默認從H 扇區運行升級軟件執行代碼,等待通過CAN 總線收到的由上位機發送的軟件升級指令。若在5 s等待時間內,單個節點產品沒有收到上位機發送的軟件升級指令,則執行B 扇區存儲的工作軟件代碼,產品進入正常工作模式。

為防止軟件升級出現燒寫錯誤或者版本錯誤,各單機軟件在線升級需要具備軟件和硬件兩個層次的保護功能。產品在硬件上具有FLASH 燒結保護物理信號,相關地址線最終從筒彈對外接口引出,除軟件升級外,該信號處于不允許燒寫狀態。軟件升級需在CAN 總線上按照規定的燒結ID 號才可燒結,燒結ID號不同于產品通信ID 號,而是專門規定的ID 號,僅用于軟件升級。針對軟件版本控制,可通過上位機軟件在軟件升級前后分別讀取當前產品的軟件版本號,從而保證軟件版本正確。

在5 s等待時間內,單個節點產品收到了上位機軟件發送的軟件升級指令,該節點產品進入升級模式。導彈艙體系統內可能存在多個CAN 總線節點產品,上位機會將軟件升級指令發送至CAN 總線上。處于CAN 總線網絡中的單個節點產品在收到軟件升級指令后,需要根據指令攜帶的CAN_ID 身份號判斷與本機CAN_ID 身份號是否匹配,匹配則說明是本節點的軟件升級指令,按照指令內容執行代碼完成升級功能;不匹配則將該信息進行過濾,在總線上處于靜默狀態。單節點產品軟件升級流程如圖1所示。

圖1 單節點產品軟件升級流程Fig.1 Flow chart of software upgrade of single-node product

如圖2 為導彈系統軟件升級模型。在導彈中有n個節點產品,節點1 的CAN_ID 身份號為1,后續節點的節點號依次遞增,節點n的CAN_ID身份號為n。上位機軟件與導彈艙體之間通過CAN總線電纜連接,導彈上電后,上位機軟件處于CAN總線網絡中。上位機在導彈上電5 s內將軟件升級指令發送至CAN總線網絡,導彈上的n個節點產品收到該指令后,判斷上位機指令中的CAN_ID身份號是否與本地存儲的CAN_ID十進制數3 相匹配。經過n個節點產品的判斷,節點3接收CAN_ID 號為十進制數3,與上位機身份相匹配。圖2中顏色高亮的節點3為當前升級節點產品。

圖2 導彈軟件升級模型Fig.2 Model of missile software upgrade

2 上位機軟件設計

為了完成彈上產品的軟件升級,需設計與產品配套的上位機軟件。上位機軟件可在便攜式電腦上運行,通過CAN盒與產品實現CAN總線通信,便于廠房或外場試驗使用。

上位機軟件可對導彈艙體內處于CAN 總線網絡上的每個節點產品實現軟件升級任務。在發送軟件升級指令前,需要先對上位機軟件端的CAN 節點進行與節點產品相同的參數設置,設置為標準幀,通信速率為500 kbps。

向總線上每一個節點產品發送指令時,CAN總線數據幀中攜帶CAN_ID 身份號。當試驗需要實現第一個節點產品功能時,在上位機端界面CAN_ID 控件輸入十進制數1;實現第二個節點產品軟件升級功能時,在上位機界面CAN_ID 控件輸入十進制數2;依次類推,可在上位機界面CAN_ID 控件輸入十進制數n。由于在產品中已經提前約定好了第1 個產品的CAN_ID身份號為1,第2個產品的CAN_ID身份號為2,第3 個產品的CAN_ID 身份號為3,第n個產品的CAN_ID 身份號為n,因此在上位機軟件向總線發送指令后,總線上節點產品可以按照協議約定好的CAN_ID 身份號進行匹配,從而實現導彈艙體內各個產品的軟件升級功能。

運行上位機軟件,選擇需要燒寫的目標文件。由于CCS編譯器編譯后產生的目標文件的組織形式是一種對象文件格式,不能直接用于FlASH燒寫,因此上位機軟件首先需要對編譯完成的目標文件進行格式轉換和信息提取。這就需要將其轉換成含有塊地址、塊容量和塊內容等信息的.hex文件,并對每一塊的信息進行提取,對提取的內容按照一定的協議增加幀頭位及校驗位后打包組幀,通過CAN總線完成與產品之間的數據傳輸。

上位機軟件界面如圖3所示。通過控件選擇操作實現對產品內置FLASH 的軟件擦除功能,將產品FLASH 按地址劃分為8 個扇區。由于產品A 扇區及H 扇區內容在執行FLASH 擦除功能時不可被擦除,上位機界面設計可以針對其余6個扇區進行選擇性擦除。對FLASH_B 至FLASH_G 共六個扇區進行擦除,擦除完畢后會顯示完畢結果。所有扇區擦除完成后,點擊開始燒寫按鈕,則上位機將需要升級的產品工作軟件代碼通過CAN 總線發送至產品端,同時在界面的TCount 窗口顯示發送數據包數,在RCount 窗口顯示產品接收到的數據包數,產品端對代碼內容按照約定的協議進行幀數據解析及校驗。校驗結果正確后,按照塊容量信息進行有效數據提取,并燒寫至FLASHB 開始的地址中,完成后界面顯示燒寫完畢。對上位機界面執行控件進行操作,DSP 將FLASH_B扇區存儲的代碼搬移至RAM 中,并跳轉至c_int00 執行,執行main函數完成產品升級功能。

圖3 上位機FLASH擦除及升級界面Fig.3 The host computer FLASH erase and upgrade interface

3 試驗驗證

按照本文的軟件升級方法對導彈艙體內產品進行了軟件升級試驗,實現了通過上位機軟件與目標產品間的CAN 總線通信。對目標產品FLASH 扇區進行擦除,并將產品工作軟件燒寫至DSP 芯片內的FLASH 中,點擊執行代碼完成產品的CAN 總線軟件升級功能。通過上位機界面設置不同的身份號,與艙體內產品匹配,實現了艙體內多個目標產品的軟件升級功能。通過本次試驗測試,驗證了對于艙體內單個目標產品進行軟件升級工作的平均花費時間約為7 min。而采用傳統JTAG 升級方法對艙體內產品進行升級,實驗階段導彈拆除艙體的平均時間約為30 min。若為較復雜的導彈體系結構,則拆除時間更久,使得升級單個產品軟件的時間大大增加,從而導致人工成本較高,工作效率低。軟件升級時間由30 min 減少至7 min,生產效率提高4 倍以上,大大提高了軟件升級效率。

將本文設計的CAN 總線軟件升級方法與傳統JTAG 升級方法進行比對,如表1 所示,從燒寫時間、是否支持多節點燒寫以及系統級便捷性方面進行了比較。傳統JTAG軟件升級方法在筒彈全彈系統級條件下無法支持多節點產品的軟件升級。對于某個節點產品的升級,使用傳統JTAG 升級方法需要對導彈系統筒彈結構進行拆卸,拿出單節點產品才可進行。而本文所述的CAN 總線升級方法不需要對產品進行拆卸,只需在上位機界面設置節點身份號即可完成各個節點產品的軟件升級,從而極大地提升了導彈產品的調試效率及產品維護性,并滿足了外場試驗情況下的調試需求。

表1 本文方法與傳統升級方法比對Tab.1 Comparison between the method in this paper and the traditional upgrade method

4 結束語

本文提出一種CAN 總線通信軟件升級方法,實現了導彈艙體內節點產品在不開蓋拆卸的情況下即可通過CAN 總線完成產品軟件升級的功能,提高了系統內單節點產品調試的便捷性及工作效率。本文方法已在某項目中得到應用,在導彈系統級多節點工程產品升級方面優于傳統JTAG 軟件升級方法,具有較強的實用價值。

猜你喜歡
機軟件扇區上位
分階段調整增加扇區通行能力策略
特斯拉 風云之老阿姨上位
U盤故障排除經驗談
“三扶”齊上位 決戰必打贏
基于ZigBee和VC上位機的教室智能監測管理系統
基于貝葉斯估計的短時空域扇區交通流量預測
道岔監測系統上位機軟件設計
基于正交試驗法的北斗用戶機軟件測試用例設計
重建分區表與FAT32_DBR研究與實現
PCI-e高速數據采集卡的驅動與上位機軟件設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合