當前位置:首頁 > 單片機 > 單片機
[導讀]1 前言Web Service作為一種有著強大功能的可互操作性和擴展性的新技術,被越來越多用于異構數(shù)據(jù)的集成,自然想到將其應用于工業(yè)數(shù)據(jù)采集系統(tǒng)的異構數(shù)據(jù)的集成.本文介紹了一種在單片機系統(tǒng)中調用Web Service實現(xiàn)主動提交

1 前言

Web Service作為一種有著強大功能的可互操作性和擴展性的新技術,被越來越多用于異構數(shù)據(jù)的集成,自然想到將其應用于工業(yè)數(shù)據(jù)采集系統(tǒng)的異構數(shù)據(jù)的集成.本文介紹了一種在單片機系統(tǒng)中調用Web Service實現(xiàn)主動提交數(shù)據(jù)的方法,方便了數(shù)據(jù)采集系統(tǒng)的集成.在傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)中,可以利用單片機系統(tǒng)用串口方式采集儀表數(shù)據(jù),通過串行總線將數(shù)據(jù)提交給上位計算機,通過預先設計的通信協(xié)議與上位采集服務器通信,集成采集的數(shù)據(jù).當需要增加下位機采集模塊時需要擴展對應的上位機采集口,采集系統(tǒng)的升級和維護都非常麻煩.在單片機系統(tǒng)中通過調用采集服務器端的Web Service和上位機交互數(shù)據(jù),可以簡化下位機和上位機的通信,把主要工作放在下位單片機系統(tǒng)如何和儀表通信采集數(shù)據(jù)上, 基于該方法可以方便的構建基于工業(yè)以太網(wǎng)的分布式數(shù)據(jù)采集方案.該方案還可以方便的集成已經(jīng)存在的數(shù)據(jù)采集系統(tǒng),方便單片機系統(tǒng)的升級,比如可以把利用單片機實現(xiàn)的采集系統(tǒng)很容易的改為PLC采集系統(tǒng)或直接PC采集數(shù)據(jù)模式,而只需升級后的系統(tǒng)調用同樣的Web Service交互數(shù)據(jù)即可.由于Web Service調用使用HTTP協(xié)議交互數(shù)據(jù),該方案還可以方便的擴展為支持Internet的遠程數(shù)據(jù)采集.

2 單片機系統(tǒng)中調用Web Service的實現(xiàn)

2.1 Web Service技術[7,9,10]

Web Service是能夠通過Web協(xié)議來訪問的可編程應用程序組件, 使原來孤立的站點之間的信息能夠相互通信、共享.Web Service所使用的是Internet上統(tǒng)一、開放的標準,如HTTP、XML、SOAP、WSDL、UDDI等,所以Web Service可以在任何支持這些標準的環(huán)境(Windows、Linux等)中使用.Web Service本質其實不是一種新技術,前面提到其使用了Internet標準,這些標準便是Web Service的核心技術.

(1)    HTTP是一種基于TCP實現(xiàn)的應用層協(xié)議,它是因特網(wǎng)可靠的交換數(shù)據(jù)的重要基礎.HTTP為Web Service請求與響應提供了傳輸層,HTTP使得任何設備和平臺都可以訪問Web Service.

(2)    XML(Extensible Markup Language,可擴展標記語言),是一套規(guī)范,允許編程人員自行定義如HTML般的標注,以方便數(shù)據(jù)存取和處理、交換、轉換等,主要特點是使用有意義的標記,這個特性使計算機可以理解數(shù)據(jù)含義.XML可以在任何系統(tǒng)、應用程序、任何平臺上運行,數(shù)據(jù)傳輸以Internet為基礎,傳輸費用便宜.

(3)    SOAP協(xié)議(Simple Object Access Protocol,簡單對象訪問協(xié)議),是一個用于分散和分布式環(huán)境下網(wǎng)絡信息交換的基于XML的通信協(xié)議.它的設計目標就是簡單性和擴展性,這有助于大量異構程序和平臺之間的互操作性,從而使存在的應用程序能夠被廣泛的用戶訪問.由于數(shù)據(jù)采用文本格式,調試方便,容易穿越防火墻.

