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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 藍牙無線抄表傳感器的設計

          藍牙無線抄表傳感器的設計

          作者: 時間:2004-12-07 來源:網(wǎng)絡 收藏
          摘要:基于IEEE1451標準和協(xié)議提出結構模型,并就具體的抄表系統(tǒng)完成。該不僅實現(xiàn)了數(shù)據(jù)檢測和傳輸?shù)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/無線">無線化,同時也提供了數(shù)據(jù)傳輸?shù)目垢蓴_性能。

          關鍵詞:IEEE1451標準藍牙協(xié)議 傳感器 無線抄表

          引言

          IEEE1451.2是智能傳感器接口模塊標準。它提供了將傳感器和變送器連接到網(wǎng)絡的接口標準,主要用于實現(xiàn)傳感器的網(wǎng)絡化。IEEE1451.2標準采用通用的A/D或D/A轉換裝置作為傳感器的I/O接口,將各種傳感器模擬量轉換成標準規(guī)定格式的數(shù)據(jù),連同一個小存儲器―傳感器電子數(shù)據(jù)表TEDS(Transducer Electronic Data Sheet),與標準規(guī)定的處理器目標模型―網(wǎng)絡適配器NCAP(Network Capable Application Process)連接。如此,數(shù)據(jù)可以按網(wǎng)絡規(guī)定的協(xié)議接入網(wǎng)絡。該標準結構模型提供了一個連接智能變送器的接口模型STIM(Smart Transducer Interface Module)NCAP的10線標準接口―變送獨立接口TII(Transducer Independence Interface)。

          圖1

          采用上述IEEE1451標準實現(xiàn)傳感器網(wǎng)絡化的同時,無線通信技術被引入原有傳感器以實現(xiàn)無線化也是傳感器當前的研究熱點,是今后傳感器發(fā)展的一個重要方向。尤其隨著藍牙技術應用的失言以及其芯片價格的進一步下調,將藍牙技術引入傳感器以實現(xiàn)傳感器的無線化已成為可能。目前絕大多數(shù)抄表系統(tǒng)中的數(shù)據(jù)檢測和傳輸,主要是有線方式進行。本文將給出基于IEEE1451.2和藍牙協(xié)議的無線抄表傳感器的具體實現(xiàn),以實現(xiàn)抄表系統(tǒng)的無線化。

          1 藍牙技術

          藍牙技術為藍牙特別興趣小組(SIG,Special Interest Group)在1998年提出。它是一種新的短距離無線通信協(xié)議,是一種無線數(shù)據(jù)與語音通信的開放標準,目的是以無線的方式取代現(xiàn)有的有線接口。其優(yōu)勢在于:具有很強的移植性,可應用于多種通信場合;硬件集成應用簡單,成本低廉,實現(xiàn)容易,而且易于推廣;藍牙功耗低,對人體危害?。徊捎脭U頻跳頻技術,抗干擾能力強,增加了信息傳輸?shù)陌踩?。藍牙系統(tǒng)支持點對點和一點對多點的通信。在一點對多瞇的連接方式中,多個藍牙單元共享一條信道,采用同一跳頻序列。各個藍牙設備構成的網(wǎng)絡稱為匹克網(wǎng)(Piconet)。匹克網(wǎng)中藍牙設備以主從方式實現(xiàn)通信。由于藍牙設備的物理尋址地址為3位,因此在同一時刻,匹克網(wǎng)最多只能激活8位設備(1主7從);但不同時刻,多個匹克網(wǎng)可以構成一個可重疊的散射網(wǎng)絡結構。藍牙通信的有效半徑和其輸出的功率有關:當輸出功率是2類(2.5mW/4dB)時,通信范圍為15m;如果增加其功率到1類(4mW/20dB)時,就能使通信范圍達到100m。

          2 基本標準和協(xié)議的傳感器結構模型

          基于IEEE1451.5和藍牙協(xié)議的無線網(wǎng)絡化傳感器由STIM、藍牙模塊和NCAP三部分組成,其體系結構如圖1所示。此方案的實現(xiàn),相當于在IEEE1451.2的結構模型上取代了原有的TII接口。采用無線的藍牙協(xié)議實現(xiàn)連接,類似于實現(xiàn)了一個無線的STIM和無線NCAP接收終端的模式。通過在原有的STIM和NCAP中嵌入了藍牙模塊,構成的無線NCAP和無線STIM,以點對多點在藍牙匹克網(wǎng)以主從方式實現(xiàn)相互通信。

          與典型的有線方式相比,上述無線網(wǎng)絡模型增加了兩個藍牙模塊。對于藍牙模塊部分標準的藍牙對外接口電路一般使用RS232或USB接口,而TII是一個控制鏈接到它的STIM的串行接口。因此,必須一個類似于TII接口的藍牙電路,構造一個專門的處理器來完成控制STIM和轉換數(shù)據(jù)到藍牙主控制接口HCI(Host Control Interface)的功能。

          3 藍虎無線抄表傳感器的

          基于上述無線傳感器結構模型給出的無線抄表傳感器的結構原理,如圖2所示。整個傳感器核心部件是實現(xiàn)數(shù)據(jù)采集的前端STIM部分和實現(xiàn)網(wǎng)絡接口的NCAP部分。STIM完成數(shù)據(jù)的采集和處理(濾波、校準等),NCAP完成傳感器的網(wǎng)絡接口,實現(xiàn)對PSTN電話互網(wǎng)連。STIM和NCAP之間用藍牙無線接口連接。STIM選用8位處理器實現(xiàn),而NCAP的網(wǎng)絡接口通過8位的處理器和內嵌Modem的形式實現(xiàn)。

          (1)NCAP部分硬件設計

          抄表傳感器NCAP硬件部分選用的處理器、藍牙模塊和內置Modem分別是Winbond公司的W78E58處理器、Erricsson公司ROM 101 008系列藍牙模塊以及OKI公司的調制解調芯片MSM7512B。

          圖3

          由于系統(tǒng)中藍牙模塊接口采用的是RS232串口,同時處理器和內置Modem的通信接口也要用到RS232串口,因此我們選用W78E58處理器。該處理器具有雙串口。ROK 101 008系列藍牙模塊遵從藍牙1.1規(guī)范,是一個點對多點的通信模塊。該模塊可以同時和在其范圍內被連接的7個藍牙從設備實現(xiàn)數(shù)據(jù)傳輸。MSM7512B為OKI公司推出的FSK模式調制解調器芯片,通過設置引腳MOD2和MOD1選擇四種工作模式的一種。MT8888C作為DTMF接收器時,DTMF信號從IN+和IN-輸入,一旦信息被寫入到接收寄存器中,MT8888C將置位狀態(tài)豁口中接收寄存器滿標志位和IRQ/CP端電平來通知控制器準備接收數(shù)據(jù);MT8888C作為DTMF發(fā)送器時,數(shù)據(jù)被寫入發(fā)送寄存器,經內部轉換合成DTMF信號從TONE端輸出。本處采用中斷方式檢測DTMF振鈴信號。圖3為藍牙抄表傳感器NCAP部分的硬件電路原理。

          (2)抄表傳感器NCAP部分軟件設計

          抄表傳感器NCAP部分的軟件設計,主要是在單片機上完成兩部分功能的程序編制:一是初始化藍牙模塊,使抄表傳感器NCAP部分上主設備模塊和所有范圍內的從設備模塊建立連接;二是驅動MSM7512B和MT8888C工作,實現(xiàn)與PSTN的連接。

          ①藍牙模塊初始化。參照008藍牙模塊的工作方式,即通過單片機向藍牙模塊發(fā)送HCI(Host Controler Interface)分組。HCI指令包括指令分組、數(shù)據(jù)分組和事件分組。具體格式為:操作碼+參數(shù)總長+參數(shù)0+……+參數(shù)N。

          如下給出主、從設備間實現(xiàn)ACL數(shù)據(jù)連接的HCI指令(字符對應相應指令的操作碼,由前10位和后6位兩部分組成,括弧內為該指令的參數(shù)):從設備上電后實現(xiàn)查詢使能進行復位Write_scan_enable(0x3)。主設備發(fā)送查詢HCI指令Inquiry(0x9c8b33,8,0),假定從設備的地址為0x000000000000,則建立ACI連接的HCI指令為Creat_Connection (0x000000000000,0xcc18,0,0,0,0)。從設備接收連接請求指令為Accept_connection_request(0x111111111111,0),假定主設備的地址為0x111111111111。這樣主從設備之間即建立了ACL數(shù)據(jù)連接。其中Inquiry對應的操作碼為:0x0001,0x01。具體指令參見藍牙規(guī)范。②初始化MSM7512B和MT8888C。首先使能MSM7512B,選擇模式1。值得注意的是,復位MT8888C時,必須將上電后延時100ms。具體復位方式參見MT8888C數(shù)據(jù)手冊。

          如下給出單片機的初始化程序及外部中斷0的服務程序。

          /*初始化程序*/

          TCON=0x40H; //Timer1使能

          TMOD=0x20H; //Timer1為定時器,8位自動重裝TH1到TL1

          CKCON=0x30H;//Timer1和Timer2時鐘為1/12 CLOCK

          SCON=0x50H//串口0模式1,波特率由Timer2決定

          IE=0xD1H;//使能中斷(串口1和串口2以及INT0)

          SCON1=0x50H;//串口1模式1,波特率由Timer1決定

          T2CON=0x34H;//Timer2自動重裝RCAP2L到TL2,RCAP2H到T2H

          WDCON=0x02H//Watchdog復位使能

          TL1=0xFDH;TH1=0xFDH;TL2=0xFDH;TH2=0x00H;

          RCAP2L=0xFAH;RCAP2H=0x00H;

          /*初始值設置,設置串口1和串口2的波特率為9600bps*/

          Init_008(); //初始化藍牙模塊

          Reset_mt8888c();//復位MT8888C

          P1^0=1;P0=0x00H;//使能MSM7512,選擇模式1

          /*外部中斷0的服務程序*/

          void service_int0()interrupt0

          {SendRecord ();//傳送監(jiān)測記錄……}

          (3)STIM的設計

          大多數(shù)傳大吃一驚器的STIM部分設計相對簡單,因為電表數(shù)據(jù)采集的功能比較單一。圖4為STIM數(shù)據(jù)采集部分的原理框圖。

          硬件設計時,電表數(shù)據(jù)采集部分和傳統(tǒng)的有線方式一樣,只是硬件上增加了藍牙模塊作為和上層藍牙傳感器NCAP的無線接口。數(shù)據(jù)采集部分經光電轉換后的數(shù)字脈沖接到單片機的計數(shù)器口,實現(xiàn)計數(shù),然后將必要的電表數(shù)據(jù)量送至藍牙模塊。單片機遷移家長普通的8031即可,模塊選用的是ROK 101 008系列。軟件上除了要注單片機上完成數(shù)據(jù)采集的部分程序外,上電時還應該初媽嘩藍牙模塊,使模塊能夠在其有效范圍被搜索連接。數(shù)據(jù)采集部分程序主要是實現(xiàn)對計數(shù)器的計數(shù),同時轉換成電表參量,然后徑藍牙模塊送到NCAP。

          4 基于藍牙抄表傳感器的抄表系統(tǒng)

          整個抄表系統(tǒng)結構示意如圖5所示。一個抄表傳感器STIM部分對應一個電表,多個STIM完成和一傳感器的NCAP無線連接。藍牙抄表傳感器NCAP部分的安放位置應根據(jù)具體住宅的情況進行選擇要使其能采集到范圍內所有抄表傳感器STIM部分的電表數(shù)據(jù)。抄表傳感器STIM部分和安置于每一處的電表相接,同時須注意的是遠程抄表中心PC還應完成客戶端軟件開發(fā),實現(xiàn)數(shù)據(jù)接收。

          本系統(tǒng)主要是針對電力系統(tǒng)進行設計,但稍加發(fā)行后,即可廣泛應用到煤氣表、水表等其它家用數(shù)據(jù)的無線抄收。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();