• <input id="zdukh"></input>
  • <b id="zdukh"><bdo id="zdukh"></bdo></b>
      <b id="zdukh"><bdo id="zdukh"></bdo></b>
    1. <i id="zdukh"><bdo id="zdukh"></bdo></i>

      <wbr id="zdukh"><table id="zdukh"></table></wbr>

      1. <input id="zdukh"></input>
        <wbr id="zdukh"><ins id="zdukh"></ins></wbr>
        <sub id="zdukh"></sub>
        公務(wù)員期刊網(wǎng) 精選范文 基本通信協(xié)議范文

        基本通信協(xié)議精選(九篇)

        前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的基本通信協(xié)議主題范文,僅供參考,歡迎閱讀并收藏。

        基本通信協(xié)議

        第1篇:基本通信協(xié)議范文

        [關(guān)鍵詞]通信協(xié)議 IPX/SPX協(xié)議 NetBEUI協(xié)議 TCP/IP協(xié)議

        中圖分類號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2016)23-0114-01

        引言:通過通信信道和設(shè)備互連起來的多個(gè)不同地理位置的數(shù)據(jù)通信系統(tǒng),要使其能協(xié)同工作實(shí)現(xiàn)信息交換和資源共享,它們之間必須具有共同的語言。交流過程中都必須遵循某種互相都能接受的規(guī)則,這個(gè)規(guī)則就是通信協(xié)議。網(wǎng)絡(luò)通信協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)的一個(gè)重要組成部分,是不同網(wǎng)絡(luò)之間通信、交流的公共語言。有了它,使用不同系統(tǒng)的計(jì)算機(jī)或網(wǎng)絡(luò)之間才可以彼此識(shí)別,識(shí)別出不同的網(wǎng)絡(luò)操作指令,建立信任關(guān)系,否則就會(huì)造成網(wǎng)絡(luò)的接入速度太慢以及工作不穩(wěn)定。這一技術(shù)發(fā)展至今,已經(jīng)發(fā)展出了很多種不同類型的通信協(xié)議,不同的網(wǎng)絡(luò)協(xié)議都有其存在的必要,每一種協(xié)議都有它所主要依賴的操作系統(tǒng)和工作環(huán)境。所以要很好地選擇與配置協(xié)議就必須要先了解目前各主要協(xié)議的主要性能特點(diǎn)和所適用的范圍,一遍合理的配置各種通信協(xié)議,保證網(wǎng)絡(luò)通信的正常運(yùn)行。

        一、通信協(xié)議簡(jiǎn)介

        通信協(xié)議是指雙方實(shí)體完成通信或服務(wù)所必須遵循的規(guī)則和約定。協(xié)議定義了數(shù)據(jù)單元使用的格式,信息單元應(yīng)該包含的信息與含義、連接方式、信息發(fā)送和接收的時(shí)序,從而確保網(wǎng)絡(luò)中數(shù)據(jù)順利地傳送到確定的地方。在計(jì)算機(jī)通信中,通信協(xié)議用于實(shí)現(xiàn)計(jì)算機(jī)與網(wǎng)絡(luò)連接之間的標(biāo)準(zhǔn),網(wǎng)絡(luò)如果沒有統(tǒng)一的通信協(xié)議,電腦之間的信息傳遞就無法識(shí)別。

        通信協(xié)議包括語義、語法和時(shí)序三個(gè)組成部分。語義是對(duì)協(xié)議元素的含義進(jìn)行解釋。不同類型的協(xié)議元素所規(guī)定的語義是不同的。語法是將若干個(gè)協(xié)議元素和數(shù)據(jù)組合在一起用來表達(dá)一個(gè)完整的內(nèi)容所應(yīng)遵循的格式,也就是對(duì)信息的數(shù)據(jù)結(jié)構(gòu)做一種規(guī)定。而時(shí)序是對(duì)事件實(shí)現(xiàn)順序的詳細(xì)說明。

        二、幾種主要的通信協(xié)議

        1. IPX/SPX協(xié)議

        IPX/SPX(網(wǎng)際包交換/序列包交換)協(xié)議主要應(yīng)用于基于NetWare操作系統(tǒng)的Novell局域網(wǎng)中,基于其他操作系統(tǒng)的局域網(wǎng)能夠通過IPX/SPX協(xié)議與Novell網(wǎng)進(jìn)行通信。當(dāng)用戶端接入 NetWare服務(wù)器時(shí),IPX/SPX 及其兼容協(xié)議是最好的選擇。但在非Novell網(wǎng)絡(luò)環(huán)境中,一般不使用IPX/SPX。IPX/SPX及其兼容協(xié)議不需要任何配置,它可通過網(wǎng)絡(luò)地址來識(shí)別自己的身份。Novell網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址由兩部分組成:標(biāo)成物理網(wǎng)段的網(wǎng)絡(luò)ID和標(biāo)明特殊設(shè)備的“節(jié)點(diǎn) ID” 。其中網(wǎng)絡(luò)ID集中在NetWare服務(wù)器或路由器中,節(jié)點(diǎn)ID即為每個(gè)網(wǎng)卡的ID號(hào)。 所有的網(wǎng)絡(luò)ID和節(jié)點(diǎn)ID都是一個(gè)獨(dú)一無二的內(nèi)部IPX地址。正是由于網(wǎng)絡(luò)地址的唯一性,才使用IPX/SPX具有較強(qiáng)的路由功能。IPX/SPX協(xié)議中,IPX是NetWare最低層的協(xié)議,他只負(fù)責(zé)數(shù)據(jù)在網(wǎng)絡(luò)中的移動(dòng),并不保證數(shù)據(jù)是否傳輸成功,也不提供糾錯(cuò)服務(wù)。IPX 在負(fù)責(zé)數(shù)據(jù)傳送時(shí),如果接收節(jié)點(diǎn)在同一網(wǎng)段內(nèi),就直接按節(jié)點(diǎn)的ID將數(shù)據(jù)傳給它;如果接收節(jié)點(diǎn)是遠(yuǎn)程的,數(shù)據(jù)將交給 NetWare 服務(wù)器或路由器中的網(wǎng)絡(luò)ID,繼續(xù)數(shù)據(jù)的下一步傳輸。

        2. NetBEUI協(xié)議

        NetBEUI(用戶擴(kuò)展接口)協(xié)議是一種體積小、效率高、速率快的通信協(xié)議,也是微軟最鐘愛的一種通信協(xié)議,所以它被稱為微軟所有產(chǎn)品中通信協(xié)議的"母語"。NetBEUI是專門為由幾臺(tái)到百余臺(tái)計(jì)算機(jī)所組成的單網(wǎng)段部門級(jí)小型局域網(wǎng)而設(shè)計(jì)的,它不具有跨網(wǎng)段工作的功能,即NetBEUI不具備路由功能。如果一個(gè)服務(wù)器上安裝了多個(gè)網(wǎng)卡,或要采用路由器等設(shè)備進(jìn)行兩個(gè)局域網(wǎng)的互連時(shí),則不能使用NetBEUI通信協(xié)議。否則,與不同網(wǎng)卡(每一個(gè)網(wǎng)卡連接一個(gè)網(wǎng)段)相連的設(shè)備之間,以及不同的局域網(wǎng)之間無法進(jìn)行通信。在3種通信協(xié)議中,NetBEUI占用的內(nèi)存最少,在網(wǎng)絡(luò)中基本不需要任何配置。

        3. TCP/IP協(xié)議

        TCP/IP(傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議)從字面上理解只有兩個(gè)協(xié)議,即TCP協(xié)議和IP協(xié)議,而事實(shí)上它是是由一組具有專業(yè)用途的多個(gè)子協(xié)議組合而成的,這些子協(xié)議包括TCP、IP、UDP、ARP、ICMP等,而TCP和IP協(xié)議是協(xié)議族中最基本的最重要的兩個(gè)協(xié)議。它是為了實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的互連而設(shè)計(jì)的。TCP/IP 通信協(xié)議具有靈活性,適用任意規(guī)模的網(wǎng)絡(luò),幾乎可連接所有的服務(wù)器和工作站,正因?yàn)榈撵`活性也帶來了它的復(fù)雜性,它需要針對(duì)不同網(wǎng)絡(luò)進(jìn)行不同設(shè)置,且每一個(gè)節(jié)點(diǎn)至少需要一個(gè)IP地址,一個(gè)網(wǎng)掩碼,一個(gè)默認(rèn)網(wǎng)關(guān)和一個(gè)主機(jī)名,但是在局域網(wǎng)中微軟為了簡(jiǎn)化 TCP/IP協(xié)議的設(shè)置,在NT中配置了一個(gè)動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP),它可以為客戶端自動(dòng)分配一個(gè)IP地址,避免了出錯(cuò)。

        三、選擇通信協(xié)議的原則

        1.網(wǎng)絡(luò)結(jié)構(gòu)和功能的一致性

        如果網(wǎng)絡(luò)存在多個(gè)網(wǎng)段或要通過路由器相連時(shí),就不能使用不具備路由和跨網(wǎng)段操作功能的NetBEUI協(xié)議,而必須選擇具備這一功能的IPX/SPX或TCP/IP等協(xié)議。此外,如果網(wǎng)絡(luò)規(guī)模較小,同時(shí)只是為了簡(jiǎn)單的文件和設(shè)備的共享,這時(shí)最主要的就是網(wǎng)絡(luò)速度,所以在選擇協(xié)議時(shí)應(yīng)選擇占用內(nèi)存小和帶寬利用率高的協(xié)議,如NetBEUI。當(dāng)網(wǎng)絡(luò)規(guī)模較大且網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜時(shí),應(yīng)選擇可管理性和可擴(kuò)充性較好的協(xié)議,如TCP/IP。

        2.除特殊情況外,一個(gè)網(wǎng)絡(luò)盡量只選擇一種通信協(xié)議

        由于每個(gè)協(xié)議都要占用計(jì)算機(jī)的內(nèi)存,選擇的協(xié)議越多,占用計(jì)算機(jī)的內(nèi)存資源就越多。一方面影響了計(jì)算機(jī)的運(yùn)行速度,另一方面不利于網(wǎng)絡(luò)的管理。事實(shí)上一個(gè)網(wǎng)絡(luò)中一般一種通信協(xié)議就可以滿足需要。

        3.注意協(xié)議的版本

        每個(gè)協(xié)議都有它的發(fā)展和完善過程,因而出現(xiàn)了不同的版本。每個(gè)版本的協(xié)議都有它最為合適的網(wǎng)絡(luò)環(huán)境。從整體來看,高版本協(xié)議的功能和性能要比低版本好。所以在選擇時(shí),在滿足網(wǎng)絡(luò)功能要求的前提下,應(yīng)盡量選擇高版本的通信協(xié)議。

        4.協(xié)議的一致性。

        如果要讓兩臺(tái)實(shí)現(xiàn)互聯(lián)的計(jì)算機(jī)間進(jìn)行對(duì)話,它們兩者使用的通信協(xié)議必須相同。否則中間還需要一個(gè)“翻譯”進(jìn)行不同協(xié)議的轉(zhuǎn)換。這樣不僅影響通信速度,同時(shí)也不利于網(wǎng)絡(luò)的安全和穩(wěn)定運(yùn)行。

        結(jié)語:

        通信協(xié)議作為連接不通網(wǎng)絡(luò)和設(shè)備之間的橋梁,其作用至關(guān)重要。這一技術(shù)發(fā)展至今,已經(jīng)發(fā)展出了多種多樣不通版本的協(xié)議,而每個(gè)版本也都具有各自的特點(diǎn)和功能,所以在選擇協(xié)議的時(shí)候應(yīng)該根據(jù)實(shí)際需要選擇最適合的通信協(xié)議,從而使其更好地為用戶服務(wù)。

        參考文獻(xiàn):

        [1] 高傳善.數(shù)據(jù)通信與計(jì)算機(jī)網(wǎng)[M].北京:高等教育出版社,2002.

        第2篇:基本通信協(xié)議范文

        1DDC和PLC性能比較

        DDC是隨著半導(dǎo)體技術(shù)、微處理器技術(shù)以及智能樓宇自動(dòng)化控制需求而產(chǎn)生的一種可編程的智能控制設(shè)備;PLC是隨著半導(dǎo)體技術(shù)、微處理器技術(shù)以及工業(yè)生產(chǎn)流水線自動(dòng)化控制需求而產(chǎn)生的一種可編程的智能控制設(shè)備。兩者的性能比較見表1。由表1可見,PLC和DDC這兩類產(chǎn)品在其架構(gòu)上基本相同,兩者在車站環(huán)境及機(jī)電設(shè)備自動(dòng)化控制系統(tǒng)中所實(shí)現(xiàn)的功能也完全相同,但在產(chǎn)品封裝、可靠性、應(yīng)用側(cè)重等方面是有所差異的。在城市軌道交通車站環(huán)境及機(jī)電設(shè)備自動(dòng)化監(jiān)控系統(tǒng)中,無論是PLC產(chǎn)品還是DDC產(chǎn)品,均采用了集散系統(tǒng)架構(gòu);散布在線路控制中心和車站內(nèi)的各部分均通過通信鏈路連接,并通過私有協(xié)議或公開協(xié)議實(shí)現(xiàn)信息的傳輸和交換。

        2通信協(xié)議

        互聯(lián)互通是城市軌道交通中不同應(yīng)用系統(tǒng)間互相交換信息的需要,或是同一個(gè)應(yīng)用系統(tǒng)中不同產(chǎn)品間互相交換信息的需要。在同一個(gè)應(yīng)用系統(tǒng)中,建設(shè)方通常都會(huì)選擇同一品牌同一系列的產(chǎn)品,至少可以保證在本應(yīng)用系統(tǒng)的內(nèi)部不會(huì)產(chǎn)生信息交換的障礙,同時(shí)通過接口協(xié)議的商談定義來解決不同應(yīng)用系統(tǒng)間信息交換的問題。但事實(shí)上,為保證信息交換的有效性,一般會(huì)選擇同一品牌同一系列的產(chǎn)品,其實(shí)質(zhì)是因?yàn)橥黄放仆幌盗挟a(chǎn)品采用的是同一種通信協(xié)議。正是因?yàn)檫@種通信協(xié)議上的統(tǒng)一性,才保證了信息交換的有效性和準(zhǔn)確性。

        因此,要實(shí)現(xiàn)設(shè)備間的互聯(lián)互通,即便采用不同的產(chǎn)品,如PLC和DDC,只要它們采用的是同一種通信協(xié)議,則可實(shí)現(xiàn);反之,即便采用的是同一種產(chǎn)品,如PLC和PLC間,甚至是同一家公司產(chǎn)品,只要產(chǎn)品所采用的通信協(xié)議不同,就不能直接實(shí)現(xiàn)互聯(lián)互通。所以,要實(shí)現(xiàn)不同產(chǎn)品間的互聯(lián)互通,如DDC和PLC這兩種產(chǎn)品間的互聯(lián)互通,其關(guān)鍵點(diǎn)在于產(chǎn)品是否采用了同一種通信協(xié)議,或者是否有合適的網(wǎng)關(guān)設(shè)備進(jìn)行不同協(xié)議間的轉(zhuǎn)換。表2為目前4種公開的通信協(xié)議。每種協(xié)議各有優(yōu)劣。很多產(chǎn)品為發(fā)揮其特色,還擁有其自定義的私有協(xié)議。

        3互聯(lián)互通工程實(shí)例

        3.1用戶需求

        上海軌道交通2號(hào)線的既有線和延伸線的自動(dòng)監(jiān)控系統(tǒng)中分別采用了兩種不同的產(chǎn)品。既有線部分采用的是施耐德公司CSI系列的BAS(設(shè)備監(jiān)控系統(tǒng))。該系統(tǒng)是基于DDC的系統(tǒng)。東延伸段和西延伸段采用的是基于PLC的BAS系統(tǒng),產(chǎn)品為施耐德公司的PremiumPLC和M340PLC。為了保證控制中心環(huán)控調(diào)度操作的統(tǒng)一性,提高調(diào)度工作效率,降低調(diào)度操作難度,保證調(diào)度操作準(zhǔn)確性,需要將2號(hào)線上基于不同產(chǎn)品的BAS系統(tǒng)整合成一個(gè)系統(tǒng),在一個(gè)監(jiān)控操作平臺(tái)上,BAS中央級(jí)對(duì)BAS車站級(jí)進(jìn)行統(tǒng)一的監(jiān)控、操作。

        要實(shí)現(xiàn)在一個(gè)監(jiān)控操作平臺(tái)(或稱人機(jī)界面,即HMI)上實(shí)現(xiàn)對(duì)基于DDC和PLC不同產(chǎn)品的系統(tǒng)進(jìn)行統(tǒng)一監(jiān)控的目的,就必須使用同時(shí)支持兩種不同網(wǎng)絡(luò)通信協(xié)議的HMI軟件平臺(tái)。但是,既有線BAS系統(tǒng)與HMI間的網(wǎng)絡(luò)通信協(xié)議為CSI產(chǎn)品特有的I-NET2000網(wǎng)絡(luò)協(xié)議,而延伸線BAS系統(tǒng)支持的與HMI間的網(wǎng)絡(luò)通信協(xié)議有多種,包括Modb-us、UN-TELWAY、FIPWAY等。由于CSI產(chǎn)品所使用的I-NET2000網(wǎng)絡(luò)協(xié)議應(yīng)用并不廣泛,只有CSI產(chǎn)品自身的HMI采用,所以要簡(jiǎn)單地選擇一個(gè)既能直接與CSI中的DDC通信又能直接與施耐德PLC通信的HMI軟件平臺(tái)是不現(xiàn)實(shí)的。

        性價(jià)比較高的解決方法是在不改變既有線車站級(jí)BAS系統(tǒng)基本結(jié)構(gòu)的前提下,破解I-NET2000通信協(xié)議,選擇能夠支持多種通信協(xié)議的HMI軟件平臺(tái)以實(shí)現(xiàn)同時(shí)與CSI中的DDC和施耐德PLC通信。

        3.2整合準(zhǔn)備

        鑒于上海軌道交通2號(hào)線既有線分一期工程部分(龍陽路站至中山公園站)和西延伸部分(婁山關(guān)路站至淞虹路站)。兩部分的BAS車站級(jí)設(shè)備雖都是CSI的DDC產(chǎn)品,但還略有不同。一期工程上所使用的7760DDC需要通過一個(gè)名叫TAP的設(shè)備和車站監(jiān)控工作站連接,而西延伸工程上所使用的7790DDC上有可用于連接監(jiān)控工作站的串行通信端口。故車站級(jí)的改造方法也稍有不同。一期工程部分BAS車站級(jí)設(shè)備采用的是CSI7760DDC,其車站基本結(jié)構(gòu)如圖1所示。西延伸段BAS車站級(jí)設(shè)備采用的是CSI7790DDC,其車站基本結(jié)構(gòu)如圖2所示。針對(duì)一期工程7760DDC和TAP的結(jié)構(gòu),7760DDC和TAP上并無多余通信端口可以使用,以及車站也只有1個(gè)以太網(wǎng)通道端口可供BAS使用的情況,在車控室增設(shè)1個(gè)以太網(wǎng)交換機(jī)和1個(gè)串口服務(wù)器。增設(shè)以太網(wǎng)交換機(jī)的目的是拓展BAS使用的以太網(wǎng)端口,以供車站BAS監(jiān)控工作站和串口服務(wù)器使用;增設(shè)串口服務(wù)器的目的是為了車站級(jí)監(jiān)控工作站和中央級(jí)HMI軟件接口同時(shí)能與TAP進(jìn)行通信。系統(tǒng)結(jié)構(gòu)如圖3所示。

        系統(tǒng)改造后,上海軌道交通2號(hào)線一期工程部分的BAS有如下幾條數(shù)據(jù)流:①7760DDCTAP串口服務(wù)器交換機(jī)車站工作站;②7760DDCTAP串口服務(wù)器交換機(jī)新控制中心;③車站工作站交換機(jī)既有其他車站和既有控制中心。

        針對(duì)上海軌道交通2號(hào)線西延伸工程7790DDC結(jié)構(gòu),車站內(nèi)2個(gè)7790DDC上各有1個(gè)可用于連接車站監(jiān)控工作站的串行端口,而且由于2個(gè)7790DDC已經(jīng)聯(lián)網(wǎng),故這2個(gè)串行端口上的數(shù)據(jù)是一致的。其中1個(gè)端口已經(jīng)用于車站監(jiān)控工作站,故利用另1個(gè)端口進(jìn)行車站級(jí)數(shù)據(jù)讀取和命令寫入。與一期工程一樣,在車控室增加1個(gè)以太網(wǎng)交換機(jī)和1個(gè)串口服務(wù)器。增設(shè)以太網(wǎng)交換機(jī)的目的是拓展BAS使用的以太網(wǎng)端口,以供車站BAS監(jiān)控工作站和串口服務(wù)器使用;增設(shè)串口服務(wù)器的目的是為了中央HMI軟件接口同時(shí)能與2個(gè)7790DDC的串行端口中的1個(gè)進(jìn)行通信。系統(tǒng)構(gòu)成如圖4所示。

        系統(tǒng)改造后,上海軌道交通2號(hào)線西延伸部分的BAS有如下幾條數(shù)據(jù)流:①7790DDC車站工作站;②7790DDC串口服務(wù)器交換機(jī)新控制中心;③車站工作站交換機(jī)既有其他車站和既有控制中心。完成了車站級(jí)既有BAS系統(tǒng)改造后,既不影響原有系統(tǒng)的所有功能,包括車站級(jí)的監(jiān)控和既有中央級(jí)對(duì)車站級(jí)的監(jiān)控,又增加了一個(gè)新中央級(jí)到車站級(jí)的監(jiān)控通道。

        3.3新建控制中心及東延伸段PLC并網(wǎng)

        (1)在2號(hào)線控制中心5樓調(diào)度大廳內(nèi),新設(shè)全線BAS中央級(jí)。

        (2)在新設(shè)中央級(jí)調(diào)試及試運(yùn)行期間,新中央級(jí)和既有中央級(jí)并網(wǎng)運(yùn)行。

        (3)中央級(jí)搬遷工程以先并入新設(shè)中央級(jí),后移除既有中央級(jí)為基本工序。

        (4)新設(shè)BAS中央級(jí)以統(tǒng)一的平臺(tái)(包括軟件和硬件)對(duì)既有基于DDC的BAS系統(tǒng)和延伸線基于PLC的BAS系統(tǒng)進(jìn)行監(jiān)控管理。

        (5)新設(shè)的中央級(jí)符合目前的《上海城市軌道交通設(shè)備監(jiān)控系統(tǒng)設(shè)備招標(biāo)通用技術(shù)文件》的要求,如設(shè)有熱備冗余的服務(wù)器、熱備冗余的工作站等,以完成全線數(shù)據(jù)的采集、存儲(chǔ)、相關(guān)運(yùn)算以及命令的。

        (6)新設(shè)的中央級(jí)設(shè)全線事故風(fēng)機(jī)控制盤(中央IBP盤)1臺(tái),以完成對(duì)全線隧道事故情況下的統(tǒng)一控制、指揮。

        (7)設(shè)置新中央級(jí)后,不改變既有BAS系統(tǒng)車站級(jí)和既有中央級(jí)所有的點(diǎn)位設(shè)置、邏輯控制程序、監(jiān)控功能及操作方法。

        圖5為新控制中心建成后的上海軌道交通2號(hào)線BAS新中央級(jí)和既有系統(tǒng)的聯(lián)網(wǎng)圖。上海軌道交通2號(hào)線東延伸段依工程進(jìn)度,計(jì)劃完成基于PLC的BAS系統(tǒng)建設(shè)后,通過以太網(wǎng)并入系統(tǒng)。工程完成后,經(jīng)各項(xiàng)功能測(cè)試,系統(tǒng)運(yùn)行正常。完成DDC和PLC整合后的系統(tǒng)結(jié)構(gòu)如圖6所示。

        第3篇:基本通信協(xié)議范文

        在現(xiàn)有的即時(shí)通信系統(tǒng)中,實(shí)現(xiàn)音視頻通信的核心組件包括音視頻處理框架和即時(shí)通信協(xié)議兩個(gè)部分。音視處理框架集成了音視頻采集、音視頻編解碼、音視頻分流控制、音視頻數(shù)據(jù)流網(wǎng)絡(luò)擁塞控制等技術(shù)模塊,能夠完成音視頻數(shù)據(jù)流的采集、編碼、分流等基本處理流程;即時(shí)通信協(xié)議則負(fù)責(zé)為音視頻數(shù)據(jù)協(xié)商傳輸通道,并且在協(xié)商好的傳輸通道上建立對(duì)應(yīng)的連接,從而為音視頻數(shù)據(jù)的順暢傳輸提供保障。

        1即時(shí)通信協(xié)議

        即時(shí)通信協(xié)議是進(jìn)行即時(shí)通信必須遵循的信息規(guī)范,主要負(fù)責(zé)完成用戶信息傳輸通道協(xié)商,客戶端與服務(wù)器通信信令傳輸控制等任務(wù)。XMPP是主流即時(shí)通信協(xié)議之一,是基于可擴(kuò)展標(biāo)記語言(XML)的協(xié)議,其繼承了在XML的高可擴(kuò)展性,可以通過發(fā)送擴(kuò)展的信息來處理用戶需求。目前最常用的即時(shí)通信協(xié)議體系主要是SIP和XMPP協(xié)議體系,兩者都可以完成音視頻通信功能。另外,一些商業(yè)公司自行開發(fā)私有的即時(shí)通信協(xié)議實(shí)現(xiàn)了相對(duì)封閉的通信環(huán)境,例如QQ和MSN。XMPP協(xié)議是個(gè)總稱,包括核心協(xié)議,擴(kuò)展協(xié)議等。

        核心協(xié)議只規(guī)定了很小、很基本的一些功能,大部分功能都是在擴(kuò)展協(xié)議中規(guī)定的。實(shí)際上,XMPP協(xié)議只是作為協(xié)商協(xié)議應(yīng)用,真正的P2P連接和實(shí)時(shí)通信是通過其擴(kuò)展協(xié)議實(shí)現(xiàn)的。Jingle就是典型的擴(kuò)展協(xié)議案例。Jingle[6]是Google開發(fā)的XMPP協(xié)議上的擴(kuò)展,其解決了在XMPP協(xié)議體系下點(diǎn)對(duì)點(diǎn)的P2P連接問題。Jingle協(xié)議提供了多種傳輸方式用于數(shù)據(jù)傳輸,而針對(duì)多媒體數(shù)據(jù)的最為常見的模式是兩種UDP傳輸方式。一種傳輸模型是RAWUDP[9],RAWUDP是在UDP協(xié)議上發(fā)送媒體數(shù)據(jù)包的傳輸通道模型,可以實(shí)現(xiàn)在同一局域網(wǎng)下的P2P連接,沒有網(wǎng)絡(luò)穿越功能,無法實(shí)現(xiàn)遠(yuǎn)程通信;另一種模型則是功能更為強(qiáng)大的ICE-UDP[8],ICE-UDP也是在UDP協(xié)議上發(fā)送媒體數(shù)據(jù)包,并且可以實(shí)現(xiàn)具有防火墻的網(wǎng)絡(luò)穿越和ICE連接性檢查,實(shí)現(xiàn)遠(yuǎn)程通信。ICE是標(biāo)準(zhǔn)的建立P2P連接性檢查的協(xié)議,其自身不能獨(dú)立工作,必需在信號(hào)通道的協(xié)調(diào)下建立連接,而XMPP協(xié)議就可以作為ICE通道協(xié)商的協(xié)議標(biāo)準(zhǔn)。

        基于Jingle/XMPP協(xié)議實(shí)現(xiàn)的即時(shí)通信框圖如圖1所示。Jingle通過XMPP完成P2P通道的協(xié)商任務(wù),同時(shí)通過Jingle協(xié)議建立P2P通道并進(jìn)行連接性檢查,然后建立并完成RTP會(huì)話,從而完成音視頻通信。如果選擇ICE-UDP通道傳輸模型進(jìn)行RTP視頻數(shù)據(jù)傳輸,XMPP服務(wù)器可以使用STUN[2]服務(wù)器收集用戶的地址,包括NAT[3]后面的私有地址以及NAT與互聯(lián)網(wǎng)連接的公共地址,并且以此為基礎(chǔ)建立映射機(jī)制,完成會(huì)話參與者跟具體的網(wǎng)絡(luò)地址間的轉(zhuǎn)換和NAT穿越。

        2音視頻處理框架

        即時(shí)通信系統(tǒng)中的音視頻處理框架主要為用戶提供一組多媒體數(shù)據(jù)處理的接口,用戶可以用這些接口實(shí)現(xiàn)從多媒體采集卡上獲得數(shù)據(jù),進(jìn)行壓縮編碼、格式轉(zhuǎn)換、數(shù)據(jù)封包等一系列操作,從而完成多媒體的實(shí)時(shí)處理傳輸功能,大大簡(jiǎn)化多媒體處理的復(fù)雜性。目前具有二次開發(fā)功能的音視頻處理框架包括Gstreamer,Directshow,Opencore等。其中DirectShow是微軟公司在ActiveMovie和VideoforWindows基礎(chǔ)上推出的基于COM的流媒體處理開發(fā)包。運(yùn)用DirectShow可以很方便地從支持Windows驅(qū)動(dòng)模型的采集卡上捕獲數(shù)據(jù),并進(jìn)行相應(yīng)的后期處理乃至存儲(chǔ)到文件中。OpenCore則是手機(jī)操作系統(tǒng)Android的多媒體核心,OpenCore的代碼非常龐大,是一個(gè)基于C++的實(shí)現(xiàn),定義了全功能的操作系統(tǒng)移植層,各種基本的功能均被封裝成類的形式,各層次之間的接口多使用繼承等方式。而基于Linux平臺(tái)的GStreamer則是完全開源的多媒體框架庫,利用其可以構(gòu)建一系列媒體處理模塊,包括從簡(jiǎn)單的Ogg播放功能到復(fù)雜的音頻混音和視頻非線性編輯處理。Gstreamer應(yīng)用非常廣泛,大多數(shù)手機(jī)平臺(tái)及個(gè)人電腦Linux平臺(tái)均采用Gstreamer進(jìn)行音視頻處理開發(fā)。

        2.1Gstreamer音視頻處理

        Gstreamer通過其模塊化設(shè)計(jì)理念,更加便于構(gòu)建流媒體應(yīng)用程序。它將各個(gè)模塊封裝起來,以元件的形式提供給用戶使用。用戶可以利用庫中原有的元件進(jìn)行應(yīng)用程序的編程,同樣也可以編寫元件,然后插入到庫中,以便日后調(diào)用時(shí)使用。如果只利用庫中的元件來實(shí)現(xiàn)特定功能,只需要采用模塊化的方式編寫應(yīng)用程序[4]。Gstreamer實(shí)現(xiàn)局域網(wǎng)內(nèi)簡(jiǎn)單多媒體音視頻傳輸發(fā)送端的框圖如圖2所示。對(duì)于視頻數(shù)據(jù)流,Gstreamer在發(fā)送端將攝像頭(v4l2src1)采集的數(shù)據(jù)依次經(jīng)過色度空間轉(zhuǎn)換(ffmpegcsp1)、H263視頻編碼(ffenc_h263p1)、RTP[1]載荷頭添加(rtph263ppay1),在gstrtpbin中實(shí)現(xiàn)實(shí)時(shí)傳輸協(xié)議(RTP)和實(shí)時(shí)傳輸控制協(xié)議(RTCP)數(shù)據(jù)包整合,并添加發(fā)送報(bào)告的背景時(shí)鐘時(shí)間戳,便于在接受端進(jìn)行音視頻同步播放,然后發(fā)到UDP端口(udpsink)。在接收端,從UDP端口截獲的數(shù)據(jù)依次經(jīng)過RTP和RTCP數(shù)據(jù)包解析、RTP載荷頭解碼、H263解碼器解碼視頻數(shù)據(jù)、色度空間轉(zhuǎn)換,最后經(jīng)過視頻顯示插件顯示到窗口中。其中g(shù)strtpbin是進(jìn)行RTP會(huì)話管理的核心組件,可以完成RTP數(shù)據(jù)包傳輸控制、RTCP數(shù)據(jù)包生成、沖突檢測(cè)、音視頻分流等任務(wù)。

        2.2Farsight視頻會(huì)議框架

        通過Gstreamer開發(fā)庫中的基礎(chǔ)元件可以完成音視頻處理的功能,并且可以進(jìn)行簡(jiǎn)單的局域網(wǎng)內(nèi)視頻通信。但是,在視頻會(huì)議等復(fù)雜應(yīng)用中經(jīng)常包含多個(gè)多媒體會(huì)話,而且多媒體會(huì)話之間的協(xié)調(diào)非常復(fù)雜,需要通過更為高層的處理框架來實(shí)現(xiàn)會(huì)話管理的功能。Farsight是以Gstreamer為基礎(chǔ)開發(fā)的視頻會(huì)議框架,它能夠提供一套完整的為多媒體流協(xié)議編寫插件的應(yīng)用程序接口,同時(shí)還為用戶提供API調(diào)用這些插件。即時(shí)通信應(yīng)用程序可以使用Farsight進(jìn)行音視頻會(huì)議,而無須擔(dān)心底層的數(shù)據(jù)流和NAT穿越的問題。因?yàn)镕arsight[5]是以Gstre-amer為基礎(chǔ)進(jìn)行開發(fā),所以開發(fā)新的元件能夠和已有的Gstreamer元件整合,實(shí)現(xiàn)完成視頻會(huì)議功能的多媒體框架。Farsight可以包含多路音視頻會(huì)話流,包含多個(gè)會(huì)話參與者,具有強(qiáng)大的音視頻會(huì)話管理功能。它通過模塊化設(shè)計(jì)為許多即時(shí)通信軟件提供音視頻會(huì)議的服務(wù),大大擴(kuò)展了多媒體處理的功能,并且可以實(shí)現(xiàn)更為強(qiáng)大的視頻會(huì)議功能。目前很多即時(shí)通信客戶端軟件都采用Farsight完成音視頻通信。本文以Gstreamer/Farsight音視頻處理框架為重點(diǎn),詳述其內(nèi)部結(jié)構(gòu)及功能實(shí)現(xiàn)。

        Farsight中包括4個(gè)核心概念:會(huì)議(Conference)、會(huì)話(Session)、參與者(Participant)、流(Stream)。會(huì)話參與者是指多媒體數(shù)據(jù)源,可以是音頻或視頻等;會(huì)話則代表一路音頻或視頻會(huì)話,通常有一個(gè)媒體類型和一個(gè)輸出端;會(huì)議則代表一個(gè)多媒體會(huì)議,可以包含多路會(huì)話,并且完成多路會(huì)話的協(xié)調(diào)管理;當(dāng)參與者加入到會(huì)話中,就將多媒體數(shù)據(jù)引入會(huì)話中,使得數(shù)據(jù)能夠流動(dòng),從而構(gòu)成數(shù)據(jù)流。另外,F(xiàn)arsight實(shí)現(xiàn)了網(wǎng)絡(luò)層的抽象,即將網(wǎng)絡(luò)抽象為一個(gè)發(fā)射器對(duì)象,當(dāng)數(shù)據(jù)流被創(chuàng)建時(shí)就會(huì)建立發(fā)射器對(duì)象,然后通過設(shè)置發(fā)射器參數(shù)確定發(fā)送的目的地址。實(shí)際上,F(xiàn)arsight并沒有參與多媒體數(shù)據(jù)的采集和打包工作,它只是為多媒體數(shù)據(jù)流傳輸?shù)骄W(wǎng)絡(luò)端進(jìn)行發(fā)送提供了一個(gè)通道,并且對(duì)通道進(jìn)行協(xié)調(diào)管理,保證不同的會(huì)話參與者與其特定的數(shù)據(jù)流綁定以防止收發(fā)混淆。

        Farsight實(shí)現(xiàn)RTP視頻會(huì)議的結(jié)構(gòu)如圖3所示,其中FsRTPConference是Farsight框架下的一種插件,主要的RTP會(huì)話管理功能都在這個(gè)組件中實(shí)現(xiàn)。FsRTPConference中可以同時(shí)存在多路FsSession,每一路FsSession因參與者或音媒體源的不同代表不同的多媒體會(huì)話。編解碼器在雙方建立連接前無法確定,只有當(dāng)通信雙方的客戶端協(xié)商之后,才會(huì)根據(jù)具體的編解碼器名字調(diào)用并進(jìn)行插件的連接。

        Farsight通過將gstrtpbin封裝到FsRTPConference中,添加一些其他的必要組件,實(shí)現(xiàn)RTP會(huì)話。RTP管理器主要由gstrtpbin負(fù)責(zé)完成RTP會(huì)話管理的操作。在發(fā)送端,視頻源和音頻源通過Sink接入到會(huì)話中,編解碼器協(xié)商成功后,將編碼器與數(shù)據(jù)源和過濾元件連接,然后通過RTP混合器將音視頻數(shù)據(jù)發(fā)送到RTP管理器中,完成RTCP數(shù)據(jù)包的生成以及RTP會(huì)話的管理。最后,經(jīng)過數(shù)據(jù)發(fā)射器將數(shù)據(jù)發(fā)送到相應(yīng)的數(shù)據(jù)通道中。在接收端,數(shù)據(jù)流同樣要經(jīng)過類似的信息解碼過程得到音視頻數(shù)據(jù)。在發(fā)送端,數(shù)據(jù)發(fā)射器在Farsight中通常有多種插件選擇,例如多播UDP插件、Libnice插件等,目的是為了實(shí)現(xiàn)底層數(shù)據(jù)傳輸?shù)倪B接性檢查。Libnice是實(shí)現(xiàn)了ICE和STUN協(xié)議規(guī)范的軟件庫,開發(fā)者以此為基礎(chǔ)完成nice插件,可以實(shí)現(xiàn)基于ICE的數(shù)據(jù)發(fā)送。但是Libnice中只定義了如何在P2P連接確立后進(jìn)行連接性檢查,以及如何在確定的P2P連接上進(jìn)行數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)穿越,并沒有定義如何進(jìn)行P2P連接,即P2P通道的協(xié)商任務(wù)。Jingle協(xié)議規(guī)范則定義了P2P通道建立連接及通道協(xié)商的任務(wù)。目前,Jin-gle協(xié)議已經(jīng)在Libpurple(多協(xié)議會(huì)話開發(fā)庫)中實(shí)現(xiàn)。

        3即時(shí)通信系統(tǒng)中音視頻通信的實(shí)現(xiàn)

        為了開發(fā)的便捷,Pidgin軟件的開發(fā)者將負(fù)責(zé)通信部分與圖形用戶界面部分分開,分離出來的核心代碼構(gòu)成即時(shí)通信客戶端開發(fā)的核心部分,被稱為L(zhǎng)ibpurple。這個(gè)程序庫已被Adium與Proteus這些客戶端使用。完成分離后,開發(fā)者將有可能以各自的圖形程序庫編寫自己的客戶端接口。在Libpurple中,為實(shí)現(xiàn)多媒體通信,開發(fā)者將基于Farsight的多媒體處理框架進(jìn)行繼承和封裝,實(shí)現(xiàn)即時(shí)通信協(xié)議,并提供接口供用戶使用,用戶可利用應(yīng)用程序接口編寫程序?qū)崿F(xiàn)網(wǎng)絡(luò)層的連接。使用者可以使用Libpur-ple直接編寫即時(shí)通信程序的核心代碼,并構(gòu)建應(yīng)用程序。

        同時(shí),Libpurple實(shí)現(xiàn)了許多即時(shí)通信協(xié)議的通信,例如MSN,XMPP,AIM等協(xié)議,同時(shí)完成了媒體后端流處理與相應(yīng)即時(shí)通信協(xié)議的協(xié)同工作。Libpurple在Farsight的基礎(chǔ)上進(jìn)行開發(fā),實(shí)現(xiàn)了一套具備自身特點(diǎn)的流媒體模式。通過對(duì)Lipurple庫的理解分析[10],得到了Libpurple實(shí)現(xiàn)音視頻數(shù)據(jù)流控制及會(huì)話管理的方法,如圖4所示。圖4中Src是音視頻數(shù)據(jù)源,傳輸?shù)紽sSession進(jìn)行音視頻流整合、RTCP包生成、數(shù)據(jù)流管理等操作。Vol-ume和level則分別表示音頻的音量與消息控制插件。Libpurple采用FsSession做會(huì)話管理,并在FsSession的基礎(chǔ)上添加Gstreamer基礎(chǔ)元件進(jìn)行控制,完成自己需要的功能。FsSession通過選擇不同的連接通道,將音視頻數(shù)據(jù)流通過發(fā)送器進(jìn)行發(fā)送。

        Libpurple中實(shí)現(xiàn)了Jingle協(xié)議進(jìn)行RTP通信的規(guī)范,并提供兩種數(shù)據(jù)通道,RAWUDP和ICE-UDP供用戶使用。在進(jìn)行具體RTP視頻通信時(shí),程序根據(jù)不同情況選擇不同的通道使用。圖4選擇RAWUDP作為數(shù)據(jù)發(fā)送通道,用戶也可以選擇其他通道進(jìn)行數(shù)據(jù)發(fā)送。為了與Jingle協(xié)議合作完成音視頻通信,Libpurple建立了一個(gè)組件對(duì)象purplemedia,這個(gè)對(duì)象在Farsight組件中提取相關(guān)的參數(shù)信息,例如編解碼器信息、發(fā)送目的地址等,并傳遞給Jingle協(xié)議,便于Jingle協(xié)議進(jìn)行通道協(xié)商。當(dāng)有新的即時(shí)通信協(xié)議需要利用Farsight完成視頻通信時(shí),開發(fā)者往往需要以Libpurple為基礎(chǔ)進(jìn)行開發(fā),完成即時(shí)通信協(xié)議在Libpurple上的移植,以實(shí)現(xiàn)視頻通信。在眾多采用Libpurple庫開發(fā)的即時(shí)通信軟件客戶端中,Pidgin是最成功的,也是少數(shù)幾個(gè)可以實(shí)現(xiàn)音視頻通信的案例。Pidgin是一款支持多協(xié)議客戶端的圖形化即時(shí)通信應(yīng)用程序,它可以使用AIM,Jabber,MSN,Yahoo等即時(shí)通信軟件的帳號(hào)進(jìn)行登錄。并采用Libpurple作為開發(fā)庫,利用圖形開發(fā)工具包編寫用戶界面及各種事件提醒和任務(wù)管理,從而實(shí)現(xiàn)在多種即時(shí)通信協(xié)議基礎(chǔ)上的音視頻通信。

        第4篇:基本通信協(xié)議范文

        關(guān)鍵詞:通信協(xié)議宏; PLC; 串行通信; 自動(dòng)化

        近年來,隨著科學(xué)技術(shù)的發(fā)展,中波廣播發(fā)射機(jī)也從過去的電子管板調(diào)機(jī)發(fā)展為全新的全固態(tài)機(jī),為實(shí)現(xiàn)自動(dòng)化控制奠定了基礎(chǔ)。中波廣播自動(dòng)化控制系統(tǒng)常采用可編程序控制器(PLC)做為前端控制器,通過PLC的輸入、輸出模塊對(duì)發(fā)射機(jī)進(jìn)行現(xiàn)場(chǎng)接入控制。但對(duì)于那些提供通信端口的發(fā)射機(jī)或設(shè)備,其內(nèi)部已經(jīng)配置了微控制器和采樣控制回路,如果還是采用現(xiàn)場(chǎng)接入控制,不僅功能重復(fù),而且有的時(shí)候難于實(shí)現(xiàn),例如Thomcast的M2W型中波發(fā)射機(jī),電路板集成度高,對(duì)接入?yún)?shù)非常敏感。對(duì)于這種類型的設(shè)備,只能是通過其串行口,利用其通信協(xié)議來實(shí)現(xiàn)工作狀態(tài)的數(shù)據(jù)監(jiān)測(cè)和控制。如果使用把監(jiān)測(cè)控制軟件放在服務(wù)器上運(yùn)行的方式,那么當(dāng)網(wǎng)絡(luò)有故障時(shí)設(shè)備將失控,因此安全性不夠,最好把監(jiān)測(cè)控制軟件放在其上位機(jī)的PLC中。過去只包含I/O模塊的PLC是無法實(shí)現(xiàn)串行通信功能的,而PLC通信協(xié)議宏的出現(xiàn)解決了這個(gè)問題。以下著重介紹使用協(xié)議宏來解決Thomcast的M2W型中波廣播發(fā)射機(jī)的自動(dòng)化控制問題。

        1 中波發(fā)射自動(dòng)化控制系統(tǒng)的總體構(gòu)成與功能

        廈門廣電集團(tuán)發(fā)射中心202臺(tái)中波發(fā)射自動(dòng)化控制系統(tǒng)主要由受控系統(tǒng)、前端監(jiān)控器、網(wǎng)絡(luò)和系統(tǒng)服務(wù)器等四部分組成。網(wǎng)絡(luò)結(jié)構(gòu)的拓?fù)浣Y(jié)構(gòu)如圖1。

        圖1

        總體采用現(xiàn)場(chǎng)分布式結(jié)構(gòu),每個(gè)受控系統(tǒng)都有自己獨(dú)立的前端監(jiān)控器,并在其監(jiān)控下工作。受控系統(tǒng)由主/備發(fā)射機(jī)、同軸開關(guān)、假負(fù)載、音頻矩陣及溫控器等組成。

        前端控制器采用OMRON公司生產(chǎn)的CS1H-CPU63型可編程序控制器,它是實(shí)時(shí)監(jiān)控系統(tǒng)中最基本、最核心的單元,在整個(gè)系統(tǒng)中起著承上啟下的作用。它能夠脫離上位軟件和網(wǎng)絡(luò)連接而獨(dú)立完成對(duì)受控系統(tǒng)的監(jiān)測(cè)和控制,對(duì)受控系統(tǒng)各種異常狀態(tài)用不同的方式發(fā)出告警信號(hào),并能夠存儲(chǔ)開關(guān)機(jī)時(shí)間表等日常管理流程數(shù)據(jù)。

        自動(dòng)化控制系統(tǒng)的主要功能分為:①基本控制功能(遠(yuǎn)程控制及自動(dòng)開關(guān)機(jī)等);②開關(guān)量、模擬量的監(jiān)測(cè);③開關(guān)機(jī)時(shí)間表的設(shè)定;④與用戶系統(tǒng)及服務(wù)系統(tǒng)的通信功能。其中前兩項(xiàng)功能通過PLC通信協(xié)議宏來實(shí)現(xiàn)。

        2 Thomcast公司M2W發(fā)射機(jī)提供的通信協(xié)議分析

        M2W發(fā)射機(jī)的標(biāo)準(zhǔn)通信協(xié)議幀的格式分為:寫控制幀(控制量)和讀控制幀(狀態(tài)量)。如下表,我們把常用的一些常用的操作指令列出來。

        2.1 寫控制:(開關(guān)機(jī)控制量)

        特別說明:在M2W發(fā)射機(jī)內(nèi)部PLC是采用文件的格式存儲(chǔ)機(jī)器信息的,其中:N1——遙控連接的直接命令輸入;N2——本地連接的直接命令輸入(發(fā)射機(jī)觸摸屏);N3——發(fā)射機(jī)實(shí)際數(shù)據(jù)。N1文件在指令寫入時(shí)發(fā)射機(jī)將做出反應(yīng),從N3文件則可讀取機(jī)器的實(shí)際數(shù)據(jù)進(jìn)行監(jiān)測(cè),通過對(duì)這兩個(gè)文件的修改和讀取來實(shí)現(xiàn)發(fā)射機(jī)的控制。

        3 OMRON通信協(xié)議宏的簡(jiǎn)介與應(yīng)用設(shè)計(jì)

        3.1 通信協(xié)議宏概述

        通信協(xié)議宏是PLC具有的一種通信控制功能,用于為符合具有串行通信端口的通用外部設(shè)備的通信規(guī)范的通信協(xié)議創(chuàng)建宏。支持與幾乎所有具有RS-232C或RS-422A/485端口外部通用設(shè)備的通信,通過編制通信協(xié)議指令實(shí)現(xiàn)對(duì)外部通信設(shè)備的相應(yīng)數(shù)據(jù)采集和控制。

        CX-Protocol是創(chuàng)建協(xié)議宏應(yīng)用軟件。協(xié)議宏由通信指令系列組成,支持硬件是PMSU(串行通信單元)。CX-Protocol將協(xié)議宏傳送至PMSU、通過CPU單元上的PMCR指令來指定協(xié)議宏的序號(hào)并執(zhí)行通信序列。一個(gè)通信指令序列由若干步組成,每個(gè)步由發(fā)送、接收或者發(fā)送與接收指令組成;可允許用戶根據(jù)處理結(jié)果來重復(fù)、結(jié)束這些步或者對(duì)這些步生成分支。

        3.2 通信協(xié)議宏的創(chuàng)建

         根據(jù)上面的表格,我們先將這些常用操作指令轉(zhuǎn)換成發(fā)射機(jī)通信協(xié)議的指令幀(即協(xié)議宏的通信報(bào)文),通信報(bào)文分為發(fā)送報(bào)文和接收?qǐng)?bào)文,包含有:報(bào)頭、地址、長(zhǎng)度、數(shù)據(jù)、錯(cuò)誤檢驗(yàn)碼和終止符,但每個(gè)字段不是必需的,在發(fā)送報(bào)文中,可以僅有數(shù)據(jù)字段(實(shí)際上數(shù)據(jù)字段就已經(jīng)包含有報(bào)頭、地址、錯(cuò)誤檢驗(yàn)碼和終止符);在接收?qǐng)?bào)文中,存在終止符時(shí),報(bào)頭、地址、長(zhǎng)度、錯(cuò)誤檢驗(yàn)碼也可以不存在,如果數(shù)據(jù)長(zhǎng)度固定,則終止符也可以不存在。

        根據(jù)M2W發(fā)射機(jī)的協(xié)議說明,無論在寫或讀操作,發(fā)送完成后發(fā)射機(jī)均會(huì)返回一個(gè)響應(yīng)幀,如果出錯(cuò)則要求重發(fā),正確則發(fā)送“1006”確認(rèn)該操作。

        3.3 寫控制幀格式

        發(fā)送命令:<DLE>+<STX>+<DST>+<SRC>+<CMD 0F>+<STS>+<TNS>+< FNC AA>+< Byte Size>+<File Type>+<Ele.No.>+<S/Ele.No.>+<DATA>+<DLE>+<ETX>+<CRC16>

        返回:響應(yīng)+<DLE>+<STX>+<SRC>+<DST>+<CMD 4F>+<STS>+<TNS>+<EXT STS>+<DLE>+<ETX>+<CRC16>其中,發(fā)送報(bào)文可以定義<DLE>+<STX>為報(bào)頭字段;<DST>+<SRC>為地址字體;<CMD 0F>+<STS>+<TNS>+< FNC AA>+< Byte Size>+<File Type>+<Ele.No.>+<S/Ele.No.>+<DATA>,可這數(shù)據(jù)字體,<DATA>為寫入N1中相應(yīng)操作位的數(shù)據(jù)<DLE>+<ETX>為終止符;<CRC16>為錯(cuò)誤校驗(yàn)碼。接收?qǐng)?bào)文中的“響應(yīng)”有三種:接收正確─“1006”;接收錯(cuò)誤─“1005”;校驗(yàn)錯(cuò)誤─“1015”

        以發(fā)送“開機(jī)”操作指令為例:10 02 01 09 0F 00 88 03 AA 02 0F 89 02 00 01 00 10 03 20 8d將N1中的“開機(jī)位”置“1”,返回:10 06 10 02 09 01 4F 00 88 03 10 03 0d c4,則再發(fā)送“1006”確定執(zhí)行開機(jī)操作。如果返回“1005”或“1015”則重發(fā)操作指令。

        3.4 讀控制幀格式

        發(fā)送命令:<DLE>+<STX>+<DST>+<SRC>+<CMD 0F>+<STS>+<TNS>+< FNC A2>+< Byte Size>+<File Type>+<Ele.No.>+<S/Ele.No.>+<DLE>+<ETX>+<CRC16>返回:響應(yīng)+<DLE>+<STX>+<SRC>+<DST>+<CMD 4F>+<STS>+<TNS>+<DATA >+<EXT STS>+<DLE>+<ETX>+<CRC16>其中< FNC A2>+< Byte Size>+<File Type>+<Ele.No.>+<S/Ele.No.>給出功能碼和讀取的范圍和文件類型,其它字段與寫控制的相同。返回時(shí),<DATA>字段為讀取的機(jī)器狀態(tài)數(shù)據(jù),可用W()指令寫入DM數(shù)據(jù)存儲(chǔ)區(qū)。

        由于讀取范圍要求不超過240字節(jié),機(jī)器的狀態(tài)數(shù)據(jù)需要分三次才能全部讀出,如發(fā)送:10 02 01 09 0F 00 01 01 A2 EE 11 89 00 00 10 03 e0 0f則返回10 06 10 02 09 01 4F 00 01+<DATA>+00 10 03 28 64,這樣我們可以讀取到0~240字節(jié)的數(shù)據(jù),其它數(shù)據(jù)讀取修改范圍即可。

        3.5 協(xié)議宏的創(chuàng)建

        協(xié)議宏的一個(gè)序列由最多16個(gè)步組成,一個(gè)步包含一條命令操作,該命令分為:“發(fā)送”、“接收”、“發(fā)送與接收”、“打開”、“關(guān)閉”、“刷出”或“ 等待”,通過步中的“下一個(gè)過程/出錯(cuò)過程”來指定執(zhí)行下一步。協(xié)議宏就是通過“步”發(fā)送和接收處理通信報(bào)文,完成指令操作的執(zhí)行,所以創(chuàng)建協(xié)議宏可分兩步完成。(1)首先,將“開機(jī)”操作指令按寫控制幀格式轉(zhuǎn)換成協(xié)議宏的發(fā)送報(bào)文(Send Message),Send Message為:<DLE>+<STX>+<DST>+<SRC>+<CMD 0F>+<STS>+<TNS>+< FNC AA>+< Byte Size>+<File Type>+<Ele.No.>+<S/Ele.No.>+<DATA>+<DLE>+<ETX>+<CRC16>,按圖2設(shè)置相應(yīng)字段并存儲(chǔ)為Send Message 1,也可直接設(shè)置在數(shù)據(jù)字段里。

        圖2

        然后,按返回的數(shù)據(jù)格式編制 “接收?qǐng)?bào)文(Recv Message)”,Recv Message為:響應(yīng)+<DLE>+<STX>+<SRC>+<DST>+<CMD 4F>+<STS>+<TNS>+<EXT STS>+<DLE>+<ETX>+<CRC16>,也設(shè)置相應(yīng)字段并存儲(chǔ)為Recv Message2。如果是讀命令,則將該數(shù)據(jù)寫入DM存儲(chǔ)器中。(2)在“步”中設(shè)置命令為“發(fā)送與接收”,發(fā)送報(bào)文設(shè)置為創(chuàng)建的“開機(jī)”發(fā)送報(bào)文,接收?qǐng)?bào)文可以設(shè)置為 “接收?qǐng)?bào)文”或“矩陣”,然后再選擇“下一個(gè)過程”。其執(zhí)行流程如圖3所示。

        圖3

        3.6 CX-Protocol軟件操作

        (1)創(chuàng)建各報(bào)文:打開CX-Protocol軟件,從“File”(文件)菜單中選擇“NEW”(新增)創(chuàng)建一個(gè)項(xiàng)目,創(chuàng)建項(xiàng)目后從PLC菜單中選擇“Edit PC-PLC Comms Settings”(編輯PC-PLC通信設(shè)定);在項(xiàng)目文件下創(chuàng)建協(xié)議列表(New Protocol list),右鍵點(diǎn)擊“Create/Protocol”(創(chuàng)建/協(xié)議),指定下列項(xiàng):協(xié)議名稱、序列起始號(hào)、序列結(jié)束號(hào)和目標(biāo);右鍵點(diǎn)擊“Create/Sequence”編制協(xié)議序列,指定下列項(xiàng):鏈接字、傳送控制參數(shù)、響應(yīng)類型和監(jiān)測(cè)時(shí)間(Tr、Tfr、Tfs),一個(gè)協(xié)議序列對(duì)應(yīng)一條M2W發(fā)射機(jī)操作命令;在通信序列中右鍵點(diǎn)擊“Create/Step”(創(chuàng)建/步),指定下列項(xiàng):重復(fù)計(jì)數(shù)器、命令、重試計(jì)數(shù)、發(fā)送等待時(shí)間、發(fā)送報(bào)文、接收?qǐng)?bào)文、有/無響應(yīng)寫入、下一個(gè)過程和出錯(cuò)過程,每一步就是一條協(xié)議指令。右鍵點(diǎn)擊步列表中的“Send Message”(發(fā)送報(bào)文)或“Receive Message”(接收?qǐng)?bào)文)字段,然后從彈出菜單中選擇“New Message”(新報(bào)文),將全部使用到的協(xié)議指令輸入為通信報(bào)文,必要時(shí)做好注釋,便于讀懂程序。(2)創(chuàng)建矩陣:如果要根據(jù)不同的響應(yīng)報(bào)文決定下一步執(zhí)行的步(Step),就需要?jiǎng)?chuàng)建矩陣來完成。右鍵點(diǎn)擊“Create/Matrix”(創(chuàng)建/矩陣)和“Create/Martrix Case”(創(chuàng)建/矩陣實(shí)例),預(yù)先設(shè)定可能返回的響應(yīng)報(bào)文數(shù)據(jù),改變各響應(yīng)報(bào)文的下一個(gè)控制步,一個(gè)矩陣中允許最多設(shè)定15種報(bào)文。如圖4,寫控制指令時(shí),可將“接收B“設(shè)為”1006,下一步為發(fā)送“1006”確認(rèn);“接收C”為“1005”和“接收C”為“1015”,下一步為重新發(fā)寫指令。(3)傳送項(xiàng)目:選中項(xiàng)目名稱,點(diǎn)擊菜單Protocol-Download Protocol,將以上創(chuàng)建的項(xiàng)目傳送至PMSU(從個(gè)人計(jì)算機(jī)到PMSU)。

        圖4

        3.7 創(chuàng)建梯形圖程序

        梯形圖程序主要有按時(shí)間表自動(dòng)試機(jī)、開關(guān)機(jī)程序和故障處理等程序。梯形圖程序段較長(zhǎng),這里主要介紹在梯形圖中如何調(diào)用協(xié)議宏指令。在梯形圖中通過使用PMCR命令來調(diào)用協(xié)議宏指令,首先為PMCR指令分配一條功能代碼,然后執(zhí)行PMCR指令。

        圖5

        如圖5所示:控制字1為#02E1,其中0為通信端口(內(nèi)部邏輯端口號(hào)0);2為端口2;E1為內(nèi)插板(串行通信板);控制字2為#2,表示執(zhí)行02號(hào)通信序列。第一個(gè)發(fā)送字為100,發(fā)送數(shù)據(jù)首字(DM100)

        第一個(gè)接收字為200,接收數(shù)據(jù)存儲(chǔ)首字(DM200)。當(dāng)“T機(jī)開機(jī)”位1213.14置ON并將協(xié)議宏執(zhí)行標(biāo)志(1919.15:端口2)置OFF時(shí),將調(diào)用PMSU上注冊(cè)的02號(hào)通信序列,從而在通信端口允許標(biāo)志(A202.00:使用0號(hào)通信端口的內(nèi)部邏輯端口)為ON的情況下經(jīng)由PMSU的端口2發(fā)送和接收數(shù)據(jù)。

        4 系統(tǒng)硬件連接與測(cè)試

        4.1 PLC需要用到的兩個(gè)通信連接

        4.1.1   電腦CX-Protocol軟件與PLC的編程連接

        首先,必須先用編程電纜將電腦CX-Protocol軟件連接到PLC的CPU外設(shè)口或內(nèi)置RS-232C口上,然后,設(shè)置PLC“設(shè)備類型”、和“網(wǎng)絡(luò)類型”。

        4.1.2   PLC通信板(CS1W-SCB41-V1)與受控通信設(shè)備的通信連接

        (1)將串行通信板(CS1W-SCB41-V1)插入CS1的CPU模塊中,設(shè)置終端電阻ON/OFF開關(guān)為“ON”及線制開關(guān)2線/4線撥到“4”的位置。將通信板(CS1W-SCB41-V1)上的端口2(RS-422A/485)與M2W發(fā)射機(jī)的RS-485端口連接。(2)制作通信板與發(fā)射機(jī)的數(shù)據(jù)連接線,并連接好兩端通信口。(3)根據(jù)M2W的通信協(xié)議參數(shù)設(shè)定為:協(xié)議:全雙工;和檢驗(yàn):CRC;COM口:RS422;波特率:19200;每字位數(shù):8;奇偶Parity:偶數(shù);停止位Stop bits:1。

        5 系統(tǒng)調(diào)試

        CX-Protocol提供了數(shù)據(jù)跟蹤和監(jiān)測(cè)功能,當(dāng)執(zhí)行數(shù)據(jù)跟蹤操作時(shí),從該點(diǎn)開始,串行通信板對(duì)發(fā)送/接收?qǐng)?bào)文中按時(shí)間順序排列的數(shù)據(jù)執(zhí)行跟蹤記錄,通過跟蹤發(fā)送或接收數(shù)據(jù)和信號(hào),可根據(jù)步來檢查發(fā)送或接收和各條報(bào)文的內(nèi)容并將其與預(yù)設(shè)的序列進(jìn)行對(duì)比,查找程序的出錯(cuò)原因。筆者在調(diào)試中體會(huì)到在使用通信協(xié)議宏時(shí),必須注意下面幾個(gè)問題,否則可能會(huì)造成通信失敗。(1)執(zhí)行PMCR指令時(shí),最好使用上升沿微分觸發(fā)PMCR指令,否則可能引起各條指令間的沖突。(2)根據(jù)實(shí)際測(cè)試發(fā)射機(jī)的接收和反饋時(shí)間,設(shè)置發(fā)送完成監(jiān)測(cè)時(shí)間Tfs為0.2S、接收等待監(jiān)測(cè)時(shí)間Tr為0.2S和接收完成監(jiān)測(cè)時(shí)間Tfr為0.4S,既能保證指令的完整發(fā)送,又節(jié)省等待時(shí)間,并可以防止協(xié)議宏進(jìn)入死鎖狀態(tài)。(可參考操作手冊(cè)中監(jiān)測(cè)時(shí)間的計(jì)算方法)。

        6 出錯(cuò)處理

        PLC設(shè)置有特殊輔助區(qū),存儲(chǔ)PLC運(yùn)行狀態(tài),協(xié)議宏在發(fā)生以下任一錯(cuò)誤時(shí),根據(jù)設(shè)定的重試計(jì)數(shù)自動(dòng)重復(fù)執(zhí)行同一個(gè)步(最多3次):① 監(jiān)測(cè)時(shí)間(Tfs、Tr、Tfr)已過。②發(fā)生了接收通信錯(cuò)誤。③接收?qǐng)?bào)文不正確。④校驗(yàn)碼存在錯(cuò)誤。

        發(fā)生異常時(shí),可通過這些狀態(tài)了解異常情況,并可應(yīng)用這些狀態(tài)位進(jìn)行程序保護(hù)。以CS1為例常用的有:

        7 結(jié)束語

        通信協(xié)議宏不單可以實(shí)現(xiàn)對(duì)中波發(fā)射機(jī)房M2W發(fā)射機(jī)的自動(dòng)化控制,而且還可以應(yīng)用在各種具有串行通信端口的設(shè)備上;如果采用RS-422A/485串行通信端口,還可以實(shí)現(xiàn)1:N控制(最多32部)外部通信設(shè)備。此應(yīng)用系統(tǒng)在我臺(tái)投入運(yùn)行以來,能安全、穩(wěn)定、可靠地工作,整個(gè)控制系統(tǒng)靈活、方便、一體化控制,大大提高了廣播播出系統(tǒng)自動(dòng)化、網(wǎng)絡(luò)化的管理水平,具有很好的實(shí)用性和行業(yè)中的推廣價(jià)值。

        第5篇:基本通信協(xié)議范文

        關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議 動(dòng)態(tài)鏈接庫 協(xié)議工作說明書

        一、引言

        PRT-GET定義為一個(gè)協(xié)議模擬器,所謂協(xié)議模擬器就是通過某種途徑模擬各式各樣的網(wǎng)絡(luò)通信協(xié)議從而可以進(jìn)行具體而實(shí)際的網(wǎng)絡(luò)通信,最終達(dá)到同時(shí)支持多種通信協(xié)議的目的。PRT-GET不同于現(xiàn)今網(wǎng)上存在的各種網(wǎng)絡(luò)工具,使用它可以編寫基本上所有的基于Socket應(yīng)用層的通信協(xié)議,PRT-GET的設(shè)計(jì)解決了用戶使用網(wǎng)絡(luò)工具時(shí)難以支持新出現(xiàn)的協(xié)議的問題。

        二、PRT-GET的特點(diǎn)

        作為一個(gè)優(yōu)秀的協(xié)議模擬器,PRT-GET具備以下的幾個(gè)特點(diǎn):

        1.PRT-GET是一個(gè)動(dòng)態(tài)鏈接庫??紤]到應(yīng)用程序的擴(kuò)展極其的不方便,所以沒有把PRT-GET設(shè)計(jì)成應(yīng)用程序的形式,而采用動(dòng)態(tài)鏈接庫的方式,該方式可以方便地進(jìn)行二次開發(fā),也方便擴(kuò)展軟件的功能。

        2.PRT-GET是完全面向?qū)ο蟮?。PRT-GET是一個(gè)可二次開發(fā)的動(dòng)態(tài)鏈接庫,所以面向?qū)ο蟮脑O(shè)計(jì)模式能令二次開發(fā)更加高效。

        3.PRT-GET的代碼擴(kuò)展性高。使用PRT-GET時(shí),如果PRT-GET本身提供的功能不夠,那么用戶可以通過擴(kuò)展PRT-GET中對(duì)應(yīng)的類,以實(shí)現(xiàn)自定義的功能。

        4.PRT-GET支持自定義協(xié)議。PRT-GET的最大特色就是支持用戶自定義應(yīng)用層協(xié)議,通過用戶編寫的協(xié)議工作說明書,PRT-GET忠實(shí)地執(zhí)行用戶在說明書中指定的每一個(gè)操作,也就是說,用戶無需編寫任何一句代碼就可以使PRT-GET支持自定義協(xié)議。

        5.PRT-GET的使用方便。PRT-GET使用時(shí)只需要調(diào)用動(dòng)態(tài)鏈接庫就可以輕松地使用其中的協(xié)議控制類。

        三、PRT-GET的設(shè)計(jì)

        1.PRT-GET的工作層次

        PRT-GET設(shè)計(jì)為一個(gè)動(dòng)態(tài)鏈接庫,它為系統(tǒng)應(yīng)用程序提供中間層服務(wù),使得應(yīng)用程序無需了解網(wǎng)絡(luò)通信的具體邏輯,只需把網(wǎng)絡(luò)的內(nèi)容當(dāng)作本地的內(nèi)容操作即可,從這點(diǎn)看起來PRT-GET也是一個(gè)協(xié)議,而且更是一個(gè)能提供很多協(xié)議服務(wù)的協(xié)議支持軟件。PRT-GET在網(wǎng)絡(luò)中的工作層次如圖1所示。

        對(duì)于使用PRT-GET作為網(wǎng)絡(luò)通信協(xié)議的應(yīng)用程序來說,用戶可以指定PRT-GET使用哪個(gè)協(xié)議進(jìn)行工作,因?yàn)镻RT-GET是在需要使用時(shí)才加載協(xié)議內(nèi)容的,所以用戶可以隨時(shí)動(dòng)態(tài)指定PRT-GET使用的協(xié)議,甚至可以動(dòng)態(tài)修改PRT-GET使用的協(xié)議內(nèi)容。當(dāng)協(xié)議組里面包含的協(xié)議不滿足用戶要求時(shí),用戶還可以添加新的協(xié)議,這只需要添加一個(gè)協(xié)議工作說明書到協(xié)議組里面就可以了。

        應(yīng)用程序

        計(jì)算機(jī)

        PRT-GET

        協(xié)議組

        協(xié)議內(nèi)容

        服務(wù)器

        服務(wù)程序

        用戶

        圖1 PRT-GET工作層次

        PRT-GET工作時(shí)根據(jù)用戶指定的協(xié)議加載協(xié)議工作說明書,然后再依照協(xié)議說明書內(nèi)容與遠(yuǎn)端服務(wù)器/客戶端協(xié)作工作。對(duì)于PRT-GET來說,遠(yuǎn)端機(jī)器是透明的,PRT-GET的機(jī)器透明性是基于工作在TCP協(xié)議上的Socket的,所以對(duì)于PRT-GET來說沒有機(jī)器的差別,沒有平臺(tái)的差別。

        2.PRT-GET的幾個(gè)概念

        在PRT-GET中,有一些基本概念貫穿于整個(gè)PRT-GET的設(shè)計(jì)和實(shí)現(xiàn)過程中。

        (1)協(xié)議

        PRT-GET中的協(xié)議對(duì)應(yīng)著一個(gè)網(wǎng)絡(luò)協(xié)議。協(xié)議在PRT-GET程序中只是一個(gè)邏輯的存在,并沒有具體的某個(gè)協(xié)議的實(shí)現(xiàn),所以如果要使PRT-GET支持某個(gè)協(xié)議的話,需要編寫一個(gè)具體的協(xié)議工作說明書與PRT-GET相配合。也就是說協(xié)議工作說明書是PRT-GET的具體協(xié)議的載體,也是PRT-GET支持協(xié)議的體現(xiàn)。

        (2)元素

        元素是PRT-GET的一個(gè)新概念。所有的協(xié)議都是一些基本通信單元的組合,而PRT-GET就是通過將協(xié)議分解成一個(gè)個(gè)的基本單元從而做到支持各種協(xié)議的。這種基本單元就是元素。元素是PRT-GET中協(xié)議構(gòu)成的基本單位,一個(gè)PRT-GET的協(xié)議本質(zhì)上就是一些PRT-GET的元素序列,同樣的,對(duì)元素的不同組合可以生成不同的協(xié)議,這就是PRT-GET可以支持不同協(xié)議的本質(zhì)原因。

        程序中的一個(gè)元素類的對(duì)象對(duì)應(yīng)著協(xié)議工作說明書的實(shí)際一行,也就是代表著通信交互中的一個(gè)基本交互單元。協(xié)議工作說明書中指定了每一個(gè)通信單元應(yīng)當(dāng)使用的元素類,并執(zhí)行相應(yīng)動(dòng)作實(shí)現(xiàn)對(duì)應(yīng)的通訊單元。

        為更好的實(shí)現(xiàn)通訊單元的分割和減少通信協(xié)議工作說明書的編寫難度,定義了動(dòng)作元素和輔助元素這兩個(gè)概念。

        動(dòng)作元素:對(duì)應(yīng)著一個(gè)通訊基本操作,它指明了對(duì)于本次操作應(yīng)該如何進(jìn)行。

        輔助元素:對(duì)動(dòng)作單元進(jìn)行輔助處理的單元,它是從屬于動(dòng)作單元,一個(gè)動(dòng)作元素可以有零個(gè)或多個(gè)輔助元素。

        動(dòng)作元素和輔助元素指定了協(xié)議的一個(gè)通信單元的工作方式,而本次通信的內(nèi)容就由內(nèi)容項(xiàng)指定了。一個(gè)元素由動(dòng)作元素和輔助元素、內(nèi)容三項(xiàng)組成,其結(jié)構(gòu)如下:

        動(dòng)作單元 [輔助單元]* [內(nèi)容]

        (3)分析器

        PRT-GET中并沒有協(xié)議的實(shí)體存在,代替的是用協(xié)議工作說明書作為協(xié)議的載體,而協(xié)議工作說明書只是一個(gè)文本文件,如何將這個(gè)協(xié)議工作說明書的內(nèi)容加載到內(nèi)存并轉(zhuǎn)變?yōu)橐粋€(gè)一個(gè)對(duì)應(yīng)的元素,這個(gè)工作是由分析器來解決的。

        分析器有協(xié)議分析器和元素分析器兩種,分別用于不同用途。

        協(xié)議分析器:協(xié)議分析器主要的工作是分析協(xié)議工作說明書并創(chuàng)建該說明書對(duì)應(yīng)的元素序列,輔助Protocol實(shí)體的創(chuàng)建。

        元素分析器:元素分析器的工作是從一個(gè)字符串中分解出輔助元素和內(nèi)容,以支持元素類的動(dòng)作。

        PRT-GET工作流程

        PRT-GET的使用非常的方便,只需要使用URL創(chuàng)建出具體的一個(gè)協(xié)議對(duì)象則可以與主機(jī)通信,而此URL的要求為“protocol://host: port/file”格式,其中port并不是必須的,如果沒有指定的話就會(huì)使用對(duì)應(yīng)協(xié)議的協(xié)議工作說明書中指定的默認(rèn)端口。

        PRT-GET工作時(shí),將會(huì)根據(jù)用戶提交的協(xié)議名檢查其協(xié)議說明書庫中是否有該協(xié)議,如果發(fā)現(xiàn)對(duì)應(yīng)的協(xié)議不存在則拋出一個(gè)異常提示用戶。找到指定協(xié)議后,PRT-GET將創(chuàng)建一個(gè)協(xié)議對(duì)象以實(shí)現(xiàn)通信,并將協(xié)議工作說明書加載進(jìn)內(nèi)存中,分析生成一個(gè)元素序列,最后就執(zhí)行元素序列以實(shí)現(xiàn)實(shí)際通信目的,其工作流程如圖2所示。

        讀取

        開始

        結(jié)束

        查找協(xié)議工作說明書

        協(xié)議組

        協(xié)議存在

        拋出異常

        創(chuàng)建協(xié)議對(duì)象

        分析工作說明書

        執(zhí)行元素動(dòng)作

        圖2 PRT-GET工作流程圖

        四、主要包的設(shè)計(jì)

        對(duì)PRT-GET的設(shè)計(jì)采用按功能結(jié)構(gòu)分包的方式,將功能相近的類放置在一起,并按邏輯位置將其放在不同的命名空間之中。

        PRT-GET中最核心的三個(gè)包分別是Element(元素包)、Analyze(分析工具包)和Util(其他工具包),此外,還有ProtocolManager和Protocol兩個(gè)核心類。

        PRT-GET將網(wǎng)絡(luò)操作分為基本的單元——元素,在程序中的體現(xiàn)就是元素(Element對(duì)象),PRT-GET將所有的元素類都放置在Element包中,并通過接口IElement實(shí)現(xiàn)元素動(dòng)作的統(tǒng)一。

        Analyze包是一個(gè)存放存放分析器的包。PRT-GET經(jīng)常需要對(duì)協(xié)議工作說明文件進(jìn)行分析,這就需要一個(gè)分析器專門對(duì)協(xié)議中的字符串進(jìn)行分析,Analyze包中的類就是負(fù)責(zé)此類工作。

        PRT-GET在進(jìn)行一些處理時(shí)經(jīng)常會(huì)用到一些方法,為增加代碼的重用率,將所有經(jīng)常使用到的方法或操作封裝為類存放在Util包中。

        五、協(xié)議工作說明書

        協(xié)議工作說明書是協(xié)議的真正載體,它以“協(xié)議名+.prt”為文件名存放在PRT-GET動(dòng)態(tài)鏈接庫目錄的“protocol”文件夾下,PRT-GET加載協(xié)議時(shí)到這查找該協(xié)議是否存在,當(dāng)查找到時(shí)就會(huì)加載為一個(gè)協(xié)議實(shí)體。

        1.協(xié)議工作說明書的組成

        網(wǎng)絡(luò)通信主要是發(fā)送內(nèi)容和接收內(nèi)容,PRT-GET的主要作用就是屏蔽了這一層中繁瑣的通信,使得用戶可以直接對(duì)通信的有用內(nèi)容進(jìn)行處理。

        基于網(wǎng)絡(luò)通信只有發(fā)送和接收兩種情況,協(xié)議工作說明書也只有兩種基本元素:Send和Receive。Send發(fā)送數(shù)據(jù),而發(fā)送的數(shù)據(jù)可以是在協(xié)議說明書中指定的常量,也可以是用戶動(dòng)態(tài)加載的內(nèi)容。Receive同樣也可以接收常量,或者接收到內(nèi)存中對(duì)應(yīng)的元素的Data數(shù)據(jù)中。除了這兩種基本元素外,PRT-GET還擴(kuò)展了另外兩種元素:Skip和Repeat。Skip能忽略用戶不感興趣的內(nèi)容,Repeat的作用就是重復(fù)進(jìn)行用戶的一些煩瑣的操作,這些對(duì)提高用戶的工作效率有很大的幫助。此外,還有其它一些輔助元素可以指定各種動(dòng)作元素的具體操作內(nèi)容。

        2.協(xié)議工作說明書編寫要求

        編寫協(xié)議工作說明書必須滿足以下格式:

        Port 端口號(hào)

        (Element名 [輔助元素名]* 內(nèi)容)*

        協(xié)議說明書的最開始應(yīng)該是端口號(hào)說明,而后出現(xiàn)的是元素字符串。元素字符串由三部分組成,其中元素名是指該動(dòng)作元素的名稱;輔助元素指定了動(dòng)作元素的一些要求,一個(gè)動(dòng)作元素可以有幾個(gè)輔助元素的存在;第三個(gè)部分就是內(nèi)容,內(nèi)容可以是常量?jī)?nèi)容,也可以是變量,也就是用戶指定的數(shù)據(jù)。

        一個(gè)協(xié)議說明書只能由一個(gè)端口號(hào),但是卻可以有多個(gè)元素,不同元素之間用換行隔開即可。定義一個(gè)協(xié)議說明書必須以該協(xié)議名稱加上“.prt”為協(xié)議工作說明書名稱,并將其放置在PRT-GET的動(dòng)態(tài)鏈接庫目錄下的protocol文件夾內(nèi)。

        六、應(yīng)用實(shí)例

        多協(xié)議服務(wù)器是一個(gè)使用PRT-GET作為通信層的服務(wù)器軟件,以文件映射作為虛擬路徑管理手段。通過該服務(wù)器軟件可以設(shè)置虛擬目錄,用戶可以指定訪問需要使用的網(wǎng)絡(luò)協(xié)議(如HTTP),當(dāng)有客戶端請(qǐng)求時(shí),服務(wù)器調(diào)用PRT-GET創(chuàng)建一個(gè)協(xié)議實(shí)體執(zhí)行通信,并由服務(wù)器解釋請(qǐng)求的URL,將其映射為相關(guān)系統(tǒng)文件,客戶端可以和服務(wù)器進(jìn)行通信,請(qǐng)求服務(wù)器上的文件資源如圖3所示。

        圖3 利用PRT-GET模擬HTTP通信

        七、結(jié)語

        本文討論了多協(xié)議模擬器PRT-GET的設(shè)計(jì)思路和方法,并通過實(shí)例模擬HTTP協(xié)議驗(yàn)證了文中所提設(shè)計(jì)方案的可行性。由于PRT-GET目前的版本設(shè)計(jì)中輔助元素還不夠多,模擬器的交互設(shè)計(jì)還有所欠缺,下一步將增加輔助元素的設(shè)計(jì),豐富模擬器的功能,增強(qiáng)其應(yīng)用的靈活性。

        參考文獻(xiàn)

        [1] 陳富春.ASP.NET中XML數(shù)據(jù)與關(guān)系數(shù)據(jù)的交互技術(shù).現(xiàn)代計(jì)算機(jī).2005(04):P35-37

        第6篇:基本通信協(xié)議范文

        路燈定時(shí)器調(diào)時(shí)間的方法如下:

        路燈定時(shí)器采用先進(jìn)的嵌入式微型計(jì)算機(jī)控制技術(shù)的高級(jí)時(shí)控器,根據(jù)用戶節(jié)能需要多路任意編程同時(shí)啟用;路燈定時(shí)器是通信協(xié)議正常運(yùn)行的基本要素之一,主要用于各種定時(shí)和幀重傳的任務(wù);路燈定時(shí)器通信協(xié)議在單片機(jī)系統(tǒng)上實(shí)現(xiàn)所使用的定時(shí)器,定時(shí)精度要求不高,但數(shù)量要求比較大;路燈定時(shí)器由于硬件資源有限,不能為每一個(gè)單獨(dú)任務(wù)分配一個(gè)硬件定時(shí)器,只能通過單個(gè)硬件定時(shí)器模擬多個(gè)軟件定時(shí)器的方法,來滿足協(xié)議中的定時(shí)應(yīng)用需要。

        (來源:文章屋網(wǎng) )

        第7篇:基本通信協(xié)議范文

        現(xiàn)場(chǎng)執(zhí)行層可以采用直接硬連線方式(通過電流或電壓信號(hào)完成控制器與設(shè)備間的信息傳遞)、網(wǎng)絡(luò)連接方式(以太網(wǎng)方式連接控制器和設(shè)備,控制器與設(shè)備之間根據(jù)某種通信協(xié)議完成信息交換)等不同的網(wǎng)絡(luò)接入方式連接設(shè)備。②現(xiàn)場(chǎng)控制層:主要包括區(qū)域控制器和專用控制器,這些控制器可以獨(dú)立處理、控制數(shù)據(jù),各個(gè)控制器之間以太網(wǎng)或其他網(wǎng)絡(luò)連接方式連接,根據(jù)某種通信協(xié)議完成交換信息。③信息管理層:主要負(fù)責(zé)所有信息技術(shù)以及網(wǎng)絡(luò)技術(shù)的統(tǒng)一管理,各個(gè)信息管理工作站之間會(huì)用計(jì)算機(jī)廣域網(wǎng)或局域網(wǎng)進(jìn)行連接。

        2.無線網(wǎng)絡(luò)技術(shù)應(yīng)用于智能樓宇控制的可能性與挑戰(zhàn)性

        在現(xiàn)代無線技術(shù)的快速發(fā)展與應(yīng)用的背景形勢(shì)下,以太網(wǎng)為主的連接方式以及組網(wǎng)方式受到極大的沖擊,經(jīng)大量的市場(chǎng)研究調(diào)查分析,現(xiàn)場(chǎng)執(zhí)行層以及信息管理層可以無線網(wǎng)絡(luò)技術(shù)來替代有線的連接方式的可能性最大。因?yàn)楝F(xiàn)場(chǎng)執(zhí)行層的傳感器節(jié)點(diǎn)較多,有線連接的布線部署比較困難,工程難度較大,而且像舊大樓、工廠生產(chǎn)車間以及博物館等地方根本無法布線,采用無線連接的部署非常方便,傳感器節(jié)點(diǎn)可以增加,位置也可以變換。在信息管理層應(yīng)用無線連接的方式可方便用戶隨時(shí)隨地通過移動(dòng)設(shè)備控制、管理整個(gè)信息系統(tǒng),信息的管理以及維護(hù)比較便捷。但是無線網(wǎng)絡(luò)會(huì)由于樓宇內(nèi)部環(huán)境的特殊性,經(jīng)常受到多途徑的傳輸干擾、障礙物反射以及傳輸沖突等問題,從而影響無線網(wǎng)絡(luò)技術(shù)的可擴(kuò)展性以及可靠性,使寬帶通信數(shù)據(jù)的吞吐量受到影響。而有線網(wǎng)絡(luò)擁有巨大的網(wǎng)絡(luò)寬帶資源,信息受到保護(hù),因此比較安全、可靠,這是無線網(wǎng)絡(luò)技術(shù)所欠缺的很重要的一點(diǎn),因此無線網(wǎng)絡(luò)技術(shù)無法完全取代有線網(wǎng)絡(luò)。目前智能樓宇自動(dòng)控制系統(tǒng)的信息管理層基本都采用的是無線網(wǎng)絡(luò)連接技術(shù),并且受到廣泛好評(píng),然而在現(xiàn)場(chǎng)執(zhí)行層的無網(wǎng)絡(luò)應(yīng)用技術(shù)仍處于探索階段。

        3.現(xiàn)場(chǎng)執(zhí)行層的無線網(wǎng)絡(luò)技術(shù)應(yīng)用分析

        第8篇:基本通信協(xié)議范文

        智能電網(wǎng)指的是電網(wǎng)智能化,是電網(wǎng)技術(shù)發(fā)展的2.0版本。智能電網(wǎng)以信息和通信技術(shù)為支撐,建設(shè)高集成度、高速信息傳遞的電網(wǎng)系統(tǒng),利用高速傳感器以及先進(jìn)測(cè)量技術(shù),引進(jìn)理念先進(jìn)的決策支持系統(tǒng),對(duì)電網(wǎng)的可靠、安全、經(jīng)濟(jì)、高效以及友好應(yīng)用提供強(qiáng)有力的支持。

        2智能電網(wǎng)運(yùn)行特點(diǎn)

        智能電網(wǎng)在設(shè)計(jì)和運(yùn)行過程中,利用高速雙向通信通道進(jìn)行信息傳遞,并利用傳感器技術(shù)、測(cè)控技術(shù)等進(jìn)行數(shù)據(jù)采集和指令的執(zhí)行??偟膩碚f,智能電網(wǎng)運(yùn)行特點(diǎn)如下。

        2.1自愈功能

        智能電網(wǎng)的自愈功能是指當(dāng)電網(wǎng)在遭受突發(fā)事故破壞時(shí),例如雷擊、地震、火災(zāi)或其他自然災(zāi)害以及人為破壞后,能夠在短時(shí)間內(nèi)對(duì)故障進(jìn)行診斷、定位、隔離以及修復(fù),以自身能力對(duì)電網(wǎng)進(jìn)行保護(hù),實(shí)現(xiàn)電力系統(tǒng)的安全運(yùn)行。自愈功能發(fā)揮作用的基礎(chǔ)是系統(tǒng)對(duì)電網(wǎng)實(shí)時(shí)狀態(tài)的監(jiān)控和掌握,能夠在盡可能少的人工干預(yù)下,進(jìn)行備自投、故障隔離等操作,實(shí)現(xiàn)電網(wǎng)的自我恢復(fù)。

        2.2較高的兼容性和集成性

        智能電網(wǎng)的標(biāo)志之一是較好的兼容性和較高的集成性。智能電網(wǎng)的兼容性首先表現(xiàn)在數(shù)據(jù)格式的兼容,能夠提供不同的數(shù)據(jù)格式的支持;其次,表現(xiàn)在設(shè)備的兼容性上,不同廠家、不同標(biāo)準(zhǔn)的設(shè)備能夠與智能電網(wǎng)進(jìn)行互通和運(yùn)行;智能電網(wǎng)的兼容性還表現(xiàn)在對(duì)于不同用戶的用電需求能夠?qū)崿F(xiàn)精確控制,滿足不同用戶的需求。高度集成的系統(tǒng)對(duì)于信息采集、處理以及信息安全的保障具有重要作用。

        2.3安全性

        智能電網(wǎng)的安全性除保證電網(wǎng)的供電安全外,還包括與變電站、客戶、終端設(shè)備之間的通信網(wǎng)絡(luò)的數(shù)據(jù)信息安全,智能電網(wǎng)通信技術(shù)目前應(yīng)用較為廣泛的是光纖通信,數(shù)據(jù)流量大,通信質(zhì)量有保障。

        3智能電網(wǎng)信息及通信技術(shù)關(guān)鍵問題

        當(dāng)前,智能電網(wǎng)信息及通信技術(shù)的研究熱點(diǎn),主要集中在通信技術(shù)、信息安全以及通信體系標(biāo)準(zhǔn)化建設(shè)等方面,這些關(guān)鍵技術(shù)的革新,將會(huì)給智能電網(wǎng)的建設(shè)及發(fā)展帶來飛速發(fā)展的契機(jī)。

        3.1通信技術(shù)問題

        通信技術(shù)及通信網(wǎng)絡(luò),是智能電網(wǎng)信息輸送的動(dòng)力源泉以及大動(dòng)脈,對(duì)于智能電網(wǎng)終端信息采集、數(shù)據(jù)傳輸以及保護(hù)、網(wǎng)絡(luò)控制等意義重大。解決通信技術(shù)及通信網(wǎng)絡(luò)的建設(shè)問題,是發(fā)展智能電網(wǎng)的基礎(chǔ)保障。當(dāng)前,以光纖通信為代表的信息通信技術(shù)是該領(lǐng)域的主流。

        3.1.1光纖通信技術(shù)問題

        光纖通信技術(shù)是以光纖作為信息傳遞的通道和載體,實(shí)現(xiàn)數(shù)據(jù)互通的技術(shù)。一般而言,光纖通信技術(shù)可以借助MPLS(Multi-ProtocolLabelSwitching,多協(xié)議標(biāo)簽交換)技術(shù)將傳統(tǒng)光纖由2M帶寬擴(kuò)容到100M,可有效降低成本。目前智能電網(wǎng)光纖通信技術(shù)的主要問題是在架設(shè)以及更換加掛時(shí)光纜型式的選擇。智能電網(wǎng)通常采用OPGW、OPPC、ADSS等光纜進(jìn)行網(wǎng)絡(luò)建設(shè)。OPGW光纜在敷設(shè)時(shí)具有以下兩種優(yōu)勢(shì):第一,OPGW光纜在敷設(shè)時(shí)與地線可復(fù)用架設(shè),能夠減少工程量,降低成本。第二,OPGW光纜能夠?qū)⑿盘?hào)在傳輸過程中的損失控制到較小的程度,適用于智能電網(wǎng)長(zhǎng)遠(yuǎn)距離信息傳輸使用,以確保通信質(zhì)量。其主要缺點(diǎn)是易受雷擊,需附設(shè)防雷擊裝置以對(duì)其進(jìn)行保護(hù)。而ADSS光纜相較于OPGW而言,在防雷擊方面具有明顯優(yōu)勢(shì);且由于其采用低密度材料,在敷設(shè)時(shí)更加便于施工,對(duì)輸電線路影響更小;此外,該光纜敷設(shè)采用桿塔添加形式,維修和線路優(yōu)化工作便于展開。該光纜應(yīng)用的主要缺點(diǎn)在于電腐蝕情況較為明顯。OPPC光纜目前主要在發(fā)達(dá)國(guó)家應(yīng)用,其主要特點(diǎn)是能夠與相導(dǎo)線復(fù)合使用,借助相導(dǎo)線的高壓對(duì)光纜形成天然的保護(hù),成為OPGW以及ADSS光纜敷設(shè)盲區(qū)的最佳替代品。三者相比,OPPC以及OPGW光纜主要適用于新建線路中,而ADSS光纜則主要用于老舊線路加掛時(shí)使用。

        3.1.2電力通信技術(shù)問題

        電力通信技術(shù)目前主要問題有兩種:第一,電力線纜本身的射頻干擾以及載波頻率過低,都對(duì)其尋找合適的替代品帶來較大難度,另外,新材料應(yīng)用的技術(shù)難題也困擾著電力通信技術(shù)的發(fā)展。第二,互聯(lián)網(wǎng)通用的TCP/IP協(xié)議無法兼容與電力線通信,許多新技術(shù)難以得到應(yīng)用。針對(duì)目前電力通信技術(shù)的主要問題,一方面可以從開發(fā)新型信息承載材料入手,解決電力線纜的使用弊端;另一方面,BPL標(biāo)準(zhǔn)開發(fā)的發(fā)展,將為未來電力線兼容互聯(lián)網(wǎng)協(xié)議提供標(biāo)準(zhǔn)體制上的極大助力。

        3.2信息安全技術(shù)問題

        智能電網(wǎng)從自身分布式的系統(tǒng)以及終端獲取運(yùn)行數(shù)據(jù)信息,實(shí)現(xiàn)數(shù)據(jù)的交換,因而,信息傳輸?shù)陌踩c否直接關(guān)系到電網(wǎng)運(yùn)行的安全,甚至能夠影響國(guó)家戰(zhàn)略部署和社會(huì)安定。因此智能電網(wǎng)ICS/MCS系統(tǒng)的安全問題顯得愈發(fā)重要。ICS/MCS系統(tǒng)的安全問題主要包括物理安全、運(yùn)行安全以及信息安全三個(gè)方面。而由于智能電網(wǎng)的數(shù)字化程度高,易遭受網(wǎng)絡(luò)惡意代碼的攻擊,對(duì)電網(wǎng)造成極大威脅,這類威脅主要分為主觀威脅和客觀威脅兩類??陀^威脅主要來自電網(wǎng)內(nèi)部,包括自身電力設(shè)備及網(wǎng)絡(luò)設(shè)備的損壞或故障,由于工作人員的疏忽帶來的威脅也屬于客觀威脅;而主觀威脅則主要來自系統(tǒng)外部,主要包括商業(yè)間諜、犯罪分子以及網(wǎng)絡(luò)黑客的攻擊。智能電網(wǎng)信息安全防護(hù)的重點(diǎn)在于保證信息的完整性以及及時(shí)性,一旦信息完整性被破壞,無法及時(shí)進(jìn)行傳遞,會(huì)造成整個(gè)電網(wǎng)運(yùn)行的控制指令的錯(cuò)誤甚至電網(wǎng)癱瘓。而傳統(tǒng)信息安全中所指的私密性在電網(wǎng)信息安全中反而處于較低的優(yōu)先級(jí)。為保證智能電網(wǎng)信息安全,需建立完整的信息安全方案,主要目的是:①設(shè)備接入控制:防止除系統(tǒng)許可的各類電氣設(shè)備、網(wǎng)絡(luò)設(shè)備等之外的設(shè)備接入系統(tǒng)。②數(shù)據(jù)信息認(rèn)證:確認(rèn)系統(tǒng)接收信息來源的合法性和信息完整性。主要技術(shù)手段可采用:第一,對(duì)終端各設(shè)備進(jìn)行離線注冊(cè)并分別分配密鑰,并采用基于IBE策略的訪問控制及認(rèn)證,確保終端設(shè)備接入的合法性。第二,采用基于HASH函數(shù)的信息完整性確認(rèn)技術(shù),確保系統(tǒng)接收到信息的完整性。

        3.3標(biāo)準(zhǔn)體系構(gòu)建問題

        目前,對(duì)智能電網(wǎng)的繼續(xù)發(fā)展形成掣肘的主要問題之一便是標(biāo)準(zhǔn)體系遲遲未能完善。智能電網(wǎng)的建設(shè)牽涉到種類繁多的電氣設(shè)備、網(wǎng)絡(luò)設(shè)備,類型多樣,需要構(gòu)建一個(gè)統(tǒng)一的標(biāo)準(zhǔn)體系來確保各設(shè)備之間協(xié)調(diào)運(yùn)行,形成這個(gè)標(biāo)準(zhǔn)體系的主要組成包括通信協(xié)議和標(biāo)準(zhǔn)。其中通信協(xié)議主要包括互聯(lián)網(wǎng)TCP/IP通信協(xié)議,而通信標(biāo)準(zhǔn)除了包括BPL標(biāo)準(zhǔn)外,還包括BACnet、IECTC57、IEC61400-25、IEEE802和1588等。從電網(wǎng)的發(fā)電、輸電、配電、送電和用電五大環(huán)節(jié)中,前三個(gè)環(huán)節(jié)目前在我國(guó)基本形成了比較完善的通信協(xié)議標(biāo)準(zhǔn)體系,以IEEE體系作為基本標(biāo)準(zhǔn),對(duì)電網(wǎng)廣域時(shí)間進(jìn)行同步,同時(shí)借助PTP等協(xié)議對(duì)發(fā)電控制系統(tǒng)進(jìn)行精確調(diào)節(jié)。但是,在送用電環(huán)節(jié),由于涉及到的用戶較多,用電設(shè)備種類覆蓋面積大,因此尚未與電氣生產(chǎn)商達(dá)成廣泛共識(shí),形成統(tǒng)一的送用電標(biāo)準(zhǔn)體系,該項(xiàng)工程將會(huì)是未來智能電網(wǎng)發(fā)展的重點(diǎn)。

        4結(jié)語

        第9篇:基本通信協(xié)議范文

        關(guān)鍵詞:同步串行接口;SPI;FPGA;Verilog HDL

        中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2012)009009202

        0引言

        SPI(串行設(shè)備接口)是一種廣泛使用的串行數(shù)據(jù)傳輸協(xié)議,主要用于微處理器與外設(shè)的高速通訊。由于它速度快,通信協(xié)議簡(jiǎn)單,占用外部IO口少,相對(duì)來說較穩(wěn)定,因此廣泛應(yīng)用于AD轉(zhuǎn)換器、串行EEPROM、高速時(shí)鐘、FLASH、DDS以及LCD顯示驅(qū)動(dòng)等領(lǐng)域。

        另外,SPI口的時(shí)鐘速度、數(shù)據(jù)位長(zhǎng)度、時(shí)鐘模式可以靈活控制,實(shí)質(zhì)上是一個(gè)長(zhǎng)度可編程的移位寄存器,為提高其集成性和經(jīng)濟(jì)性,經(jīng)常通過其它芯片模擬SPI。本文介紹了一種基于FPGA設(shè)計(jì)模擬SPI的方法,完成了SPI的基本功能,具有一定的實(shí)用價(jià)值。

        1SPI協(xié)議基礎(chǔ)

        SPI是一種同步串行通信方式,數(shù)據(jù)是一位接一位進(jìn)行傳輸?shù)模饕且灾鲝姆绞焦ぷ鞯?。主設(shè)備(Master)與從設(shè)備(Slavel)之間的連線方式如圖1,其中,主設(shè)備一個(gè),從設(shè)備可為一個(gè)或多個(gè)。

        MOSI:主設(shè)備數(shù)據(jù)輸出從設(shè)備數(shù)據(jù)輸入;MISO從設(shè)備數(shù)據(jù)輸出主設(shè)備數(shù)據(jù)輸入;SCK:時(shí)鐘信號(hào)由主設(shè)備產(chǎn)生,MOSI、MISO都是基于此時(shí)鐘信號(hào)完成數(shù)據(jù)傳輸;SSEL片選控制信號(hào),控制芯片是否被選中成為SPI的從設(shè)備,低電平有效。SPI工作時(shí)序如圖2。

        2SPI模塊代碼設(shè)計(jì)

        本設(shè)計(jì)中SPI同步串口的設(shè)計(jì)主要采用硬件描述語言Verilog HDL來完成,由于FPGA模擬SPI主設(shè)備的設(shè)計(jì)與FPGA模擬SPI從設(shè)備的設(shè)計(jì)思路基本一致,而且FPGA模擬SPI主設(shè)備的設(shè)計(jì)更為復(fù)雜,所以,下面以FPGA為主設(shè)備為例介紹SPI同步串口的實(shí)現(xiàn)方法。

        FPGA模擬SPI主設(shè)備實(shí)現(xiàn)的邏輯實(shí)現(xiàn)框圖如圖3所示。它主要包含3個(gè)模塊的設(shè)計(jì):SCK產(chǎn)生模塊、發(fā)送數(shù)據(jù)模塊、接收數(shù)據(jù)模塊,下面將一一介紹其程序的實(shí)現(xiàn)方法。

        2.1SCK產(chǎn)生模塊

        同步時(shí)鐘信號(hào)SCK一般由輸入時(shí)鐘信號(hào)CLK分頻產(chǎn)生,在FPGA中對(duì)時(shí)鐘進(jìn)行分頻一般有兩種方法:鎖相環(huán)的IP核分頻和直接采用Verilog HDL語言分頻。SCK的大小可由設(shè)計(jì)者靈活控制,但前提是一定要滿足從設(shè)備的時(shí)序要求,從設(shè)備對(duì)SCK一般包含3個(gè)方面的限定:SCK的周期最小值、SCK高電平的最小值、SCK低電平的最小值。

        2.2數(shù)據(jù)發(fā)送模塊

        如上圖3可知,數(shù)據(jù)發(fā)送模塊主要包含3個(gè)輸入信號(hào)時(shí)鐘信號(hào)CLK、復(fù)位信號(hào)RESET和兩個(gè)輸出信號(hào)片選信號(hào)SSEL、主設(shè)備發(fā)送給從設(shè)備的串行數(shù)據(jù)MOSI。

        片選控制信號(hào)SSEL置低時(shí)有效,主設(shè)備開始和從設(shè)備進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)交換完成的是以字節(jié)為基本單位,當(dāng)FPGA模擬SPI主設(shè)備時(shí),字節(jié)數(shù)可以根據(jù)從設(shè)備的不同而自動(dòng)調(diào)節(jié)。主從設(shè)備一般有兩種數(shù)據(jù)交換方式:若主設(shè)備在SCK上升沿發(fā)送和下降沿接收,則從設(shè)備也在SCK上升沿發(fā)送和下降沿接收;若主設(shè)備在SCK下降沿發(fā)送和上升沿接收,則從設(shè)備也在SCK下降沿發(fā)送和上升沿接收。設(shè)計(jì)SSEL信號(hào)時(shí)一般要考慮以下幾點(diǎn):①SSEL到SCK上升沿的最小時(shí)間;②SSEL到SCK下降沿的最小時(shí)間;③數(shù)據(jù)交換的字節(jié)數(shù)。

        假若主設(shè)備在SCK上升沿發(fā)送,數(shù)據(jù)交換為2個(gè)字節(jié)(16bit),數(shù)據(jù)發(fā)送模塊設(shè)計(jì)代碼的流程如圖4。

        其中,Txdata為發(fā)送的16bit數(shù)據(jù)寄存器,發(fā)送開始時(shí)先將i置15,檢測(cè)到SCK的第一個(gè)上升沿時(shí),將片選信號(hào)SSEL拉低選中從設(shè)備,并將Txdata的最高位Txdata[15]送到MOSI串行線上,在SCK的下一個(gè)上升沿再將Txdata的次高位Txdata[14]送到MOSI串行線上,依此類推,一直到將Txdata的最低位Txdata[0]送到MOSI串行線后,若又檢測(cè)到SCK的上升沿,將片選信號(hào)SSEL拉高停止發(fā)送。

        2.3數(shù)據(jù)接收模塊

        數(shù)據(jù)接收模塊與數(shù)據(jù)發(fā)送模塊有所不同,主要包含五個(gè)輸入信號(hào)CLK、RESET、SSEL、SCK、從設(shè)備發(fā)送給主設(shè)備的串行數(shù)據(jù)MISO,無輸出信號(hào)。同樣,以數(shù)據(jù)交換為2個(gè)字節(jié)(16bit)為例,SCK下升沿接收數(shù)據(jù),數(shù)據(jù)接收模塊設(shè)計(jì)代碼的流程如圖5。

        其中,Rxdata為16bit的接收緩沖器,SSEL拉低時(shí)開始接收數(shù)據(jù),一旦檢測(cè)到SCK下降沿,將MISO上的串行數(shù)據(jù)存入Rxdata的最低位Rxdata[0]中,當(dāng)又檢測(cè)到SCK的下降沿時(shí),將Rxdata左移一位,并再將MISO上的串行數(shù)據(jù)存入Rxdata[0]中,依此類推,當(dāng)接收緩沖器 Rxdata全部更新一遍時(shí),若檢測(cè)到SCK上升沿,將Rxdata 存儲(chǔ)值賦給Data_recieved,Data_recieved為最終接收到的16bit數(shù)據(jù)。

        3仿真驗(yàn)證及性能評(píng)估

        FPGA芯片選擇Altera公司的Cyclone II系列的EP2C8T144I8,對(duì)整個(gè)FPGA為SPI主設(shè)備的設(shè)計(jì)在QuattusII 7.1中進(jìn)行邏輯綜合,發(fā)現(xiàn)整個(gè)設(shè)計(jì)僅占用36個(gè)查找表的資源,用戶可以根據(jù)需要集成多個(gè)SPI主設(shè)備或從設(shè)備,F(xiàn)PGA內(nèi)部時(shí)鐘最高可達(dá)到200MHz,通過分頻基本可滿足大部分的SPI設(shè)備對(duì)SCK的要求,另外,F(xiàn)PGA具有非常強(qiáng)大的外部接口單元,可以兼容。各種電平的接口,可與大部分的SPI設(shè)備直接連接。

        在Modelsim SE 6.5中對(duì)整個(gè)設(shè)計(jì)進(jìn)行仿真,其中Txdata為發(fā)送的數(shù)據(jù),在測(cè)試程序中設(shè)定,Data_recieved為接收到的數(shù)據(jù),整個(gè)測(cè)試過程就是一個(gè)自循環(huán)的過程,接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)一致。若txdata=36785 (二進(jìn)制為1000111110110001),SCK為CLK的十分頻,則仿真結(jié)果如圖6。

        4結(jié)語

        文中介紹了SPI的通信協(xié)議及其在FPGA上的代碼實(shí)現(xiàn)方法。用FPGA實(shí)現(xiàn)SPI接口通信,通過對(duì)設(shè)計(jì)代碼作少許的修改,SPI的時(shí)鐘速度、數(shù)據(jù)位長(zhǎng)度、時(shí)鐘模式都可以根據(jù)實(shí)際需要靈活控制。另外,SPI串口實(shí)現(xiàn)占用的FPGA邏輯資源并不太多,設(shè)計(jì)者可以根據(jù)需要外擴(kuò)同時(shí)連接幾個(gè)SPI主從設(shè)備。總之,用FPGA實(shí)現(xiàn)SPI接口通信具有一定的實(shí)用價(jià)值。

        參考文獻(xiàn):

        无码人妻一二三区久久免费_亚洲一区二区国产?变态?另类_国产精品一区免视频播放_日韩乱码人妻无码中文视频
      2. <input id="zdukh"></input>
      3. <b id="zdukh"><bdo id="zdukh"></bdo></b>
          <b id="zdukh"><bdo id="zdukh"></bdo></b>
        1. <i id="zdukh"><bdo id="zdukh"></bdo></i>

          <wbr id="zdukh"><table id="zdukh"></table></wbr>

          1. <input id="zdukh"></input>
            <wbr id="zdukh"><ins id="zdukh"></ins></wbr>
            <sub id="zdukh"></sub>
            海安县| 四子王旗| 昆山市| 九龙城区| 南投市| 长兴县| 珠海市| 泸溪县| 淳化县| 昭通市| 明光市| 安阳县| 潮州市| 任丘市| 吴忠市| 商城县| 田阳县| 甘泉县| 微山县| 安福县| 江达县| 读书| 镇远县| 开鲁县| 蕉岭县| 石家庄市| 青岛市| 靖远县| 正宁县| 莱阳市| 朝阳区| 丹阳市| 宝山区| 科尔| 宁津县| 志丹县| 汉源县| 中山市| 申扎县| 凭祥市| 长治县| http://444 http://444 http://444