當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于VxWorks的微機(jī)保護(hù)裝置網(wǎng)絡(luò)通信設(shè)計(jì)

摘要:針對(duì)微機(jī)保護(hù)系統(tǒng)對(duì)采樣數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性需要,給出了一種基于VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)的微機(jī)保護(hù)系統(tǒng)網(wǎng)絡(luò)通信實(shí)現(xiàn)方案。該方案利用VxWorks的靈活通信機(jī)制,并通過建立基于雙緩沖消息隊(duì)列的客戶端/服務(wù)器通信模型來提高系統(tǒng)的實(shí)時(shí)性和可靠性。
關(guān)鍵詞:VxWorks;微機(jī)保護(hù);網(wǎng)絡(luò)通信;客戶端/服務(wù)器

0 引言
    隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)網(wǎng)絡(luò)進(jìn)程間通信的性能要求也越來越高,傳統(tǒng)的網(wǎng)絡(luò)通信方式已經(jīng)不能滿足需要。目前,越來越多的嵌入式設(shè)備都可以通過各種形式接入到網(wǎng)絡(luò),以實(shí)現(xiàn)與網(wǎng)絡(luò)上其他各類型的主機(jī)互聯(lián)。這在很大程度上得益于TCP/IP協(xié)議在嵌入式領(lǐng)域中的應(yīng)用。本文選用VxWorks實(shí)時(shí)操作系統(tǒng),并利用VxWorks對(duì)TCP/IP協(xié)議、多任務(wù)以及BSD Socket的良好支持,給出了一種可方便地實(shí)現(xiàn)網(wǎng)絡(luò)通信的方法。

1 VxWorks網(wǎng)絡(luò)協(xié)議
    VxWorks通常使用以太網(wǎng)作為最底層傳輸媒介。而在傳輸媒介的上一層,VxWorks則用TCP/IP協(xié)議來用于VxWorks進(jìn)程與其它主機(jī)環(huán)境進(jìn)程之間的傳輸數(shù)據(jù)。用戶程序需要的就是在TCP/IP層之上進(jìn)行通信。因此,利用VxWorks對(duì)多任務(wù)和Socket的良好支持,可以方便的實(shí)現(xiàn)網(wǎng)絡(luò)通信。
    TCP/IP是VxWorks提供的網(wǎng)絡(luò)間進(jìn)程通信的主要機(jī)制,它主要包括三個(gè)協(xié)議:Internet協(xié)議、IP協(xié)議和傳輸層協(xié)議。其中Internet協(xié)議是處于TCP和UDP之上的一組協(xié)議專門開發(fā)的應(yīng)用程序,包括telnet、文件傳輸協(xié)議(FTP)等。IP層也稱網(wǎng)絡(luò)層,它包括Internet協(xié)議(IP)、網(wǎng)際控制報(bào)文協(xié)議(ICMP)和地址識(shí)別協(xié)議(ARP);其中IP協(xié)議是TCP/IP協(xié)議族的基礎(chǔ),該協(xié)議被設(shè)計(jì)成互聯(lián)分組交換通信網(wǎng),現(xiàn)已形成了一個(gè)網(wǎng)際通信環(huán)境,它負(fù)責(zé)在源主機(jī)和目的地主機(jī)之間傳輸來自其較高層軟件的(稱為數(shù)據(jù)報(bào)文的)數(shù)據(jù)塊,它在源和目的地之間可提供非連接型傳遞服務(wù);而傳輸層協(xié)議包括傳輸控制協(xié)議,主要有面向連接的TCP和無連接數(shù)據(jù)報(bào)UDP兩種協(xié)議。
    VxWorks網(wǎng)絡(luò)協(xié)議是一個(gè)基于開放系統(tǒng)的互連(OSI)模型,而且系統(tǒng)為了向高層協(xié)議層提供一個(gè)統(tǒng)一的、規(guī)范的、方便協(xié)議移植的網(wǎng)絡(luò)接口,在高層IP層之下添加了一個(gè)MUX層,由MUX層負(fù)責(zé)與網(wǎng)絡(luò)底層驅(qū)動(dòng)的交互。這樣做可以使用戶在設(shè)計(jì)協(xié)議中不必關(guān)心網(wǎng)絡(luò)底層的數(shù)據(jù)傳遞,而在設(shè)計(jì)網(wǎng)絡(luò)驅(qū)動(dòng)程序時(shí)也不必關(guān)心協(xié)議棧的結(jié)構(gòu),因而大大方便了對(duì)其進(jìn)行的開發(fā)。VxWorks網(wǎng)絡(luò)協(xié)議的結(jié)構(gòu)如圖1所示。

