網絡已經融入了當今生活的各個方面,成為絕大多數人生活中不可或缺的重要組成部分。因為職業的關系,筆者經常會接觸到網線的鋪設以及網絡的測試等方面工作,在工作中我發現借助專業的網絡測試儀,可以極大地減少網絡故障的排查時間,并能很好地提高工作效率。
專業的網絡測試儀功能很強大:電纜查找、掃描線序、PING功能、尋找端口以及數據包分析等。然而,不容忽視的是,盡管一個專業的網絡測試儀功能很強大,但價格往往不菲,動辄上萬,因此相對于國外來說,國内使用範圍還很有限。能不能自己設計一個簡單實用的網絡測試儀呢?當然可以。
網線制作的線序可以使用網線測試儀進行測試,并且價格也很便宜,因此,暫且忽略這個功能。綜合考慮常用的幾個功能,筆者設計的簡易網絡測試儀(以下簡稱測試儀)支持:PING功能、DHCP功能測試以及網絡訪問測試,也就是說,此測試儀建立在網絡數據傳輸之上,能直觀地反映網絡傳輸性能。
筆者的設計思路如圖30.1所示。
圖30.1 簡易網絡測試儀結構
元器件選擇圖30.2所示是此測試儀所用元器件,使用的元器件清單如表30.1所示。
圖30.2 元器件實物
表30.1 元器件清單
1.網絡傳輸接口芯片
網絡傳輸接口是本測試儀的重點,選擇一款合适的接口芯片對于簡化制作及日後工作的穩定性都尤為重要。在這裡,筆者選擇了 ENC28J60,ENC28J60 是 MicrochIP Technology(美國微芯科技公司)2005年推出的28引腳封裝獨立以太網控制器。自從推出以來,應用極其廣泛,這得益于它的引腳非常少、外圍電路很簡單、使用3線SPI串行接口和單片機通信。由于它占用芯片引腳非常少,所以焊接容易,甚至可以直接在洞洞闆上進行電路布局。
2.MCU 主控芯片
由于選定ENC28J60作為網絡接口芯片,MCU的引腳隻需保證以下條件即可:
(1)支持3/4線SPI接口,用于與ENC28J60通信,當然,用I/O模拟也可,隻是速度會稍慢;
(2)網絡需要一定的數據包RAM緩存,因此主控芯片RAM至少為1KB以上;
(3)網絡協議占用大量的代碼空間,考慮到擴展性,片内Flash最好大于32KB。
在此,從通用與易上手方面綜合考慮,筆者選用了51内核的1T單片機STC12C5A60S2,此單片機的特點為:改進傳統51單片機12T的指令運行周期,達到了1T,速度大大提高;内部Flash空間達到了60KB,不用擔心因程序代碼的空間過大而放不下的問題。
電路設計規劃此測試儀的電路非常簡單,主體由3片IC組成,外加帶網絡變壓器的RJ45接口座HR911105A以及少量的阻容元器件。
顯示器采用最常用的LCM1602字符型液晶顯示屏,雖然隻能顯示16×2個字符,但經過優化的主菜單看起來效果也不錯。
電路圖如圖30.3所示。
圖30.3 簡易網絡測試儀電路圖
工作流程簡介從筆者的設計思路中可以看出,測試儀采用菜單的形式對功能進行分類,包括TCP網頁測試頁面、PING命令以及通過DHCP功能從路由器自動獲取IP這3大功能。其中,對網絡協議的數據包處理與分發是測試儀工作的重點,在此,筆者就對此進行簡要的介紹。
網絡數據傳輸中,最常用的協議組就是“TCP/IP協議”,是一個協議組。相對測試儀系統而言,用到的協議有以下幾個。
(1)ARP協議:該協議為大部分數據傳輸的前提,用于詢問對方的MAC地址,以便在後期點對點傳輸中發送含有正确MAC的數據包。
(2)IP 協議:該協議用于點對點數據傳輸過程,通過 IP 地址判别接收方的數據包,它是ICMP、UDP和TCP協議的“容器”。
(3)ICMP協議:換個通俗的說法,該協議就是PING,用于确認對方的連接狀态,正常連接就能收到PING回應。
(4)UDP協議:該協議是簡單的面向數據包的傳輸層協議,不需要通過複雜的握手協議,隻需要知道對方的IP地址和MAC即可進行數據傳輸,因此具有高效、卻不可靠的特點。
(5)TCP協議:該協議是高可靠性的包交換傳輸協議,通過複雜的握手、重發、回應協議機制進行傳輸,和UDP相反,具有冗餘、可靠的特點。
(6)DHCP協議:該協議是用來實現自動從路由器上獲取IP地址、子網掩碼以及網關IP地址的功能,免去了手動設置IP的麻煩。
這6個常用的協議隻是衆多網絡協議中的很小一部分,但卻負擔着大部分網絡傳輸任務,因此,網絡傳輸其實并非很多人想象得那麼不可捉摸。
焊接安裝與調試由于元器件不多,電路結構比較簡單,遂采用Protel 99SE設計,完成後的PCB布局如圖30.4所示。隻要焊接無誤,上電燒寫程序後即能正常工作。筆者試制了幾個均一次成功。
圖30.4 PCB 布局
實際效果焊接完成之後的效果如圖30.5所示,之後進行液晶顯示屏裝配,效果如圖30.6所示。
圖30.5 焊接完成圖
圖30.6 裝配上液晶顯示屏
上電初始化完成後,進入主菜單,如圖30.7所示,可以按動Next按鍵選擇相應的功能,按Enter按鍵确認。
選擇功能1是WebServer,是運行TCP網頁測試的頁面,用于網絡中的電腦對測試儀進行數據訪問測試。與測試儀在同一網絡中的電腦均可以通過IE浏覽器訪問測試儀,在浏覽器地址欄輸入測試儀的地址即可,圖30.8所示為測試儀運行界面,圖30.9所示為電腦訪問測試儀的網頁,網頁上可以顯示電腦的IP地址以及MAC地址。
圖30.7 主菜單
圖30.8 運行網頁服務器
選擇功能2為PING功能,它是用于測試儀對網絡中的電腦進行數據交換測試,不僅可以對同一局域網内的電腦進行測試,也可對跨越路由器的遠程IP地址進行PING。如果對端電腦未能對測試儀進行回應,測試儀就會顯示“Response TTL= ???”;如果收到回應,則顯示TTL=064(也可能是255、128、32等);如果對端的電腦跨越路由器,則每跨越一層路由器,TTL的數值就會減1,這個數據也可以粗略地估計數據包經過的路由器層數。All後的數據表示總共進行了幾次PING,Succ後的數據表示成功的PING次數,All與Succ之差就是丢包的次數。網絡狀況良好時,一般All和Succ的數據相等。圖30.10為PING功能的PING通狀态。
圖30.9 電腦訪問網頁服務
選擇功能3為設置功能,可以對測試儀的IP地址、子網掩碼以及網關進行設置,也可在開啟DHCP功能的路由器網絡内,通過打開測試儀的DHCP功能從路由器處自動獲取上述3個參數,這樣就更加方便使用了,圖30.11所示為設置的參數。
圖30.10 PING 功能的PING 通狀态
圖30.11 設置菜單
總結測試儀在設計之初,就本着盡量精簡的原則,在完成支持ARP、ICMP、DHCP以及TCP協議的情況下,删除不必要的協議。因此,系統代碼相當精簡,隻占用了大約16KB的代碼空間。當然,它也僅能完成菜單選擇PING命令、自動獲取IP和網頁顯示電腦參數等簡單的功能,一些複雜的網絡功能,例如數據協議分析顯示、網絡數據包存儲等,由于體積和硬件所限,在本測試儀中尚未涉及。
經過一段時間的試用,該系統運行穩定,在日常工作中與網線測試儀搭配,能夠完成大部分測試和故障判斷工作,完全可以滿足日常的應用。
■ 為了方便大家制作,下位機、上位機的代碼與 PCB 文件均可從qq群657864614下載。
,