(4)    WSDL(Web服務描述語言),是基于XML的用來描述Web服務功能的一種語法.

(5)    UDDI(Universal Description, Discovery, and Integration, 統(tǒng)一描述、發(fā)現(xiàn)和集成),基于XML創(chuàng)建的一個平臺獨立, 開放的框架,通過Internet來描述服務,發(fā)現(xiàn)服務,并且整合服務.

2.2 Web Service 調用本質

現(xiàn)在很多語言工具都支持Web服務開發(fā),如VS.Net、J2EE、JBuilder等,而且很多語言工具是跨平臺(Windows、Linux等)的.這些開發(fā)工具都有專門的開發(fā)包或者類庫,可以方便的實現(xiàn)Web Service的定義和調用,本文主要研究單片機系統(tǒng)中實現(xiàn)Web Service的調用方法.

調用Web Service本質上就是程序客戶端和Web Service服務器端的信息交互,且有專門的信息格式.在ASP.net中提供了三種交互端口(協(xié)議):SOAP、HTTP-GET和HTTP-POST[7].在這三種協(xié)議中,SOAP是XML Web Service最常用到的.與HTTP相比,SOAP顯的更為復雜,但卻擁有更強的接受能力.SOAP是一種以XML為基礎的協(xié)議,它提供一種將數(shù)據(jù)打包和編碼的方法,以用于網(wǎng)絡的數(shù)據(jù)傳輸.任意一個用戶都可以使用SOAP協(xié)議與任何一個Web Service進行通信,甚至于說這個XML Web Service不是建立在ASP.NET 平臺上的,比如說Java的,都可以利用SOAP來進行數(shù)據(jù)傳輸.因此SOAP是語言獨立的. HTTP將SOAP 消息封裝,然后以它的形式進行網(wǎng)絡傳輸. HTTP-GET和HTTP-POST這兩種方法傳送參數(shù)和數(shù)據(jù)的能力比較簡單,非常適合不能使用SOAP的客戶來調用Web Service的情況. HTTP-GET和HTTP-POST方式與SOAP相比有如下特性:

優(yōu)點:(1)HTTP方式不需要復雜的XML消息處理,適合不支持XML的平臺使用;(2)HTTP方式在交互時候不需要添加額外的標簽,減少了交互的數(shù)據(jù)量和開銷,有利于提高整體性能.

缺點:(1)不能調用具有復雜數(shù)據(jù)類型參數(shù)的Web Service;(2)如果調用返回復雜數(shù)據(jù)類型時處理不方便;(3)不能把類和結構序列化為XML消息;(4)不能使用引用方式傳遞參數(shù).

結合單片機系統(tǒng)調用Web Service的實際需要以及考慮到單片機的處理能力低,不支持XML,不適合復雜的數(shù)據(jù)處理,開發(fā)效率低等問題,認為使用HTTP方式比較合適,本文中將以HTTP-POST為例介紹其調用Web Service的實現(xiàn)方法.

2.3 實現(xiàn)單片機系統(tǒng)中調用Web Service的核心技術

(1)基于嵌入式網(wǎng)絡模塊實現(xiàn)HTTP

在嵌入式系統(tǒng)(WinCE、Linux等)中,可以基于其自帶的TCP/IP協(xié)議棧實現(xiàn)HTTP或者直接使用嵌入式Web服務器[1~5]來使用HTTP協(xié)議,在計算機系統(tǒng)中則可以在高級語言中直接調用Web客戶端使用HTTP協(xié)議或者利用SOCKET網(wǎng)絡編程實現(xiàn)基于HTTP的數(shù)據(jù)交互,實現(xiàn)都比較簡單,但在單片機系統(tǒng)中,其自身并沒有TCP/IP協(xié)議棧,因此基于嵌入式網(wǎng)絡模塊在單片機系統(tǒng)中實現(xiàn)HTTP.

