<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于nRF24AP1的智能家居設計方案

基于nRF24AP1的智能家居設計方案

作者: 時(shí)間:2009-07-08 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要 主要介紹了無(wú)線(xiàn)網(wǎng)絡(luò )芯片家居的硬件電路與軟件設計流程,主機通過(guò)串口對信道參數進(jìn)行配置,節點(diǎn)配對,利用ANT協(xié)議實(shí)現與從機設備數據包的收發(fā),從而實(shí)現控制家電的目的。
關(guān)鍵詞 家居 ANT協(xié)議 信道配置

本文引用地址:http://dyxdggzs.com/article/157999.htm


引 言
隨著(zhù)社會(huì )信息化的加快,人們對家居的要求早已不只是物理空間,更為關(guān)注的是一個(gè)安全、方便、舒適的居家環(huán)境。為了很好地滿(mǎn)足用戶(hù)對家居網(wǎng)絡(luò )的靈活性、可靠性以及便捷性等方面的需求,家居系統使用無(wú)線(xiàn)網(wǎng)絡(luò )技術(shù),不但克服了有線(xiàn)系統的高成本和不方便等缺點(diǎn),而且使用方便,能夠快捷地管理家務(wù)、監測家居環(huán)境、遙控家用電器等。

1 系統總體結構及工作原理
智能家居系統由主機、從機、接口設備及各家電設備組成,主從機都有一個(gè)無(wú)線(xiàn)收發(fā)芯片,通過(guò)主從機間無(wú)線(xiàn)數據的收發(fā),實(shí)現一個(gè)小型的無(wú)線(xiàn)智能網(wǎng)絡(luò )。芯片 內部結構包含串行接口UART、時(shí)鐘模塊、ANT協(xié)議機和1 Mb/s的收發(fā)信機等4個(gè)模塊。首先MCU通過(guò)串口對nRF24AP1進(jìn)行信道參數配置,nRF24AP1執行配置任務(wù),主機執行發(fā)送數據包指令,通過(guò)空中接口完成數據信息包的發(fā)送與接收;從機接收數據信息,由從MCU執行任務(wù),從而實(shí)現控制家電的目的。圖l為系統總體框圖。

2 硬件電路設計
(1)主機電路
處理器模塊選用AVR系列的ATmegal6單片機,并通過(guò)鍵盤(pán)輸入和液晶顯示,利用nRF24AP1無(wú)線(xiàn)收發(fā)模塊實(shí)現數據的發(fā)送和節點(diǎn)設備的控制。MCU和nRF24AP1通過(guò)異步串口實(shí)現通信。圖2為主機框圖。

(2)從機及接口設備電路
從機通過(guò)nRF24AP1進(jìn)行數據接收,當有數據觸發(fā)中斷時(shí),從機MCU從接收緩存中取出數據,并執行控制任務(wù),通過(guò)接口設備(如智能開(kāi)關(guān))實(shí)現控制家電的目的。圖3為從機框圖。

3 軟件設計
無(wú)線(xiàn)收發(fā)芯片nRF24AP1有“休眠”和“待機”兩種省電模式,及配置收發(fā)的工作模式。模式與引腳關(guān)系如表1所列。

為了降低功耗,主機在大部分時(shí)間處于休眠狀態(tài)。當有數據發(fā)送時(shí)SLEEP置低,nRF24Ap1進(jìn)入工作狀態(tài),而從機始終處于查詢(xún)接收狀態(tài)。主從機間使用獨立單向信道傳輸數據,主機查詢(xún)發(fā)送,從機以中斷方式接收控制數據。
ANT是以數據包的形式發(fā)送/接收數據,每個(gè)數據包的消息格式如下:

ANT協(xié)議是二進(jìn)制協(xié)議,每個(gè)消息函數都是一個(gè)完整的協(xié)議數據包,由五部分組成:SYNC、MSG LEN、MSGID、DATA、CHECKSUM。每一部分是8位(1字節),每個(gè)消息以SYNC(OxA4)字節位開(kāi)始,以CHECKSUM字節結束,以比特的方式發(fā)送與接收。當有數據包發(fā)送到nRF24AP1接收緩存時(shí),ANT協(xié)議根據MSG ID判斷消息的類(lèi)型,根據MSG LEN判斷數據長(cháng)度。ANT接收到有效的數據包后,自動(dòng)移去SYNC、MSG=LEN、MSG ID、CHECKSUM,只留有效數據放在緩存中。從MCU以中斷方式從緩存中提取有效數據,執行控制任務(wù)。
3.1 串口初始化配置
ATmega16單片機和無(wú)線(xiàn)收發(fā)芯片nRF24APl都有UART模塊,在使用前需要進(jìn)行初始化設置。本設計使用異步串口通信,主從機使用同樣的波特率 19 200。從機波特率由芯片nRF24APl上的引腳BR2、BR1來(lái)設置,異步數據以1個(gè)起始位、8個(gè)數據位、1個(gè)停止位以及無(wú)校驗的方式進(jìn)行傳輸。當有串口數據到達從機MCU緩存時(shí)產(chǎn)生中斷,從機MCU響應中斷,從接收緩沖區讀取數據。中斷接收設置一個(gè)長(cháng)度為16字節的緩沖區(rx_bufer),緩沖區設有單獨讀/寫(xiě)指針,并與緩沖計數器相關(guān)聯(lián)。串口發(fā)送的數據首先通過(guò)SendData()寫(xiě)入發(fā)送數據寄存器UDR,然后由硬件自動(dòng)將其發(fā)送到接收數據寄存器UDR。接收數據時(shí),先將接收到的數據寫(xiě)入rx_buffer,再根據應用需要調用函數GetData(),從緩沖區中取出相應的數據。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>