宋政達(dá)
摘 要:PCM 設(shè)備是民航空管甚高頻信號(hào)實(shí)現(xiàn)遠(yuǎn)距離傳輸?shù)闹饕O(shè)備,PCM設(shè)備在日常運(yùn)行過(guò)程中,由于外部原因會(huì)發(fā)生一種E線長(zhǎng)時(shí)間對(duì)地的現(xiàn)象,會(huì)嚴(yán)重影響空中機(jī)組和地面管制的話音通信質(zhì)量。本文在單片機(jī)平臺(tái)上使用C語(yǔ)言設(shè)計(jì)了兩種不同思路的程序,對(duì)E線長(zhǎng)時(shí)間對(duì)地現(xiàn)象進(jìn)行識(shí)別和抑制。通過(guò)實(shí)驗(yàn)平臺(tái)進(jìn)行測(cè)試,此兩種程序都能夠?qū)崿F(xiàn)快速識(shí)別的抑制E線長(zhǎng)時(shí)間對(duì)地的現(xiàn)象。
關(guān)鍵詞:PCM設(shè)備;編程邏輯;單片機(jī)
中圖分類(lèi)號(hào):TN91 文獻(xiàn)標(biāo)識(shí)碼:A
一、導(dǎo)致PCM設(shè)備E線長(zhǎng)時(shí)間對(duì)地的原因及當(dāng)前的處理辦法
在民航空管系統(tǒng)中,需要將遠(yuǎn)距離的外臺(tái)站信號(hào)實(shí)時(shí)的傳輸回管制部門(mén),這些信號(hào)有甚高頻、電話、雷達(dá)、電報(bào)、視頻監(jiān)控等多種類(lèi)型。PCM 設(shè)備是這些信號(hào)實(shí)現(xiàn)遠(yuǎn)距離傳輸?shù)闹饕O(shè)備,這種設(shè)備將遠(yuǎn)端臺(tái)站的的信號(hào)復(fù)用成一個(gè)32時(shí)隙的2M電信號(hào),再接入運(yùn)營(yíng)商的光纖傳輸網(wǎng)絡(luò)進(jìn)行遠(yuǎn)距離傳輸。PCM設(shè)備在日常運(yùn)行過(guò)程中,由于外部原因會(huì)發(fā)生一種E線長(zhǎng)時(shí)間對(duì)地的現(xiàn)象,這會(huì)造成PCM設(shè)備所連接的電臺(tái)一直以載波功率向外發(fā)射無(wú)線信號(hào),使得此電臺(tái)周?chē)霃?00km范圍內(nèi)的其他同頻電臺(tái)都會(huì)連續(xù)收到強(qiáng)烈的“滋滋”電流聲,嚴(yán)重影響空中機(jī)組和地面管制的話音通信質(zhì)量,這在空中交通管制的運(yùn)行過(guò)程中會(huì)帶來(lái)不可預(yù)料的嚴(yán)重后果。
造成E線長(zhǎng)時(shí)間對(duì)地的原因主要有兩個(gè):(1)管制端PCM設(shè)備M線由于誤接地或PCM設(shè)備自身故障等原因,導(dǎo)致對(duì)應(yīng)的遠(yuǎn)端臺(tái)站上PCM的E線長(zhǎng)時(shí)間對(duì)地。(2)遠(yuǎn)端臺(tái)站PCM設(shè)備掉電,會(huì)直接造成E線對(duì)地,直到PCM供電恢復(fù)為止。E線對(duì)地發(fā)生后,需盡快將E線切斷,以免對(duì)其他同頻電臺(tái)造成影響。當(dāng)前空管設(shè)備運(yùn)行維護(hù)部門(mén)主要是通過(guò)人工切斷E線的方式來(lái)解決此類(lèi)故障。在有人值守的遠(yuǎn)端臺(tái)站,由維護(hù)中心的人發(fā)現(xiàn)故障后,電話通知臺(tái)上值班人員,由值班人員確認(rèn)故障現(xiàn)象并找到對(duì)應(yīng)E線然后切斷。對(duì)于無(wú)人值守的臺(tái)站,維護(hù)中心的人員可以通過(guò)本地監(jiān)控確認(rèn)E線長(zhǎng)劃現(xiàn)象,但當(dāng)前沒(méi)有能夠遠(yuǎn)程切斷E線的方法,只能通過(guò)遙控關(guān)閉對(duì)應(yīng)電臺(tái)的方法抑制電臺(tái)發(fā)射。如果遠(yuǎn)程遙控不成功,只能由維護(hù)人員驅(qū)車(chē)趕往外臺(tái)進(jìn)行現(xiàn)場(chǎng)處理。以上兩種方法,都至少需要3分鐘以上的時(shí)間,這在某些管制繁忙的場(chǎng)合是不能接受的。因此,一種能夠自動(dòng)識(shí)別E線長(zhǎng)時(shí)間接地并自動(dòng)抑制的裝置,在最多30秒的時(shí)間內(nèi)識(shí)別出E線長(zhǎng)時(shí)間對(duì)地,并在識(shí)別成功后自動(dòng)切斷E線,就顯得非常必要。接下來(lái)討論在單片機(jī)平臺(tái)上用C語(yǔ)言編程來(lái)實(shí)現(xiàn)這個(gè)功能。
二、識(shí)別E線長(zhǎng)時(shí)間對(duì)地的編程邏輯
在實(shí)際運(yùn)行過(guò)程中,E線處于對(duì)地狀態(tài)達(dá)到30秒鐘,就可以認(rèn)為E線處于長(zhǎng)時(shí)間對(duì)地的狀態(tài)。那么在單片機(jī)平臺(tái)上用C語(yǔ)言編程時(shí)就可以采用以下兩種思路。(1)將E線與單片機(jī)的外部中斷引腳相連,編程對(duì)單片機(jī)的外部中斷引腳狀態(tài)進(jìn)行監(jiān)視,使用單片機(jī)上的定時(shí)器進(jìn)行定時(shí),設(shè)置一個(gè)處置為零的全局變量,每隔50ms檢查一次外部中斷引腳的狀態(tài),如果引腳狀態(tài)為邏輯1狀態(tài),全局變量不做任何操作,如果引腳狀態(tài)為邏輯0狀態(tài),則說(shuō)明E線對(duì)地,此時(shí)全局變量進(jìn)行加1操作。如果定時(shí)器連續(xù)600次都檢測(cè)到外部中斷引腳處于邏輯0狀態(tài),則全局變量數(shù)值等于600,此時(shí)說(shuō)明E線已經(jīng)連續(xù)對(duì)地時(shí)長(zhǎng)達(dá)到了30秒,則發(fā)出控制指令,將接在E線上的繼電器置于斷開(kāi)狀態(tài)。(2)使用一個(gè)while()循環(huán),判定條件設(shè)為while(!s),其中的s通過(guò)宏定義定義為外部中斷引腳的狀態(tài)。當(dāng)外部引腳狀態(tài)為邏輯0狀態(tài)時(shí),進(jìn)入此循環(huán),進(jìn)入循環(huán)后啟動(dòng)一個(gè)30秒的定時(shí)器,如果30秒定時(shí)器定時(shí)結(jié)束時(shí),程序仍在此循環(huán)中未跳出,則認(rèn)為E線已經(jīng)連續(xù)對(duì)地時(shí)長(zhǎng)達(dá)到了30秒,則發(fā)出控制指令,將接在E線上的繼電器置于斷開(kāi)狀態(tài)。
三、兩種編程邏輯的實(shí)現(xiàn)
對(duì)于第一種邏輯,可以由以下語(yǔ)句來(lái)實(shí)現(xiàn)(部分核心語(yǔ)句):
#include
sbit interrupt1=P3^2;
int flag=0;
void main()
{ EA=1;
EX0=1;
IT0=0;
flag=0;
while(1)
{ if(interrupt1==0)//接地
{ relay=0;
if(flag1==1)
{flag++;
flag1=0;
}
}
else
{relay=1;
flag1=1;
}
display(flag);
}
對(duì)于第二種邏輯,可以由以下語(yǔ)句來(lái)實(shí)現(xiàn)(部分核心語(yǔ)句):
#include
sbit S1=P3^2;
sbit K1=P1^1;
void init()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
}
void main()
{
init();
while(1)
{
while(!S1)
{
if(sec_f1>=600) {K1=0;end1=1;TR0=0;}
}
flag1=0;sec_f1=0;
}
}
上述程序中,第二段程序的while(!S1)語(yǔ)句實(shí)現(xiàn)的是一個(gè)監(jiān)視功能,通過(guò)宏定義將變量S1與外部中斷引腳聯(lián)系起來(lái),當(dāng)外部中斷引腳的狀態(tài)為高電平時(shí),S1的值為1,“!S1”的邏輯值為0,就是說(shuō)while(!S1)的判決條件不成立,則while(!S1)所對(duì)應(yīng)的所有程序都不被執(zhí)行。一旦外部中斷引腳被拉低為對(duì)地狀態(tài),也就是說(shuō)PCM對(duì)應(yīng)的E線由于某種原因由高阻狀態(tài)變?yōu)榱藢?duì)地狀態(tài),則“!S1”的邏輯值為1,就是說(shuō)while(!S1)的判決條件成立了,則while(!S1)所對(duì)應(yīng)的所有程序開(kāi)始被執(zhí)行。只要PCM對(duì)應(yīng)的E線對(duì)地狀態(tài)不改變,則while(!S1)的判決條件一直成立,所以一旦定時(shí)器定時(shí)時(shí)間到達(dá),則會(huì)使“sec_f1>=600”的條件成立,此時(shí),執(zhí)行切斷繼電器的操作,而且這個(gè)操作會(huì)一直執(zhí)行下去,此時(shí)由于PCM的E線被拉低造成的電臺(tái)長(zhǎng)劃就得到了控制。當(dāng)PCM的E線由于某種原因恢復(fù)高阻狀態(tài)時(shí),“!S1”的邏輯值又變?yōu)?,while(!S1)的判決條件不成立,while(!S1)所對(duì)應(yīng)的所有程序又都不被執(zhí)行,繼電器又恢復(fù)閉合狀態(tài),整個(gè)程序重新進(jìn)入檢測(cè)狀態(tài)。
而第一種程序中,主要靠if(interrupt1==0)這個(gè)判斷語(yǔ)句來(lái)記錄外部中斷引腳狀態(tài)的變化,如果外部中斷引腳為高阻狀態(tài),通過(guò)宏定義與外部中斷引腳相聯(lián)系的變量interrupt1為邏輯值1,則if判斷不成立。如果外部中斷引腳變?yōu)閷?duì)地狀態(tài),通過(guò)宏定義與外部中斷引腳相聯(lián)系的變量interrupt1為邏輯值0,則if判斷成立。在接下來(lái)的語(yǔ)句中會(huì)對(duì)計(jì)數(shù)值進(jìn)行加1操作,這種操作會(huì)不斷進(jìn)行,直到定時(shí)器定時(shí)時(shí)間到來(lái),檢查flag的值,從而判定在定時(shí)器定時(shí)值這段時(shí)間范圍內(nèi)外部中斷引腳一直處于接地狀態(tài)。
結(jié)語(yǔ)
上述兩種邏輯的完整程序在KEIL編譯環(huán)境下編譯通過(guò)后,下載到以STC89C52單片機(jī)為核心的控制平臺(tái)上,通過(guò)實(shí)驗(yàn)平臺(tái)的實(shí)地測(cè)試,都能夠穩(wěn)定運(yùn)行,達(dá)到預(yù)期的需求。第一種邏輯程序簡(jiǎn)單,占用資源少,但是檢驗(yàn)的精確性不如第二種邏輯,使用者可以根據(jù)自己的需求進(jìn)行選擇。
參考文獻(xiàn)
[1]譚浩強(qiáng).C程序設(shè)計(jì)第二版[M].北京:清華大學(xué)出版社,1999.
[2]申鳳琴.電子電工技術(shù)應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.