隨著計算機局域網的不斷發展,網絡連接越來越復雜,給網絡工程師布線、維修等工作帶來了很大的困難。困難的原因有兩個:第一,雙絞線的錯接、斷接、壓線接觸不良等問題在工程實踐中層出不窮,很難直觀發現,而分清每條雙絞線兩端的對應關系在綜合布線中又顯得尤其重要;第二,在一般情況下,局域網的終端之間或終端與集線器之間的距離較遠,很難采用直接測量的辦法對網線故障做出正確判斷。
針對以上兩點原因,本文對雙絞線的故障檢測提出了可行的方案與實現方法。首先,將微處理器快速數據分析與邏輯運算應用于雙絞線故障檢測,使問題變得簡單,結果直觀化。其次,采用射頻無線收發器 nRF401進行數據傳輸,實現遠距離數據交換,使距離遠的問題迎刃而解,簡化測量過程。
1 系統構成
1.1 nRF401結構簡介
nRF401內部結構如圖1所示。它是由挪威Nordic公司推出的集收、發為一體的集成芯片,工作于433MHz ISM頻段;采用FSK調制與解調技術;傳輸速率達20Kb/s,傳輸功率最大+10dBm;差分式天線接口,非常適合做成PCB天線,以節約成本。
圖1 nRF401內部結構
圖1中各引腳含義如下。
DOUT:數據輸出端。
DIN:數據輸入端。
TXEN:高電平允許發送數據,低電平允許接收數據。
ANT1、ANT2:天線接入端。
PWR_UP: 器件低功耗控制。
1.2 nRF401外部連接及與微處理器接口
在本設計中,將天線以覆銅的方式做在印制板上,在保證了數據安全可靠傳遞的前提下,減小了產品的體積。nRF401的配置如圖2所示。
圖2 nRF401外部連接及與微處理器接口
nRF401與CPU之間控制和數據傳遞接口如圖3 所示。
圖3 nRF401與CPU接口 圖4 CPU與雙絞線接口
1.3 CPU與雙絞線接口
普通雙絞線包含8根線,可以將89C51的P0口作為雙絞線線上電平狀態的輸入口。通過設置和檢測P0口的狀態,即可對雙絞線的連接狀況做出正確判斷,連接如圖4所示。
2 雙絞線連接標準
關于連接的標準有兩個:T568A和T568B。兩個標準的線序排列如圖5所示,方向為水晶頭金屬壓片向上且正對觀測者的方向。T568B為常用的標準。
◆ 兩邊使用同樣標準的線稱為直通線,用于PC到HUB普通口、HUB普通口到HUB級聯口之間的連接。
◆ 兩邊使用不同標準的線稱為級聯線, 用于PC到PC、HUB普通口到HUB普通口之間的連接。
以上兩條是判斷的主要理論依據。
根據標準,對應 RJ-45插頭引腳線序顏色如表1所列。
表1
3 工作原理
因為雙絞線故障的不確定性,所以不能通過雙絞線自身作為主設備和從設備之間數據傳遞的途徑。通過微波進行無線數據傳遞,對于雙絞線的故障判斷實在是合適不過的。為此,我們自行設計了主從設備間的數據通信協議及相應的判斷規則。
3.1 通信協議
(1) 連接標準選擇命令(01H)
下行報文:01H + 標準數據碼(T568A為0AH;T568B為0BH)+ LPC。
上行報文:01H + 確認碼(00H) + LPC。
(2) 通道選擇命令(02H)
下行報文:02H + 通道碼(01~08:通道1~通道8)+ LPC。
上行報文:02H + 確認碼(00H) + LPC。
注:報文中LPC是指校驗和,用于數據校驗。
3.2 檢測算法
要檢測雙絞線連接的正確性,必須使電平信號在兩條線上傳遞,否則無法檢測。在本設計中,故障檢測可分為三步:第一,在 8條導線中尋找1條能傳遞電平信號的公用導線;第二,將公用導線與待測導線在從設備端短接,使公用導線電平信號經過待測導線傳遞到主設備側,從而確定待測導線的故障所在;第三,顯示線路的連接狀態。
3.2.1 選公用導線
實際上在10M、100M網絡中,僅僅使用1-2 、3-6 這兩對線,而1000M網絡要用所有的導線,但這并不影響雙絞線的測量方法。上文已經闡明,對于直通線雙絞線的兩端線的排列順序是相同的,而級聯線不同于直通線,雙絞線的一端1-2對應另一端的3-6,3-6對應1-2,其余與直通線連接對應關系相同。因為在實際應用中,直通線的數量遠大于級聯線的數量, 所以將直通線列為首要判斷對象。公用導線的選擇可以從1號線開始進行,主從設備均選中1號線(暫列為公用導線)。通過通道選擇命令,由主設備指導從設備將 1號線(臨時公用導線)和2號線在從設備端連接起來。如果兩條線無故障且兩個端子同屬于一條雙絞線,那么,1號線與2號線將形成通路,在主設備端2號線上,主設備能夠檢測到加在1號線上的電平信號。由此可知,1號線可選為公用導線,應用于其它導線的測量。否則,兩條線中的一條出現故障不能導通,主設備將指導從設備將1、3號線連接起來,重復以上步驟,直到找到公用導線為止。如果公用導線找不到,則說明本線路最多有一條導線導通,或測量的兩端不同屬于一條線路,或所有的導線發生錯接現象。
3.2.2 其它導線對應關系測量
經過公用導線的測量結果分為兩種:一, 找到公用導線;二,沒有找到公用導線。在公用導線的前提下,首先按照直通線的對應關系,在從設備側進行連接,看其它導線是否與公用導線形成環路。如果測量最終結果與直通線的對應關系不一致,則按照級聯線的對應關系進行測量。如果測量結果還不一致,那么說明有錯接現象。通過以上步驟已經獲得部分連線導通的信息。將這些導線排除在外,利用排列、組合的數學方法與公用導線連接,從而得出錯接導線的連接狀況。
如果沒有找到公用導線,系統只能通過排列、組合的數學方法找出導線的連接狀況。當然,這種幾率較少。由于微處理器的速度較快,即使出現這種極端情況,耗時也是瞬間完成的。
另外,每進行一次測量結果的記錄是非常重要的,避免了重復性工作,提高了判斷速度。
3.2.3 顯示兩端對應關系
將測量結果顯示于液晶屏上,使雙絞線兩端的對應關系一目了然,便于排除故障。
本設計采用手動和自動測量兩種方法。以上敘述了自動測量的原理,手動測量的原理與自動測量相同。區別在于選擇手動測量時,已經明確線路接線采用的標準。
4 軟件設計[2,3]
根據以上工作原理設計了相應的軟件,圖6為系統工作流程。下面將整個程序設計的主要通信程序提供給大家,以供參考。
圖6 主從設備軟件設計流程圖
部分程序如下:
include “reg51.h”
include “com.h” //自定義頭文件
char Cri_opt[3]; //標準選擇命令碼
char Cha_opt[3]; //通道選擇命令碼
char Xbuff[15]; //數據發送緩沖區
char Rbuff[15]; //數據接收緩沖
Xmit_mst() interrupt 4 using 3 //主設備發送中斷程序
{ TI = 0; //關閉發送中斷
if(Xput != Xget){ //Xput:發送緩沖區入指針;//Xget:發送緩沖區出指針
SBUF = Xbuff(Xget); //發送數據
Xget = (Xget++)&0fh; //當數據取空時指針Xget轉到起始位置
}
delay(10ms);
}
Rcv_mst() interrupt 4 using 3//主設備接收中斷程序
{ RI = 0; //關閉接收中斷
if(Rput != Rget) { //Rput:接收緩沖區入指針;Rget://接收緩沖區出指針
Rbuff(Rput) = SBUF;
Rput = (Rput++)&0fh;
}
delay(10ms);
}
void SendCmd(char*Buff, char TotalChar){
char cnt;
for(cnt=0; Cnt《=TotalChar; Cnt++){
Xbuff[Xput] = Buff[Cnt]; //將命令移入發送緩沖區
Xput = (Xput++)&0fh; //當發送緩沖區滿時入隊指針由隊尾指向隊頭
}
SBUF = Xbuff[Xget]; //引起通信中斷,發送數據
delay(10ms); //延時
}
main(){
char P0_state;
Init(); //系統初始化
。..。..。..。..
//選擇連線標準
Cri_opt[1] = 0ah; //0ah或0bh
LpcGen(Cri_opt); //生成校驗碼并寫入相應位置
SendCmd(Cri_opt,3); //將采用的連接標準通知從設備
P0 = 0ffh; //P0口操作
。..。..。..。..
等待從設備響應; //等待從設備確認后的狀態置位
//選擇通道
。..。..。..。..
Cha_opt[1] = 01h; // 01h-08h
LpcGen(Cha_opt);
SendCmd(Cha_opt,3); //發送選擇通道命令
P0 = 0ffh; //P0口操作
。..。..。..。..
等待從設備響應;
P0_state = P0; //讀P0口狀態
。..。..。..。..
}
從設備程序設計可仿照主設備程序設計。
責任編輯:gt
-
收發器
+關注
關注
10文章
3485瀏覽量
106307 -
無線
+關注
關注
31文章
5471瀏覽量
173965 -
局域網
+關注
關注
5文章
762瀏覽量
46423
發布評論請先 登錄
相關推薦
評論