當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘 要 主要介紹了基于nRF24AP1無線網(wǎng)絡(luò)芯片智能家居的硬件電路與軟件設(shè)計(jì)流程,主機(jī)通過串口對(duì)信道參數(shù)進(jìn)行配置,節(jié)點(diǎn)配對(duì),利用ANT協(xié)議實(shí)現(xiàn)與從機(jī)設(shè)備數(shù)據(jù)包的收發(fā),從而實(shí)現(xiàn)控制家電的目的。 關(guān)鍵詞 智能家居 nRF

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


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

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

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

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

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

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

    ANT協(xié)議是二進(jìn)制協(xié)議,每個(gè)消息函數(shù)都是一個(gè)完整的協(xié)議數(shù)據(jù)包,由五部分組成:SYNC、MSG LEN、MSGID、DATA、CHECKSUM。每一部分是8位(1字節(jié)),每個(gè)消息以SYNC(OxA4)字節(jié)位開始,以CHECKSUM字節(jié)結(jié)束,以比特的方式發(fā)送與接收。當(dāng)有數(shù)據(jù)包發(fā)送到nRF24AP1接收緩存時(shí),ANT協(xié)議根據(jù)MSG ID判斷消息的類型,根據(jù)MSG LEN判斷數(shù)據(jù)長度。ANT接收到有效的數(shù)據(jù)包后,自動(dòng)移去SYNC、MSG=LEN、MSG ID、CHECKSUM,只留有效數(shù)據(jù)放在緩存中。從MCU以中斷方式從緩存中提取有效數(shù)據(jù),執(zhí)行控制任務(wù)。
3.1 串口初始化配置
    ATmega16單片機(jī)和無線收發(fā)芯片nRF24APl都有UART模塊,在使用前需要進(jìn)行初始化設(shè)置。本設(shè)計(jì)使用異步串口通信,主從機(jī)使用同樣的波特率 19 200。從機(jī)波特率由芯片nRF24APl上的引腳BR2、BR1來設(shè)置,異步數(shù)據(jù)以1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位以及無校驗(yàn)的方式進(jìn)行傳輸。當(dāng)有串口數(shù)據(jù)到達(dá)從機(jī)MCU緩存時(shí)產(chǎn)生中斷,從機(jī)MCU響應(yīng)中斷,從接收緩沖區(qū)讀取數(shù)據(jù)。中斷接收設(shè)置一個(gè)長度為16字節(jié)的緩沖區(qū)(rx_bufer),緩沖區(qū)設(shè)有單獨(dú)讀/寫指針,并與緩沖計(jì)數(shù)器相關(guān)聯(lián)。串口發(fā)送的數(shù)據(jù)首先通過SendData()寫入發(fā)送數(shù)據(jù)寄存器UDR,然后由硬件自動(dòng)將其發(fā)送到接收數(shù)據(jù)寄存器UDR。接收數(shù)據(jù)時(shí),先將接收到的數(shù)據(jù)寫入rx_buffer,再根據(jù)應(yīng)用需要調(diào)用函數(shù)GetData(),從緩沖區(qū)中取出相應(yīng)的數(shù)據(jù)。
3.2 信道配置
    在ANT節(jié)點(diǎn)實(shí)現(xiàn)通信之前,必須對(duì)信道參數(shù)進(jìn)行配置,這些參數(shù)包括網(wǎng)絡(luò)號(hào)、射頻頻率、信道ID(生產(chǎn)商ID/設(shè)備類型/設(shè)備號(hào))、信道類型和信道周期。主從結(jié)點(diǎn)要求網(wǎng)絡(luò)號(hào)、射頻頻率和信道周期3個(gè)參數(shù)設(shè)置完全一致,信道類型參數(shù)的設(shè)置必須一一對(duì)應(yīng),例如“雙向發(fā)送信道”對(duì)應(yīng)“雙向接收信道”。至于信道ID 參數(shù),則應(yīng)從節(jié)點(diǎn)遵循主節(jié)點(diǎn)的設(shè)置。
    主機(jī)通過串口對(duì)信道參數(shù)進(jìn)行配置,配置過程如下:
    ①配置信道之前要進(jìn)行系統(tǒng)復(fù)位,執(zhí)行ANT_ResetSystem();
    ②分配信道,執(zhí)行ANT_AssignChannel();
    ③配置信道ID,執(zhí)行ANT__SetChannelID()。
    同樣,各從機(jī)也按照主機(jī)配置步驟對(duì)從機(jī)進(jìn)行信道參數(shù)配置,設(shè)置自己的信道號(hào)、信道類型、網(wǎng)絡(luò)號(hào)等。
