基于PCI總線的塔康視頻信號(hào)產(chǎn)生電路設(shè)計(jì)
3 系統(tǒng)軟件設(shè)計(jì)
3.1 FPGA功能實(shí)現(xiàn)
FPGA開發(fā)采用Altera綜合開發(fā)平臺(tái)Quartus II 6.0,利用VHDL語言開發(fā)了雙口RAM、總線控制、地址譯碼、D/A轉(zhuǎn)換器控制、脈沖序列產(chǎn)生、波道控制和詢問信號(hào)檢測等7個(gè)功能模塊,分別為:1)設(shè)計(jì)雙口RAM,用于實(shí)現(xiàn)PCI9054數(shù)據(jù)和DSP數(shù)據(jù)的交換:2)實(shí)現(xiàn)PCI9054本地總線邏輯控制,例如:對(duì)雙口RAM的讀寫邏輯;3)實(shí)現(xiàn)DSP的地址譯碼邏輯,根據(jù)不同的指令選擇不同的功能單元;4)實(shí)現(xiàn)D/A轉(zhuǎn)換器的邏輯控制;5)產(chǎn)生脈沖序列。根據(jù)需要,可產(chǎn)生基準(zhǔn)脈沖、填充脈沖、應(yīng)答脈沖、隨機(jī)脈沖,組成脈沖序列;6)實(shí)現(xiàn)波道控制和衰減控制;7)實(shí)現(xiàn)對(duì)詢問信號(hào)的檢測等。FPGA內(nèi)部邏輯如圖5所示。本文引用地址:http://m.butianyuan.cn/article/180513.htm
3.2 DSP程序設(shè)計(jì)
DSP片上程序以CCS2.0為開發(fā)平臺(tái),主要包括器件初始化程序、系統(tǒng)初始化程序、包絡(luò)數(shù)據(jù)(由15 Hz和135 Hz正弦信號(hào)組成)產(chǎn)生程序、INTO中斷程序、INTl中斷程序和定時(shí)器中斷程序。其中,器件初始化程序完成片內(nèi)外設(shè)的初始化(如鎖相環(huán)時(shí)鐘發(fā)生器參數(shù)的設(shè)置,定時(shí)器參數(shù)的設(shè)置,可屏蔽中斷的設(shè)置等);系統(tǒng)初始化程序完成整個(gè)系統(tǒng)的初始化(I0地址分配、全局變量的初始化設(shè)置和系統(tǒng)外設(shè)的初始化);包絡(luò)數(shù)據(jù)產(chǎn)生程序主要產(chǎn)生15 Hz正弦數(shù)據(jù)表和135Hz正弦數(shù)據(jù)表兩張函數(shù)表;INT0中斷程序完成接收PC指令:INTl中斷主要接收到詢問信號(hào)后完成應(yīng)答功能;定時(shí)器中斷程序完成查找函數(shù)表并通過計(jì)算產(chǎn)生包絡(luò)數(shù)據(jù),啟動(dòng)D/A轉(zhuǎn)換電路產(chǎn)生包絡(luò)信號(hào),同時(shí)產(chǎn)生脈沖選擇信號(hào),控制FPGA輸出脈沖序列。DSP主程序流程如圖6所示。塔康包絡(luò)信號(hào)波形如圖7所示。
3.3 PCI驅(qū)動(dòng)程序開發(fā)
根據(jù)Windows提供的驅(qū)動(dòng)程序模型,使用VC++6.0和DriverStudio軟件編寫了WDM驅(qū)動(dòng)程序。該驅(qū)動(dòng)程序?qū)CI9054起到內(nèi)存映射和中斷管理的作用。驅(qū)動(dòng)程序安裝后,應(yīng)用程序?qū)CI卡的訪問可通過調(diào)用WindowsAPI的函數(shù)CreateFile()實(shí)現(xiàn)。這樣,對(duì)端口的操作最終表現(xiàn)為對(duì)一個(gè)文件的操作。
4 結(jié)論
針對(duì)系統(tǒng)模塊化的設(shè)計(jì)要求,開發(fā)了基于PCI9054的塔康視頻信號(hào)產(chǎn)生板卡。基于PCI總線的塔康視頻信號(hào)產(chǎn)生電路適用于多種工控機(jī)平臺(tái),通用性強(qiáng),并且滿足設(shè)計(jì)要求,實(shí)際使用效果良好,因此具有良好的應(yīng)用前景。
評(píng)論