O 引 言
隨著現(xiàn)代通信業(yè)的不斷發(fā)展,要求信號(hào)的頻率測量范圍也越來越寬,部分領(lǐng)域已達(dá)到110GHz。利用超外差法通過變頻形式把信號(hào)變頻到較低的中頻上,以相對(duì)較低的成本實(shí)現(xiàn)llOGHz的頻率測量范圍,使得超外差式掃頻接收機(jī)得到了廣泛的應(yīng)用。在超外差式掃頻接收機(jī)中,掃描控制器的作用是控制協(xié)調(diào)各硬件單元,使得接收機(jī)內(nèi)各部分同步于快速變化的掃描本振。掃描控制器的控制精度越高、控制速度越快,接收機(jī)的掃頻準(zhǔn)確度也就越高。目前,市場上有相當(dāng)多的超外差式掃頻接收機(jī)采用模擬的掃描控制方式,利用掃描斜波電壓同步各掃描硬件單元,這種控制方式精度差,并且要求主控CPU實(shí)時(shí)干預(yù)掃描過程,使得接收機(jī)的掃描速度很慢。針對(duì)這些問題,本文提供了一種數(shù)字掃描控制器設(shè)計(jì)新方法。采用該方法,我單位在2005年成功開發(fā)了一種新型微波毫米波接收機(jī),其掃描控制精度、掃描速度等指標(biāo)較以前的接收機(jī)產(chǎn)品有了很大的提高。
1 掃描控制變量
超外差式掃頻接收機(jī)在掃描過程中一般需要控制的變量有:YIG振蕩器頻率(或VCO頻率)、YIG濾波器中心頻率(或帶通濾波器頻率)、與測試頻率相關(guān)的功率補(bǔ)償數(shù)據(jù)(如平坦度補(bǔ)償數(shù)據(jù))等。
理想的YIG器件調(diào)諧曲線是一條直線(調(diào)諧曲線是根據(jù)諧振頻率變化與線包電流變化繪制的曲線),但是,由于受磁性材料磁特性的影響,實(shí)際的調(diào)諧曲線是非線性的。與此類似,由于接收機(jī)內(nèi)各部件(如混頻器、濾波器等)幅度一頻率響應(yīng)曲線是非線性的,造成整機(jī)幅頻曲線也是非線性的。
在工程上,通常采用多段直線逼近的方法對(duì)上述曲線進(jìn)行線性化處理,就是將各控制量曲
線進(jìn)行分段,在段內(nèi)認(rèn)為控制量曲線是一條直線。只要各線段分段點(diǎn)位置選取合適,可以保證整機(jī)指標(biāo)滿足設(shè)計(jì)要求。
通過計(jì)算各段控制量的起始值、步進(jìn)值與步進(jìn)個(gè)數(shù)(終止值減去起始值再除以步進(jìn)量)就可以表征本段的控制量曲線。超外差式掃頻接收機(jī)包含多種控制變量,因此對(duì)每種控制變量都需要計(jì)算其控制量的起始值、步進(jìn)值與步進(jìn)個(gè)數(shù)。又由于各控制量曲線不盡相同,所用逼近曲線的直線段數(shù)目也就不盡相同。劃分的線段越多,逼近效果越好,控制精度也就越高。因此,在進(jìn)行掃描控制之前,計(jì)算機(jī)主控的程序應(yīng)該首先確定各控制量的分段數(shù)目和各段內(nèi)的起始值、步進(jìn)值、步進(jìn)個(gè)數(shù),這也就是送給掃描控制器的輸入?yún)?shù)。另外,為了提高控制速度,避免在掃描過程中CPU干預(yù)掃描進(jìn)程,在各控制量換段時(shí)要求設(shè)計(jì)的掃描控制器能夠根據(jù)控制進(jìn)度主動(dòng)地讀取下一段的換段信息。下面,我們詳細(xì)介紹一下數(shù)字掃描控制器內(nèi)各單元的組成及實(shí)現(xiàn)。
2 組成框圖及控制時(shí)序
如圖1所示,掃描控制器包括:地址譯碼/數(shù)據(jù)緩存單元、RAM存儲(chǔ)單元、運(yùn)算單元、觸發(fā)單元、中斷處理單元、步進(jìn)脈沖發(fā)生單元和D/A輸出單元。
掃描控制基本流程如下:
1)程序首先計(jì)算各控制量的分段數(shù)目及段內(nèi)各控制量的起始值、步進(jìn)值、步進(jìn)個(gè)數(shù)。
2)通過系統(tǒng)總線,程序?qū)⑸鲜鲇?jì)算好的數(shù)據(jù)依次送入掃描控制器內(nèi)的RAM中保存。
3)程序控制觸發(fā)單元產(chǎn)生全局中斷信號(hào),由中斷處理單元通知運(yùn)算單元讀取各控制量首段的初始值。
4)程序控制觸發(fā)單元產(chǎn)生使能信號(hào),控制步進(jìn)脈沖發(fā)生單元產(chǎn)生計(jì)數(shù)脈沖。這時(shí)運(yùn)算單元開始進(jìn)行累加/減計(jì)算并且計(jì)數(shù)器記錄已產(chǎn)生的脈沖個(gè)數(shù)。累加/減運(yùn)算器的輸出值通過D/A變換器轉(zhuǎn)換為電壓值控制相關(guān)硬件電路。
5)當(dāng)運(yùn)算單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值達(dá)到本段設(shè)定的步進(jìn)個(gè)數(shù)時(shí),運(yùn)算單元產(chǎn)生中斷信號(hào)通過中斷處理單元進(jìn)行中斷識(shí)別并通知運(yùn)算單元內(nèi)已產(chǎn)生中斷的模塊自動(dòng)從RAM內(nèi)讀取下一段的初始值。運(yùn)算單元內(nèi)四個(gè)模塊產(chǎn)生中斷的中斷級(jí)別各不相同,如果多個(gè)中斷同時(shí)產(chǎn)生,那么中斷處理單元會(huì)對(duì)各中斷進(jìn)行緩存、排序并且首先處理中斷級(jí)別高的中斷。
6)當(dāng)下一個(gè)計(jì)數(shù)脈沖到來時(shí),運(yùn)算單元內(nèi)產(chǎn)生中斷的模塊又會(huì)重新開始累加/減運(yùn)算并計(jì)數(shù),重復(fù)4、5步。
7)觸發(fā)單元記錄掃描時(shí)間。當(dāng)掃描時(shí)間達(dá)到預(yù)設(shè)值時(shí),觸發(fā)單元控制使能信號(hào)為低電平,各寄存器復(fù)位,掃描過程結(jié)束。
3 模塊內(nèi)部實(shí)現(xiàn)
1)地址譯碼/數(shù)據(jù)緩存單元地址譯碼/數(shù)據(jù)緩存單元連接外部總線,通過譯碼接收屬于本掃描控制器的數(shù)據(jù)和控制字,包括:復(fù)位控制字、掃描使能控制字、觸發(fā)單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值(用于計(jì)算掃描時(shí)間)、步進(jìn)脈沖發(fā)生單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值(用于產(chǎn)生步進(jìn)脈沖)以及RAM內(nèi)需存儲(chǔ)的控制量DAC值。
2)RAM存儲(chǔ)單元
存儲(chǔ)控制量DAC值。如果接收機(jī)內(nèi)地址資源足夠豐富,軟件可以通過地址譯碼/數(shù)據(jù)緩存單元直接訪問RAM。如果接收機(jī)內(nèi)地址資源有限,可以將整個(gè)RAM劃分為若干個(gè)區(qū)域(段地址),每個(gè)區(qū)域?qū)?yīng)于一種控制量。每種控制量的各分段數(shù)據(jù)依次排列,可通過段內(nèi)偏移地址訪問。
3)運(yùn)算單元
運(yùn)算單元包括RAM數(shù)據(jù)回讀模塊、計(jì)數(shù)器及累加/減運(yùn)算器模塊。RAM數(shù)據(jù)回讀模塊的回讀方式取決與RAM內(nèi)數(shù)據(jù)的存儲(chǔ)格式;計(jì)數(shù)器通過將讀取的步進(jìn)個(gè)數(shù)值與當(dāng)前的計(jì)數(shù)值進(jìn)行比較決定是否產(chǎn)生中斷。在實(shí)際應(yīng)用中,累加/減運(yùn)算器位數(shù)有限,而計(jì)算的步進(jìn)DAC值位數(shù)有可能大大超過運(yùn)算器位數(shù),這就要求設(shè)計(jì)人員必須認(rèn)真選取步進(jìn)DAC的有效長度,對(duì)DAC值進(jìn)行適當(dāng)截取,使控制誤差能夠在可接受的范圍內(nèi)。累加/減運(yùn)算器模塊在步進(jìn)脈沖的觸發(fā)下,對(duì)初始值進(jìn)行累加/減運(yùn)算,其DAC值輸出位數(shù)等于選甩的DAC器件位數(shù)。
4)D/A輸出單元
D/A輸出單元負(fù)責(zé)將已累加/減數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào)輸出。D/A輸出單元時(shí)序同步于控制脈沖。如果掃描控制器硬件資源不多,可以給每一個(gè)控制量單獨(dú)配置一個(gè)D/A轉(zhuǎn)換器;否則,可以將這些控制量先緩存起來再通過一個(gè)D/A轉(zhuǎn)換器輸出以減少硬件成本。
5)觸發(fā)單元
觸發(fā)單元接收到掃描使能控制字后控制步進(jìn)脈沖發(fā)生單元使能端有效,步進(jìn)脈沖發(fā)生單元開始工作,進(jìn)而使得整個(gè)掃描控制器運(yùn)轉(zhuǎn)起來。當(dāng)觸發(fā)單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值與接收到的用于計(jì)算掃描時(shí)間的計(jì)數(shù)量相同時(shí)表明掃描過程已經(jīng)完成,這時(shí)觸發(fā)單元控制步進(jìn)脈沖發(fā)生單元使能端失效,步進(jìn)脈沖發(fā)生單元停止工作,掃描過程結(jié)束。另外,在掃描開始前觸發(fā)單元接收控制字產(chǎn)生全局中斷信號(hào),通過中斷處理單元通知運(yùn)算單元調(diào)用各硬件控制量的初始DAC值。
6)中斷處理單元
中斷處理單元根據(jù)預(yù)先設(shè)定的中斷優(yōu)先級(jí)別決定控制運(yùn)算單元內(nèi)各模塊的先后順序。中斷處理單元由中斷寄存器、中斷識(shí)別模塊、復(fù)位處理模塊三部分組成。組成框圖見圖2所示。
掃描控制基本流程如下:
1)程序首先計(jì)算各控制量的分段數(shù)目及段內(nèi)各控制量的起始值、步進(jìn)值、步進(jìn)個(gè)數(shù)。
2)通過系統(tǒng)總線,程序?qū)⑸鲜鲇?jì)算好的數(shù)據(jù)依次送入掃描控制器內(nèi)的RAM中保存。
3)程序控制觸發(fā)單元產(chǎn)生全局中斷信號(hào),由中斷處理單元通知運(yùn)算單元讀取各控制量首段的初始值。
4)程序控制觸發(fā)單元產(chǎn)生使能信號(hào),控制步進(jìn)脈沖發(fā)生單元產(chǎn)生計(jì)數(shù)脈沖。這時(shí)運(yùn)算單元開始進(jìn)行累加/減計(jì)算并且計(jì)數(shù)器記錄已產(chǎn)生的脈沖個(gè)數(shù)。累加/減運(yùn)算器的輸出值通過D/A變換器轉(zhuǎn)換為電壓值控制相關(guān)硬件電路。
5)當(dāng)運(yùn)算單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值達(dá)到本段設(shè)定的步進(jìn)個(gè)數(shù)時(shí),運(yùn)算單元產(chǎn)生中斷信號(hào)通過中斷處理單元進(jìn)行中斷識(shí)別并通知運(yùn)算單元內(nèi)已產(chǎn)生中斷的模塊自動(dòng)從RAM內(nèi)讀取下一段的初始值。運(yùn)算單元內(nèi)四個(gè)模塊產(chǎn)生中斷的中斷級(jí)別各不相同,如果多個(gè)中斷同時(shí)產(chǎn)生,那么中斷處理單元會(huì)對(duì)各中斷進(jìn)行緩存、排序并且首先處理中斷級(jí)別高的中斷。
6)當(dāng)下一個(gè)計(jì)數(shù)脈沖到來時(shí),運(yùn)算單元內(nèi)產(chǎn)生中斷的模塊又會(huì)重新開始累加/減運(yùn)算并計(jì)數(shù),重復(fù)4、5步。
7)觸發(fā)單元記錄掃描時(shí)間。當(dāng)掃描時(shí)間達(dá)到預(yù)設(shè)值時(shí),觸發(fā)單元控制使能信號(hào)為低電平,各寄存器復(fù)位,掃描過程結(jié)束。
3 模塊內(nèi)部實(shí)現(xiàn)
1)地址譯碼/數(shù)據(jù)緩存單元地址譯碼/數(shù)據(jù)緩存單元連接外部總線,通過譯碼接收屬于本掃描控制器的數(shù)據(jù)和控制字,包括:復(fù)位控制字、掃描使能控制字、觸發(fā)單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值(用于計(jì)算掃描時(shí)間)、步進(jìn)脈沖發(fā)生單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值(用于產(chǎn)生步進(jìn)脈沖)以及RAM內(nèi)需存儲(chǔ)的控制量DAC值。
2)RAM存儲(chǔ)單元
存儲(chǔ)控制量DAC值。如果接收機(jī)內(nèi)地址資源足夠豐富,軟件可以通過地址譯碼/數(shù)據(jù)緩存單元直接訪問RAM。如果接收機(jī)內(nèi)地址資源有限,可以將整個(gè)RAM劃分為若干個(gè)區(qū)域(段地址),每個(gè)區(qū)域?qū)?yīng)于一種控制量。每種控制量的各分段數(shù)據(jù)依次排列,可通過段內(nèi)偏移地址訪問。
3)運(yùn)算單元
運(yùn)算單元包括RAM數(shù)據(jù)回讀模塊、計(jì)數(shù)器及累加/減運(yùn)算器模塊。RAM數(shù)據(jù)回讀模塊的回讀方式取決與RAM內(nèi)數(shù)據(jù)的存儲(chǔ)格式;計(jì)數(shù)器通過將讀取的步進(jìn)個(gè)數(shù)值與當(dāng)前的計(jì)數(shù)值進(jìn)行比較決定是否產(chǎn)生中斷。在實(shí)際應(yīng)用中,累加/減運(yùn)算器位數(shù)有限,而計(jì)算的步進(jìn)DAC值位數(shù)有可能大大超過運(yùn)算器位數(shù),這就要求設(shè)計(jì)人員必須認(rèn)真選取步進(jìn)DAC的有效長度,對(duì)DAC值進(jìn)行適當(dāng)截取,使控制誤差能夠在可接受的范圍內(nèi)。累加/減運(yùn)算器模塊在步進(jìn)脈沖的觸發(fā)下,對(duì)初始值進(jìn)行累加/減運(yùn)算,其DAC值輸出位數(shù)等于選甩的DAC器件位數(shù)。
4)D/A輸出單元
D/A輸出單元負(fù)責(zé)將已累加/減數(shù)據(jù)轉(zhuǎn)換為模擬信號(hào)輸出。D/A輸出單元時(shí)序同步于控制脈沖。如果掃描控制器硬件資源不多,可以給每一個(gè)控制量單獨(dú)配置一個(gè)D/A轉(zhuǎn)換器;否則,可以將這些控制量先緩存起來再通過一個(gè)D/A轉(zhuǎn)換器輸出以減少硬件成本。
5)觸發(fā)單元
觸發(fā)單元接收到掃描使能控制字后控制步進(jìn)脈沖發(fā)生單元使能端有效,步進(jìn)脈沖發(fā)生單元開始工作,進(jìn)而使得整個(gè)掃描控制器運(yùn)轉(zhuǎn)起來。當(dāng)觸發(fā)單元內(nèi)計(jì)數(shù)器的計(jì)數(shù)值與接收到的用于計(jì)算掃描時(shí)間的計(jì)數(shù)量相同時(shí)表明掃描過程已經(jīng)完成,這時(shí)觸發(fā)單元控制步進(jìn)脈沖發(fā)生單元使能端失效,步進(jìn)脈沖發(fā)生單元停止工作,掃描過程結(jié)束。另外,在掃描開始前觸發(fā)單元接收控制字產(chǎn)生全局中斷信號(hào),通過中斷處理單元通知運(yùn)算單元調(diào)用各硬件控制量的初始DAC值。
6)中斷處理單元
中斷處理單元根據(jù)預(yù)先設(shè)定的中斷優(yōu)先級(jí)別決定控制運(yùn)算單元內(nèi)各模塊的先后順序。中斷處理單元由中斷寄存器、中斷識(shí)別模塊、復(fù)位處理模塊三部分組成。組成框圖見圖2所示。
中斷處理過程如下:首先,四種中斷分別緩存入四個(gè)中斷寄存器。中斷寄存器使用FIFO存儲(chǔ)單元可以儲(chǔ)存多個(gè)中斷,利用FIFO存儲(chǔ)單元內(nèi)部自身的標(biāo)志位作為邏輯判斷依據(jù)可以簡化我們的設(shè)計(jì)。其次,中斷識(shí)別模塊檢測各FIFO存儲(chǔ)單元的空標(biāo)志位。如果有任意一個(gè)FIFO存儲(chǔ)單元的空標(biāo)志位為O,則說明有中斷產(chǎn)生,那么中斷識(shí)別模塊將按中斷優(yōu)先級(jí)別排序,并產(chǎn)生一個(gè)脈沖通知與最高中斷級(jí)別相對(duì)應(yīng)的運(yùn)算單元內(nèi)的數(shù)據(jù)調(diào)用模塊從RAM中讀取下一段控制量的初始值。再次,數(shù)據(jù)調(diào)用模塊完成讀取任務(wù)后返回給復(fù)位處理模塊一個(gè)處理程序完成標(biāo)志。復(fù)位處理模塊在收到處理程序完成標(biāo)志后根據(jù)輸出中斷類別產(chǎn)生讀脈沖至空標(biāo)志位為O且中斷優(yōu)先級(jí)別最高的中斷寄存器中。此時(shí),中斷寄存器的空標(biāo)志位有可能發(fā)生變化。最后,中斷識(shí)別模塊再次檢測所有的空標(biāo)志是否都為1,如果不是,中斷處理單元繼續(xù)上述過程直到所有的空標(biāo)志都為1。中斷處理過程結(jié)束。
7)步進(jìn)脈沖發(fā)生單元
步進(jìn)脈沖發(fā)生單元內(nèi)包含多個(gè)計(jì)數(shù)器,計(jì)數(shù)使能由觸發(fā)單元控制,計(jì)數(shù)器的模從地址譯碼/數(shù)據(jù)緩存單元讀取。每隔一定時(shí)間,步進(jìn)脈沖發(fā)生單元產(chǎn)生計(jì)數(shù)脈沖作為累加/減器的時(shí)鐘并由運(yùn)算單元內(nèi)計(jì)數(shù)器計(jì)數(shù)。
4 設(shè)計(jì)實(shí)例
以某型號(hào)微波毫米波接收機(jī)為例。在此接收機(jī)中,系統(tǒng)總線設(shè)計(jì)為串行總線,需要控制的變量有YIG振蕩器頻率、YIG濾波器中心頻率、平坦度補(bǔ)償數(shù)據(jù)和預(yù)選器帶寬控制電壓。選用Altera公司的EplkSOQC208—3芯片作為數(shù)字掃描控制器芯片,IDT71V016SA20Y作為RAM存儲(chǔ)芯片,AD7538KR、DAC8412作為DAC轉(zhuǎn)換芯片。
經(jīng)測量,YIG振蕩器頻率開環(huán)控制精度達(dá)到5MHz(接收機(jī)鎖相環(huán)的鎖頻范圍可達(dá)80MHz),YIG濾波器中心頻率控制精度達(dá)到3MHz(YIG濾波器3dB帶寬最小處40MHz),平坦度補(bǔ)償值誤差小于O.2dB,預(yù)選器帶寬誤差小于帶寬2%。數(shù)字掃描控制器選用60MHz時(shí)鐘作為外部時(shí)鐘,在最忙碌情況下(四種中斷同時(shí)到來),完成四種中斷處理總時(shí)間小于5μs。
通過仿真和測試數(shù)字掃描控制器僅使用了FPGA內(nèi)約70%的資源,可以為今后的模塊擴(kuò)展留有余地。
5 結(jié)束語
對(duì)于掃描控制器自身硬件來說,我們可以通過將控制量曲線劃分更多段、更加逼近真實(shí)曲線,達(dá)到提高控制精度的目的;通過選用高檔的FPGA芯片并提高系統(tǒng)工作時(shí)鐘,達(dá)到提高控制速度的目的。但在實(shí)際使用過程中,我們還必須綜合考慮硬件自身的性能(如YIG器件磁滯效應(yīng)、機(jī)械開關(guān)切換時(shí)間、中頻濾波器響應(yīng)時(shí)間等)、軟件設(shè)計(jì)復(fù)雜度、要求的性能指標(biāo)等多組因素對(duì)掃描控制精度、速度的影響,合理選擇劃分段數(shù)及工作時(shí)鐘,最大限度挖掘出接收機(jī)潛能