● VHDL程序設計
系統的軟件設計包括對FPGA的VHDL程序編寫和對DSP的匯編程序編寫兩部分。
在FPGA設計中采用VHDL語言設計,不僅大大簡化了設計復雜邏輯電路的難度,而且可以充分發揮FPGA內部資源的優勢。在Quartus II5.0集成開發環境下,對整個FPGA運算模塊采用了自頂向下的設計方式。首先,用Block圖的方式按照系統中所用芯片劃分,設計了邏輯總體,把所有FPGA的資源合理分配到相應的物理引腳,規劃好頂層邏輯。接著,在每個Block下編寫VHDL程序,實現具體的控制邏輯。采用模塊化、規則化和局部化的技術,既提高了設計效率,又減少設計的復雜性。
對于EP2S30F484,使用一個統一的全局時鐘,并采用同步時序的設計方法。FPGA內部的所有模塊都使用一個全局時鐘,統一復位。在具體功能模塊設計的時候,可以調用一些Altera公司的內部核和LPM功能塊。這些模塊具有結構獨立的設計輸入、高效的設計映射和工具獨立的設計輸入,不僅節省大量的FPGA資源,提高了設計效率,而且使系統性能得到提高。
系統軟件流程圖
● DSP程序設計
ADSP-2183有一套完整的軟件與硬件開發系統,包含一個以PC為平臺的硬件仿真器ADSP218xEZIC E 和IDE(集成開發環境)VisualDSP++3.5。ADSP218xEZIC E是基于RS232串口的在線仿真器,它一邊通過串口和PC的IDE通信,下載程序代碼到目標DSP運行,另外一邊通過設計在目標板上的Emulator的14個管腳,觀察和測試DSP的端口、寄存器以及RAM的工作情況,并返回到PC的IDE界面。
● 系統軟件設計
系統軟件主要是由主程序和中斷服務程序兩部分組成,程序設計框圖如圖4所示。主程序首先設置ADSP-2183 內部寄存器,如中斷控制寄存器ICNTL、中斷屏蔽寄存器IMASK、系統控制寄存器,以建立ADSP-2183的工作模式。然后運行DSP自檢程序。通過后,則要初始化UART芯片(TL16C552)、讀取串行EEPROM中預存的參數,然后進入主體循環。DSP的三個外部中斷源產生中斷:場中斷,每20ms產生一次、UART通信中斷,紅外熱像儀及其控制電路產生、控制臺中斷。主要的消像旋運算、圖文混合的任務,方位解算器角度讀取和計算都由場中斷服務程序完成,而且必須在20ms時間內及時完成。UART中斷服務程序由發送和接收任務觸發,當有數據被接收到或要發送,中斷服務程序首先通過讀狀態寄存器確定是發送還是接收,然后跳轉到相應服務程序中執行。其中TL16C552的初始化程序則主要完成異步串行通信協議的設置。系統界面顯示的字符是16x16的矩陣,所以制作了4KB地字庫,可以容納128個中文、數字、字母、特殊符號。
本設計大大提高了觀瞄系統的智能化、自動化水平,更是賦予其全天候作戰能力。外場實驗充分證明從目標的輪廓邊緣來看,進行了8倍插值后,消像旋的效果和預期設計完全符合,鋸齒效應控制得非常不錯,其他各項指標均達到設計要求。還可以進一步把由ADSP2183完成的工作移植到FPGA內部,讓它來完成任務調配、算法實現、控制流程等任務。這樣,將進一步加大應用系統的集成度,也使得整個系統的可靠性和實時性將會有一個更好的提高。