前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇通信協(xié)議范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關(guān)鍵詞:Modbus; RTU; FPGA; VHDL
中圖分類號:TP316 文獻標識碼:A
文章編號:1004-373X(2010)11-0203-05
Modbus Communication Protocol Based on FPGA
YU Zheng-lin, ZHANG Long, HUANG Yong
(Changchun University of Science and Technology,Changchun 130022,China)
Abstract: Modbus protocol is a popular fieldbus, and has become one of national standards in China with easy perfor-mance, widely opening and compact frame format. A method of implementing Modbus RTU protocol based on Cyclone FPGA is introduced. A interface can be used both in Modbus server and client, a Modbus slave coprocessor was designed based on it. The test results show that the design meets the communication requirement of industry environment, and has certain value in other kinds of FPGA.
Keywords: Modbus; RTU; FPGA; VHDL
0 引 言
現(xiàn)場總線是一種應(yīng)用于生產(chǎn)現(xiàn)場,在現(xiàn)場設(shè)備之間,現(xiàn)場設(shè)備與控制裝置之間實現(xiàn)雙向、串行、多節(jié)點數(shù)字通信的技術(shù)[1]。Modbus協(xié)議其節(jié)點安裝數(shù)量非常多,安裝的地區(qū)遍及世界各地。
今天的FPGA可包含內(nèi)嵌乘法器、專用計算例程和片上RAM等,加上FPGA的并行性,其結(jié)果比最快的DSP芯片還要快上500倍乃至更多。隨著FPGA價格不斷下降,甚至最小的器件都足以實現(xiàn)一個集成可選定制I/O功能的軟處理器核。可見,FPGA對嵌入控制應(yīng)用越來越具有吸引力[2]。
目前Modbus協(xié)議實現(xiàn)方式多為單片機和PLC,隨著FPGA的廣泛應(yīng)用,研究Modbus現(xiàn)場總線的FPGA解決方案有很大的實用價值。
1 Modbus協(xié)議簡介[3-4]
Modbus串行鏈路系統(tǒng)可以使用不同的物理接口(RS 485,RS 232),最常用的是RS 485兩線制接口。為了提高通信模塊在工業(yè)應(yīng)用中的抗干擾性和穩(wěn)定性,接口芯片和FPGA核心模塊之間應(yīng)加入高速光耦進行隔離,總線兩端處放置線路終端電阻,采用屏蔽雙絞線作為通信線等。
在串行鏈路上,Modbus RTU(Remote Terminal Unit)模式報文中每8個位字節(jié)含有兩個4位十六進制字符,這種模式的主要優(yōu)點是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。RTU模式每個字節(jié)(11位)的格式如圖1所示,支持奇、偶和無校驗,使用無校驗時要求2個停止位。Modbus RTU幀最大為256 B,由發(fā)送設(shè)備將Modbus報文構(gòu)造為帶有已知起始和結(jié)束標記的幀,報文幀由時長至少為3.5個字符時間的空閑間隔區(qū)分,整個報文幀必須以連續(xù)的字符流發(fā)送,如果兩個字符之間的空閑間隔大于1.5個字符時間,則報文幀被認為不完整被接收節(jié)點丟棄,如圖1所示。
圖1 RTU模式位序列和報文幀
在應(yīng)用層上,Modbus是一個請求/應(yīng)答協(xié)議,并且提供功能碼規(guī)定的服務(wù)。有三類Modbus功能碼:公共碼、用戶定義碼和保留碼,大多數(shù)情況下只用公共碼,其主要包括比特(線圈)訪問、16 b(寄存器)訪問、文件記錄訪問、診斷和其他信息訪問。
2 Modbus RTU通信協(xié)議接口設(shè)計
2.1 接口功能及模塊劃分
Modbus RTU接口框圖及輸入、輸出引腳示意圖如圖2所示。
圖2 Modbus接口示意圖
在某一確定的主時鐘頻率、通信波特率和奇偶校驗方式下,通過設(shè)置CE_Modbus和R_Tn的狀態(tài),可以控制該接口模塊處于接收Modbus協(xié)議幀模式、發(fā)送Modbus協(xié)議幀模式或輸入/輸出寄存器操作模式,如表1所示。
表1 操作模式控制
CE_ModbusR_Tn操作模式
11接收Modbus協(xié)議幀
10發(fā)送Modbus協(xié)議幀
0×輸入/輸出寄存器操作
典型的波特率和奇偶校驗位設(shè)置如表2、表3所示。這兩組控制信號可以從端口引出接到撥碼開關(guān),然后可以通過調(diào)節(jié)撥碼開關(guān)來靈活控制該設(shè)備奇偶性與波特率,也可以通過寄存器配置方式控制。
表2 波特率控制
Sel_baud[2..0]波特率/(b/s)
009 600
0119 200
1038 400
11115 200
表3 奇偶校驗控制
Sel_parity [2..0]校驗方式
00偶
01奇
10或11無
2.2 接收過程
(1) 系統(tǒng)處于接收Modbus協(xié)議幀模式下之后,清零標志位和定時器,然后啟動定時器,如果檢測到有串口輸入數(shù)據(jù),則清零定時器,如果沒有檢測到串口輸入數(shù)據(jù)且定時器第一次計時到3.5個字符時間,置幀起始標志;
(2) 把接收到的第一個字符放入接收緩沖寄存器的0x00地址(協(xié)議幀最長為256 B,故接收緩沖大小為256 B,地址為8 b),置已開始接收標志;
(3) 將接收到的正確字符依次放入接收緩沖寄存器中,即地址每次加1,每接收完一個字符之后清零定時器;如果在接收字符時檢查到起始錯誤(起始位沒有持續(xù)波特率所對應(yīng)bit時間的一半),奇偶校驗錯誤,或者幀錯誤(停止位為0),則丟棄該字符,重新同步起始位;
(4) 如果檢測到兩個字符時間間隔大于1.5個字符時間,則重置幀起始標志,把下一個接收到的字符放入接收緩沖寄存器的0x00地址,再繼續(xù)步驟(3);
(5) 當檢測到?jīng)]有字符輸入且定時器第二次檢測到3.5個字符時間,置協(xié)議幀接收完全標志;
[關(guān)鍵詞]局域網(wǎng);通信協(xié)議;TCP/IP
How TO Configure the Communication Protocols of the LAN
Wang Guang ming
(Class One,Grade Three,Department of Computer Science,Zaozhuang Teachers' College,Zaozhuang 277100)
Abstract: Based on the LAN,for NetWare、Windows 95/98 and the main is Windows NT operation system,this paper introduce and analysis the characteristic、 capability and the essential configure method of the communication protocols.
Key Words: LAN;Communication Protocols; TCP/IP
不同的網(wǎng)絡(luò)協(xié)議都有其存在的必要,每一種協(xié)議都有它所主要依賴的操作系統(tǒng)和工作環(huán)境。在一個網(wǎng)絡(luò)上運行得很好的通信協(xié)議,在另一個看起來很相似的網(wǎng)絡(luò)上可能完全不適合。因此,組建網(wǎng)絡(luò)時通信協(xié)議的選擇尤為重要。
無論是幾臺機器組成的Windows 95/98對等網(wǎng),還是規(guī)模較大的Windows NT、Novell或Unix/Xenix局域網(wǎng),凡是親自組建或管理過網(wǎng)絡(luò)的人,都遇到過如何選擇和配置網(wǎng)絡(luò)通信協(xié)議的問題。由于許多用戶對網(wǎng)絡(luò)中的協(xié)議及其功能特點不是很清楚,所以在組網(wǎng)中經(jīng)常選用了不符合自身網(wǎng)絡(luò)特點的通信協(xié)議。其結(jié)果就造成了網(wǎng)絡(luò)無法接通,或者是速度太慢,工作不穩(wěn)定等現(xiàn)象而影響了網(wǎng)絡(luò)的可靠性。 下面我就分析一下各個協(xié)議的特點和性能借以說明我配置協(xié)議的理論和立場。
一、通信協(xié)議
組建網(wǎng)絡(luò)時,必須選擇一種網(wǎng)絡(luò)通信協(xié)議,使得用戶之間能夠相互進行“交流”。協(xié)議(Protocol)是網(wǎng)絡(luò)設(shè)備用來通信的一套規(guī)則,這套規(guī)則可以理解為一種彼此都能聽得懂的公用語言。關(guān)于網(wǎng)絡(luò)中的協(xié)議可以概括為兩類:“內(nèi)部協(xié)議”和“外部協(xié)議”下面分別予以介紹。
1.內(nèi)部協(xié)議
1978年,國際標準化組織(ISO)為網(wǎng)絡(luò)通信制定了一個標準模式,稱為OSI/RM(Open System Interconnect/Reference Model,開放系統(tǒng)互聯(lián)參考模型)體系結(jié)構(gòu)。該結(jié)構(gòu)共分七層,從低到高分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。其中,任何一個網(wǎng)絡(luò)設(shè)備的上下層之間都有其特定的協(xié)議形式,同時兩個設(shè)備(如工作站與服務(wù)器)的同層之間也有其使用的協(xié)議約定。在這里,我們將這種上下層之間和同層之間的協(xié)議全部定義為“內(nèi)部協(xié)議”。內(nèi)部協(xié)議在組網(wǎng)中一般很少涉及到,它主要提供給網(wǎng)絡(luò)開發(fā)人員使用。如果你只是為了組建一個網(wǎng)絡(luò),可不去理會內(nèi)部協(xié)議。
2.外部協(xié)議
外部協(xié)議即我們組網(wǎng)時所必須選擇的協(xié)議。由于它直接負責(zé)計算機之間的相互通信,所以通常稱為網(wǎng)絡(luò)通信協(xié)議。自從網(wǎng)絡(luò)問世以來,有許多公司投入到了通信協(xié)議的開發(fā)中,如IBM、Banyan、Novell、Microsoft等。每家公司開發(fā)的協(xié)議,最初一般是為了滿足自己的網(wǎng)絡(luò)通信,但隨著網(wǎng)絡(luò)應(yīng)用的普及,不同網(wǎng)絡(luò)之間進行互聯(lián)的要求越來越迫切,因此通信協(xié)議就成為解決網(wǎng)絡(luò)之間互聯(lián)的關(guān)鍵技術(shù)。就像使用不同母語的人與人之間需要一種通用語言才能交談一樣,網(wǎng)絡(luò)之間的通信也需要一種通用語言,這種通用語言就是通信協(xié)議。目前,局域網(wǎng)中常用的通信協(xié)議(外部協(xié)議)主要有NetBEUI、IPX/SPX及其兼容協(xié)議和TCP/IP三類。
3.選擇網(wǎng)絡(luò)通信協(xié)議的原則
我們在選擇通信協(xié)議時一般應(yīng)遵循以下的原則:
第一、所選協(xié)議要與網(wǎng)絡(luò)結(jié)構(gòu)和功能相一致。如你的網(wǎng)絡(luò)存在多個網(wǎng)段或要通過路由器相連時,就不能使用不具備路由和跨網(wǎng)段操作功能的NetBEUI協(xié)議,而必須選擇IPX/SPX或TCP/IP等協(xié)議。另外,如果你的網(wǎng)絡(luò)規(guī)模較小,同時只是為了簡單的文件和設(shè)備的共享,這時你最關(guān)心的就是網(wǎng)絡(luò)速度,所以在選擇協(xié)議時應(yīng)選擇占用內(nèi)存小和帶寬利用率高的協(xié)議,如NetBEUI。當你的網(wǎng)絡(luò)規(guī)模較大,且網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜時,應(yīng)選擇可管理性和可擴充性較好的協(xié)議,如TCP/IP。
第二、除特殊情況外,一個網(wǎng)絡(luò)盡量只選擇一種通信協(xié)議?,F(xiàn)實中許多人的做法是一次選擇多個協(xié)議,或選擇系統(tǒng)所提供的所有協(xié)議,其實這樣做是很不可取的。因為每個協(xié)議都要占用計算機的內(nèi)存,選擇的協(xié)議越多,占用計算機的內(nèi)存資源就越多。一方面影響了計算機的運行速度,另一方面不利于網(wǎng)絡(luò)的管理。事實上一個網(wǎng)絡(luò)中一般一種通信協(xié)議就可以滿足需要。
第三、注意協(xié)議的版本。每個協(xié)議都有它的發(fā)展和完善過程,因而出現(xiàn)了不同的版本,每個版本的協(xié)議都有它最為合適的網(wǎng)絡(luò)環(huán)境。從整體來看,高版本協(xié)議的功能和性能要比低版本好。所以在選擇時,在滿足網(wǎng)絡(luò)功能要求的前提下,應(yīng)盡量選擇高版本的通信協(xié)議。
第四、協(xié)議的一致性。如果要讓兩臺實現(xiàn)互聯(lián)的計算機間進行對話,它們兩者使用的通信協(xié)議必須相同。否則中間還需要一個“翻譯”進行不同協(xié)議的轉(zhuǎn)換,這樣不僅影響通信速度,同時也不利于網(wǎng)絡(luò)的安全和穩(wěn)定運行。
二、局域網(wǎng)中常用的三種通信協(xié)議
1.NetBEUI協(xié)議
■NetBEUI通信協(xié)議的特點。NetBEUI(NetBIOS Extended User Interface,用戶擴展接口)由IBM于1985年開發(fā)完成,它是一種體積小、效率高、速度快的通信協(xié)議。NetBEUI也是微軟最鐘愛的一種通信協(xié)議,所以它被稱為微軟所有產(chǎn)品中通信協(xié)議的“母語”。微軟在其早期產(chǎn)品,如DOS、LAN Manager、Windows 3.x和Windows for Workgroup中主要選擇NetBEUI作為自己的通信協(xié)議。在微軟如今的主流產(chǎn)品,如Windows 95/98和Windows NT中,NetBEUI已成為其固有的缺省協(xié)議。有人將WinNT定位為低端網(wǎng)絡(luò)服務(wù)器操作系統(tǒng),這與微軟的產(chǎn)品過于依賴NetBEUI有直接的關(guān)系。NetBEUI是專門為幾臺到百余臺PC所組成的單網(wǎng)段部門級小型局域網(wǎng)而設(shè)計的,它不具有跨網(wǎng)段工作的功能,即NetBEUI不具備路由功能。如果你在一個服務(wù)器上安裝了多塊網(wǎng)卡,或要采用路由器等設(shè)備進行兩個局域網(wǎng)的互聯(lián)時,將不能使用NetBEUI通信協(xié)議。否則,與不同網(wǎng)卡(每一塊網(wǎng)卡連接一個網(wǎng)段)相連的設(shè)備之間,以及不同的局域網(wǎng)之間將無法進行通信。
雖然NetBEUI存在許多不盡人意的地方,但它也具有其他協(xié)議所不具備的優(yōu)點。在三種通信協(xié)議中,NetBEUI占用內(nèi)存最少,在網(wǎng)絡(luò)中基本不需要任何配置。尤其在微軟產(chǎn)品幾乎獨占PC操作系統(tǒng)的今天,它很適合于廣大的網(wǎng)絡(luò)初學(xué)者使用。
■NetBEUI與NetBIOS之間的關(guān)系。細心的讀者可能已經(jīng)發(fā)現(xiàn),NetBEUI中包含一個網(wǎng)絡(luò)接口標準NetBIOS。NetBIOS(Network Basic Input/Output System,網(wǎng)絡(luò)基本輸入/輸出系統(tǒng))是IBM在1983年開發(fā)的一套用于實現(xiàn)PC間相互通信的標準,其目的是開發(fā)一種僅僅在小型局域網(wǎng)上使用的通信規(guī)范。該網(wǎng)絡(luò)由PC組成,最大用戶數(shù)不超過30個,其特點是突出一個“小”字。后來,IBM發(fā)現(xiàn)NetBIOS存在的許多缺陷,所以于1985年對其進行了改進,推出了NetBEUI通信協(xié)議。隨即,微軟將NetBEUI作為其客戶機/服務(wù)器網(wǎng)絡(luò)系統(tǒng)的基本通信協(xié)議,并進一步進行了擴充和完善。最有代表性的是在NetBEUI中增加了叫做SMB(Server Message Blocks,服務(wù)器消息塊)的組成部分,以降低網(wǎng)絡(luò)的通信堵塞。為此,有時將NetBEUI協(xié)議也稱為“SMB協(xié)議”。
人們常將NetBIOS和NetBEUI混淆起來,其實NetBIOS只能算是一個網(wǎng)絡(luò)應(yīng)用程序的接口規(guī)范,是NetBEUI的基礎(chǔ),它不具有嚴格的通信協(xié)議功能。而NetBEUI是建立在NetBIOS基礎(chǔ)之上的一個網(wǎng)絡(luò)傳輸協(xié)議。
2.IPX/SPX及其兼容協(xié)議
■IPX/SPX通信協(xié)議的特點。IPX/SPX(Internetwork Packet eXchange/Sequences Packet eXchange,網(wǎng)際包交換/順序包交換)是Novell公司的通信協(xié)議集。與NetBEUI的明顯區(qū)別是,IPX/SPX顯得比較龐大,在復(fù)雜環(huán)境下具有很強的適應(yīng)性。因為,IPX/SPX在設(shè)計一開始就考慮了多網(wǎng)段的問題,具有強大的路由功能,適合于大型網(wǎng)絡(luò)使用。當用戶端接入NetWare服務(wù)器時,IPX/SPX及其兼容協(xié)議是最好的選擇。但在非Novell網(wǎng)絡(luò)環(huán)境中,一般不使用IPX/SPX。尤其在Windows NT網(wǎng)絡(luò)和由Windows 95/98組成的對等網(wǎng)中,無法直接使用IPX/SPX通信協(xié)議。
■IPX/SPX協(xié)議的工作方式。IPX/SPX及其兼容協(xié)議不需要任何配置,它可通過“網(wǎng)絡(luò)地址”來識別自己的身份。Novell網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址由兩部分組成:標明物理網(wǎng)段的“網(wǎng)絡(luò)ID”和標明特殊設(shè)備的“節(jié)點ID”。其中網(wǎng)絡(luò)ID集中在NetWare服務(wù)器或路由器中,節(jié)點ID即為每個網(wǎng)卡的ID號(網(wǎng)卡卡號)。所有的網(wǎng)絡(luò)ID和節(jié)點ID都是一個獨一無二的“內(nèi)部IPX地址”。正是由于網(wǎng)絡(luò)地址的唯一性,才使IPX/SPX具有較強的路由功能。
在IPX/SPX協(xié)議中,IPX是NetWare最底層的協(xié)議,它只負責(zé)數(shù)據(jù)在網(wǎng)絡(luò)中的移動,并不保證數(shù)據(jù)是否傳輸成功,也不提供糾錯服務(wù)。IPX在負責(zé)數(shù)據(jù)傳送時,如果接收節(jié)點在同一網(wǎng)段內(nèi),就直接按該節(jié)點的ID將數(shù)據(jù)傳給它;如果接收節(jié)點是遠程的(不在同一網(wǎng)段內(nèi),或位于不同的局域網(wǎng)中),數(shù)據(jù)將交給NetWare服務(wù)器或路由器中的網(wǎng)絡(luò)ID,繼續(xù)數(shù)據(jù)的下一步傳輸。SPX在整個協(xié)議中負責(zé)對所傳輸?shù)臄?shù)據(jù)進行無差錯處理,所以我們將IPX/SPX也叫做“Novell的協(xié)議集”。
■NWLink通信協(xié)議。Windows NT中提供了兩個IPX/SPX的兼容協(xié)議:“NWLink SPX/SPX兼容協(xié)議”和“NWLink NetBIOS”,兩者統(tǒng)稱為“NWLink通信協(xié)議”。NWLink協(xié)議是Novell公司IPX/SPX協(xié)議在微軟網(wǎng)絡(luò)中的實現(xiàn),它在繼承IPX/SPX協(xié)議優(yōu)點的同時,更適應(yīng)了微軟的操作系統(tǒng)和網(wǎng)絡(luò)環(huán)境。Windows NT網(wǎng)絡(luò)和Windows 95/98的用戶,可以利用NWLink協(xié)議獲得NetWare服務(wù)器的服務(wù)。如果你的網(wǎng)絡(luò)從Novell環(huán)境轉(zhuǎn)向微軟平臺,或兩種平臺共存時,NWLink通信協(xié)議是最好的選擇。不過在使用NWLink協(xié)議時,其中“NWLink IPX/SPX兼容協(xié)議”類似于Windows 95/98中的“IPX/SPX兼容協(xié)議”,它只能作為客戶端的協(xié)議實現(xiàn)對NetWare服務(wù)器的訪問,離開了NetWare服務(wù)器,此兼容協(xié)議將失去作用;而“NWLink NetBIOS”協(xié)議不但可在NetWare服務(wù)器與Windows NT之間傳遞信息,而且能夠用于Windows NT、Windows 95/98相互之間任意通信。
3.TCP/IP協(xié)議
TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)是目前最常用到的一種通信協(xié)議,它是計算機世界里的一個通用協(xié)議。在局域網(wǎng)中,TCP/IP最早出現(xiàn)在Unix系統(tǒng)中,現(xiàn)在幾乎所有的廠商和操作系統(tǒng)都開始支持它。同時,TCP/IP也是Internet的基礎(chǔ)協(xié)議。
■TCP/IP通信協(xié)議的特點。TCP/IP具有很高的靈活性,支持任意規(guī)模的網(wǎng)絡(luò),幾乎可連接所有的服務(wù)器和工作站。但其靈活性也為它的使用帶來了許多不便,在使用NetBEUI和IPX/SPX及其兼容協(xié)議時都不需要進行配置,而TCP/IP協(xié)議在使用時首先要進行復(fù)雜的設(shè)置。每個節(jié)點至少需要一個“IP地址”、一個“子網(wǎng)掩碼”、一個“默認網(wǎng)關(guān)”和一個“主機名”。如此復(fù)雜的設(shè)置,對于一些初識網(wǎng)絡(luò)的用戶來說的確帶來了不便。不過,在Windows NT中提供了一個稱為動態(tài)主機配置協(xié)議(DHCP)的工具,它可自動為客戶機分配連入網(wǎng)絡(luò)時所需的信息,減輕了聯(lián)網(wǎng)工作上的負擔(dān),并避免了出錯。當然,DHCP所擁有的功能必須要有DHCP服務(wù)器才能實現(xiàn)。
同IPX/SPX及其兼容協(xié)議一樣,TCP/IP也是一種可路由的協(xié)議。但是,兩者存在著一些差別。TCP/IP的地址是分級的,這使得它很容易確定并找到網(wǎng)上的用戶,同時也提高了網(wǎng)絡(luò)帶寬的利用率。當需要時,運行TCP/IP協(xié)議的服務(wù)器(如Windows NT服務(wù)器)還可以被配置成TCP/IP路由器。與TCP/IP不同的是,IPX/SPX協(xié)議中的IPX使用的是一種廣播協(xié)議,它經(jīng)常出現(xiàn)廣播包堵塞,所以無法獲得最佳的網(wǎng)絡(luò)帶寬。
■Windows 95/98中的TCP/IP協(xié)議。Windows 95/98的用戶不但可以使用TCP/IP組建對等網(wǎng),而且可以方便地接入其它的服務(wù)器。值得注意的是,如果Windows 95/98工作站只安裝了TCP/IP協(xié)議,它是不能直接加入Windows NT域的。雖然該工作站可通過運行在Windows NT服務(wù)器上的服務(wù)器(如Proxy Server)來訪問Internet,但卻不能通過它登錄Windows NT服務(wù)器的域。如果要讓只安裝TCP/IP協(xié)議的Windows 95/98用戶加入到Windows NT域,還必須在Windows 95/98上安裝NetBEUI協(xié)議。 轉(zhuǎn)貼于
■TCP/IP協(xié)議在局域網(wǎng)中的配置。在提到TCP/IP協(xié)議時,有許多用戶便被其復(fù)雜的描述和配置所困擾,而不敢放心地去使用。其實就局域網(wǎng)用戶來說,只要你掌握了一些有關(guān)TCP/IP方面的知識,使用起來也非常方便。
IP地址基礎(chǔ)知識。前面在談到IPX/SPX協(xié)議時就已知道,IPX的地址由“網(wǎng)絡(luò)ID”(NetWork ID)和“節(jié)點ID”(Node ID)兩部分組成,IPX/SPX協(xié)議是靠IPX地址來進行網(wǎng)上用戶的識別的。同樣,TCP/IP協(xié)議也是靠自己的IP地址來識別在網(wǎng)上的位置和身份的,IP地址同樣由“網(wǎng)絡(luò)ID”和“節(jié)點ID”(或稱HOST ID,主機地址)兩部分組成。一個完整的IP地址用32位(bit)二進制數(shù)組成,每8位(1個字節(jié))為一個段(Segment),共4段(Segment1~Segment4),段與段之間用“.”號隔開。為了便于應(yīng)用,IP地址在實際使用時并不直接用二進制,而是用大家熟悉的十進制數(shù)表示,如192.168.0.1等。IP地址的完整組成:“網(wǎng)絡(luò)ID”和“節(jié)點ID”都包含在32位二進制數(shù)中。目前,IP地址主要分為A、B、C三類(除此之外,還存在D和E兩類地址,現(xiàn)在局域網(wǎng)中這兩類地址基本不用,故本文暫且不涉及),A類用于大型網(wǎng)絡(luò),B類用于中型網(wǎng)絡(luò),C類一般用于局域網(wǎng)等小型網(wǎng)絡(luò)中。其中,A類地址中的最前面一段Segment1用來表示“網(wǎng)絡(luò)ID”,且Segment1的8位二進制數(shù)中的第一位必須是“0”。其余3段表示“節(jié)點ID”;B類地址中,前兩段用來表示“網(wǎng)絡(luò)ID”,且Segment1的8位二進制數(shù)中的前二位必須是“10”。后兩段用來表示“節(jié)點ID”;在C類地址中,前三段表示“網(wǎng)絡(luò)ID”,且Segment1的8位二進制數(shù)中的前三位必須是“110”。最后一段Segment4用來表示“節(jié)點ID”。
值得一提的是,IP地址中的所有“網(wǎng)絡(luò)ID”都要向一個名為InterNIC(Internet Network Information Center,互聯(lián)網(wǎng)絡(luò)信息中心)申請,而“節(jié)點ID”可以自由分配。目前可供使用的IP地址只有C類,A類和B類的資源均已用盡。不過在選用IP地址時,總的原則是:網(wǎng)絡(luò)中每個設(shè)備的IP地址必須唯一,在不同的設(shè)備上不允許出現(xiàn)相同的IP地址。表1列出了IP地址中的“網(wǎng)絡(luò)ID”的有關(guān)屬性,“節(jié)點ID”在互不重復(fù)的情況下由用戶自由分配。其實,將IP地址進行分類,主要是為了滿足網(wǎng)絡(luò)的互聯(lián)。如果你的網(wǎng)絡(luò)是一個封閉式的網(wǎng)絡(luò),只要在保證每個設(shè)備的IP地址唯一的前提下,三類地址中的任意一個都可以直接使用(為以防萬一,你還是老老實實地使用C類IP地址為好)。
子網(wǎng)掩碼。對IP地址的解釋稱之為子網(wǎng)掩碼。從名稱可以看出,子網(wǎng)掩碼是用于對子網(wǎng)的管理,主要是在多網(wǎng)段環(huán)境中對IP地址中的“網(wǎng)絡(luò)ID”進行擴展。舉個例子來說明:例如某個節(jié)點的IP地址為192.168.0.1,它是一個C類網(wǎng)。其中前面三段共24位用來表示“網(wǎng)絡(luò)ID”,是非常珍貴的資源;而最后一段共8位可以作為“節(jié)點ID”自由分配。但是,如果公司的局域網(wǎng)是分段管理的,或者該網(wǎng)絡(luò)是由多個局域網(wǎng)互聯(lián)而成,是否要給每個網(wǎng)段或每個局域網(wǎng)都申請分配一個“網(wǎng)絡(luò)ID”呢?這顯然是不合理的。此時,我們可以使用子網(wǎng)掩碼的功能,將其中一個或幾個節(jié)點的IP地址全部充當成“網(wǎng)絡(luò)ID”來使用,用來擴展“網(wǎng)絡(luò)ID”不足的困難。
當我們將某一節(jié)點的IP地址如192.168.0.1已設(shè)置成一個“網(wǎng)絡(luò)ID”時,網(wǎng)絡(luò)上的其它設(shè)備又怎樣知道它是一個“網(wǎng)絡(luò)ID”,而不是一個節(jié)點IP地址呢?這就要靠子網(wǎng)掩碼來告知。子網(wǎng)掩碼是這樣做的:如果某一位的二進制數(shù)是“1”,它就知道是“網(wǎng)絡(luò)ID”的一部分;如果是“0”便認作是“節(jié)點ID”的一部分。如將192.168.0.1當做“網(wǎng)絡(luò)ID”時,其子網(wǎng)掩碼就是11111111.11111111.11111111.00000001,對應(yīng)的十進制數(shù)表示為255.255.255.1。否則它的子網(wǎng)掩碼就是11111111.11111111.11111111.00000000,對應(yīng)的十進制數(shù)表示應(yīng)為255.255.255.0。有了子網(wǎng)掩碼,便可方便地實現(xiàn)用戶跨網(wǎng)段或跨網(wǎng)絡(luò)操作。不過,為了讓子網(wǎng)掩碼能夠正常工作,同一子網(wǎng)中的所有設(shè)備都必須支持子網(wǎng)掩碼,且子網(wǎng)掩碼相同。表2列出了A、B、C三類網(wǎng)絡(luò)的缺省子網(wǎng)掩碼。
網(wǎng)關(guān)。網(wǎng)關(guān)(Gateway)是用來連接異種網(wǎng)絡(luò)的設(shè)置。它充當了一個翻譯的身份,負責(zé)對不同的通信協(xié)議進行翻譯,使運行不同協(xié)議的兩種網(wǎng)絡(luò)之間可以實現(xiàn)相互通信。如運行TCP/IP協(xié)議的Windows NT用戶要訪問運行IPX/SPX協(xié)議的Novell網(wǎng)絡(luò)資源時,則必須由網(wǎng)關(guān)作為中介。如果兩個運行TCP/IP協(xié)議的網(wǎng)絡(luò)之間進行互聯(lián),則可以使用Windows NT所提供的“默認網(wǎng)關(guān)”(Default Gateway)來完成。網(wǎng)關(guān)的地址該如何分配呢?可舉一個例子來回答:假如A網(wǎng)絡(luò)的用戶要訪問B網(wǎng)絡(luò)上的資源,必須在A網(wǎng)絡(luò)中設(shè)置一個網(wǎng)關(guān),該網(wǎng)關(guān)的地址應(yīng)為B網(wǎng)絡(luò)的“網(wǎng)絡(luò)ID”(一般可理解為B網(wǎng)絡(luò)服務(wù)器的IP地址)。當A網(wǎng)絡(luò)的用戶同時還要訪問C網(wǎng)絡(luò)的資源時又該怎么呢?你只需將C網(wǎng)絡(luò)的“網(wǎng)絡(luò)ID”添加到A網(wǎng)絡(luò)的網(wǎng)關(guān)中即可。依次類推……網(wǎng)關(guān)連多少個網(wǎng)絡(luò),就擁有多少個IP地址。
主機名。網(wǎng)絡(luò)中唯一能夠代表用戶或設(shè)備身份的只有IP地址。但一般情況下,眾多的IP地址不容易記憶,操作起來也不方便。為了改善這種狀況,我們可給予每個用戶或設(shè)備一個有意義的名稱,如“WANGQUN”。至于在網(wǎng)絡(luò)中用到“WANGQUN”時,怎樣知道其對應(yīng)的IP地址呢?這完全由操作系統(tǒng)自己完成,我們大可不必考慮。
三、通信協(xié)議的安裝、設(shè)置和測試
局域網(wǎng)中的一些協(xié)議,在安裝操作系統(tǒng)時會自動安裝。如在安裝Windows NT或Windows 95/98時,系統(tǒng)會自動安裝NetBEUI通信協(xié)議。在安裝NetWare時,系統(tǒng)會自動安裝IPX/SPX通信協(xié)議。其中三種協(xié)議中,NetBEUI和IPX/SPX在安裝后不需要進行設(shè)置就可以直接使用,但TCP/IP要經(jīng)過必要的設(shè)置。所以下文主要以Windows NT環(huán)境下的TCP/IP協(xié)議為主,介紹其安裝、設(shè)置和測試方法,其他操作系統(tǒng)中協(xié)議的有關(guān)操作與Windows NT基本相同,甚至更為簡單。
■TCP/IP通信協(xié)議的安裝。在Windows NT中,如果未安裝有TCP/IP通信協(xié)議,可選擇“開始/設(shè)置/控制面板/網(wǎng)絡(luò)”,將出現(xiàn)“網(wǎng)絡(luò)”對話框,選擇對話框中的“協(xié)議/添加”,選取其中的TCP/IP協(xié)議,然后單擊“確定”按鈕。系統(tǒng)會詢問你是否要進行“DHCP服務(wù)器”的設(shè)置?如果你的IP地址是固定的(一般是這樣),可選擇“否”。隨后,系統(tǒng)開始從安裝盤中復(fù)制所需的文件。
■TCP/IP通信協(xié)議的設(shè)置。在“網(wǎng)絡(luò)”對話框中選擇已安裝的TCP/IP協(xié)議,打開其“屬性”,在指定的位置輸入已分配好的“IP地址”和“子網(wǎng)掩碼”。如果該用戶還要訪問其它Widnows NT網(wǎng)絡(luò)的資源,還可以在“默認網(wǎng)關(guān)”處輸入網(wǎng)關(guān)的地址。
■TCP/IP通信協(xié)議的測試。當TCP/IP協(xié)議安裝并設(shè)置結(jié)束后,為了保證其能夠正常工作,在使用前一定要進行測試。筆者建議大家使用系統(tǒng)自帶的工具程序:PING.EXE,該工具可以檢查任何一個用戶是否與同一網(wǎng)段的其他用戶連通,是否與其他網(wǎng)段的用戶連接正常,同時還能檢查出自己的IP地址是否與其他用戶的IP地址發(fā)生沖突。假如服務(wù)器的IP地址為192.168.0.1,如要測試你的機器是否與服務(wù)器接通時,只需切換到DOS提示符下,并鍵入命令“PING 192.168.0.1”即可。如果出現(xiàn)類似于“Reply from 192.168.0.1……”的回應(yīng),說明TCP/IP協(xié)議工作正常;如果顯示類似于“Request timed out”的信息,說明雙方的TCP/IP協(xié)議的設(shè)置可能有錯,或網(wǎng)絡(luò)的其它連接(如網(wǎng)卡、HUB或連線等)有問題,還需進一步檢查。
四、小結(jié)
在組建局域網(wǎng)時,具體選擇哪一種網(wǎng)絡(luò)通信協(xié)議主要取決于網(wǎng)絡(luò)規(guī)模、網(wǎng)絡(luò)間的兼容性和網(wǎng)絡(luò)管理幾個方面。如果正在組建一個小型的單網(wǎng)段的網(wǎng)絡(luò),并且對外沒有連接的需要,這時最好選擇NetBEUI通信協(xié)議。如果你正從NetWare遷移到Windows NT,或兩種平臺共存時,IPX/SPX及其兼容協(xié)議可提供一個很好的傳輸環(huán)境。如果你正在規(guī)劃一個高效率、可互聯(lián)性和可擴展性的網(wǎng)絡(luò),TCP/IP則將是理想的選擇。
參考文獻
[1]阮家棟 俞麗和 《微型計算機網(wǎng)絡(luò)原理及應(yīng)用》 北京 中國紡織大學(xué)出版社 1995
[2]瞿 坦 《計算機網(wǎng)絡(luò)及應(yīng)用》 北京 化學(xué)工業(yè)出版社 2002
【關(guān)鍵詞】計算機網(wǎng)絡(luò);通信協(xié)議;TCP/IP;SMTP
一、計算機網(wǎng)絡(luò)通信協(xié)議概述
1.通信協(xié)議概念。網(wǎng)絡(luò)通信協(xié)議(Network Communication Protocol),通常簡稱為網(wǎng)絡(luò)協(xié)議(Network Protocol),就是對計算機之間通信的信息格式、能被收/發(fā)雙方接受的傳送信息內(nèi)容的一組定義。
2.網(wǎng)絡(luò)協(xié)議的分類。網(wǎng)絡(luò)協(xié)議是一種特殊的軟件,是計算機網(wǎng)絡(luò)實現(xiàn)其功能的最基本機制。網(wǎng)絡(luò)協(xié)議的本質(zhì)是規(guī)則,即各種硬件和軟件必須遵循的共同守則。但網(wǎng)絡(luò)協(xié)議又不是一套單獨的軟件,它通常融合在其他軟件系統(tǒng)中。網(wǎng)絡(luò)協(xié)議遍及OSI通信模型的各個層次,從我們非常熟悉TCP/IP、HTTP、FTP協(xié)議,到OSPF、IGP等高級路由協(xié)議都可以認為是網(wǎng)絡(luò)協(xié)議,有上千種之多。在所有常用的網(wǎng)絡(luò)協(xié)議中,又可以分常用的基礎(chǔ)型協(xié)議和常用的應(yīng)用型協(xié)議。TCP/IP、IPX/SPX、NetBEUI屬于常用的基礎(chǔ)型協(xié)議;而HTTP、PPP、FTP則屬于常用的應(yīng)用型協(xié)議?;A(chǔ)型協(xié)議用來提供網(wǎng)絡(luò)連接服務(wù),它在網(wǎng)絡(luò)連接和通信活動中必不可少;應(yīng)用型協(xié)議對于網(wǎng)絡(luò)來說不是必需的,而是在具體應(yīng)用到網(wǎng)絡(luò)服務(wù)時才需要。
3.網(wǎng)絡(luò)協(xié)議的作用與組成。網(wǎng)絡(luò)協(xié)議所起的主要作用和所適用的應(yīng)用環(huán)境各不相同,有的是專用的,如IPX/SPX就專用于Novell公司的NetWare操作系統(tǒng),而NetBEUI協(xié)議則專用于微軟公司的Windows系統(tǒng);有的則是通用的(當然是相對的),如TCP/IP協(xié)議就適用于幾乎所有的系統(tǒng)和應(yīng)用環(huán)境。在這么多的網(wǎng)絡(luò)協(xié)議中,一般網(wǎng)絡(luò)用戶只需要著重掌握幾種常用和主要的協(xié)議即可。網(wǎng)絡(luò)協(xié)議包括語義、語法和時序三個組成部分。語義是對協(xié)議元素的含義進行解釋,不同類型的協(xié)議元素所規(guī)定的語義是不同的。語法是將若干個協(xié)議元素和數(shù)據(jù)組合在一起用來表達一個完整的內(nèi)容所應(yīng)遵循的格式,也就是對信息的數(shù)據(jù)結(jié)構(gòu)做一種規(guī)定。而時序是對事件實現(xiàn)順序的詳細說明。
二、TCP/IP協(xié)議族
TCP/IP協(xié)議族從字面上理解只有兩個協(xié)議:TCP協(xié)議和IP協(xié)議,而事實上它是一個協(xié)議集合,而TCP和IP協(xié)議是協(xié)議族中最基本的最重要的兩個協(xié)議。
1.IP協(xié)議。(1)IPv4協(xié)議。IPv4協(xié)議運行在網(wǎng)絡(luò)層上,可實現(xiàn)異構(gòu)的網(wǎng)絡(luò)之間的互連互通。它是一種不可靠、無連接的協(xié)議。IPv4定義了在整個TCP/IP互聯(lián)網(wǎng)上數(shù)據(jù)傳輸所用的基本單元,規(guī)定了互聯(lián)網(wǎng)上傳輸數(shù)據(jù)的確切格式;IP軟件完成路由選擇的功能,選擇一個數(shù)據(jù)發(fā)送的路徑;除了數(shù)據(jù)格式和路由選擇精確而正式的定義之外,還包括一組不可靠分組傳送思想的規(guī)則。IP協(xié)議是TCP/IP互聯(lián)網(wǎng)設(shè)計中最基本的部分。(2)IPv6協(xié)議?;ヂ?lián)網(wǎng)發(fā)展到當前的規(guī)模,IPv4協(xié)議的建立功不可沒。但是同時它的缺點也充分顯現(xiàn)出來,如地址空間耗盡、路由表急劇膨脹、缺乏對QoS的支持、移動性差等。盡管采用了許多新的機制來緩解這些問題,如DHCP技術(shù)、NAT技術(shù)等,但問題沒有得到根本解決。終于在1995年12月,IPv6協(xié)議誕生,該協(xié)議全稱“互聯(lián)網(wǎng)協(xié)議第6版”,即下一代的網(wǎng)際協(xié)議。相對于IPv4來說,其特點主要有以下兩點,首先,講IPv4的32位IP地址擴大到了128位;另外,在IPv6數(shù)據(jù)報的首部格式中,用固定格式的擴展首部取代了IPv4中可變長的選項字段。
2.TCP協(xié)議。TCP用于在不可靠的互聯(lián)網(wǎng)上提供可靠的端到端字節(jié)流傳輸服務(wù)。在一個TCP連接中,僅有兩方進行彼此通信。TCP的功能是:TCP把發(fā)送端試題要求發(fā)送的數(shù)據(jù)流分割成適當長度的數(shù)據(jù)段,然后傳給IP層,再由IP層通過網(wǎng)絡(luò)接口層將包傳送給接收端主機。接收端主機接受到數(shù)據(jù)后,會將數(shù)據(jù)一路上傳給制定的接收端實體。
3.SMTP協(xié)議。SMTP協(xié)議又稱為簡單郵件傳輸協(xié)議,是在應(yīng)用層的協(xié)議。主要對如何將電子郵件從發(fā)送方傳送到接收方,即對傳輸?shù)囊?guī)則做了規(guī)定。SMTP協(xié)議的通信模型并不復(fù)雜,主要工作集中在發(fā)送SMTP和接受SMTP上:首先針對用戶發(fā)出的郵件請求,建立發(fā)送SMTP(發(fā)送方)到接受SMTP(接收方)的雙工通信鏈路,接收方是相對于發(fā)送方而言,實際上它既可以是最終的接受者也可以是中間傳送者。發(fā)送方負責(zé)向接收方發(fā)送SMTP命令,接收方負責(zé)接受并反饋應(yīng)答。
上面只簡單的介紹了幾種通信協(xié)議,還有很多協(xié)議值得研究,如有數(shù)據(jù)鏈路層的CSMA/CD協(xié)議,應(yīng)用層的FPT、HTTP和DNS協(xié)議等。就是在這些許許多多的通信協(xié)議的共同作用下,才能確保網(wǎng)絡(luò)通信的正常。
參考文獻
調(diào)光系統(tǒng)的應(yīng)用需要通過通信接口將信息傳送給燈具。常用的一種方法是使用0~10V的模擬控制。但是,如果有很多燈具需要設(shè)置和管理,這種方法就不方便了。
數(shù)字照明控制
使用數(shù)字控制系統(tǒng),通過將照明燈具包含在一個公共的、可尋址的網(wǎng)絡(luò)中,可以減輕某些模擬控制的復(fù)雜度。MCU技術(shù)低廉的價格使得在應(yīng)用中嵌入一種數(shù)字協(xié)議變得非常簡單。有許多種有線和無線的選擇可以使用在照明控制應(yīng)用中。那么,選擇哪一種呢?
首先,設(shè)計人員要選擇協(xié)議的媒介――有線還是無線?如果選擇有線,那么我們應(yīng)該使用雙絞線還是電力線?如果選擇無線,那么我們應(yīng)該選擇哪個頻段?對于有線和無線的設(shè)備,最大的通信距離是多少?
此外還必須考慮協(xié)議的應(yīng)用層。我們可以與多少部燈具進行通信?有設(shè)計專門用于照明的指令集嗎?如何在網(wǎng)絡(luò)中添加或者刪除燈具,如何確定每部燈具的地址?在喪失通信或者供電中斷之后,每部燈具會做出怎樣的反應(yīng)?照明安裝人員安裝和配置控制系統(tǒng)的難易程度如何?
可以使用已得到廣泛應(yīng)用的協(xié)議,比如TCP/IP或者IEEE 802.11,但是需要傳送給每部燈具的數(shù)據(jù)量非常少而且不是頻繁出現(xiàn)。因而我們就需要不時地發(fā)送打開、關(guān)閉或亮度信息。因此,明智的做法是選擇一種簡單的協(xié)議來緩解對每臺燈具中MCU的要求。
因此,我們討論可能適用于照明控制的兩種協(xié)議,第一個是“數(shù)字可尋址照明接口(DALI)”,它定義在IEC60929規(guī)范中,后者定義了電子熒光鎮(zhèn)流器的性能規(guī)范。
DALI組網(wǎng)方法
DALI規(guī)范定義了一種恒定電流總線,它的最大電流是250mA,標稱電壓是16V。每臺設(shè)備都通過使用光隔離器電路拉低總線電流(匯電流)的方法向總線發(fā)送數(shù)據(jù)。線路可以位于導(dǎo)線管的內(nèi)部或者外部,而且連接是與極性無關(guān)的,這簡化了安裝人員的操作。所有燈具的線路都使用星型或者鏈型的連接接在一起,且使用不間斷交流電源為每部燈具供電。
DALI協(xié)議非常簡單,但它有一套專門為照明裝置設(shè)計的強大指令集。數(shù)據(jù)通過Manchester格式以1200b/s的速率進行傳遞――該速度足夠滿足照明裝置的應(yīng)用?;镜膮f(xié)議定義包括單個主設(shè)備(控制器)以及多達64臺受控設(shè)備(鎮(zhèn)流器)。主設(shè)備發(fā)出16位的命令或者請求。鎮(zhèn)流器設(shè)備可以選擇返回8位的響應(yīng)。只有在控制設(shè)備發(fā)出請求的情況下,鎮(zhèn)流器設(shè)備才能夠向總線發(fā)送數(shù)據(jù)。
控制設(shè)備可以包括控制面板、開關(guān)、光傳感器、占位傳感器等。每個控制器可以直接向鎮(zhèn)流器設(shè)備或者另一個控制器發(fā)送消息。例如,某個占位傳感器(控制設(shè)備)可能需要向主控制面板發(fā)送消息,表明房間內(nèi)有活動。
任何照明控制系統(tǒng)都需要一種通過中央計算機設(shè)置節(jié)點地址和位置的方式,但是DAM在安裝過程中不需要任何設(shè)置。節(jié)點可以依照任意次序進行添加。指令集包含了一種自動探測、辨別以及向網(wǎng)絡(luò)中每臺鎮(zhèn)流器設(shè)備指派地址的方法。
你可能認為DALI控制64臺鎮(zhèn)流器設(shè)備的能力是有局限性的,但正是這一局限性可以大大降低購買軟件的開銷并且也將硬件的使用要求保持在很低水平。完整的協(xié)議可以在非常廉價的8位MCU上實現(xiàn),該MCU帶有不超過8KB的程序存儲,且沒有特殊通信部件。
鎮(zhèn)流器設(shè)備的常見實現(xiàn)方法如圖1所示。20引腳、8位的MCU帶有一個用于調(diào)節(jié)輸入信號的比較器,以及控制鎮(zhèn)流器亮度級別的PWM。如果需要,這個信號可以經(jīng)過過濾向鎮(zhèn)流器電源電路提供控制電壓。
ZigBee無線解決方案
最近有很多關(guān)于ZigBee無線通信協(xié)議的討論。實際上,ZigBee是基于IEEE 802.15.4規(guī)范所定義的另一無線協(xié)議的一個軟件層。
IEEE 802.15.4定義了多頻段、低數(shù)據(jù)率無線通信的物理層和媒體訪問層。最常用的頻段是2.4GHz,它的最大數(shù)據(jù)速率是250KB/s。
最大的通信距離取決干物理環(huán)境,但是通信距離長達250英尺是可能的。IEEE 802.15.4也定義了一種全功能設(shè)備(FFD)和一種精簡功能設(shè)備(RFD)。FFD用于連續(xù)電源供應(yīng),而且始終可在網(wǎng)絡(luò)中使用。RFD允許在電池供電、功率消耗要求低的節(jié)點進行備用運轉(zhuǎn)。更高層次的協(xié)議,比如ZigBee,基于IEEE802.15.4規(guī)范可提供應(yīng)用層的功能。
ZigB ee協(xié)議提供了創(chuàng)建多達65536個節(jié)點的自組織、低數(shù)據(jù)率網(wǎng)狀網(wǎng)絡(luò)的功能。存在著不同的ZigBee節(jié)點類型。每個網(wǎng)絡(luò)都有一個位標器,它包含了網(wǎng)絡(luò)中所有設(shè)備的信息,形成網(wǎng)絡(luò),并向終端設(shè)備分配地址。終端設(shè)備接收控制輸入并提供狀態(tài)信息。網(wǎng)絡(luò)上的設(shè)備可以選擇承擔(dān)路由器的功能,它將擴展最大通信距離。
ZigBee最主要的優(yōu)勢之一在于,它保證了與其他設(shè)備之間的互操作性。所有的ZigBee產(chǎn)品都必須經(jīng)過測試和鑒定,而且存在標準的控制配置文件,包括一份用于照明的配置文件。
這些配置文件定義了用于應(yīng)用的基本數(shù)據(jù)結(jié)構(gòu),但是不存在指令集,對于該應(yīng)用如何使用數(shù)據(jù)將由開發(fā)人員來決定。例如,ZigBee照明配置文件包括了一張表格,表格中的標準變量存放著照明亮度傳感器、占位傳感器、燈具照明亮度等狀態(tài)。
典型的ZigBee網(wǎng)絡(luò)節(jié)點(參見圖2)由一個2.4GHz的802.15.4收發(fā)器和一個MCU組成。所實現(xiàn)的ZigBee節(jié)點類型將決定協(xié)議棧所需要的代碼空間,從RFD終端設(shè)備需要的20KB到全功能位標器所需要的40KB。
關(guān)鍵詞:計算機網(wǎng)絡(luò)通信協(xié)議
0引言
本文就計算機網(wǎng)絡(luò)通信協(xié)議、選擇網(wǎng)絡(luò)通信協(xié)議的原則、TCP/IP通信協(xié)議的安裝、設(shè)置和測試等,作進一步的研究和探討。
1網(wǎng)絡(luò)通信協(xié)議
目前,局域網(wǎng)中常用的通信協(xié)議主要有:NetBEUI協(xié)議、IPX/SPX兼容協(xié)議和TCP/IP協(xié)議。
1.1NetBEUI協(xié)議①NetBEUI是一種體積小、效率高、速度快的通信協(xié)議。在微軟如今的主流產(chǎn)品,在Windows和WindowsNT中,NetBEUI已成為其固有的缺省協(xié)議。NetBEUI是專門為幾臺到百余臺PC所組成的單網(wǎng)段部門級小型局域網(wǎng)而設(shè)計的。②NetBEUI中包含一個網(wǎng)絡(luò)接口標準NetBIOS。NetBIOS是IBM用于實現(xiàn)PC間相互通信的標準,是一種在小型局域網(wǎng)上使用的通信規(guī)范。該網(wǎng)絡(luò)由PC組成,最大用戶數(shù)不超過30個。
1.2IPX/SPX及其兼容協(xié)議①IPX/SPX是Novell公司的通信協(xié)議集。與NetBEUI的明顯區(qū)別是,IPX/SPX顯得比較龐大,在復(fù)雜環(huán)境下具有很強的適應(yīng)性。因為,IPX/SPX在設(shè)計一開始就考慮了多網(wǎng)段的問題,具有強大的路由功能,適合于大型網(wǎng)絡(luò)使用。②IPX/SPX及其兼容協(xié)議不需要任何配置,它可通過“網(wǎng)絡(luò)地址”來識別自己的身份。Novell網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址由兩部分組成:標明物理網(wǎng)段的“網(wǎng)絡(luò)ID”和標明特殊設(shè)備的“節(jié)點ID”。其中網(wǎng)絡(luò)ID集中在NetWare服務(wù)器或路由器中,節(jié)點ID即為每個網(wǎng)卡的ID號。所有的網(wǎng)絡(luò)ID和節(jié)點ID都是一個獨一無二的“內(nèi)部IPX地址”。正是由于網(wǎng)絡(luò)地址的唯一性,才使IPX/SPX具有較強的路由功能。在IPX/SPX協(xié)議中,IPX是NetWare最底層的協(xié)議,它只負責(zé)數(shù)據(jù)在網(wǎng)絡(luò)中的移動,并不保證數(shù)據(jù)是否傳輸成功,也不提供糾錯服務(wù)。IPX在負責(zé)數(shù)據(jù)傳送時,如果接收節(jié)點在同一網(wǎng)段內(nèi),就直接按該節(jié)點的ID將數(shù)據(jù)傳給它;如果接收節(jié)點是遠程的,數(shù)據(jù)將交給NetWare服務(wù)器或路由器中的網(wǎng)絡(luò)ID,繼續(xù)數(shù)據(jù)的下一步傳輸。SPX在整個協(xié)議中負責(zé)對所傳輸?shù)臄?shù)據(jù)進行無差錯處理,IPX/SPX也叫做“Novell的協(xié)議集”。③NWLink通信協(xié)議。WindowsNT中提供了兩個IPX/SPX的兼容協(xié)議:“NWLinkSPX/SPX兼容協(xié)議”和“NWLinkNetBIOS”,兩者統(tǒng)稱為“NWLink通信協(xié)議”。NWLink協(xié)議是Novell公司IPX/SPX協(xié)議在微軟網(wǎng)絡(luò)中的實現(xiàn),它在繼承IPX/SPX協(xié)議優(yōu)點的同時,更適應(yīng)了微軟的操作系統(tǒng)和網(wǎng)絡(luò)環(huán)境。WindowsNT網(wǎng)絡(luò)和Windows的用戶,可以利用NWLink協(xié)議獲得NetWare服務(wù)器的服務(wù)。從Novell環(huán)境轉(zhuǎn)向微軟平臺,或兩種平臺共存時,NWLink通信協(xié)議是最好的選擇。
1.3TCP/IP協(xié)議TCP/IP是目前最常用到的一種通信協(xié)議,它是計算機世界里的一個通用協(xié)議。在局域網(wǎng)中,TCP/IP最早出現(xiàn)在Unix系統(tǒng)中,現(xiàn)在幾乎所有的廠商和操作系統(tǒng)都開始支持它。同時,TCP/IP也是Internet的基礎(chǔ)協(xié)議。①TCP/IP具有很高的靈活性,支持任意規(guī)模的網(wǎng)絡(luò),幾乎可連接所有的服務(wù)器和工作站。但其靈活性也為它的使用帶來了許多不便,在使用NetBEUI和IPX/SPX及其兼容協(xié)議時都不需要進行配置,而TCP/IP協(xié)議在使用時首先要進行復(fù)雜的設(shè)置。每個節(jié)點至少需要一個“IP地址”、一個“子網(wǎng)掩碼”、一個“默認網(wǎng)關(guān)”和一個“主機名”。在WindowsNT中提供了一個稱為動態(tài)主機配置協(xié)議(DHCP)的工具,它可自動為客戶機分配連入網(wǎng)絡(luò)時所需的信息,減輕了聯(lián)網(wǎng)工作上的負擔(dān),并避免了出錯。同IPX/SPX及其兼容協(xié)議一樣,TCP/IP也是一種可路由的協(xié)議。TCP/IP的地址是分級的,這使得它很容易確定并找到網(wǎng)上的用戶,同時也提高了網(wǎng)絡(luò)帶寬的利用率。當需要時,運行TCP/IP協(xié)議的服務(wù)器(如WindowsNT服務(wù)器)還可以被配置成TCP/IP路由器。與TCP/IP不同的是,IPX/SPX協(xié)議中的IPX使用的是一種廣播協(xié)議,它經(jīng)常出現(xiàn)廣播包堵塞,所以無法獲得最佳的網(wǎng)絡(luò)帶寬。②Windows中的TCP/IP協(xié)議。Windows的用戶不但可以使用TCP/IP組建對等網(wǎng),而且可以方便地接入其它的服務(wù)器。如果Windows工作站只安裝了TCP/IP協(xié)議,它是不能直接加入WindowsNT域的。雖然該工作站可通過運行在WindowsNT服務(wù)器上的服務(wù)器(如ProxyServer)來訪問Internet,但卻不能通過它登錄WindowsNT服務(wù)器的域。要讓只安裝TCP/IP協(xié)議的Windows用戶加入到WindowsNT域,還必須在Windows上安裝NetBEUI協(xié)議。
③TCP/IP協(xié)議在局域網(wǎng)中的配置。只要掌握了一些有關(guān)TCP/IP方面的知識,使用起來也非常方便。④IP地址。TCP/IP協(xié)議也是靠自己的IP地址來識別在網(wǎng)上的位置和身份的,IP地址同樣由“網(wǎng)絡(luò)ID”和“節(jié)點ID”(或稱HOSTID,主機地址)兩部分組成。一個完整的IP地址用32位(bit)二進制數(shù)組成,每8位(1個字節(jié))為一個段(Segment),共4段(Segment1~Segment4),段與段之間用“,”號隔開。為了便于應(yīng)用,IP地址在實際使用時并不直接用二進制,而是用大家熟悉的十進制數(shù)表示,如192.168.0.1等。在選用IP地址時,總的原則是:網(wǎng)絡(luò)中每個設(shè)備的IP地址必須唯一,在不同的設(shè)備上不允許出現(xiàn)相同的IP地址。⑤子網(wǎng)掩碼。子網(wǎng)掩碼是用于對子網(wǎng)的管理,主要是在多網(wǎng)段環(huán)境中對IP地址中的“網(wǎng)絡(luò)ID”進行擴展。例如某個節(jié)點的IP地址為192.168.0.1,它是一個C類網(wǎng)。其中前面三段共24位用來表示“網(wǎng)絡(luò)ID”;而最后一段共8位可以作為“節(jié)點ID”自由分配。⑥網(wǎng)關(guān)。網(wǎng)關(guān)(Gateway)是用來連接異種網(wǎng)絡(luò)的設(shè)置。它充當了一個翻譯的身份,負責(zé)對不同的通信協(xié)議進行翻譯,使運行不同協(xié)議的兩種網(wǎng)絡(luò)之間可以實現(xiàn)相互通信。如運行TCP/IP協(xié)議的WindowsNT用戶要訪問運行IPX/SPX協(xié)議的Novell網(wǎng)絡(luò)資源時,則必須由網(wǎng)關(guān)作為中介。如果兩個運行TCP/IP協(xié)議的網(wǎng)絡(luò)之間進行互聯(lián),則可以使用WindowsNT所提供的“默認網(wǎng)關(guān)”(DefaultGateway)來完成。⑦主機名。網(wǎng)絡(luò)中唯一能夠代表用戶或設(shè)備身份的只有IP地址。但一般情況下,眾多的IP地址不容易記憶,操作起來也不方便。為了改善這種狀況,我們可給予每個用戶或設(shè)備一個有意義的名稱,如“HAOYUN”。
2選擇網(wǎng)絡(luò)通信協(xié)議的原則
2.1所選協(xié)議要與網(wǎng)絡(luò)結(jié)構(gòu)和功能相一致。如你的網(wǎng)絡(luò)存在多個網(wǎng)段或要通過路由器相連時,就不能使用不具備路由和跨網(wǎng)段操作功能的NetBEUI協(xié)議,而必須選擇IPX/SPX或TCP/IP等協(xié)議。另外,如果你的網(wǎng)絡(luò)規(guī)模較小,同時只是為了簡單的文件和設(shè)備的共享,這時你最關(guān)心的就是網(wǎng)絡(luò)速度,所以在選擇協(xié)議時應(yīng)選擇占用內(nèi)存小和帶寬利用率高的協(xié)議,如NetBEUI。當你的網(wǎng)絡(luò)規(guī)模較大,且網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜時,應(yīng)選擇可管理性和可擴充性較好的協(xié)議,如TCP/IP。
2.2除特殊情況外,一個網(wǎng)絡(luò)盡量只選擇一種通信協(xié)議?,F(xiàn)實中許多人的做法是一次選擇多個協(xié)議,或選擇系統(tǒng)所提供的所有協(xié)議,其實這樣做是很不可取的。因為每個協(xié)議都要占用計算機的內(nèi)存,選擇的協(xié)議越多,占用計算機的內(nèi)存資源就越多。一方面影響了計算機的運行速度,另一方面不利于網(wǎng)絡(luò)的管理。事實上一個網(wǎng)絡(luò)中一般一種通信協(xié)議就可以滿足需要。
2.3注意協(xié)議的版本。每個協(xié)議都有它的發(fā)展和完善過程,因而出現(xiàn)了不同的版本,每個版本的協(xié)議都有它最為合適的網(wǎng)絡(luò)環(huán)境。從整體來看,高版本協(xié)議的功能和性能要比低版本好。所以在選擇時,在滿足網(wǎng)絡(luò)功能要求的前提下,應(yīng)盡量選擇高版本的通信協(xié)議。
2.4協(xié)議的一致性。如果要讓兩臺實現(xiàn)互聯(lián)的計算機間進行對話,它們兩者使用的通信協(xié)議必須相同。否則中間還需要一個“翻譯”進行不同協(xié)議的轉(zhuǎn)換,這樣不僅影響通信速度,同時也不利于網(wǎng)絡(luò)的安全和穩(wěn)定運行。
3TCP/IP通信協(xié)議的安裝、設(shè)置和測試
局域網(wǎng)中的一些通信協(xié)議,在安裝操作系統(tǒng)時會自動安裝NetBEUI通信協(xié)議;在安裝NetWare時,系統(tǒng)會自動安裝IPX/SPX通信協(xié)議。在3種協(xié)議中,NetBEUI和IPX/SPX在安裝后不需要進行設(shè)置就可以直接使用,但TCP/IP要經(jīng)過必要的設(shè)置。下面是WindowsNT環(huán)境下的TCP/IP協(xié)議的安裝、設(shè)置和測試方法。①TCP/IP通信協(xié)議的安裝:在WindowsNT中,如果未安裝有TCP/IP通信協(xié)議,可選擇“開始/設(shè)置/控制面板/網(wǎng)絡(luò)”,出現(xiàn)“網(wǎng)絡(luò)”對話框后,選擇對話框中的“協(xié)議/添加”命令,選取其中的TCP/IP協(xié)議,然后單擊“確定”按鈕。系統(tǒng)會詢問你是否要進行“DHCP服務(wù)器”的設(shè)置。如果你的IP地址是固定的,可選擇“否”。隨后,系統(tǒng)開始從安裝盤中復(fù)制所需的文件。②TCP/IP通信協(xié)議的設(shè)置:在“網(wǎng)絡(luò)”對話框中選擇已安裝的TCP/IP協(xié)議,打開其“屬性”,在指定的位置輸入已分配好的“IP地址”和“子網(wǎng)掩碼”。如果該用戶還要訪問其他WindowsNT網(wǎng)絡(luò)的資源,還可以在“默認網(wǎng)關(guān)”處輸入網(wǎng)關(guān)的地址。③TCP/IP通信協(xié)議的測試:當TCP/IP協(xié)議安裝并設(shè)置結(jié)束后,為了保證其能夠正常工作,在使用前一定要進行測試。筆者建議大家使用系統(tǒng)自帶的工具程序PING.EXE,該工具可以檢查出任何一個用戶是否與同一網(wǎng)段的其他用戶連通,是否與其他網(wǎng)段的用戶正常連接,同時還能檢查出自己的IP地址是否與其他用戶的IP地址發(fā)生沖突。