要實現(xiàn)HTTP協(xié)議 ,必須以TCP/IP協(xié)議棧為基礎,利用嵌入式網(wǎng)絡模塊即可方便的實現(xiàn)TCP/IP協(xié)議棧的功能.如圖1所示,下位機和儀表設備通過485總線連接,下位機利用單片機開發(fā),采用主從方式和設備儀表通信采集數(shù)據(jù).采集到的數(shù)據(jù)再通過總線發(fā)送給嵌入式網(wǎng)絡模塊,模塊收到串行數(shù)據(jù),利用內嵌的TCP/IP協(xié)議棧實現(xiàn)串行數(shù)據(jù)到以太網(wǎng)數(shù)據(jù)的轉換,嵌入式網(wǎng)絡模塊通過網(wǎng)線連接至工業(yè)以太網(wǎng).該方法中,下位機是實現(xiàn)HTTP應用層協(xié)議的關鍵,只要下位機發(fā)出的數(shù)據(jù)包符合HTTP協(xié)議,經(jīng)嵌入式網(wǎng)絡模塊轉化,變成可由Web服務器處理的合法HTTP-POST請求包,則可利用Web Service實現(xiàn)數(shù)據(jù)的處理和保存,也就實現(xiàn)了單片機系統(tǒng)調用Web Service.

圖1 單片機系統(tǒng)結構

實驗中選用了廣州周立功單片機發(fā)展有限公司開發(fā)的一款嵌入式網(wǎng)絡模塊ZNE-100T,它內部集成了TCP/IP 協(xié)議棧,利用它可以輕松完成嵌入式設備的網(wǎng)絡功能,另外為了測試方便直接使用了ZNE-100T的評估板.通過周立功公司提供的配置軟件可以設置網(wǎng)絡模塊的參數(shù),包括IP地址、子網(wǎng)掩碼、網(wǎng)關、串口的波特率、端口工作模式、目標IP 地址和目標端口等,特別說明的是端口工作模式,由于HTTP協(xié)議是基于TCP的,所以實驗中模式設為TCP Client模式,目標端口默認設置為80.

(2)HTTP-POST消息格式

Internet標準定義了兩個HTTP協(xié)議的標準文檔:RFC1945和RFC2616[6].這兩個文檔分別描述了HTTP/1.0和HTTP/1.1的實現(xiàn)標準.這兩個版本的HTTP協(xié)議最大區(qū)別在于前者不支持保持連接,規(guī)定每次的HTTP請求和響應后都要關閉TCP連接,而后者支持持久連接,這意味著可以打開一次TCP連接進行多次請求/響應,大大提高了性能. 由于單片機系統(tǒng)的處理效率低、資源有限等原因,在其上實現(xiàn)完整HTTP協(xié)議很不現(xiàn)實,實際上為了實現(xiàn)Web Service調用也沒有必要全部實現(xiàn),只需實現(xiàn)基本的HTTP1.1協(xié)議完成單片機系統(tǒng)和Web服務器的數(shù)據(jù)通信即可. 經(jīng)過分析研究,找出了一種比較簡單有效的HTTP-POST格式.下面通過一個具體例子說明實現(xiàn)的方法.

用C#實現(xiàn)Web服務WebService1,定義一個處理模擬量數(shù)據(jù)的方法:

[WebMethod]

public string SimulateData(byte s,float[] a)

{

    …

    return "OK";

}

SimulateData方法的參數(shù)中,s為下位機站地址,可以用來區(qū)分哪個下位機發(fā)來的數(shù)據(jù),數(shù)組a為下位機提交的模擬量數(shù)據(jù),數(shù)據(jù)個數(shù)根據(jù)實際傳遞的數(shù)據(jù)來定.

下面是HTTP-POST請求包數(shù)據(jù):

POST /WebService1/service1.asmx/SimulateData HTTP/1.1

Host: 127.0.0.1

Content-Type: application/x-www-form-urlencoded

Content-Length: 43

 

s=1&a=100.0&a=100.0&a=100.0&a=100.0&a=100.0