3.3 節(jié)點(diǎn)配置
    ANT協(xié)議中,通信節(jié)點(diǎn)建立連接的過程稱為節(jié)點(diǎn)配對(duì)的過程。ANT協(xié)議提供兩層配對(duì)控制,即信道ID和配對(duì)比特。
    對(duì)于信道ID,只有相同的或兼容的信道ID才允許配對(duì)。
    對(duì)于信道比特,信道ID參數(shù)中“設(shè)備類型”字段的最高位規(guī)定為ANT的“配對(duì)比特”。當(dāng)從節(jié)點(diǎn)對(duì)僅知曉部分信道ID參數(shù)時(shí),該比特的設(shè)置才對(duì)配對(duì)結(jié)果有影響。ANT協(xié)議規(guī)定,具有兼容的信道ID參數(shù)且配對(duì)比特的設(shè)置也相同的節(jié)點(diǎn)才能實(shí)現(xiàn)配對(duì)。
    如果信道ID的所有數(shù)據(jù)域都是已知的,將不需要配對(duì)比特,因?yàn)榻邮照咭呀?jīng)準(zhǔn)確地知道要和哪個(gè)發(fā)送者連接,當(dāng)使用配對(duì)比特并且信道ID的數(shù)據(jù)域至少一個(gè)是wild card時(shí),期望和另一方建立通信的兩個(gè)節(jié)點(diǎn)在連接過程中配對(duì)比特必須處于同一狀態(tài)。
3.4 打開信道,發(fā)送數(shù)據(jù)
    當(dāng)用戶想遙控家電時(shí),主機(jī)執(zhí)行數(shù)據(jù)發(fā)送。主機(jī)有輸入按鍵1、2等(代表信道1、信道2)來選擇信道,當(dāng)有按鍵輸入時(shí),主機(jī)從休眠模式快速蘇醒,快速完成數(shù)據(jù)傳輸任務(wù)。另還有發(fā)送按鍵“SEND”,用來調(diào)用發(fā)送數(shù)據(jù)函數(shù)。
    執(zhí)行過程如下:
    ①打開信道,調(diào)用ANT_OpenChannel();
    ②發(fā)送數(shù)據(jù),調(diào)ANT_SendBroadcastData()。
    例如通過按鍵“1”打開1信道,主程序調(diào)用ANT_OpenChannel(1)一>SerialData0xA4,0x01,0x4B, 0x01,0xEF),即調(diào)用ANT_OpenChannel(1)將產(chǎn)生串行數(shù)據(jù)(0xA4,0x0l,0x4B,0x01,0xEF),然后把這些串行數(shù)據(jù)以比特的形式發(fā)送到ANT模塊的接收緩存。ANT協(xié)議自動(dòng)移去0xA4、0X01、0x4B、0xEF,即第4個(gè)數(shù)據(jù)0x01為有效數(shù)據(jù),放在接收緩存,觸發(fā)接收中斷。

4 液晶模塊接口與鍵盤接口設(shè)計(jì)
    按鍵用于數(shù)據(jù)輸入。本設(shè)計(jì)使用獨(dú)立式按鍵,電路簡單,每個(gè)按鍵接通一條輸入數(shù)據(jù)線,這樣按鍵工作不會(huì)影響其他I/O口。這里用3個(gè)按鍵舉例,介紹電路使用查詢方式。
    按鍵1:“CHl”,輸入信道“1”。
    按鍵2:“CH2”,輸入信道“2”。
    按鍵3:“SEND”,發(fā)送數(shù)據(jù)。
    LCD作為人機(jī)交互界面,通過按鍵輸入顯示選擇的信道(CHl/CH2),通過按鍵輸入信道數(shù),執(zhí)行打開信道函數(shù)ANT_OpenChannel()。如打開信道1,執(zhí)行ANT_OpenChannel(1)。主機(jī)處于查詢接收狀態(tài),主機(jī)尋找匹配信道的節(jié)點(diǎn),然后建立連接,等待數(shù)據(jù)的傳輸。點(diǎn)“SEND” 按鍵,執(zhí)行發(fā)送數(shù)據(jù)消息函數(shù)ANT_SendBroad-castData()發(fā)送數(shù)據(jù)。每次打開信道和發(fā)送數(shù)據(jù)消息成功都有LED指示。
    當(dāng)主機(jī)沒有數(shù)據(jù)發(fā)送時(shí),主機(jī)MCU置SLEEP為高,使主機(jī)進(jìn)入休眠狀態(tài),進(jìn)入省電模式,以達(dá)到省電節(jié)能的目的。圖4為軟件實(shí)現(xiàn)流程圖。

結(jié)語
    本設(shè)計(jì)方案中的智能家居系統(tǒng)利用無線網(wǎng)路芯片nRF24APl傳輸數(shù)據(jù),硬件電路簡單。芯片內(nèi)嵌ANT協(xié)議,協(xié)議結(jié)構(gòu)簡易,使用方便,成本較低,超低功耗,軟件設(shè)計(jì)合理,使用穩(wěn)定可靠,效率高,而且節(jié)點(diǎn)易擴(kuò)展。這不僅在智能家居方面,還在體育娛樂、遠(yuǎn)程控制系統(tǒng)、醫(yī)療工業(yè)自動(dòng)化及其他新興無線應(yīng)用領(lǐng)域,都具有推廣價(jià)值和廣闊的市場(chǎng)前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