• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于 ARM和 Web服務(wù)的數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計?

      2010-09-11 05:58:10
      關(guān)鍵詞:端點瀏覽器嵌入式

      舒 劍

      (集美大學(xué) 信息工程學(xué)院,福建 廈門 361021)

      在工業(yè)控制領(lǐng)域,對測量數(shù)據(jù)的采集和監(jiān)測是必不可少的重要環(huán)節(jié).目前,對這些設(shè)備的集中控制大都采用CAN,RS-485,RS-232等局部組網(wǎng)方式,只能在本地顯示和控制,相對孤立.隨著信息化進程的加快和控制規(guī)模的擴大,這些設(shè)備面臨更緊迫的聯(lián)網(wǎng)需求.而 Internet在這一領(lǐng)域具有很大的優(yōu)勢.近些年,把 Internet技術(shù)和Web技術(shù)應(yīng)用到工業(yè)控制系統(tǒng),實現(xiàn)終端設(shè)備智能化、網(wǎng)絡(luò)化,一直是熱點[1].

      本系統(tǒng)采用 ARM平臺,可掛接多個串口設(shè)備,將采集到的多路數(shù)據(jù)以 Web服務(wù)的形式發(fā)布,任何聯(lián)網(wǎng)的遠程計算機可通過瀏覽器訪問數(shù)據(jù).

      1 系統(tǒng)的總體結(jié)構(gòu)

      系統(tǒng)以 Samsung公司的 S3C2410 ARM處理器為核心,搭配以太網(wǎng)接口芯片 DM9000,通過網(wǎng)絡(luò)接口的軟件設(shè)計實現(xiàn)嵌入式的Web服務(wù)器,支持 HT TP遠程訪問.數(shù)據(jù)采集部分使用 S3C2410集成的串行控制 器 UART0和UART1,擴展掛接多個外部數(shù)據(jù)采集單元,稱為設(shè)備端點,以 RS-485方式連接.采集數(shù)據(jù)以文件形式保存在 S3C2410核心板的存儲器中,供遠程計算機通過瀏覽器訪問.系統(tǒng)結(jié)構(gòu)如圖 1所示.

      2 硬件設(shè)計

      2.1 以太網(wǎng)接口設(shè)計[2-3]

      S3C2410通過外接一片 DM9000以太網(wǎng) MAC芯片擴展了一個 10/100 Mbps自適應(yīng)以太網(wǎng)接口.DM9000是一款高性能和低功耗的 CMOS芯片,完全兼容 IEEE802.3u,支持 10/100 Mbit/s單工和雙工模式的以太網(wǎng)傳輸,支持 IEEE802.3x全雙工流控制,具備載波多路訪問和碰撞檢測(CSM A/CD)機制,具備 4 k雙字 SRAM的接收緩沖區(qū).支持與處理器之間的 8 bit,16 bit,32 bit接口方式.

      S3C2410與 DM9000的連接需完成數(shù)據(jù)、地址、控制三大總線的連接,如圖 2所示.將 S3C2410的數(shù)據(jù)線 MD[0:15]和 DM9000的 SD[0:15]連接,用于數(shù)據(jù)傳輸.S3C2410是 32 bit CPU,支持最大 4 GB的存儲空間,其中 00000000H~ 40000000H地址空間等分為 8個區(qū)域,由 nGCS0~ nGCS7片選.在設(shè)計中DM9000占用 nGCS2片選.為使 DM9000能夠被正確尋址,需將 AEN(地址允許)與 nGCS2連接,并將SA9,SA8置高電平,SA7,SA6,SA5,SA4置低電平,當(dāng) CPU將 nGCS2置低電平時,DM9000被選中.CMD端用于設(shè)置數(shù)據(jù) /地址模式,當(dāng) CMD為高電平時選通數(shù)據(jù)端口,為低電平時選通地址端口.IN T端用于向 CPU發(fā)出中斷,使用了 S3C2410的 EINT2中斷.另外,DM9000支持 3種接口寬度,設(shè)計中設(shè)置 DM9000為 16 bit模式,需將 W AKEUP和 EEDO接低電平.

      2.2 RS-485串行接口設(shè)計

      S3C2410內(nèi)部具有 3個獨立的 UART控制器,每個控制器都可以工作在中斷模式或 DM A模式,也就是說 UART控制器可以在 CPU與 UART控制器傳送數(shù)據(jù)的時候產(chǎn)生中斷或 DMA請求.每個UART控制器均具有 16字節(jié)的 FIFO,在使用系統(tǒng)時鐘時支持的最高波特率可達 230.4 kbit/s.設(shè)計中使用其中的 UART0和 UART1,各連接 4個設(shè)備端點,采用軟件查詢工作模式,波特率發(fā)生器采用CPU的系統(tǒng)時鐘,波特率定為 9600 bit/s.

      RS-232通信距離不超過 20 m,而 RS-485可達 1200 m,為了便于設(shè)備端點的安置,需將 RS-232接口轉(zhuǎn)換為 RS-485接口.設(shè)計中使用 MAX3232作為 RS-232接口器件,該器件采用+3.3 V供電,實現(xiàn) EIA-232電平與 T TL/CMOS電平的轉(zhuǎn)換.RS-485轉(zhuǎn)換器采用深圳宇泰科技有限公司的 UT-201轉(zhuǎn)換器,該轉(zhuǎn)換器不需外部供電,實現(xiàn) RS-232到 RS-485的雙向透明轉(zhuǎn)換[4].串行接口模塊的連接如圖 3所示.在水產(chǎn)育種場的實際應(yīng)用中,設(shè)備端點用于測量海水的溶解氧含量、氨氮濃度、含鹽量、pH值、水溫參數(shù)等.各設(shè)備端點均包括 AT89C52單片機、傳感器和 MAX485芯片,M AX485將端點連接到系統(tǒng)的 RS-485總線上.

      3 軟件設(shè)計

      軟件設(shè)計有兩方面,一是本地數(shù)據(jù)采集,將數(shù)據(jù)寫入文件;二是網(wǎng)絡(luò)編程,實現(xiàn)遠程數(shù)據(jù)查詢.

      本地數(shù)據(jù)采集通過 RS-485進行,采用 UT-201將 RS-232單端信號透明地轉(zhuǎn)換為 RS-485平衡差分信號,對于 S3C2410而言,UT-201不可見,外部仍是 RS-232串行設(shè)備,且 UART0和 UART1外接的RS-232接口是板載 Linux系統(tǒng)的標(biāo)準(zhǔn)接口,使用系統(tǒng) API函數(shù)可方便地進行讀寫操作.主控端(S3C2410)與設(shè)備端點之間采用主從通信方式,所有設(shè)備端點始終處于被動地位,等待主控端發(fā)出控制指令,如“id01rd00”,“01”表示此次呼叫的是設(shè)備端點 1,“00”表示讀取該設(shè)備端點的傳感器模塊第0通道的值.各設(shè)備端點收到指令并根據(jù)其中編號判斷此時主控端是否在與自己通信,若是則做一次數(shù)據(jù)采集并將數(shù)據(jù)回送主控端.為此需設(shè)計一個單獨的數(shù)據(jù)采集進程,該進程任務(wù)簡單,每隔固定的 15 min時間間隔輪詢一次各設(shè)備端點,發(fā)出控制指令并回收測量數(shù)據(jù),寫入歷史數(shù)據(jù)文件 mass.dat.在寫入之前可設(shè)置一個全局變量標(biāo)志,寫入完成后撤銷,供后面的查詢程序判讀,需等待至標(biāo)志撤銷再進行查詢,以免讀寫沖突.由于測量數(shù)據(jù)的量小,寫操作執(zhí)行時間在幾十至幾百 ms之間.對串口的讀寫在 3.3節(jié)敘述,對文件的讀寫使用 Linux API函數(shù)即可簡單實現(xiàn),相關(guān)函數(shù)為 open(),read(),write()和close(),在此不贅述.

      網(wǎng)絡(luò)編程包含兩個層次,首先要建立以太網(wǎng)通信接口,然后在此基礎(chǔ)上建立 Web服務(wù),按 HTTP協(xié)議與遠程計算機交換信息,設(shè)計的 Web服務(wù)支持 HT TP指令集中的 GET指令.在微處理器系統(tǒng)中實現(xiàn)嵌入式 Web服務(wù)器是嵌入式 TCP/IP協(xié)議棧的典型應(yīng)用,也是微處理器系統(tǒng)向智能化、網(wǎng)絡(luò)化發(fā)展的趨勢[5].

      3.1 嵌入式網(wǎng)絡(luò)通信接口設(shè)計[6]

      Socket共3種類型.出于可靠性的考慮,在設(shè)計中使用流式Socket,能提供比UDP連接更可靠的 TCP連接方式.服務(wù)器端網(wǎng)絡(luò)通信流程如圖 4(a)和(b)所示.服務(wù)器程序使用 socket()函數(shù)打開套接字,用bind()函數(shù)綁定指定端口,本設(shè)計使用 80端口.然后在綁定的端口上監(jiān)聽任何連接請求,若有請求到來則調(diào)用accept()函數(shù)接受該連接,并為該連接創(chuàng)建新的子進程,在子進程中處理該連接,這樣設(shè)計的目的是為了使服務(wù)器能夠處理多客戶的并發(fā)連接請求.連接建立后,子進程使用recv()函數(shù)獲取客戶瀏覽器發(fā)來的數(shù)據(jù),這些數(shù)據(jù)的格式符合 HTT P請求消息的格式.解析出 HTT P請求消息后,做相應(yīng)處理,根據(jù)不同的請求消息返回相應(yīng)數(shù)據(jù)給客戶的瀏覽器,返回的數(shù)據(jù)也需符合 HT TP消息響應(yīng)的格式.客戶端使用現(xiàn)有的通用瀏覽器軟件,如 Internet Explorer不需再行編程,其主要流程如圖 4(c)所示.

      3.2 嵌入式 Web服務(wù)器設(shè)計

      實現(xiàn)嵌入式 Web服務(wù)器的關(guān)鍵在于使系統(tǒng)支持 HTT P協(xié)議,它是萬維網(wǎng)的基本傳輸協(xié)議[7].為了明確 Web服務(wù)器和客戶瀏覽器的相互操作,HT TP協(xié)議定義了瀏覽器發(fā)送到服務(wù)器的請求的格式,以及服務(wù)器返回應(yīng)答的格式.編程實現(xiàn)對 HTT P協(xié)議的解析,其過程具體而言是對客戶瀏覽器發(fā)送過來的HTTP請求消息進行接收、處理和應(yīng)答,在圖 4(b)中已反映了這一過程,但還需具體說明其中 HTTP請求消息的處理過程.根據(jù)系統(tǒng)功能的需要,在嵌入式環(huán)境下服務(wù)器并不需要支持所有的 HT TP請求消息,本設(shè)計支持 GET請求消息.根據(jù)客戶瀏覽器的請求,返回相應(yīng)的HTM L超文本文件、圖片文件等.嵌入式Web服務(wù)器 IP為192.168.2.120,端口為 80.在客戶計算機上打開瀏覽器并輸入http://192.168.2.120/query.html,這是數(shù)據(jù)查詢的首頁面,回車后服務(wù)器收到 HT TP請求消息內(nèi)容為:

      >> GET /query.html HTTP/1.1;

      > > Host:192.168.2.120;

      > > Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,*.*;

      > > Accept-Language:en;

      > > Accept-Encoding:gzip,deflate;

      > > User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows N T5.0);

      > > Connection:Keep-Alive.

      服務(wù)器收到上述消息后,回應(yīng)的內(nèi)容由響應(yīng)消息頭和文件數(shù)據(jù)流構(gòu)成:

      <<HTTP/1.1200 O K;

      < < Date:Fri May 3019:12:162008 GM T;

      < < Server:Embedded Web Server(Linux);

      < < Last-Modified:Fri Sep2114:16:182007GM T;

      < < Content-Length:555;

      < < Connection:close;

      < < Content-Type:text/html;

      <<;

      <<文件數(shù)據(jù)流.在.根據(jù)所請求文件的類型,若請求的是 html文件則調(diào)用 do html( )函數(shù),將文件內(nèi)容和相應(yīng)的響應(yīng)消息頭打包為 HTT P響應(yīng)消息發(fā)送給客戶瀏覽器;若請求的是 jpg,gif等圖形文件則調(diào)用 do_ img ()函數(shù),將文件內(nèi)容和相應(yīng)的響應(yīng)頭格式打包為 HT TP響應(yīng)消息發(fā)送給客戶瀏覽器;若請求的是其它文件,則以下載形式發(fā)送給客戶瀏覽器;若請求的文件不存在,則調(diào)用 do _404()函數(shù),返回一個文件不存在的HTTP響應(yīng)消息.

      圖5 在瀏覽器中輸入查詢條件Fig.5 Input query condition on browser

      圖6 瀏覽器顯示查詢結(jié)果Fig.6 Show query result on browser

      如圖 5所示,輸入查詢條件并點擊“查詢”按鈕,依 query.html中的按鈕動作設(shè)置,客戶瀏覽器將向服務(wù)器請求 result.html文件,同時附帶 4個 INPUT元素的內(nèi)容作為請求參數(shù).對 result.html的請求過程和響應(yīng)過程與 query.html是一樣的,但 do html ()函數(shù)需區(qū)別處理對 query.html和 result.html的請求,如圖 8所示,當(dāng)客戶瀏覽器請求 query.html時,服務(wù)器只需簡單地讀取 Flash中事先編制好的query.html文件返回給客戶瀏覽器,而請求 result.html時,Flash中并沒有真實的result.html文件存在,而是服務(wù)器程序根據(jù)4個參數(shù)中的水池編號、查詢開始時間和結(jié)束時間到歷史數(shù)據(jù)文件 mass.dat中搜索符合條件的數(shù)據(jù)記錄,整理存放在 RAM中動態(tài)開辟的空間中,并在返回給客戶瀏覽器后釋放空間.若先將符合條件的記錄保存為靜態(tài)磁盤文件 reqult.html,再將其返回給客戶瀏覽器,則在多用戶同時查詢時會出現(xiàn)文件相互覆蓋的現(xiàn)象,造成客戶瀏覽器數(shù)據(jù)顯示錯亂,采用動態(tài)方式可避免此問題.查詢之前先判斷確認(rèn)碼,可保護數(shù)據(jù)不被非法查詢.查詢結(jié)果如圖 6所示.

      3.3 串口讀寫控制程序

      對串行口進行讀寫操作之前需設(shè)置波特率和數(shù)據(jù)幀格式.可以使用 cfsetospeed()和 cfsetispeed()函數(shù)在 termios結(jié)構(gòu)體中設(shè)置波特率,設(shè)置波特率為 9 600 bit/s的方法為

      struct termios options;

      tcgetattr(uart0_hd,&options);

      cfsetispeed(&options,B9600);

      cfsetospeed(&options,B9600);

      options.c cflag |=(CLOCAL|CREAD);

      設(shè)置幀格式為 8 bit數(shù)據(jù),無校驗位:

      options.c cflag |=PARENB;

      options.c_cflag&=~CSTO PB;

      options.c cflag&=~CSIZE;

      options.c_cflag |= CS8;

      最后執(zhí)行 tcsetattr(uart0_hd,TCSANOW,&options)為端口寫入新的參數(shù).

      根據(jù)軟件的設(shè)計構(gòu)想,串口需對各設(shè)備端點進行輪詢和數(shù)據(jù)采集.Linux通過設(shè)備文件訪問串行口,在本設(shè)計中 UART0和 UART1所對應(yīng)的設(shè)備文件為“/dev/ttyS0”和 “/dev/tty S1”.以 UART0為例,輪詢一次圖 3中設(shè)備端點1的過程如下:

      4 結(jié) 語

      把 Internet應(yīng)用到嵌入式系統(tǒng)的目的是使現(xiàn)場終端設(shè)備接入 Internet,其中由 ARM平臺構(gòu)建的嵌入式 Web服務(wù)器起到了橋梁的作用.本設(shè)計實現(xiàn)了一個嵌入式 Web服務(wù)器,可對本地的多路串口數(shù)據(jù)進行采集,并將數(shù)據(jù)保存在服務(wù)器的歷史數(shù)據(jù)文件中,支持遠程計算機瀏覽器以 HT TP方式查詢訪問.該系統(tǒng)應(yīng)用于水產(chǎn)育種養(yǎng)殖場中,對現(xiàn)場數(shù)個養(yǎng)殖池的水質(zhì)進行遠程監(jiān)測,運行穩(wěn)定可靠.

      [1]楊豐萍,邢劍,馬書研.基于 Linux的嵌入式安全 Web Server的實現(xiàn) [J].華東交通大學(xué)學(xué)報,2007,24(2):110-112.Yang Fengping,Xing Jian,Ma Shuyan.Realization of embedded secure web server based on linux[J].Journal of East China Jiaotong University,2007,24(2):110-112.(in Chinese)

      [2]韓超,王可人.基于 DM9000的嵌入式系統(tǒng)的網(wǎng)絡(luò)接口設(shè)計與實現(xiàn) [J].工業(yè)控制計算機,2007,20(4):17-18.Han Chao,Wang Keren.Design and realization of embedded system network interface based on DM 9000[J].Industrial Control Computer,2007,20(4):17-18.(in Chinese)

      [3]劉永峰,鄒逢興.嵌入式系統(tǒng)的網(wǎng)絡(luò)接口模塊設(shè)計 [J].兵工自動化,2006,25(2):49-51.Liu Yongfeng,Zou Fengxing.Network interface module design of embedded system[J].Ordnance Industry Automation,2006,25(2):49-51.(in Chinese)

      [4]許永康.RS-232轉(zhuǎn) RS-485網(wǎng)絡(luò)的通信 [J].微計算機信息,2007,23(4-1):228-229.Xu Yongkang.Network communication of RS-232convert to RS-485[J].Control&Automation,2007,23(4-1):228-229.(in Chinese)

      [5]Quinnell,Richard A.Web servers in embedded system enhance user interaction[J].European Documentary Network,1997(10):61-63.

      [6]童銘,李志蜀.基于 Socket的多用戶通信框架及實現(xiàn) [J].四川大學(xué)學(xué)報(自然科學(xué)版),2006,43(3):702-705.Tong Ming,Li Zhishu.Implementation of multi-client communication based on socket[J].Journal of Sichuan University(Natural Science Edition),2006,43(3):702-705.(in Chinese)

      [7]王超,胡晨,劉新寧,等.嵌入式系統(tǒng)中 HT TP協(xié)議的實現(xiàn) [J].電子器件,2002,25(1):93-96.Wang Chao,Hu Chen,Liu Xinning,et al.Implementation of HT TP protocol in the embedded system[J].Journal of Electron Devices,2002,25(1):93-96.(in Chinese)

      猜你喜歡
      端點瀏覽器嵌入式
      非特征端點條件下PM函數(shù)的迭代根
      不等式求解過程中端點的確定
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      搭建基于Qt的嵌入式開發(fā)平臺
      參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點估計
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      環(huán)球瀏覽器
      基丁能雖匹配延拓法LMD端點效應(yīng)處理
      再見,那些年我們嘲笑過的IE瀏覽器
      Altera加入嵌入式視覺聯(lián)盟
      万源市| 澳门| 阜康市| 墨玉县| 登封市| 平山县| 克东县| 洪泽县| 桃江县| 益阳市| 麦盖提县| 剑河县| 蛟河市| 漳州市| 台中市| 宁波市| 天津市| 那坡县| 辽阳县| 西城区| 麦盖提县| 夹江县| 南召县| 房产| 阿坝| 景泰县| 莒南县| 合作市| 稷山县| 滦平县| 枣阳市| 辽阳县| 图们市| 银川市| 宿松县| 齐河县| 石泉县| 满洲里市| 松溪县| 新丰县| 普宁市|