當前位置:首頁 > 嵌入式 > 嵌入式硬件

摘要:本文提出了一種在單片機系統(tǒng)中實施基于HTTP協(xié)議的數(shù)據(jù)采集的方案,利用嵌入式網(wǎng)絡模塊實現(xiàn)串口到以太網(wǎng)數(shù)據(jù)的轉換,使用采集板將數(shù)據(jù)封裝成HTTP包.該方案靈活方便,實現(xiàn)簡單;采用分布式結構,采集效率高,可適用于大量數(shù)據(jù)的采集,而且可以方便擴展為基于Internet的遠程數(shù)據(jù)采集.

關鍵詞:超文本傳輸協(xié)議;嵌入式網(wǎng)絡模塊;以太網(wǎng);數(shù)據(jù)采集;因特網(wǎng)

1前言

  隨著工業(yè)以太網(wǎng)的發(fā)展,由于傳輸速度、傳輸可靠性及可擴展性等綜合性能方面的優(yōu)越性,越來越多的數(shù)據(jù)采集系統(tǒng)都是基于以太網(wǎng)接口,并且越來越多的儀器儀表設備也提供了以太網(wǎng)接口.但是很多企業(yè)都有早期投入的設備儀表,一般使用串口進行數(shù)據(jù)通信,因此需要一種簡單、高效、易于擴充的集成方案,實現(xiàn)對原有設備儀表的數(shù)據(jù)采集,并且可以方便的集成到現(xiàn)有的以太網(wǎng)工業(yè)控制系統(tǒng)中.本文提出一種數(shù)據(jù)采集方案,除了滿足前面要求外,由于其采用HTTP協(xié)議,可以方便擴展為基于Internet的遠程數(shù)據(jù)采集.HTTP協(xié)議可以利用嵌入式系統(tǒng)(WinCE、Linux等)基于其自帶的TCP/IP協(xié)議棧實現(xiàn)或者直接使用嵌入式Web服務器[1~4],在計算機系統(tǒng)中也可以利用高級語言直接使用Web客戶端使用HTTP協(xié)議或者利用Winsock網(wǎng)絡編程,實現(xiàn)基于HTTP的數(shù)據(jù)交互,但都會增加系統(tǒng)的開發(fā)成本,本文提出一種基于嵌入式網(wǎng)絡模塊在單片機系統(tǒng)中實現(xiàn)簡單HTTP協(xié)議的方法,并基于此方法構建數(shù)據(jù)采集方案.

2系統(tǒng)結構

  HTTP協(xié)議是一種基于TCP實現(xiàn)的應用層協(xié)議,它是因特網(wǎng)可靠的交換數(shù)據(jù)的重要基礎.如果要實現(xiàn)HTTP協(xié)議,必須以TCP/IP協(xié)議棧為基礎,利用嵌入式網(wǎng)絡模塊即可方便的實現(xiàn)TCP/IP協(xié)議棧的功能.圖1為一個利用嵌入式網(wǎng)絡模塊實現(xiàn)的基于HTTP協(xié)議的數(shù)據(jù)采集方案.


圖1系統(tǒng)結構

  圖1中,最關鍵部分是采集板和網(wǎng)絡模塊.當今儀器儀表最常用的通訊接口是485串行接口,采集板和儀表設備一般通過485總線連接,采集板利用單片機開發(fā),實現(xiàn)下位機和設備儀表的通信,采用主從方式采集所需要的數(shù)據(jù),再通過485總線發(fā)送給網(wǎng)絡模塊,網(wǎng)絡模塊收到采集板數(shù)據(jù)發(fā)出的串行數(shù)據(jù),利用內(nèi)嵌的TCP/IP協(xié)議棧實現(xiàn)串行數(shù)據(jù)到以太網(wǎng)數(shù)據(jù)的轉換,網(wǎng)絡模塊通過網(wǎng)線、交換機和采集服務器連接.采集板是實現(xiàn)HTTP應用層協(xié)議的地方,只要采集板發(fā)出的數(shù)據(jù)符合HTTP協(xié)議,經(jīng)由網(wǎng)絡模塊轉化后成為合法的HTTP請求,則Web服務器可使用任何的服務器端動態(tài)網(wǎng)頁技術(CGI、ASP、JSP、PHP、ASP.Net等)實現(xiàn)數(shù)據(jù)的處理和保存.

