楊小青
(山西建筑職業技術學院 計算機工程系, 山西 晉中 030619)
信號發生器用來對火炮膛壓測試儀器的電路模塊校準,以確定其電荷靈敏度的裝置。因此,要求信號發生器能產生精準、穩定的波形。目前,市場上已有精度比較高的電荷校準儀,但其價格高昂,且不方便技術人員在野外條件下用來快速檢定和校準武器裝備測控中的電路系統[1]。
針對上述問題,本文設計了基于直接數字式頻率合成技術,以MSP430單片機為核心的便攜式信號發生器,研究其軟硬件的設計,實現多功能信號的產生,并分析了對儀器所產生誤差,通過檢測驗證了信號發生器的有效性和使用價值。
便攜式多功能信號發生器的主要組成部分:電源管理器、波形生成與控制模塊、按鍵輸入端、DAC轉換器和濾波器。該信號發生器根據技術人員的要求,通過按鍵選擇所需信號的類型、頻率和幅值等參數,經單片機調取內部生成波形程序轉存到flash存儲器中。當波形輸出時,單片機不斷遞推存儲有波形數據的flash,當地址計數器到最高位時,再通過復位后繼續遞推,波形數據通過DAC和低通濾波器不斷產生所需信號,可以選擇信號是否通過高精度電容,來獲得電壓或電荷信號,如圖1所示。

圖1 信號發生器的原理框圖
直接數字式頻率合成技術是采用直接數字合成的方法產生信號,為每種波形分配16 K的存儲空間,數模轉換芯片采用的是16 bit并行輸入數據,設定每個波形在一個周期內的采樣點數為8 192個。將波形數據存儲在flash內存中,用設定的時鐘頻率fosc掃描存儲波形的地址,從波形第一個地址開始,直至這個波形的最后一個地址結束,再重新賦予該波形首地址,數據一次通過DAC輸出連續的周期型號。合成的波形頻率為:fout=fosc/8 192,通過改變地址計數器時鐘頻率,即可得到合成的波形頻率[2]。
發射器設計產生的電壓范圍是-10 V~+10 V,設定0X0000H對應輸出電壓值-10 V,輸入數字0XFFFFH對應輸出電壓+10 V。因此,幅值調節的細度是20/216V,即采樣的精度為0.003%。以正弦波為例,其表達式(1)為:
(1)
式中:Amp表示輸出波形幅值;Base表示輸出波形基線;n表示波形在一個周期內的采樣點。
硬件設備包括:MSP430 FG4619單片機;AD公司生產的AD669為16bit數模轉換芯片;LM7818CT穩壓芯片;按鍵和LCD顯示器;低通濾波器;高精度電容。
該設計電源為鋰電池組,LM7818CT穩壓芯片為內部器件提供穩定的電壓。為確保輸出高精度的信號,在接入穩壓芯片前采用LC濾波;為避免電壓波動給后續電路帶來噪聲,在輸出口并聯上0.1 μF和10 μF的電容;為避免短路而導致電路的損壞,在電源接口的前端連上恢復性保險絲,其最大通過電流為250 mA[3],電源電路如圖2所示。

圖2 電源電路的設計圖
設計中采用雙極性配置實現-10 V~+10 V的電壓輸出,AD669采用16 bit并行數據輸入,通過調節、直到最大輸出電壓幅值與基準電壓DAF1相等。當波形數據從flash中遞推時,通過改變AD669的基準電壓實現波形幅值的改變。DAF0和DAJ0分別與單片機的P6.6和P6.7連接,分別對應單片機內部的12位DAC,實現模擬電壓的輸出,再通過運算放大4倍,即可得到0~10 V的基準電壓源DAF1,實現不同幅值的波形輸出[4]。波形發生電路如圖3所示。

圖3 波形幅值發生電路
人機交互設計以鍵盤為中心操作結構,共設計了6個鍵:電壓/電荷功能選擇鍵、菜單鍵、增加鍵、減小鍵、方向鍵、輸出鍵。鍵盤分別對應有中斷功能的相應端口。無按鍵操作時,端口電平為低,系統處于波形輸出或等待狀態。當端口的一個上升沿產生時,通過設計消抖程序來判斷是否是抖動,判斷非抖動時系統執行相關操作。按鍵的輸入電路如圖4所示。
基于MSP430單片機的控制實現信號發生器的功能,系統軟件的開發采用C語言完成,通過IAR系統嵌入式Workbench及其調試器C-SPY為工作平臺來調試各個程序模塊的功能。系統整體設計思想如圖5所示。開機后,系統的初始化包括引腳的初始化,信號輸出的波形、頻率、幅值基線的初始化,而后系統處于等待狀態;當檢測到中斷時,判斷中斷源是否來自輸出按鈕,若是則以初始化的量值輸出信號,當檢測到按鍵產生修改輸出波形參數的中斷時,系統將會根據修改后的參數,重新調整內部控制變量輸出波形[5]。

圖4 按鍵輸入電路

圖5 系統總體設計圖
MSP430單片機不僅具有強大的處理功能和超低功耗,還支持C語言的編程。設計中選擇標準函數來生成波形數據,當函數表達式選定后,就可以生成相應的波形數據,用“1”或“0”數字狀態來定義波形[6]。本設計輸出6種信號:正弦波、半正弦波、三角波、鋸齒波、方波、脈沖信號。首先擦除flash,每種波形分配16K存儲空間,設計的采樣點數為n=8 192,選擇好波形后,每個采樣點對應的波形數據占用2個地址空間。根據需要的輸出波形頻率,計算出系統的地址遞推頻率focs,從起始地址一直到結束地址,不斷遞推,直到命令的更改。波形生成模塊的設計流程如圖6所示。

圖6 波形生成模塊流程圖
采用KEITHLEY2000,6位半數字萬能表檢測波形幅值,以正弦波為例,結果數據見表1。

表1 正弦波幅值檢測值
經分析幅值的誤差主要來自量化誤差,單片機內部DAC產生基準電源誤差,運放等外圍電路及其它噪聲誤差。設定好波形后,對其采樣量化,轉換生成數據字長為16 bit,引入了量化誤差。DAC實際提供的基準電源與理想值存在差距,經過運放后誤差會放大,運放自身還存在一定的靜態和動態誤差。
經國防科工委第一計量測試中心校準認證:信號發生器的精度達到0.02%,頻率穩定度校準結果為0.001%;輸出電阻校準結果為r=0.39 Ω,頻率準確度不確定度為4.1×10-7(k=2);階躍幅度不確定度為2.3×10-5(k=2);電容測量不確定度為6.2×10-2(k=2)。
本文基于直接數字式頻率合成技術,利用MSP430單片機,控制多功能信號發生器實現高精度、高穩定性的多種波行輸出,替代了DDS芯片的功能,降低了成本。并能根據需要選擇產生電荷信號或電壓信號,該裝置由兩塊15V鋰電池供電,適合野外條件下使用,易于攜帶。經計量測試中心認證,其達到目前市場上出售的同類產品的精度,而且功能更多,價格便宜。