上面為一個合法的HTTP-POST協(xié)議的包實例, “/WebService1/service1.asmx/SimulateData”為要調用的Web Service的方法名及其服務地址,最后一行為真正的有效數(shù)據(jù)信息,數(shù)據(jù)包括采集站地址,本例中為1,以及5個模擬量數(shù)據(jù),本例中為5個100.0.在HTTP-POST包中除了數(shù)據(jù)域以外,“Content-Length: 43”中的43會根據(jù)數(shù)據(jù)域實際字節(jié)個數(shù)在下位機中由程序設置,表示提交的有效數(shù)據(jù)字節(jié)數(shù).由此可以看出,只要加上正確的HTTP請求頭、相應的Web Service地址,并且按照HTTP1.1 POST規(guī)范設置數(shù)據(jù)域數(shù)據(jù)就可以實現(xiàn)簡單的HTTP-POST協(xié)議,在單片機系統(tǒng)中只需把這些數(shù)據(jù)通過串口發(fā)出,剩下的工作由嵌入式網(wǎng)絡模塊實現(xiàn),和編寫普通的串口發(fā)送程序一樣簡單.經(jīng)絡模塊轉化后的HTTP-POST請求最終到達Web服務器,根據(jù)數(shù)據(jù)的對應寫入實時數(shù)據(jù)庫,如果實時性要求不高且數(shù)據(jù)存儲量不大,可以使用ACCESS數(shù)據(jù)庫,不然可以使用專用的數(shù)據(jù)庫服務器,如Oracle和SQL Server.

調用Web Service后也會返回給下位機數(shù)據(jù)以表示執(zhí)行結果,如果下位機不關心執(zhí)行結果可以忽略返回的數(shù)據(jù),否則可以根據(jù)需要進行相應的處理,下面給出作者實驗時的返回數(shù)據(jù):

HTTP/1.1 200 OK

Date: Thu, 08 Feb 2007 07:45:51 GMT

Server: Microsoft-IIS/6.0

MicrosoftOfficeWebServer: 5.0_Pub

X-Powered-By: ASP.NET

X-AspNet-Version: 1.1.4322

Cache-Control: private, max-age=0

Content-Type: text/xml; charset=utf-8

Content-Length: 101

 

<?xml version="1.0" encoding="utf-8"?>

<string xmlns="http://219.231.160.11/webservice1">ok</string>

上面的“ok”為方法SimulateData執(zhí)行正確后返回的數(shù)據(jù).

3 優(yōu)點   

基于本文提出的方法可以方便的利用單片機構建基于工業(yè)以太網(wǎng)的數(shù)據(jù)采集系統(tǒng),有以下優(yōu)點:

(1)可以方便的集成現(xiàn)有設備和儀表的數(shù)據(jù)采集.只要知道儀表設備的通訊協(xié)議,在下位機實現(xiàn)數(shù)據(jù)通訊,把采集到的數(shù)據(jù)封裝為HTTP-POST請求包通過串口發(fā)出即可.

(2)采用工業(yè)交換以太網(wǎng),基于HTTP協(xié)議,同時滿足局域和遠程采集的需要.可以把該系統(tǒng)連至Internet,Web Service和下位機系統(tǒng)可以不在同一地理位置,而且Web Service可以同時處理多個不同地理位置提交的數(shù)據(jù),方便實現(xiàn)數(shù)據(jù)集中,能更好的管理和使用數(shù)據(jù).

(3)方便維護和升級,方便增加采樣點.可以根據(jù)需要隨意增加下位機,做到需要幾個模塊調試增加幾個模塊.

(4)不同于傳統(tǒng)的專用采集服務器采集數(shù)據(jù)模式,上位機服務器的功能由Web服務提供,不需要編寫專門的數(shù)據(jù)接收程序和上位機采集程序,只需編Web Service接口代碼.真正同儀表的通訊由下位機完成,形成分布式數(shù)據(jù)采集,Web服務是多線程體系結構,可并發(fā)處理多個下位機模塊發(fā)送的數(shù)據(jù),使得整個系統(tǒng)支持更多的數(shù)據(jù)點采集,提高整個系統(tǒng)的采集效率.

4 結束語

實驗證明,基于本文方法可以快速有效的部署數(shù)據(jù)采集系統(tǒng),比傳統(tǒng)的串口服務器采集數(shù)據(jù)的方法有很多優(yōu)越性.上位機和下位機通信基于Web Service技術,使得系統(tǒng)的開發(fā)工作主要放在下位機和儀表的通信上,提高了系統(tǒng)開發(fā)效率,由于Web Service的跨平臺和語言無關性,使得可以方便的維護和修改系統(tǒng)方案,大大減少開發(fā)成本.

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