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