許廷金,李 杰,胡陳君,高 寧
(1.中北大學 電子測試技術重點實驗室,山西 太原 030051;2.蘇州中盛納米科技有限公司,江蘇 蘇州 215123)
為了適應未來信息化、制導化的作戰特點,實現低成本常規彈藥打擊精度高的作戰指標,新型彈載導航系統不僅需要具備強大的抗干擾能力和良好的環境適應性,還要具備體積小、精度高、容量大等優點[1].導航解算平臺的解算精度對彈體的飛行軌跡有著至關重要的作用,而外場試驗環境千變萬化,諸多參數(如:射向、發射地經緯高等)在發射前短時間內才能確定,若在發射前修改應用程序,修改后的程序未經長期測試,可能會產生隱患,降低系統可靠性.因此進行現場參數裝訂至關重要.此外由于C6000系列DSP內部沒有自帶Flash,所以用戶應用程序需要存儲在外部Flash中[2],而NorFlash寫入和擦除速度較慢且容量小,不滿足新型彈載導航系統的大容量應用需求.
基于以上分析,本文選用NandFlash(K9K8G08U0M)作為系統的存儲芯片.NandFlash具有快速訪問、低功耗、抗震性、體積小、重量輕等特性,并且穩定性良好,即使在系統電源關閉的情況下仍可保存數據[3],能夠滿足彈載導航解算平臺的應用需求.
彈載導航系統以DSP為解算主控芯片,DSP上電復位后,根據預設的啟動模式,DSP控制NandFlash將應用圖像腳本自動加載到片內SRAM中,程序在片內SRAM中高速運行[4],同時讀取NandFlash中預設位置提前裝載的參數信息發送到上位機實時顯示,對裝訂信息進行校對,最后DSP接收FPGA打包的IMU和GPS數據進行實時導航解算,并將解算數據存儲到NandFlash中.詳細結構如圖1 所示.


圖2 DSP與NandFlash硬件連接圖Fig.2 DSP and NandFlash hardware connection diagram
BOOT過程,就是處理器的自動加載啟動過程,就是處理器在上電或復位后,根據BOOT引腳設定的不同的加載模式,將可執行代碼(AIS)自動加載到內存中,并正確運行程序的過程[6-7].TMS320C6748內部集成了自動加載器(Rom Boot Loader)來實現Boot過程,RBL存儲在0x00700000~0x007FFFFF的1 024 KB的L2ROM空間內,該空間只能用來開機引導,不可存放應用代碼,其啟動模式配置如表1 所示.用戶應用程序能被DSP正確引導的前提是將其轉化成AIS腳本[8-9],DSP內部ROM區固化程序通過識別AIS格式指令將用戶應用程序加載到L2RAM(0x11800000-0x1183FFFF)中,并從指定初始地址(0x11800000)開始運行.

表1 TMS320C6748啟動模式Tab.1 TMS320C6748 boot mode
TMS320C6748上電復位后,首先確定啟動模式是否為NandFlash,即Boot[7:0]=0000 1110,隨后查詢AIS文件中的魔術子指令(0x41504954)、初始化配置指令(0x5853590D)、段加載指令(0x58535901)、Jump&Close指令(0x58535906)、Jump&Close指令(0X58535906)后緊跟應用程序起始地址,其代表AIS文件結束,隨后Bootloader將控制權轉交到應用程序并在起始地址開始執行.
NandFlash被劃分為3部分,如圖3 所示,能被DSP識別的應用程序生成的AIS腳本文件存儲在Block1中,隨時可能需要修改的參數裝載到Nandflash的參數裝訂區,數據量較大的導航解算數據存儲在后面剩余的非壞塊中.


圖3 NandFlash分區示意圖Fig.3 NandFlash partition diagram

圖4 TMS320C6748對K9K8G08U0M的讀時序Fig.4 TMS320C6748 read timing for K9K8G08U0M

圖5 TMS320C6748對K9K8G08U0M的寫時序Fig.5 TMS320C6748 write timing for K9K8G08U0M
系統上電啟動后,DSP啟動復位,在CCS5.5運行NandFlash燒寫程序,首先執行塊擦除命令(0x60+0xD0)擦除整片NandFlash,然后將用戶應用程序生成的AIS文件寫入NandFlash AIS存儲區,該程序此后不做修改.外場試驗參數確定后,進行外場參數裝訂,執行數據存儲區擦除命令,即首先寫入數據存儲區首地址,然后執行擦除命令,其具體工作流程如圖6 所示.

圖6 AIS燒寫與參數裝訂流程圖Fig.6 AIS programming and parameter binding flow chart
系統外場試驗參數裝訂完畢后,通過系統預留串口將讀取到的參數發送到上位機進行校對,若系統收到參數錯誤指令,則需重新裝訂,若系統收到參數正確指令,則系統進行后續導航解算,其具體工作流程如圖7 所示.

圖7 系統總體工作流程圖Fig.7 System overall work flow chart
為了驗證設計方案的可行性,將系統固定在裝有高精度定位定姿系統的試驗車上進行地面驗證試驗.首先將中北大學位置信息和重力加速度等信息裝載到NandFlash參數裝訂區,擦除數據存儲區,系統下電.系統再次上電,DSP正常啟動后通過串口(UART2)將讀取的參數發送到上位機解碼,顯示結果如圖8所示,讀取參數值與預設參數一致,說明DSP能正確進行程序引導,同時也說明參數裝訂正確,點擊參數裝訂正確指令,系統收到應答指令后開始周期導航解算.

圖8 參數裝訂上位機顯示界面Fig.8 Parameter binding upper computer display interface
FPGA將IMU,GPS數據編幀后通過UPP傳輸到DSP進行解算,此后在DSP中與導航解算數據一起編幀存儲到NandFlash數據存儲區.試驗結束后,讀取導航數據存儲區數據,進行數據解析得到導航解算姿態角、速度,圖9、圖10 分別為系統解算得到的姿態角、速度信息與高精度母慣導輸出的對比圖.

圖9 姿態角對比圖Fig.9 Attitude angle comparison chart
由圖9、圖10 可知,解算數據能正常存儲.說明基于DSP的NandFlash程序引導、參數裝訂、數據存儲功能正常.

圖10 速度對比圖Fig.10 Speed comparison chart
本文針對外場試驗環境的復雜性以及彈載導航解算平臺的小體積與大容量應用需求,設計了一種基于DSP控制NandFlash的多功能存儲方案,該方案利用一塊NandFlash同時完成了程序引導、外場參數裝訂、數據存儲等功能,減小了系統的體積,提高了NandFlash的使用效率,增強了系統可靠性和便利性.