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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于CC11OO的無線自動抄表系統(tǒng)設計

          基于CC11OO的無線自動抄表系統(tǒng)設計

          作者: 時間:2009-12-16 來源:網(wǎng)絡 收藏

          4 軟件
          通過4線SPI兼容接口(SI、S0、SCLK和CSn)配置,這個接口同時用作寫和緩存數(shù)據(jù)。SPI接口是一種同步串行通信接口,CSn是芯片選擇管腳,當該管腳為低電平時,SPI接口可以通信,反之不能通信。SI和SO為數(shù)字傳輸管腳,分別用于數(shù)據(jù)輸入和數(shù)據(jù)輸出。SCLK為同步時鐘,在時鐘的上升沿或下降沿數(shù)字數(shù)據(jù)被寫入或讀出。在讀或是寫寄存器,首先要在SI管腳寫入寄存器地址(Address)字節(jié)。地址字節(jié)有8位,最高位為讀寫位,后7位為地址位。當執(zhí)行寫寄存器操作時,讀寫位為O,當執(zhí)行讀寄存器操作時,讀寫位為1。無論是讀操作還是寫操作,在地址字節(jié)被寫入時, S0腳上輸出一個芯片狀態(tài)字節(jié),狀態(tài)字節(jié)包含關鍵狀態(tài)信號,對MCU是有用的。的TX FIF0(發(fā)射先進先出堆棧)和RXFIF0(接收先進先出堆棧)也可以用同樣的讀寫方式進行訪問,只是使用與配置寄存器不同的地址段加以區(qū)別。另外,CCll00的指令也是通過SPI接口傳送,CCll00有14個內(nèi)部指令。這些指令用來關閉晶體振蕩器,開啟傳輸模式,狀態(tài)轉(zhuǎn)換和電磁波激活等。軟件流程如圖3所示。

          通過SI寫入特定的字節(jié)使CCll00執(zhí)行不同的命令,CCll00共有20個引腳,可通過4線SPI兼容接口配置(包括數(shù)據(jù)線SI、S0、時鐘線SCLK、使能線CSn)。其中CSn可以連接到一個IO口來模擬時序,而其他三個腳則接到主MCU的SPI接口。通過重復使用SPI接口上的SI、SCLK和CSn,可使通信的主要狀態(tài)執(zhí)行一個簡單的三腳控制,即休眠、空閑、RX和TX。CCll00有兩個專用的配置引腳和一個共享引腳,能用于輸出對控制軟件有用的內(nèi)部狀態(tài)信息,并能用來對MCU產(chǎn)生中斷,其引腳名為GD00和GD01。共享引腳為SPI接口上的S0腳。GDOl/SO的默認設置為3狀態(tài)輸出。通過選擇任意其他的控制選項可使GD01/SO腳成為一般引腳。當CSn為低時,此引腳的功能如一般S0腳;而在同步和異步連續(xù)模式下,處于傳輸模式時,GD00腳被用作連續(xù)TX數(shù)據(jù)輸入腳。


          5 結(jié)論
          抄表是未來發(fā)展的必然趨勢,而對于抄表的改造,由AT89S52單片機和CCll00構(gòu)成的抄表具有使用方便、成本低、應用靈活、價格適中的優(yōu)點。家庭內(nèi)部的三表可以統(tǒng)一抄送。還可以應用在低功率遙感勘測,住宅和建筑控制,警報和安全系統(tǒng),工業(yè)監(jiān)測和控制,無線傳感器網(wǎng)絡,遙控遙測系統(tǒng)中,而且適用于電子消費產(chǎn)品、住宅、建筑物自動控制等諸多無線應用領域。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(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); })();