3系統(tǒng)實現(xiàn)

  3.1采集板

  采集板和儀表進行主從通訊采集數(shù)據(jù)以外,最主要的任務就是把采集的數(shù)據(jù)封裝為HTTP協(xié)議的數(shù)據(jù)包,也就是要在單片機中實現(xiàn)簡化的HTTP協(xié)議,能夠完成基本的數(shù)據(jù)交互功能即可.在國際標準中,有兩個HTTP協(xié)議的標準文檔:RFC1945和RFC2616[5].這兩個文檔分別描述了HTTP/1.0和HTTP/1.1的實現(xiàn)標準.這兩個版本的HTTP協(xié)議最大區(qū)別在于前者不支持保持連接,規(guī)定每次的HTTP請求和響應后都要關閉TCP連接,而后者支持持久連接,這意味著可以打開一次TCP連接進行多次請求/響應,大大提高了性能.為了提高性能,本文中將實現(xiàn)基本的HTTP1.1協(xié)議.經(jīng)過分析研究,找出了一種比較簡單且有效的實現(xiàn).下面通過一個具體例子說明實現(xiàn)的HTTP協(xié)議包格式.

  GET/com2http/test.aspxHTTP/1.1CRLF

  Host:127.0.0.1CRLF

  Content-Length:86CRLF

  Connection:Keep-AliveCRLF

  CRLF

  000000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C8420000C84251AD

  通過工具截獲的數(shù)據(jù)以16進制顯示如下:

  00000000:474554202F636F6D32687474702F7465GET/com2http/te

  00000010:73742E6173707820485454502F312E31st.aspxHTTP/1.1

  00000020:0D0A486F73743A203132372E302E302E..Host:127.0.0.

  00000030:310D0A436F6E74656E742D4C656E67741..Content-Lengt

  00000040:683A2038360D0A436F6E6E656374696Fh:86..Connectio

  00000050:6E3A204B6565702D416C6976650D0A0Dn:Keep-Alive...

  00000060:0A303030303030433834323030303043.000000C8420000C

  00000070:383432303030304338343230303030438420000C8420000C

  00000080:383432303030304338343230303030438420000C8420000C

  00000090:383432303030304338343230303030438420000C8420000C

  000000A0:383432303030304338343230303030438420000C8420000C

  000000B0:3834323531414484251AD

  上面顯示的便是一個合法的HTTP協(xié)議的數(shù)據(jù)包實例,從0x61開始為真正的有效數(shù)據(jù)信息,數(shù)據(jù)包括一個字節(jié)的采集站地址,本例中為“00”,10個符合IEEE-754標準的單精度四字節(jié)浮點數(shù),本例中為10個100.0(16進制表示為0000C842),和2個字節(jié)的CRC16的循環(huán)檢驗碼,本例中為“51AD”.HTTP協(xié)議傳送的數(shù)據(jù)一般都是文本格式,所以總共43字節(jié)二進制數(shù)據(jù)經(jīng)過轉化成為86字節(jié)的16進制字符串數(shù)據(jù).在HTTP包的封裝中,除了數(shù)據(jù)域以外,0x4開始的“/com2http/test.aspx”和0x43開始86會根據(jù)實際需要在下位機中由程序自動設置,分別表示處理該數(shù)據(jù)的處理頁面和提交的有效數(shù)據(jù)字節(jié)數(shù).由此可以看出,只要在有效數(shù)據(jù)的前面加上HTTP請求頭,就可以實現(xiàn)簡單的HTTP1.1協(xié)議,在單片機系統(tǒng)中實現(xiàn)這種功能和寫普通的串口發(fā)送程序一樣簡單.

  3.2網(wǎng)絡模塊

  該模塊在該系統(tǒng)中起著承上啟下的作用,實現(xiàn)了TCP/IP協(xié)議棧,完成把485線上串行傳送的HTTP包數(shù)據(jù)轉化為在交換式以太網(wǎng)中的以太網(wǎng)幀,真正向Web服務器發(fā)出HTTP請求.

  3.3WebServerAndRealDatabase

  網(wǎng)絡模塊轉化后的HTTP請求最終到達Web服務器,可用任何服務器端動態(tài)網(wǎng)頁技術實現(xiàn)數(shù)據(jù)的處理和保存,實驗方案采用微軟最新的動態(tài)網(wǎng)頁技術ASP.Net.通過編寫程序獲取有效數(shù)據(jù),轉化為原始二進制數(shù)據(jù)形式,驗證校驗碼,如果無誤根據(jù)數(shù)據(jù)的對應寫入實時數(shù)據(jù)庫,如果實時性要求不高以及數(shù)據(jù)存儲量不大,可以使用ACCESS數(shù)據(jù)庫,不然可以使用專用的數(shù)據(jù)庫服務器,如Oracle和SQLServer.

