王宏斌,剡宇航,何嚴飛
(蘭州工業(yè)學院 電子信息工程學院,甘肅 蘭州 730050)
隨著電子通信及網(wǎng)絡的高速發(fā)展,連接電子設備內(nèi)部或電子設備之間的電纜的屏蔽性能正受到越來越多的關注[1]。同軸電纜現(xiàn)已廣泛應用于電力傳輸[2]。目前隧道中一般通過鋪設漏泄同軸電纜來完成通信網(wǎng)絡的覆蓋[3]。因此,在實際工程布線中,希望能快速精確地測量1盤電纜的長度,因此對同軸電纜長度的測量具有重要意義。
傳統(tǒng)的電纜長度測量通過測量電信號在單位長度同軸電纜中通過的時間,得到電信號在同軸電纜中的傳播速度,基于此可測得不同長度電纜中電信號傳播時間,從而算得電纜長度。此方案缺點是電信號在電纜上傳播所經(jīng)歷時間極短,一般在10-19~10-7s范圍內(nèi),要做到準確測量十分困難。
根據(jù)同軸電纜的結構和原理可知,電纜的內(nèi)導體(芯線)與周圍外導體間構成許多小電容(不考慮分布電感和電阻),在靜態(tài)情況下,這些小電容對外電路呈現(xiàn)為一個可測的電容(靜電容)[4]。電容的大小由式(1)計算,即
(1)
式中:ε為介電常數(shù);S為極板的面積;d為兩極板的距離。對于某一種電纜,介電常數(shù)ε和極板距離d是固定的,極板的面積正比于電纜的長度。
同軸電纜規(guī)格不同,其單位長度內(nèi)的靜電容是不同的。但是對任一種規(guī)格的電纜,單位長度的靜電容量是相同的,這說明電纜的總靜電容量與電纜的長度成正比。對電纜長度的測量轉(zhuǎn)換為對電容的測量。選用555定時器接成多諧振蕩電路,將被測量電纜一端的芯線和屏蔽層接入振蕩電路的電容端。由于電纜靜電容與其長度呈線性關系,從而建立長度與頻率的關系。頻率f通過式(2)計算,固定R1和R2,則頻率與電容值成反比,即
(2)
通過尺度變換,將電纜長度變換成與長度相對應的頻率信號,測量這個頻率就能得到相應電纜的長度。系統(tǒng)總體框圖如圖1所示。同軸電纜和555定時器構成多諧振蕩電路,輸出的方波信號送入GD32處理器,通過測量頻率,計算出同軸電纜的長度。串口屏實現(xiàn)測量控制與結果顯示。
圖1 系統(tǒng)總體框圖
硬件電路主要由電源電路、555多諧振蕩電路、GD32主控電路、時鐘電路、復位電路、GD_link下載電路、串口接口電路等組成。
電源電路原理如圖2所示,系統(tǒng)由5 V的直流電源供電,GD32電源電壓為3.3 V,因此對輸入的5 V電源,通過AMS1117-3.3穩(wěn)壓芯片轉(zhuǎn)換成3.3 V給GD32供電。
圖2 電源電路原理
555多諧振蕩電路硬件原理見圖3,同軸電纜通過P4端口接入電路,構成多諧振蕩電路,方波信號從PB8口送入GD32處理器進行頻率測量。
圖3 555多諧振蕩電路硬件原理
GD32主控電路如圖4所示,主要是給主控芯片的5對電源地供電,參考電壓供電,備用電源供電,引出各個網(wǎng)絡標號端子,和對應的硬件模塊連接。本系統(tǒng)中主控芯片為GD32E103VBT6。此芯片是基于ARM Cortex-M4內(nèi)核的32位微控制器,內(nèi)核包含一個浮點運算器(FPU),可提高單精度浮點運算速度,并支持所有ARM單精度指令和數(shù)據(jù)類型。主頻120 MHz,采用嵌入式Flash,64~128 K Flash,20~32 K SRAM。
圖4 GD32主控電路
時鐘電路如圖5所示,晶振頻率為8 MHz,并接2個20 pF的電容和1個1 M的電阻,接入GD32處理器的OSC_IN和OSC_OUT引腳。
圖5 時鐘電路
復位電路如圖6所示,低電平復位,通過NRST引腳接入GD32,可實現(xiàn)上電復位和手動復位。
圖6 復位電路
GD_link下載電路如圖7所示,SWD接口電路,可通過J-link或ST-link實現(xiàn)程序的下載。
圖7 GD_link下載電路
串口接口電路如圖8所示,通過此接口連接串口屏,實現(xiàn)測量結果的顯示。
圖8 串口接口電路
軟件程序部分主要由主程序、串口中斷服務程序和定時器中斷服務程序組成。主程序流程如圖9所示,初始化部分完成系統(tǒng)時鐘初始化、GPIO口初始化、定時器TIMER9設置為周期技術模式,使能上升沿捕獲中斷、周期上溢中斷,配置為高優(yōu)先級中斷,優(yōu)先保障計數(shù)的準確性。串口USART0配置主要設置串口數(shù)據(jù)格式,波特率,使能串口接收中斷,配置為低優(yōu)先級中斷。主循環(huán)部分測量標志length_bt_flag;有效則根據(jù)定時器中斷計數(shù)的頻率值,計算出電纜長度,并通過串口發(fā)送,顯示在串口屏上;標志無效則循環(huán)等待。
圖9 主程序流程
串口中斷服務函數(shù)流程如圖10所示,進入中斷服務函數(shù),判斷是否是串口接收中斷,不是則中斷返回,是則接收數(shù)據(jù),判斷數(shù)據(jù)是否為0x23(當串口屏按下開始測量按鍵是,會向GD32串口發(fā)送0x23),是則取反標志位length_bt_flag,不是則中斷返回。
圖10 串口中斷服務函數(shù)流程
定時器中斷服務函數(shù)流程如圖11所示,進入中斷服務函數(shù),判斷是否是邊沿捕獲中斷,是則n1存儲上一上升沿捕獲的計數(shù)值,n2存儲當前上升沿捕獲的值,計算2次上升沿之間的計數(shù)值,計算原理如圖12所示。t1時刻的計數(shù)值為n1,t2時刻的計數(shù)值為n2,在他們之間上溢中斷出現(xiàn)了 iCount次,每上溢1次,計數(shù)65 536次,則2次上升沿之間的計數(shù)值num可由式(3)計算,上溢中斷次數(shù)iCount清零,再計算出方波頻率frq;不是邊沿捕獲中斷,則判斷是不是上溢中斷,是則上溢次數(shù)+1,清除標志位;否則中斷返回。
num=65 536*iCount+n2-n1.
(3)
圖11 定時器中斷服務函數(shù)流程
圖12 上升沿之間計數(shù)值計算原理
串口屏選用淘晶馳T1系列4.3寸串口屏,顯示界面如圖13所示,按鈕組件用于啟動和停止檢測,每按下回向GD32串口發(fā)送0x23;2個文本框用于顯示工作狀態(tài)和電纜長度,GD32控制顯示的代碼如下。
printf("t1.txt="%s"xffxffxff","結果保持");
printf("t2.txt="%s"xffxffxff",bnc_length_string);
圖13 串口屏顯示界面
系統(tǒng)實物如圖14所示,接入不同長度的電纜,測得方波頻率如表1所示。以頻率為橫坐標,長度為縱坐標,擬合的曲線如圖15所示。理想情況電纜的長度與頻率成反比,實際情況受電纜均勻性、測量電路參數(shù)等影響,為非線性關系,這里用對數(shù)曲線擬合較為接近。
圖14 系統(tǒng)實物
表1 長度頻率對照
圖15 頻率長度擬合曲線
本文給出了一種測量同軸電纜長度的方法,以同軸電纜為電容進行測量,設計了硬件電路,完成了軟件程序的設計,通過系統(tǒng)聯(lián)合調(diào)試,達到了較好的測量效果,檢測相對誤差的絕對值不大于2%,具有一定的應用參考價值。