[!--empirenews.page--]

2 基于雙緩沖隊(duì)列的網(wǎng)絡(luò)通信設(shè)計(jì)
    網(wǎng)絡(luò)通信的基石是套接字,一個(gè)套接字是通信的一端,在這一端上可以找到與其對(duì)應(yīng)的一個(gè)名字。一個(gè)正在被使用的套接字都有它的類型和其相關(guān)的任務(wù),VxWorks可以實(shí)現(xiàn)與BSD4.4TCP/IP兼容的Socket編程接口。由于面向連接的服務(wù)器使用的傳輸層協(xié)議可保證數(shù)據(jù)傳送的可靠性和順序性,因此,本文的系統(tǒng)端采用基于流Socket的客戶機(jī)/服務(wù)器(Client/Server)編程模式,其程序可以分為客戶端程序和服務(wù)端程序。其通信模型如圖2所示。
2.1 客戶端程序設(shè)計(jì)
    所謂客戶端服務(wù)程序,就是主要用來發(fā)出服務(wù)請(qǐng)求的程序。客戶端程序設(shè)計(jì)要知道服務(wù)端的地址、服務(wù)所提供的端口號(hào)及服務(wù)使用的傳輸層協(xié)議(TCP協(xié)議)。在客戶/服務(wù)器模式中,客戶端程序可以通過兩種形式找到服務(wù)器:一是通過指定服務(wù)器的IP地址和端口號(hào)來找到服務(wù)端;二是通過廣播的形式來來尋找服務(wù)器。本系統(tǒng)的客戶端程序應(yīng)用第一種形式來尋找服務(wù)器。知道了服務(wù)端的位置后,客戶端任務(wù)就可以打開一個(gè)套接字,然后通過連接服務(wù)器來發(fā)送和接收數(shù)據(jù)。
    面向連接的TCP客戶端編程結(jié)構(gòu)分為部分:一是以TCP連接服務(wù)器,TCP協(xié)議是一種可保證傳輸可靠,且能保護(hù)順序的傳輸層協(xié)議。在連接服務(wù)器之前,先要申請(qǐng)一個(gè)SOCK_STREAM類型的套接字,該套接字的通信域應(yīng)制定為PF_INET類型;二是使用TCP與服務(wù)器通信,因?yàn)門CP是面向連接的協(xié)議,在連接建立以后,它可以通過send、recv等調(diào)用來進(jìn)行通信,就像管道一樣;三是關(guān)閉TCP連接,即在客戶端程序結(jié)束,或使用完一個(gè)套接字后,可以使用close來關(guān)閉一個(gè)套接字。
2.2 服務(wù)端程序設(shè)計(jì)
    在服務(wù)端程序設(shè)計(jì)中,可以根據(jù)對(duì)要實(shí)現(xiàn)的網(wǎng)絡(luò)服務(wù)功能來設(shè)計(jì)自己的應(yīng)用層協(xié)議。本系統(tǒng)服務(wù)端使用的TCP是面向連接的服務(wù)端。在這種模式下,服務(wù)端程序的設(shè)計(jì)就可以不考慮數(shù)據(jù)的可靠傳送,而只要接受連接請(qǐng)求,并通過該連接進(jìn)行通信即可,這樣,底層的傳輸協(xié)議就自然會(huì)保證數(shù)據(jù)傳送的可靠性。
    服務(wù)端程序設(shè)計(jì)的兩種基本模式是循環(huán)模式和并發(fā)模式。循環(huán)模式就是服務(wù)端進(jìn)程在總體機(jī)構(gòu)上是一個(gè)循環(huán),一次處理一個(gè)請(qǐng)求。并發(fā)模式的服務(wù)端進(jìn)程一般可以同時(shí)處理多個(gè)請(qǐng)求,結(jié)構(gòu)上一般采用父進(jìn)程接受請(qǐng)求,然后產(chǎn)生子進(jìn)程,這樣一般為多進(jìn)程結(jié)構(gòu)。
    本文選用面向連接服務(wù)端的循環(huán)模式,此模式的建立步驟如下:
    (1)創(chuàng)建一個(gè)SOCK_STREAM類型的套接字;
    (2)調(diào)用bind指定地址和端口;
    (3)調(diào)用listen未處理連接請(qǐng)求的隊(duì)列長(zhǎng)度;
    (4)調(diào)用accept等待連接請(qǐng)求,一旦有連接請(qǐng)求,accept返回一個(gè)新的套接字描述符;
    (5)通過新的描述符與客戶端交互信息,交互完畢,即關(guān)閉新產(chǎn)生的套接字并返回第四步。