4優(yōu)點

  本文中數(shù)據(jù)采集方案有以下優(yōu)點:

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

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

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

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

5實驗

 ?。?)下位機實現(xiàn):同普通的下位機系統(tǒng)設計和實現(xiàn),只是在數(shù)據(jù)發(fā)送時需要加上HTTP協(xié)議包的包頭,可參考3.1.

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

 ?。?)Web服務器使用聯(lián)想萬全520服務器,WindowsServer2003操作系統(tǒng),IIS6.0,數(shù)據(jù)庫采用SQLServer2005,使用ASP.Net技術編程實現(xiàn)數(shù)據(jù)處理和保存.下面給出用C#實現(xiàn)的數(shù)據(jù)處理核心代碼實例:

  byte[]a;

  a=this.Request.BinaryRead(this.Request.ContentLength);//獲取提交的數(shù)據(jù)

  System.Text.ASCIIEncodingascii=newSystem.Text.ASCIIEncoding();

  stringc=ascii.GetString(a);

  if(!CheckValidChr(c))//檢查是否有非法字符

  return;

  byte[]b=newbyte[a.Length/2];

  for(inti=0;i

  b[i/2]=Convert.ToByte(c.Substring(i,2),16);

  if(!CheckCRC(b))//驗證CRC

  return;

  for(inti=5;i

 ?。?/p>

  if((i-1)%4==0)

 ?。?/p>

  floatt=BitConverter.ToSingle(b,i-4);//把字節(jié)數(shù)據(jù)轉化為浮點數(shù)

  SaveData(b[0],(i-1)/4,t);//根據(jù)下位機站地址以及數(shù)據(jù)位置保存數(shù)據(jù)

 ?。?/p>

  }

6結束語

  經(jīng)過實驗證明,基于本文方案可以快速有效的部署一個數(shù)據(jù)采集系統(tǒng),比傳統(tǒng)的串口數(shù)據(jù)采集方法有很多優(yōu)越性,擴展維護方便,由于上位機基于動態(tài)網(wǎng)頁技術,只需編寫數(shù)據(jù)處理和保存程序,使得系統(tǒng)的開發(fā)工作主要放在下位機和儀表的通信上.需要說明的是,該方案中使用ZNE-100T評估板和下位機通過485串行總線相連,下位機向網(wǎng)絡模塊發(fā)送的有效數(shù)據(jù)需要加入CRC校驗,防止在485總線上數(shù)據(jù)出現(xiàn)錯誤引起Web服務器采集到錯誤數(shù)據(jù).另外一個解決方案是把ZNE-100T模塊集成在下位機,這樣可以取消校驗.不過前者有個優(yōu)點就是如果下位機距離交換機很遠,可以近距離用網(wǎng)線把交換機和網(wǎng)絡模塊連接,用485線把網(wǎng)絡模塊和下位機連接,實現(xiàn)了長距離數(shù)據(jù)傳輸.由此可出看出,利用嵌入式網(wǎng)絡模塊實現(xiàn)基于HTTP協(xié)議的數(shù)據(jù)采集系統(tǒng)確是一個非常靈活的方案.

參考文獻

  [1]楊健.基于嵌入式系統(tǒng)的數(shù)據(jù)采集系統(tǒng)網(wǎng)絡接入的設計與實現(xiàn)[J].儀器儀表學報,26(8)增刊:290-292.

  [2]劉凱.基于嵌入式Linux系統(tǒng)的遠程數(shù)據(jù)采集[J].計算機應用,26(B06):264-265.

  [3]游雪峰.以太網(wǎng)分布式數(shù)據(jù)采集同步和實時傳輸研究[J].儀器儀表學報,27(4):384-387.

  [4]張曦煌.基于嵌入式Web的遠程儀表接口[J].微計算機信息,2006(01S):147-149.

  [5]InternetRFC/STD/FYI/BCPArchives.RFC2616-HypertextTransferProtocol——HTTP/1.1[EB/OL].http://www.faqs.org/rfcs/rfc2616.html.

  [6]HarvyM.Deitel.C#大學教程[M].電子工業(yè)出版社,2004.1.

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

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

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

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

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

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品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ù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

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

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(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超高清全產(chǎn)業(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 信息技術
關閉
關閉