亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        舒 劍

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

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

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

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

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

        2 硬件設(shè)計(jì)

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

        S3C2410通過(guò)外接一片 DM9000以太網(wǎng) MAC芯片擴(kuò)展了一個(gè) 10/100 Mbps自適應(yīng)以太網(wǎng)接口.DM9000是一款高性能和低功耗的 CMOS芯片,完全兼容 IEEE802.3u,支持 10/100 Mbit/s單工和雙工模式的以太網(wǎng)傳輸,支持 IEEE802.3x全雙工流控制,具備載波多路訪問(wèn)和碰撞檢測(cè)(CSM A/CD)機(jī)制,具備 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的存儲(chǔ)空間,其中 00000000H~ 40000000H地址空間等分為 8個(gè)區(qū)域,由 nGCS0~ nGCS7片選.在設(shè)計(jì)中DM9000占用 nGCS2片選.為使 DM9000能夠被正確尋址,需將 AEN(地址允許)與 nGCS2連接,并將SA9,SA8置高電平,SA7,SA6,SA5,SA4置低電平,當(dāng) CPU將 nGCS2置低電平時(shí),DM9000被選中.CMD端用于設(shè)置數(shù)據(jù) /地址模式,當(dāng) CMD為高電平時(shí)選通數(shù)據(jù)端口,為低電平時(shí)選通地址端口.IN T端用于向 CPU發(fā)出中斷,使用了 S3C2410的 EINT2中斷.另外,DM9000支持 3種接口寬度,設(shè)計(jì)中設(shè)置 DM9000為 16 bit模式,需將 W AKEUP和 EEDO接低電平.

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

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

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

        3 軟件設(shè)計(jì)

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

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

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

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

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

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

        實(shí)現(xiàn)嵌入式 Web服務(wù)器的關(guān)鍵在于使系統(tǒng)支持 HTT P協(xié)議,它是萬(wàn)維網(wǎng)的基本傳輸協(xié)議[7].為了明確 Web服務(wù)器和客戶瀏覽器的相互操作,HT TP協(xié)議定義了瀏覽器發(fā)送到服務(wù)器的請(qǐng)求的格式,以及服務(wù)器返回應(yīng)答的格式.編程實(shí)現(xiàn)對(duì) HTT P協(xié)議的解析,其過(guò)程具體而言是對(duì)客戶瀏覽器發(fā)送過(guò)來(lái)的HTTP請(qǐng)求消息進(jìn)行接收、處理和應(yīng)答,在圖 4(b)中已反映了這一過(guò)程,但還需具體說(shuō)明其中 HTTP請(qǐng)求消息的處理過(guò)程.根據(jù)系統(tǒng)功能的需要,在嵌入式環(huán)境下服務(wù)器并不需要支持所有的 HT TP請(qǐng)求消息,本設(shè)計(jì)支持 GET請(qǐng)求消息.根據(jù)客戶瀏覽器的請(qǐng)求,返回相應(yīng)的HTM L超文本文件、圖片文件等.嵌入式Web服務(wù)器 IP為192.168.2.120,端口為 80.在客戶計(jì)算機(jī)上打開(kāi)瀏覽器并輸入http://192.168.2.120/query.html,這是數(shù)據(jù)查詢的首頁(yè)面,回車(chē)后服務(wù)器收到 HT TP請(qǐng)求消息內(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ù)所請(qǐng)求文件的類(lèi)型,若請(qǐng)求的是 html文件則調(diào)用 do html( )函數(shù),將文件內(nèi)容和相應(yīng)的響應(yīng)消息頭打包為 HTT P響應(yīng)消息發(fā)送給客戶瀏覽器;若請(qǐng)求的是 jpg,gif等圖形文件則調(diào)用 do_ img ()函數(shù),將文件內(nèi)容和相應(yīng)的響應(yīng)頭格式打包為 HT TP響應(yīng)消息發(fā)送給客戶瀏覽器;若請(qǐng)求的是其它文件,則以下載形式發(fā)送給客戶瀏覽器;若請(qǐng)求的文件不存在,則調(diào)用 do _404()函數(shù),返回一個(gè)文件不存在的HTTP響應(yīng)消息.

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

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

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

        3.3 串口讀寫(xiě)控制程序

        對(duì)串行口進(jìn)行讀寫(xiě)操作之前需設(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ù),無(wú)校驗(yàn)位:

        options.c cflag |=PARENB;

        options.c_cflag&=~CSTO PB;

        options.c cflag&=~CSIZE;

        options.c_cflag |= CS8;

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

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

        4 結(jié) 語(yǔ)

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

        [1]楊豐萍,邢劍,馬書(shū)研.基于 Linux的嵌入式安全 Web Server的實(shí)現(xiàn) [J].華東交通大學(xué)學(xué)報(bào),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è)計(jì)與實(shí)現(xiàn) [J].工業(yè)控制計(jì)算機(jī),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ì) [J].兵工自動(dòng)化,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].微計(jì)算機(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的多用戶通信框架及實(shí)現(xiàn) [J].四川大學(xué)學(xué)報(bào)(自然科學(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é)議的實(shí)現(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)

        猜你喜歡
        端點(diǎn)瀏覽器嵌入式
        非特征端點(diǎn)條件下PM函數(shù)的迭代根
        不等式求解過(guò)程中端點(diǎn)的確定
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點(diǎn)估計(jì)
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        環(huán)球?yàn)g覽器
        基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
        再見(jiàn),那些年我們嘲笑過(guò)的IE瀏覽器
        Altera加入嵌入式視覺(jué)聯(lián)盟
        国产精品久久久精品三级18| 人妻少妇中文字幕久久hd高清| 蜜桃久久综合一区二区| 国产不卡在线视频观看| av黄页网国产精品大全| 亚洲熟女综合色一区二区三区| 国产乱码一二三区精品| 国产va在线观看免费| 国产综合自拍| 日韩精品成人无码AV片| 国产中文字幕亚洲综合| 亚洲精品中文字幕一二三四| 小妖精又紧又湿高潮h视频69| 熟女精品视频一区二区三区| 久久国产亚洲精品超碰热| 加勒比东京热久久综合| 国产91精品在线观看| 国产亚洲精品美女久久久m | 激情影院内射美女| 精品无码AV无码免费专区| 国产精品亚洲精品日产久久久| 一本色道久久88综合亚洲精品| 免费一区二区在线观看视频在线| 天天做天天摸天天爽天天爱| 亚洲乱码中文字幕综合| 精品久久综合一区二区| 日本激情一区二区三区| 女人av天堂国产在线| 国产成人精品白浆久久69| 欧美成人形色生活片| 精品少妇人妻久久免费| 一本色道久在线综合色| 无码中文亚洲av影音先锋| 国产成人精品成人a在线观看| av无码av在线a∨天堂app| 日本一区二区久久精品亚洲中文无 | 成全视频高清免费| 国产亚洲一区二区三区成人| 国内偷拍国内精品多白86| 高清精品一区二区三区| 好大好硬好爽免费视频|