中航工業(yè)洪都航空集團制造工程部特設試驗室 何 平
在飛機總裝后期,需要檢查發(fā)動機起動系統(tǒng)電路的性能。根據(jù)ZJL飛機中電氣系統(tǒng)通電檢查技術條件需要,模擬發(fā)動機的轉速傳感器信號(正弦波或方波),采集起動機、燃油分配器、點火線圈、滑油通氣閥、燃油電磁閥、滑油回油閥、燃油泵、起動通氣閥等線路輸出的開關量信號。為方便機上測試,我們采取DDS技術,以微處理器為控制中心,產(chǎn)生一個步進可調的掃頻信號,模擬發(fā)動機轉速傳感器信號,實現(xiàn)發(fā)動機地面起動系統(tǒng)電路的檢查。
發(fā)動機地面起動系統(tǒng)檢查儀可以供給發(fā)動機其他控制部件,通過13個指示燈顯示各部件是否正常工作。人機界面模塊采用主流的液晶顯示模塊和四個按鍵,操作簡單。峰峰值控制采用數(shù)字電位計方式。
原理框圖如圖1。
該設備包括自檢模塊1、液晶模塊2、鍵盤模塊3、通信模塊4、控制模塊5、隔離模塊6、DDS模塊7、調理模塊8、幅度控制模塊9、功率模塊10、輸出模塊11、開關量輸入模塊12、開關量隔離模塊13、和led指示模塊14組成。
在微處理器的控制下,通過鍵盤模塊輸入波型的頻率,峰峰值,掃頻步進值等數(shù)據(jù),通過隔離的微處理器控制DDS生成標準的正弦波,經(jīng)過調理模塊,可以將正弦波轉換成方波信號,經(jīng)過功率放大輸出,并且具有自檢模塊,防止故障誤判。飛機上的開關量信號經(jīng)過隔離后通過led指示。
3.2.1 正弦波產(chǎn)生電路
AD9850數(shù)字合成器采用先進的DDS技術的高集成芯片,芯片內部集成了高速、高性能的D/A轉換器和比較器。使用了高精密的有源時鐘,在微控制器的控制下,AD9850可以產(chǎn)生一個頻率穩(wěn)定,相位連續(xù)的正弦波模擬信號。
AD9850的典型應用如圖2所示,工作時序如圖3。
3.2.2 信號調理模塊
由于從AD9850直接輸出的正弦波,是一個峰峰值只有0.5伏,帶有0.25伏偏置的正弦信號。如圖九左邊所示,而發(fā)動機的轉速信號是一個雙極性,峰峰值為5伏的雙極性標準正弦信號,因此需要將AD9850輸出的信號中的直流信號濾掉,并且進行放大。
圖4是一個帶通濾波放大器,經(jīng)過調理后,信號達到了模擬發(fā)動機轉速的要求。
3.2.3 幅值控制模塊
幅值控制采用微處理器控制數(shù)字電位計X9C103方式。數(shù)字電位計的功能相當于一個有滑動抽頭的可變電阻,內部具有滑動技術寄存器和數(shù)據(jù)寄存器。數(shù)字電位計中有一個或者多個電阻陣列和許多抽頭,寄存器發(fā)送數(shù)據(jù)指令控制一系列MOS場效應開關的通斷,從而達到改變抽頭電阻值的目的。
圖1 原理框圖
在X9C103的電阻固定端加上5伏峰峰值的正弦波或者方波,通過微處理器W77E58控制抽頭端位置,在抽頭端就可以得到幅值可變的波型信號。
X9C103控制方式為三線控制。內部原理框圖如圖5,與W77E58的接口如圖6。
3.2.4 MULTISIM仿真技術
MULTISIM是電子虛擬仿真的著名軟件,它的仿真基于元器件的PSPICE模型,MULTISIM軟件中各種測試儀器儀表齊全,有一般實驗室用的通用儀器,如萬用表,函數(shù)發(fā)生器,雙蹤示波器,直流電源等,還有一般實驗室少有,或者沒有的儀器,如波特圖儀,字信號發(fā)生器,邏輯分析儀,邏輯轉換器,失真儀,頻譜分析儀,網(wǎng)絡分析儀等。
利用MULTISIM可以實現(xiàn)計算機仿真和設計與虛擬試驗,與傳統(tǒng)電子電路設計與試驗方法相比,具有如下特點,設計與實驗可以同步進行,可以邊設計邊實驗,修改調試方便。設計和實驗用的元器件及測試儀器儀表齊全,可以完成各種類型的電路設計與實驗??梢苑奖愕貙﹄娐穮?shù)進行測試和分析,實驗不需要消耗實際的元器件,實驗成本低,速度快,效率高。圖7和圖8是仿真電路和仿真效果,經(jīng)過應用,和實際電路效果相同。
由于飛機上電磁環(huán)境復雜,必須做好充足抗干擾措施。首先,為了防止電源線接反,我們在電源輸入端串聯(lián)了開關二極管,起到了保護設備的作用。為了避免飛機電源不穩(wěn)定,電路板每個數(shù)字芯片供電腳都安裝了旁路電容。
為了避免飛機上干擾進入測試設備,我們將飛機的地線和設備的地線分開,并對飛機上的信號和設備進行了光耦隔離,防止飛機干擾微處理器工作,并且設備模擬和數(shù)字地分開,單點接地;數(shù)字電路部分大面積鋪銅去除了地回流。
軟件采用C語言編寫,與匯編語言相比較,具有可移植性高,模塊化程度高等優(yōu)點。
我們采用的LCD采用240×128點陣的液晶屏,因此可顯示16×16點陣的漢字8行15列。菜單為多級嵌套形式,最長的有18層,主要完成對輸出頻率信號設置或查詢,可通過“向上”、“向下”、“確認”3個鍵來實現(xiàn)對菜單的選擇。具體功能:
圖2 AD9850的典型應用
圖3 AD9850的工作時序
圖4
圖5 X9C103內部原理框圖
圖6
“向上”鍵:在本層菜單的項目中向上移動進行選擇;在頻率調節(jié)中,可以使頻率向上掃頻;在參數(shù)設置中,可以使數(shù)值增加。
“向下”鍵:在本層菜單的項目中向下移動進行選擇;在頻率調節(jié)中,可以使頻率向下掃頻;在參數(shù)設置中,可以使數(shù)值減小。
“確認”鍵:確認本層的菜單設置,進入下級菜單;在掃頻過程中可以暫?;蛘咄顺鰭哳l。
根據(jù)需求,首先建立一個結構,并定義一個結構變量MeNu。結構變量就是把多個不同類型的變量結合在一起形成的一個組合型變量,構成一個結構的各個變量稱為結構元素。該結構中共有5個結構元素,分別是4個字符型和1個指針變量,4個字符型變量分別為當前及各個按鍵的索引號,也就是操作的狀態(tài)號,最后1個指針變量指向需執(zhí)行函數(shù)。這樣就可以做一個結構數(shù)組,在結構數(shù)組里為每一個菜單項編制一個單獨的函數(shù),并根據(jù)菜單的嵌套順序排好本菜單項的索引號,以及本級菜單項的上、下卷動的索引號和上、下級菜單的索引號。
菜單的具體代碼如下:
uchar data MyKeyIndex=0;
uchar data MyKeyUpState=0;
uchar data MyKeyDnState=0;
uchar data MyKeyCtrState=0;
uchar data MyKeyBackState=0;
void (*MyOperate)();
typedef struct
{
uchar KeyIndex;
uchar KeyUpState;
uchar KeyDnState;
uchar KeyCtrState;
void(*CurrentOperate)();
}MeNu;
MeNu code MyKey[]=
{
{0,0,1,12,(*Dsp_default_config)},
{1,0,1,2,(*C o n f i g_c u r_change)},
{2,3,3,4,(*Change_all_cur_frq_style)},
圖7
圖8
圖9
{3,3,3,4,(*Change_frq_style_cur_style)},
{4,5,6,7,(*Change_config_cur_vpp)},
{5,5,6,7,(*Change_config_vpp_add)},
{6,5,6,7,(*Change_config_vpp_dec)},
{7,8,9,10,(*Change_config_cur_step)},
{8,8,9,10,(*Change_config_step_add)},
{9,8,9,10,(*Change_config_step_dec)},
{10,10,11,12,(*Change_all_para_cur_ok)},
{11,10,11,2,(*Change_all_para_cur_return)},
{12,12,13,15,(*DspOutput)},
{13,14,13,0,(*DspOutput_cur_return)},
{14,14,13,15,(*DspOutput_cur_adjust)},
{1 5,1 6,1 7,1 8,(*O u t p u t_adjust)},
{16,16,17,18,(*Output_adjust_frq_add)},
{17,16,17,18,(*Output_adjust_frq_dec)},
{18,18,13,15,(*Output_adjust_cur_adjust)}
};
按鍵采用中斷方式,這樣使按鍵響應可以盡量少的占用系統(tǒng)資源。通過按鍵,可以改變當前菜單索引值,執(zhí)行當前菜單的相應操作;具體代碼如下:
void KeyUp () interrupt 0 using 2{
MyKeyIndex=MyKey[MyKeyIndex].KeyUpState;
MyOperate=MyKey[MyKeyIndex].CurrentOperate;
(*MyOperate)();
}
void keydown() interrupt 2 using 3{
MyKeyIndex=MyKey[MyKeyIndex].KeyDnState;
MyOperate=MyKey[MyKeyIndex].CurrentOperate;
(*MyOperate)();
}
void keyenter() interrupt 9 using 1{
MyKeyIndex=MyKey[MyKeyIndex].KeyCtrState;
MyOperate=MyKey[MyKeyIndex].CurrentOperate;
(*MyOperate)();EXIF&=0x0dF;
}
液晶選用OCMJ8x15B模塊,接口協(xié)議為請求/應答(REQ/BUSY)握手方式。應答B(yǎng)USY高電平(BUSY=1)表示液晶忙于內部處理,不能接收用戶命令;BUSY低電平(BUSY=0)表示液晶空閑,等待接收用戶命令。發(fā)送命令到液晶可在BUSY=0后的任意時刻開始,先把用戶命令的當前字節(jié)放到數(shù)據(jù)線上,接著發(fā)高電平REQ信號(REQ=1)通知液晶請求處理當前數(shù)據(jù)線上的命令或數(shù)據(jù)。液晶模塊在收到外部的REQ高電平信號后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時將應答線BUSY變?yōu)楦唠娖?,表明模塊已收到數(shù)據(jù)并正在忙于對此數(shù)據(jù)的內部處理,此時,用戶對模塊的寫操作已經(jīng)完成,用戶可以撤消數(shù)據(jù)線上的信號并可作模塊顯示以外的其他工作,也可不斷地查詢應答線BUSY是否為低(BUSY=0),如果BUSY=0,表明模塊對用戶的寫操作已經(jīng)執(zhí)行完畢。可以再送下一個數(shù)據(jù)。如向模塊發(fā)出一個完整的顯示漢字的命令,包括坐標及漢字代碼在內共需5個字節(jié),模塊在接收到最后一個字節(jié)后才開始執(zhí)行整個命令的內部操作,因此,最后一個字節(jié)的應答B(yǎng)USY高電平(BUSY=1)持續(xù)時間較長,具體的時序圖參見圖9。
為了保證該設備的可靠性,我們對分立模擬元器件進行了降額設計,對每個數(shù)字芯片電源增加去耦,信號接地時采取了模擬地和數(shù)字地分開,單點接地技術等,確保設備在技術上穩(wěn)定可靠。
我們預留了校驗口,并于設備檢測單位編寫了檢測規(guī)程,規(guī)定設備施行年檢制度。實現(xiàn)了設備的可測性。
通過DDS技術在發(fā)動機地面啟動系統(tǒng)檢查儀的應用,基于此平臺,介紹了硬件電路仿真軟件MULTISIM的應用,以及數(shù)字電位計,菜單軟件設計,它可以模擬各種信號,可應用到發(fā)動機儀表檢測、發(fā)動機檢測等多種測試領域,具有一定的推廣價值。
[1]潘景良.程控任意波形功率驅動電源的研制[D].南京理工大學碩士論文,2004.
[2]趙新民,王祁.智能儀器設計基礎[M].哈爾濱工業(yè)大學出版社,1999.
[3]譚浩強.C程序設計[M].清華大學出版社,1998.