<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 無(wú)線(xiàn)數(shù)傳模塊在遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)中的應(yīng)用

          無(wú)線(xiàn)數(shù)傳模塊在遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)中的應(yīng)用

          ——
          作者:張愛(ài)玲 仇潤(rùn)鶴 時(shí)間:2007-07-11 來(lái)源:微計(jì)算機(jī)信息 收藏
              現(xiàn)代世界是一個(gè)信息世界,信息的獲取傳輸也逐步從有線(xiàn)過(guò)渡到無(wú)線(xiàn)。隨著無(wú)線(xiàn)通信事業(yè)的發(fā)展,無(wú)線(xiàn)傳輸這一技術(shù)越來(lái)越多的為人們所熟悉,相應(yīng)的產(chǎn)品也滲透到社會(huì)生活的各個(gè)領(lǐng)域,如無(wú)線(xiàn)抄表、數(shù)字圖像傳輸、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集、非接觸RF 智能卡、安全防火系統(tǒng)、區(qū)域報(bào)警系統(tǒng)的數(shù)字信號(hào)傳輸?shù)?。而這一技術(shù)的最大作用便是優(yōu)化數(shù)據(jù)傳輸系統(tǒng)的效率。本文將此技術(shù)應(yīng)用于無(wú)線(xiàn)通信的遠(yuǎn)程系統(tǒng)中,使該系統(tǒng)不僅數(shù)據(jù)傳輸效率高,而且結(jié)構(gòu)簡(jiǎn)單,操作方便。

            一、遠(yuǎn)程環(huán)境監(jiān)控系統(tǒng)組成

            1、遠(yuǎn)程環(huán)境監(jiān)控系統(tǒng)概述

                  

          遠(yuǎn)程環(huán)境監(jiān)測(cè)系統(tǒng)框圖

             
          圖1 遠(yuǎn)程系統(tǒng)框圖

            遠(yuǎn)程系統(tǒng)主要是對(duì)酸雨,水質(zhì),煙霧濃度等環(huán)境參數(shù)進(jìn)行集中,它是一種由中心站PC機(jī)、與子站PC機(jī)、、數(shù)據(jù)采集器、環(huán)境測(cè)定儀所組成的主從式系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖1所示。

            中心站主要位于城市或地區(qū)的環(huán)境監(jiān)測(cè)總站,子站則在城市或地區(qū)的周邊。環(huán)境測(cè)定儀有碳?xì)浠衔餃y(cè)定儀MODEL-745、大氣測(cè)定儀AFC-125、酸雨測(cè)定儀

          AR-107SNA、COD測(cè)定儀VS-3951等,他們收集的各種環(huán)境參數(shù)通過(guò)數(shù)據(jù)采集器送入子站PC機(jī)中,進(jìn)行數(shù)據(jù)處理、參數(shù)顯示和保存,并隨時(shí)準(zhǔn)備接受中心站的查詢(xún)和定時(shí)發(fā)送。每一子站與中心站之間的遠(yuǎn)程通信是采用北京池潤(rùn)達(dá)公司的W21DM無(wú)線(xiàn)數(shù)傳全雙工通信來(lái)實(shí)現(xiàn)的。

            中心站、子站與間的通信是通過(guò)異步串口來(lái)完成的。異步串口采用標(biāo)準(zhǔn)的串口格式即:一個(gè)起始位、八個(gè)數(shù)據(jù)位、一個(gè)停止位。傳輸速率為1200bit/s。

            2、 無(wú)線(xiàn)數(shù)傳模塊工作過(guò)程  

            圖2是無(wú)線(xiàn)數(shù)傳模塊結(jié)構(gòu)框圖。無(wú)線(xiàn)數(shù)傳模塊的工作方式有全雙工和半雙工兩種,為了能充分系統(tǒng)傳輸數(shù)據(jù)的可靠性,本系統(tǒng)采用全雙工模式。同時(shí)注意在設(shè)置通信時(shí),必須保證通過(guò)串行口將無(wú)線(xiàn)數(shù)傳模塊的收發(fā)頻率設(shè)置相同。

          無(wú)線(xiàn)數(shù)傳模塊結(jié)構(gòu)圖


             圖2無(wú)線(xiàn)數(shù)傳模塊結(jié)構(gòu)圖

            2.1模塊發(fā)送過(guò)程:

            當(dāng)模塊收到PC機(jī)的串行口數(shù)據(jù)后,模塊先通過(guò)DTR線(xiàn)判斷收到的數(shù)據(jù)是命令還是發(fā)送數(shù)據(jù),若是命令則執(zhí)行相應(yīng)的命令,若是發(fā)送數(shù)據(jù)則先將要發(fā)送的數(shù)據(jù)送到發(fā)送緩沖區(qū)EERAM中,并同時(shí)將模塊的狀態(tài)由接收狀態(tài)轉(zhuǎn)換成發(fā)射狀態(tài),狀態(tài)轉(zhuǎn)換完成后啟動(dòng)發(fā)送打包程序,并將這個(gè)數(shù)據(jù)包的數(shù)據(jù)送到模塊中的數(shù)據(jù)調(diào)制口以FSK的方式調(diào)制成模擬信號(hào), 與鎖相環(huán)中的振蕩信號(hào)一起送混頻器,升頻后的射頻信號(hào)再經(jīng)發(fā)射放大器、功率放大器放大后通過(guò)天線(xiàn)發(fā)送出去。這里的數(shù)據(jù)打包要遵從事先定義好的傳輸協(xié)議,這樣才可以使接收雙方有規(guī)可循,而且避免其他信號(hào)干擾。具體設(shè)定下面詳細(xì)說(shuō)明。

            2.2模塊的接收過(guò)程:

            在接收狀態(tài)下,通過(guò)天線(xiàn)接收進(jìn)來(lái)的射頻信號(hào)經(jīng)射頻發(fā)大器后,與鎖相環(huán)中的振蕩信號(hào)一起送到混頻器,降頻后的中頻信號(hào),通過(guò)中頻濾波器、中頻放大器放大后送到調(diào)制解調(diào)器,以FSK解調(diào)后的數(shù)字信號(hào)按照協(xié)議將有效數(shù)據(jù)送到存儲(chǔ)器中,再經(jīng)串行口送到計(jì)算機(jī)。

            二、設(shè)計(jì)系統(tǒng)時(shí)需要考慮的一些問(wèn)題

            1、傳輸協(xié)議

            因?yàn)闊o(wú)線(xiàn)通信模塊要對(duì)接收進(jìn)來(lái)的數(shù)據(jù)進(jìn)行處理,就必須能夠鑒別數(shù)據(jù)的真?zhèn)危砸髠鬏敂?shù)據(jù)的雙方建立一種有效協(xié)議使得能夠識(shí)別噪聲和有效數(shù)椐。因?yàn)樵肼暿且噪S機(jī)字節(jié)出現(xiàn)的,沒(méi)有明顯的結(jié)合方式,噪聲源可能產(chǎn)生任意字節(jié)的組合,所以研究在無(wú)線(xiàn)通信的過(guò)程中最好能通過(guò)一種協(xié)議能有效的抑制噪聲的產(chǎn)生。

            經(jīng)過(guò)比較選擇,采用了以下的數(shù)據(jù)傳輸協(xié)議格式:

           

          數(shù)據(jù)傳輸協(xié)議格式


              Radom 任意內(nèi)容的字節(jié)
              Data   位數(shù)據(jù)包字節(jié)
              Length 為數(shù)據(jù)包包含的Header字節(jié)之后的所有字節(jié)的長(zhǎng)度
              Checksum 校驗(yàn)和字節(jié)

            經(jīng)過(guò)和試驗(yàn),發(fā)現(xiàn)0xFF 后跟0XAA,0x55 在噪聲中不容易發(fā)生,所以設(shè)置傳輸協(xié)議在數(shù)據(jù)包前加開(kāi)始字節(jié)0xFF 后跟0xAA,0x55發(fā)送。因?yàn)榈谝粋€(gè)字節(jié)的數(shù)椐在發(fā)送時(shí)容易丟失,所以在協(xié)議的開(kāi)始加一個(gè)任意內(nèi)容的字節(jié),然后是0xFF 后跟一個(gè)0xAA,0x55;接收協(xié)議規(guī)定只接收以0xFF 后跟0xAA,0x55 開(kāi)始的包.于是就可以很方便的把以上系統(tǒng)的數(shù)據(jù)包格式定為以上格式。

             2、傳輸頻率

            在無(wú)線(xiàn)通信系統(tǒng)中傳輸頻率也是至關(guān)重要的,在為劃分和合理使用頻率,國(guó)際電信聯(lián)盟(ITU)將世界分為三個(gè)區(qū),中國(guó)屬于第三區(qū)。ITU對(duì)我國(guó)的業(yè)余業(yè)務(wù)頻率有專(zhuān)門(mén)的分列。而這里設(shè)定的頻段為227.00~223.00MHz,此為國(guó)家業(yè)余頻段,也就是說(shuō)可以自由使用,當(dāng)然如果希望長(zhǎng)期專(zhuān)用,則需要申請(qǐng)頻譜許可證,專(zhuān)用該頻段。

            系統(tǒng)中數(shù)據(jù)的遠(yuǎn)距離傳輸是根據(jù)接受雙方的頻率來(lái)判斷是否接受的。所以需要編寫(xiě)一定的程序完成頻率設(shè)置。如寫(xiě)頻時(shí),把DTR置低,指令格式為:D7H:FFH:AAH:AAH:AAH:BBH:BBH:BBH,AAH:AAH:AAH表示發(fā)射頻率,如229.100MHz表示為22H:91H:00H三字節(jié),同理BBH:BBH:BBH表示接收頻率。而傳送數(shù)據(jù)時(shí),DTR置高或懸空。

            3、串行數(shù)據(jù)的傳送方式

            由于設(shè)計(jì)采用的是無(wú)線(xiàn)傳輸,所以當(dāng)通過(guò)串行口將數(shù)據(jù)送到無(wú)線(xiàn)數(shù)傳模塊的時(shí)候需要考慮數(shù)據(jù)的傳輸格式。一般來(lái)說(shuō),通常我們發(fā)送的是字符或者數(shù)字,這時(shí)我們就需要在軟件中根據(jù)ASCII碼的規(guī)則將他們轉(zhuǎn)化為十六進(jìn)制數(shù)形式,以字節(jié)方式傳送。同時(shí)也需考慮發(fā)送與接收串口之間的延遲。

            三、串行口通信的軟件設(shè)計(jì)

            串行口是常用的計(jì)算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,而Visual C++6.0是一種功能強(qiáng)大的可視化的面向?qū)ο蟮腤indows編程開(kāi)發(fā)平臺(tái),利用其進(jìn)行串行通信方便易行,應(yīng)用廣泛。通常情況

          下VC++中有三種實(shí)現(xiàn)串行通信的編程技術(shù):1)利用控件MSComm實(shí)現(xiàn)串行通信:在對(duì)話(huà)框中創(chuàng)建通信控件 MSComm,這種方法簡(jiǎn)單易用,但必須拿到對(duì)話(huà)框中使用,靈活性較差;2)多線(xiàn)程實(shí)現(xiàn)串行通信:在自定義的串行通信類(lèi)中創(chuàng)建端口監(jiān)視線(xiàn)程,進(jìn)行多線(xiàn)程控制,并在指定的事件發(fā)生時(shí)向相關(guān)的窗口發(fā)送通知消息。該方法實(shí)時(shí)性強(qiáng),但是系統(tǒng)復(fù)雜;3)在單線(xiàn)程中建立自定義的通信類(lèi)實(shí)現(xiàn)串行通信;利用VC++的MFC類(lèi)庫(kù)實(shí)現(xiàn)。與控件方法相比,靈活性強(qiáng),可按不同需要定制靈活的串口通信類(lèi)來(lái)實(shí)現(xiàn),同時(shí)也比多線(xiàn)程通信結(jié)構(gòu)簡(jiǎn)單。

            結(jié)合本設(shè)計(jì)所采用的硬件的特點(diǎn),以及實(shí)際的運(yùn)行環(huán)境,最終選擇第三種方式完成串行口通信。

            程序流程圖如下:

          程序流程圖

          圖3  程序流程圖

            在程序中利用類(lèi)CserialPort實(shí)現(xiàn)負(fù)責(zé)串口的配置,數(shù)據(jù)傳輸?shù)难舆t處理以及讀寫(xiě)。結(jié)構(gòu)如下:
          數(shù)據(jù)傳輸?shù)难舆t處理
          數(shù)據(jù)傳輸?shù)难舆t處理

            其中配置串行口采用DCB結(jié)構(gòu),BOOL ReadByte(char* buff) 和BOOL WriteByte(BYTE,int)函數(shù)為讀寫(xiě)串行口,為了識(shí)別操作是否正確,利用BOOL bWriteRC, bReadRC設(shè)置成功標(biāo)志。同時(shí)設(shè)定DWORD   iBytesWritten,iBytesRead確定字節(jié)的個(gè)數(shù)。在收發(fā)數(shù)據(jù)時(shí)需要監(jiān)測(cè)串行口是不是準(zhǔn)備好,這時(shí)就可以檢測(cè)m_bPortReady的狀態(tài)。

            整個(gè)程序的編制也就相應(yīng)的分為以下幾個(gè)部分:

            配置串口;配置數(shù)傳模塊;讀寫(xiě)串行口;通信延時(shí)處理等。

            四、總結(jié)

            環(huán)境監(jiān)測(cè)系統(tǒng)具有采樣數(shù)據(jù)量大,傳輸距離遠(yuǎn),以及環(huán)境條件差別大的特點(diǎn),長(zhǎng)期以來(lái)數(shù)據(jù)傳輸部分一直是人們關(guān)注的焦點(diǎn)。以往系統(tǒng)主要采用MODEM和電話(huà)機(jī)實(shí)現(xiàn)遠(yuǎn)程通信,但由于電話(huà)線(xiàn)具有通信速度慢,質(zhì)量差的缺點(diǎn),已不能滿(mǎn)足現(xiàn)代環(huán)境監(jiān)測(cè)的要求。這里應(yīng)用無(wú)線(xiàn)數(shù)傳模塊完成遠(yuǎn)程數(shù)據(jù)通信,不僅克服了這些缺點(diǎn),而且大大改善了該系統(tǒng)的數(shù)據(jù)傳輸性能。經(jīng)最終該系統(tǒng)不僅可以在條件惡劣干擾大的環(huán)境下進(jìn)行遠(yuǎn)距離傳輸,而且數(shù)據(jù)準(zhǔn)確率高,傳輸速度快。可根據(jù)不同需要應(yīng)用于電力、水利、石油、林業(yè)、勘探等領(lǐng)域。

            參考文獻(xiàn):

          1、上海桑博電子科技有限公司技術(shù)文檔   2003
          2、李現(xiàn)勇 Visual C++串口通信技術(shù)與工程實(shí)踐 人民郵店出版社  2002年5月
          3、 王宏偉 吳建設(shè) 基于VC++6.0的串行通信設(shè)計(jì)與實(shí)現(xiàn) 黃石高等專(zhuān)科學(xué)校學(xué)報(bào) 2003(4)



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();