3 微機(jī)保護(hù)系統(tǒng)網(wǎng)絡(luò)通信模型設(shè)計(jì)
    系統(tǒng)中基于Socket模式下的通信過程分為控制端發(fā)起的通信過程和受控端發(fā)起的通信過程,這兩種過程都是基于客戶/服務(wù)器的網(wǎng)絡(luò)編程模式。在客戶/服務(wù)器模式中,請(qǐng)求的一方稱為客戶,提供服務(wù)的一方稱為服務(wù)器。
    本設(shè)計(jì)采用嵌入式計(jì)算機(jī)結(jié)合數(shù)據(jù)采集板的方式,并由VxWorks實(shí)時(shí)操作系統(tǒng)為嵌入式計(jì)算機(jī)提供底層軟件平臺(tái)的支持。嵌入式計(jì)算機(jī)連接數(shù)據(jù)采集板,并控制數(shù)據(jù)的采集過程,以(以牽引供電系統(tǒng)饋線保護(hù)為例)在工頻周期下,從TV、TA側(cè)采集共2路電壓、電流信號(hào),每周波采樣24個(gè)數(shù)據(jù)點(diǎn),采樣周期為833μs。在該保護(hù)系統(tǒng)中,嵌入式系統(tǒng)端為客戶端,并采用VxWorks基于Socket客戶機(jī)編程模式,主要負(fù)責(zé)發(fā)布命令,監(jiān)控命令的執(zhí)行狀況,其主要工作是數(shù)據(jù)的采集和存儲(chǔ);服務(wù)器端為微機(jī)保護(hù)運(yùn)行所在的PC機(jī),負(fù)責(zé)執(zhí)行命令并返回命令執(zhí)行的結(jié)果,主要工作是為采集數(shù)據(jù)的微機(jī)提供算法處理保護(hù)以及保護(hù)啟動(dòng)判斷。本系統(tǒng)只需要在服務(wù)器啟動(dòng)后,就可以進(jìn)入等待狀態(tài),所有其他的動(dòng)作都可以等待和客戶端建立連接后,由人機(jī)界面來控制。其系統(tǒng)網(wǎng)絡(luò)通信流程如圖3所示。


    在網(wǎng)絡(luò)通信時(shí),首先由服務(wù)器端創(chuàng)建一個(gè)偵聽用套接字(socket),然后與服務(wù)器的本地地址相綁定(bind),接著進(jìn)入偵聽模式(listen )。客戶端開始時(shí),同樣也需要?jiǎng)?chuàng)建一個(gè)套接字(socket),不同的是,這個(gè)套接字只用于通信,然后連接服務(wù)器端(connect);服務(wù)器端用于偵聽的套接字接受(accept)這個(gè)來自客戶端的連接,然后建立新的通信用套接字,并利用新建的通信套接字與客戶端進(jìn)行通信;服務(wù)器端和客戶端從各自的通信套接字傳送和接收數(shù)據(jù)(send/recv),通信結(jié)束后,再關(guān)閉相關(guān)的通信套接字(close)。
    基于這種網(wǎng)絡(luò)通信模式可實(shí)現(xiàn)上述供電系統(tǒng)電壓、電流信號(hào)數(shù)據(jù)采集模塊與VxWorks系統(tǒng)平臺(tái)間的數(shù)據(jù)傳輸及網(wǎng)絡(luò)通信。

4 結(jié)束語
    利用本系統(tǒng)可將VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)接受的采樣數(shù)據(jù)通過網(wǎng)絡(luò)通信發(fā)送到保護(hù)任務(wù)所在的PC機(jī)上。這種方法有利于采樣數(shù)據(jù)的存儲(chǔ)和后續(xù)的數(shù)據(jù)處理,并可保證采樣數(shù)據(jù)的實(shí)時(shí)性和傳送的安全性。相對(duì)于傳統(tǒng)的前后臺(tái)微機(jī)保護(hù)裝置,采用VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)的微機(jī)保護(hù)裝置能有效的提高系統(tǒng)的實(shí)時(shí)性和可靠性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