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