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