在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Zigbee/藍(lán)牙無(wú)線模塊設(shè)計(jì),那些難點(diǎn)知道多少?

AGk5_ZLG_zhiyua ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-12-20 07:04 ? 次閱讀

周立功教授新書《面向AMetal框架與接口編程(上)》,對(duì)AMetal框架進(jìn)行了詳細(xì)介紹,通過(guò)閱讀這本書,你可以學(xué)到高度復(fù)用的軟件設(shè)計(jì)原則和面向接口編程的開(kāi)發(fā)思想,聚焦自己的“核心域”,改變自己的編程思維,實(shí)現(xiàn)企業(yè)和個(gè)人的共同進(jìn)步。經(jīng)周立功教授授權(quán),即日起,致遠(yuǎn)電子公眾號(hào)將對(duì)該書內(nèi)容進(jìn)行連載,愿共勉之。

第九章為BLE&zigbee 無(wú)線模塊,本文內(nèi)容為9.2 zigbee 核心板。

9.2 zigbee 核心板

AW824P2EF 是由廣州致遠(yuǎn)電子有限公司開(kāi)發(fā)的,基于LPC824+JN5161 組合而成的支持Fastzigbee 組網(wǎng)協(xié)議和用戶二次開(kāi)發(fā)的核心板,JN5161 是NXP 半導(dǎo)體公司提供的zigbee 芯片,其支持的頻段為IEEE802.15.4 標(biāo)準(zhǔn)ISM(2.4-2.5GHz)。該模塊最大的特點(diǎn)是具備完整的軟硬件生態(tài)鏈,因此可快速應(yīng)用于工業(yè)控制、數(shù)據(jù)采集、農(nóng)業(yè)控制、礦區(qū)人員定位、智能家居智能遙控器等場(chǎng)合。

>>> 9.2.1 產(chǎn)品簡(jiǎn)介

AW824P2EF 核心板的特性如下:

  • 工作電壓2.1V~3.6V;

  • 最大發(fā)射功率20dbm;

  • 最大接收靈敏度-95dbm;

  • 內(nèi)置zigbee 串口透?jìng)鳎?/p>

  • ARM Cotex-M0+處理器,內(nèi)置8 KB SRAM 和32KB Flash,支持12 位ADC、SPI、I2C 和UART

AW824P2EF 核心板將無(wú)線產(chǎn)品極其復(fù)雜的通訊協(xié)議集成到內(nèi)置的MCU 中,極大地大幅簡(jiǎn)化了無(wú)線產(chǎn)品復(fù)雜的開(kāi)發(fā)過(guò)程,用戶只需通過(guò)串口就可以對(duì)核心板進(jìn)行配置和透明收發(fā)數(shù)據(jù)。AW824P2EF 核心板共計(jì)35 個(gè)引腳,引腳分布詳見(jiàn)圖9.6,引腳功能描述詳見(jiàn)表9.6。

表9.6 AW824P2EF 核心板引腳功能描述

圖9.6 AW824P2EF 引腳分布圖

為了便于快速開(kāi)發(fā),在AW824P2EF 內(nèi)部已經(jīng)將LPC824 的串口1(PIO0_26 和PIO0_27)與內(nèi)置的zigbee 芯片的串口相連,并將PIO0_28 連接到了ZM5161 的復(fù)位引腳, 示意圖詳見(jiàn)圖9.7 。當(dāng)使用對(duì)AW824P2EF 進(jìn)行二次開(kāi)發(fā)時(shí),需要將LPC824 的PIO0_26配置為串口RX 功能,PIO0_27 配置為串口TX 功能。

圖9.7 硬件連接示意圖

ZB_RST 是ZM5161 的復(fù)位引腳,當(dāng)通過(guò)PIO0_28 管腳輸出大于1us 的低電平信號(hào)時(shí),可以讓核心板可靠地復(fù)位。

在AW824P2EF 中,zigbee 核心板默認(rèn)運(yùn)行的是廣州致遠(yuǎn)電子有限公司結(jié)合多年的行業(yè)應(yīng)用經(jīng)驗(yàn),自主研發(fā)的適合各種工業(yè)領(lǐng)域應(yīng)用的zigbee 協(xié)議棧:Fastzigbee。為與原始芯片JN5161 進(jìn)行區(qū)分,將該zigbee 模塊命名為ZM5161。

>>> 9.2.2 組網(wǎng)應(yīng)用

ZM516x 系列模塊除支持Fastzigbee 協(xié)議外,還可以支持其它多行業(yè)的無(wú)線協(xié)議棧,比如,zigbee Pro、zigbee Pro Home Automation、zigbee Pro Smart Energy、zigbee Pro Light Link、zigbee RF4CE、JenNet-IP 等。AW824P2EF zigbee 模塊默認(rèn)運(yùn)行的是Fastzigbee 協(xié)議棧。Fastzigbee 具有以下特點(diǎn):

  • 設(shè)備啟動(dòng)速度、響應(yīng)速度、數(shù)據(jù)傳輸效率出眾;

  • 網(wǎng)絡(luò)容量終端節(jié)點(diǎn)數(shù)真正達(dá)到65535 個(gè);

  • 終端節(jié)點(diǎn)功耗低至100nA,低于目前100%的zigbee 模塊;

  • 支持多級(jí)中繼功能,網(wǎng)絡(luò)具備自調(diào)整、自修復(fù)等特性;

  • 支持多路遠(yuǎn)程I/O 和遠(yuǎn)程ADC,支持短地址功能,可隨用戶應(yīng)用自由修改;

  • 具有更大的鏈路預(yù)算。

使用ZM516X 模塊搭載的健壯的Fastzigbee 組網(wǎng)透?jìng)鲄f(xié)議網(wǎng)絡(luò),可構(gòu)建多種型態(tài)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),其最大的特點(diǎn)是實(shí)用性極強(qiáng)、傳輸效率高、性能可靠穩(wěn)定、二次開(kāi)發(fā)簡(jiǎn)單、工程布網(wǎng)靈活,F(xiàn)astzigbee 的網(wǎng)絡(luò)拓?fù)鋱D詳見(jiàn)圖9.8。

圖9.8 Fastzigbee 網(wǎng)絡(luò)拓?fù)鋱D

Fastzigbee 的終端節(jié)點(diǎn)負(fù)責(zé)傳感設(shè)備的數(shù)據(jù)采集,一般是使用電池供電間歇工作,要求設(shè)備功耗很低;Fastzigbee 的路由節(jié)點(diǎn)負(fù)責(zé)信號(hào)的中繼,當(dāng)終端節(jié)點(diǎn)信號(hào)不能直接到達(dá)網(wǎng)關(guān)節(jié)點(diǎn)時(shí),由路由節(jié)點(diǎn)負(fù)責(zé)終端節(jié)點(diǎn)信號(hào)的中繼,路由節(jié)點(diǎn)還有一個(gè)功能是給終端節(jié)點(diǎn)提供多條信號(hào)路徑,保證信號(hào)傳遞的健壯性,路由節(jié)點(diǎn)不能休眠;Fastzigbee 網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)把終端節(jié)點(diǎn)采集的數(shù)據(jù)上傳到云端服務(wù)器,網(wǎng)關(guān)節(jié)點(diǎn)可使用有線的以太網(wǎng)絡(luò)或無(wú)線3/4G 網(wǎng)絡(luò)傳輸采集數(shù)據(jù)到云端服務(wù)器。組建Fastzigbee 網(wǎng)絡(luò)需配置幾個(gè)重要的參數(shù)

1. 通道號(hào)

通道號(hào)決定了zigbee 網(wǎng)絡(luò)使用哪個(gè)無(wú)線頻率工作,zigbee 可工作在2.4GHz(全球流行)、868MHz(歐洲流行)、915MHz(美國(guó)流行)3 個(gè)頻段上。2.4GHz 頻段的zigbee 網(wǎng)絡(luò)使用的頻率范圍從2405MHz~2480MHz,共分為16 個(gè)通道,通道號(hào)從11~26,每個(gè)通道的中心頻率間隔是5MHz。同一個(gè)zigbee 網(wǎng)絡(luò)的所有節(jié)點(diǎn)必須工作在同一個(gè)通道,通過(guò)把兩個(gè)不同的zigbee 網(wǎng)絡(luò)分配在不同的通道上,可以把兩個(gè)不同的網(wǎng)絡(luò)物理上隔離,杜絕了兩個(gè)不同網(wǎng)絡(luò)的無(wú)線干擾。

2. 節(jié)點(diǎn)類型

Fastzigbee 網(wǎng)絡(luò)把zigbee 節(jié)點(diǎn)分為兩種類型:終端節(jié)點(diǎn)和路由節(jié)點(diǎn)。終端節(jié)點(diǎn)是負(fù)責(zé)執(zhí)行具體功能的節(jié)點(diǎn),該節(jié)點(diǎn)需要休眠;路由節(jié)點(diǎn)是負(fù)責(zé)信號(hào)的中繼,當(dāng)終端節(jié)點(diǎn)間信號(hào)不可達(dá)時(shí),可通過(guò)加裝路由節(jié)點(diǎn)實(shí)現(xiàn)信號(hào)的中繼,增加無(wú)線的傳輸距離。Fastzigbee 網(wǎng)絡(luò)是一個(gè)對(duì)等網(wǎng)路,所有終端節(jié)點(diǎn)和路由節(jié)點(diǎn)都是對(duì)等的,都能相互收發(fā)數(shù)據(jù),不需要像傳統(tǒng)的zigbee網(wǎng)絡(luò)一樣需要有一個(gè)協(xié)調(diào)器建立網(wǎng)絡(luò),對(duì)等網(wǎng)絡(luò)使網(wǎng)絡(luò)組建更加簡(jiǎn)單、穩(wěn)定可靠。

3. PanID

PanID 為zigbee 的網(wǎng)絡(luò)ID 號(hào),通過(guò)PanID 可以把兩個(gè)不同的zigbee 網(wǎng)絡(luò)區(qū)分開(kāi)來(lái),跟通道號(hào)不同的是,PanID 只是邏輯上把兩個(gè)網(wǎng)絡(luò)區(qū)分開(kāi)來(lái),如果兩個(gè)不同PanID 的網(wǎng)絡(luò)工作在同一個(gè)通道下,也會(huì)造成相互的無(wú)線干擾。

4. 網(wǎng)絡(luò)地址

同一個(gè)zigbee 網(wǎng)絡(luò)下的所有節(jié)點(diǎn)都有一個(gè)唯一的16 位地址,通過(guò)這個(gè)地址標(biāo)識(shí)每個(gè)節(jié)點(diǎn)和進(jìn)行數(shù)據(jù)收發(fā)的尋址。

5. 數(shù)據(jù)發(fā)送模式

zigbee 數(shù)據(jù)發(fā)送模式分為單播和廣播兩種方式。單播是發(fā)送數(shù)據(jù)時(shí)需要指定一個(gè)目標(biāo)網(wǎng)絡(luò)地址,只有這個(gè)目標(biāo)網(wǎng)絡(luò)地址的節(jié)點(diǎn)能接收這個(gè)數(shù)據(jù),廣播是一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),在同一網(wǎng)絡(luò)下其他所有節(jié)點(diǎn)都能接收這個(gè)數(shù)據(jù)。

>>> 9.2.3 zigbee 初始化

AMetal 平臺(tái)已經(jīng)支持ZM516X 模塊,可以直接使用相應(yīng)的API 完成相關(guān)網(wǎng)絡(luò)參數(shù)的配置與收發(fā)數(shù)據(jù),用戶無(wú)需關(guān)心底層的通信協(xié)議。在使用各個(gè)功能函數(shù)前必須先完成初始化,其函數(shù)原型(am_zm516x.h)為:

該函數(shù)意在獲取ZM516X 模塊的實(shí)例句柄,其中,p_dev 為指向am_zm516x_dev_t 類型實(shí)例的指針,p_devinfo 為指向am_zm516x_devinfo_t 類型實(shí)例信息的指針,uart_handle為與zigbee 模塊通信使用的串口句柄。

  • 實(shí)例

定義am_zm516x_dev_t 類型(am_zm516x.h)實(shí)例如下:

其中,g_zm516x_dev 為用戶自定義的實(shí)例,其地址作為p_dev 的實(shí)參傳遞。

  • 實(shí)例信息

實(shí)例信息主要描述了與zigbee 模塊相關(guān)的信息,其類型am_zm516x_devinfo_t 的定義(am_zm516x.h)如下:

其中,rst_pin 表示模塊的復(fù)位引腳,以便程序在需要復(fù)位模塊時(shí),通過(guò)該引腳復(fù)位zigbee模塊。在AW824P2EF 中,zigbee 的復(fù)位引腳ZB_RST 與LPC824 的PIO0_28 相連接,因此rst_pin 的值應(yīng)該賦值為PIO0_28。

為了提高數(shù)據(jù)處理的效率和確保接收數(shù)據(jù)不會(huì)因?yàn)檎谔幚硎聞?wù)而丟失,zigbee 模塊的數(shù)據(jù)發(fā)送和接收都需要一個(gè)用于緩存數(shù)據(jù)的緩沖區(qū),緩沖區(qū)的實(shí)際大小由用戶根據(jù)實(shí)際情況指定,建議在256 字節(jié)以上,一般設(shè)置為256 字節(jié)。p_txbuf 和txbuf_size 描述了發(fā)送緩沖區(qū)的首地址和大小,p_rxbuf 和rxbuf_size 描述了接收緩沖區(qū)的首地址和大小。比如,分別定義其大小為256 字節(jié)的緩沖區(qū)供發(fā)送和接收使用:

其中,g_zm516x_txbuf[128]為用戶自定義的數(shù)組空間,供發(fā)送使用,充當(dāng)發(fā)送緩沖區(qū),其地址(數(shù)組名g_zm516x_txbuf 或首元素地址&g_zm516x_txbuf[0])作為實(shí)例信息中p_txbuf成員的值,數(shù)組大小作為實(shí)例信息中txbuf_size 成員的值。同理,g_zm516x_rxbuf[256]充當(dāng)接收緩沖區(qū),其地址作為實(shí)例信息中p_rxbuf 成員的值,數(shù)組大小作為實(shí)例信息中rxbuf_size成員的值。基于以上信息,實(shí)例信息可以定義如下:

其中,g_zm516x_devinfo 為用戶自定義的實(shí)例信息,其地址作為p_devinfo 的實(shí)參傳遞。

  • UART 句柄uart_handle

若使用LPC824 的USART2 與ZM516x 通信,則通過(guò)LPC82x 的USART2 實(shí)例初始化函數(shù)am_lpc82x_usart2_inst_init()獲得UART 句柄作為uart_handle 的實(shí)參傳遞。即:

  • 實(shí)例句柄

ZM516X 初始化函數(shù)am_zm516x_init ()的返回值即為ZM516X 實(shí)例的句柄,該句柄將作為其它功能接口函數(shù)的zm516x_handle 參數(shù)的實(shí)參。

其類型am_zm516x_handle_t 類型(am_zm516x.h)定義如下:

若返回值為NULL,說(shuō)明初始化失敗;若返回值不為NULL,說(shuō)明返回了一個(gè)有效的handle。基于模塊化編程思想,將初始化相關(guān)的實(shí)例、實(shí)例信息等的定義存放到ZM516X 的配置文件(am_hwconf_zm516x.c)中,通過(guò)頭文件(am_hwconf_zm516x.h)引出實(shí)例初始化函數(shù)接口,源文件和頭文件的程序范例分別詳見(jiàn)程序清單9.34 和程序清單9.35。

程序清單9.34 ZM516X 實(shí)例初始化函數(shù)實(shí)現(xiàn)(am_hwconf_zm516x.c)

程序清單9.35 ZM516X 實(shí)例初始化函數(shù)聲明(am_hwconf_zm516x.h)

后續(xù)只需要使用無(wú)參數(shù)的實(shí)例初始化函數(shù)即可獲取到ZM516X 的實(shí)例句柄。即:

>>> 9.2.4 zigbee 配置接口

AMetal 提供了10 個(gè)ZM516X 模塊配置相關(guān)的接口函數(shù),用戶可以直接使用這些接口函數(shù)完成zigbee 模塊的配置,詳見(jiàn)表9.7。

表9.7 ZM516X 模塊配置接口函數(shù)

1. 讀取本地配置

該函數(shù)用于讀取當(dāng)前永久配置參數(shù)的信息,其函數(shù)原型為:

其中,p_info 是用于獲取配置信息的指針,am_zm516x_cfg_info_t 為配置信息結(jié)構(gòu)體的類型,包含了ZM516X 模塊所有的永久配置參數(shù)的信息,其定義詳見(jiàn)程序清單9.36。

程序清單9.36 ZM516X 永久配置信息結(jié)構(gòu)

各參數(shù)的詳細(xì)描述詳見(jiàn)表9.8。

表9.8 ZM516X 模塊永久配置參數(shù)描述

讀取 ZM516X 本地配置的范例程序詳見(jiàn)程序清單 9.37。

程序清單9.37 讀取ZM516X 本地配置范例程序

2. 修改本地配置

該函數(shù)用于修改當(dāng)前永久配置參數(shù)的信息,修改后的配置信息在掉電后不會(huì)丟失,其函數(shù)原型為:

其中,p_info 是指向配置信息的指針。在函數(shù)執(zhí)行完畢后,如果要想配置參數(shù)生效,需要執(zhí)行模塊復(fù)位函數(shù)去復(fù)位模塊,讓模塊重新加載新的配置參數(shù)運(yùn)行,修改本地配置的范例程序詳見(jiàn)程序清單9.38。

程序清單9.38 修改ZM516X 本地配置范例程序

3. 模塊復(fù)位

該函數(shù)用于控制ZM516X 模塊產(chǎn)生硬件復(fù)位,其函數(shù)原型為:

復(fù)位函數(shù)讓用戶可以對(duì)模塊執(zhí)行復(fù)位操作,如用戶使用am_zm516x_cfg_info_set()函數(shù)修改配置后,需要執(zhí)行模塊復(fù)位函數(shù),讓模塊復(fù)位后重新加載新的參數(shù)運(yùn)行。模塊復(fù)位的范例程序詳見(jiàn)程序清單9.39。

程序清單9.39 模塊復(fù)位范例程序

4. 恢復(fù)出廠設(shè)置

該函數(shù)用于將ZM516X 模塊的永久參數(shù)恢復(fù)為出廠的默認(rèn)參數(shù),其函數(shù)原型為:

模塊恢復(fù)出廠設(shè)置的范例程序詳見(jiàn)程序清單9.40。

程序清單9.40 恢復(fù)出廠設(shè)置范例程序

5. 設(shè)置通道號(hào)

該函數(shù)用于在系統(tǒng)運(yùn)行過(guò)程中臨時(shí)改變ZM516X 模塊的通道號(hào),其函數(shù)原型為:

該函數(shù)設(shè)置的通道號(hào)僅臨時(shí)有效,模塊重新啟動(dòng)(掉電重啟或軟件復(fù)位)后,該設(shè)置將丟失,模塊會(huì)重新使用永久參數(shù)配置信息中的通道號(hào)。設(shè)置模塊通道號(hào)的范例程序詳見(jiàn)程序清單9.41。

程序清單9.41 設(shè)置模塊通道號(hào)范例程序

6. 設(shè)置目的地址

該函數(shù)用于在系統(tǒng)運(yùn)行過(guò)程中臨時(shí)改變ZM516X 模塊的目的地址,其函數(shù)原型為:

其中,p_zb_addr 是指向目標(biāo)節(jié)點(diǎn)的zigbee 模塊地址的指針,am_zm516x_addr_t 類型定義如下(am_zm516x.h):

其中,p_addr 指向按字節(jié)存放的網(wǎng)絡(luò)地址的緩沖區(qū),addr_size 指定地址的長(zhǎng)度。如目標(biāo)地址為0x2002,則其zigbee 模塊地址可以定義如下:

該函數(shù)設(shè)置的目的地址僅臨時(shí)有效,模塊重新啟動(dòng)后,該設(shè)置將丟失,模塊會(huì)重新使用永久參數(shù)配置信息中的目的地址。設(shè)置模塊目的地址的范例程序詳見(jiàn)程序清單9.42。

程序清單9.42 設(shè)置模塊目的地址范例程序

7. 設(shè)置包頭顯示

ZM516X 模塊提供的是透明的數(shù)據(jù)傳輸通道,如果只有兩個(gè)模塊進(jìn)行通信,就不用關(guān)心接收到的數(shù)據(jù)是從哪個(gè)模塊發(fā)送過(guò)來(lái)的,但如果是接收多個(gè)模塊的數(shù)據(jù),用戶想知道當(dāng)前接收到的數(shù)據(jù)到底是從哪個(gè)模塊發(fā)過(guò)來(lái)的,就可以使用該函數(shù)設(shè)置顯示接收數(shù)據(jù)的來(lái)源,其函數(shù)原型為:

其中,flag 為包頭顯示標(biāo)志,當(dāng)其值為TRUE 時(shí),表示當(dāng)模塊收到一幀數(shù)據(jù)時(shí),數(shù)據(jù)包的前2 個(gè)字節(jié)為數(shù)據(jù)包源節(jié)點(diǎn)的網(wǎng)絡(luò)地址,用戶就可以區(qū)分當(dāng)前接收到的數(shù)據(jù)是從哪個(gè)模塊發(fā)送過(guò)來(lái)的;反之,若值為FLASE,則不會(huì)增加前2 個(gè)字節(jié)來(lái)表示數(shù)據(jù)包源節(jié)點(diǎn)的網(wǎng)絡(luò)地址。該設(shè)置僅臨時(shí)有效,模塊重新啟動(dòng)后,設(shè)置的信息將丟失。設(shè)置模塊包頭顯示的范例程序詳見(jiàn)程序清單9.43。

程序清單9.43 設(shè)置模塊包頭顯示范例程序

8. 進(jìn)入休眠

該函數(shù)用于使ZM516X 模塊進(jìn)入休眠以降低功耗,其函數(shù)原型為:

模塊進(jìn)入休眠后不保存臨時(shí)的參數(shù)配置,通過(guò)復(fù)位模塊函數(shù)可以喚醒模塊。使模塊進(jìn)入休眠的范例程序詳見(jiàn)程序清單9.44。

程序清單9.44 使模塊進(jìn)入休眠范例程序

9. 設(shè)置通訊模式

ZM516X 模塊支持單播(默認(rèn))和廣播兩種通訊模式,使用該函數(shù)可以改變使用的通訊模式,其函數(shù)原型為:

其中,mode 表示通信模式,其類型am_zm516x_comm_mode_t 是枚舉類型,枚舉了所有可能的取值,am_zm516x_comm_mode_t 定義如下:

該函數(shù)設(shè)置的通訊模式僅臨時(shí)有效,模塊重新啟動(dòng)后,該設(shè)置將丟失。設(shè)置模塊通訊方式的范例程序詳見(jiàn)程序清單9.45。

程序清單9.45 設(shè)置模塊通訊方式范例程序

10. 讀取信號(hào)強(qiáng)度

該函數(shù)用于讀取指定地址的節(jié)點(diǎn)與本地節(jié)點(diǎn)之間的信號(hào)強(qiáng)度,用于評(píng)估兩個(gè)節(jié)點(diǎn)間鏈路的質(zhì)量,其函數(shù)原型為:

其中,*p_zb_addr 是指向目標(biāo)節(jié)點(diǎn)的zigbee 模塊地址的指針,p_signal 用于得到信號(hào)強(qiáng)度。讀取模塊信號(hào)強(qiáng)度的范例程序詳見(jiàn)程序清單9.46。

程序清單9.46 讀取模塊信號(hào)強(qiáng)度范例程序

>>> 9.2.5 zigbee 數(shù)據(jù)傳輸接口

數(shù)據(jù)傳輸接口實(shí)現(xiàn)了數(shù)據(jù)的透?jìng)鳎瑪?shù)據(jù)傳輸包含數(shù)據(jù)的發(fā)送與接收,其接口詳見(jiàn)表9.9。

表9.9 ZM516X 數(shù)據(jù)傳輸接口函數(shù)(am_zm516x.h)

3. 發(fā)送數(shù)據(jù)

ZM516X 模塊在參數(shù)配置好后提供給用戶是一個(gè)透明的通道,用戶只需往ZM516X 模塊的串口發(fā)送數(shù)據(jù),模塊就會(huì)把數(shù)據(jù)發(fā)送到配置好的目的地址,AMetal 提供了專門的發(fā)送數(shù)據(jù)接口函數(shù),用戶只需調(diào)用該接口即可完成用戶數(shù)據(jù)的發(fā)送,該函數(shù)原型為:

ZM516X 模塊發(fā)送函數(shù)調(diào)用的是帶有環(huán)形隊(duì)列的串口發(fā)送函數(shù),環(huán)形隊(duì)列的長(zhǎng)度在驅(qū)動(dòng)初始化函數(shù)里定義。發(fā)送的數(shù)據(jù)指針定義為void *,用戶可發(fā)送指定長(zhǎng)度的任意類型的數(shù)據(jù)。

發(fā)送數(shù)據(jù)的范例程序詳見(jiàn)程序清單9.47。

程序清單9.47 發(fā)送數(shù)據(jù)范例程序

4. 接收數(shù)據(jù)

AMetal 也提供了專門的接收數(shù)據(jù)接口函數(shù),用戶只需調(diào)用該接口函數(shù)即可完成用戶數(shù)據(jù)的接收,該函數(shù)原型為:

接收函數(shù)調(diào)用的是帶有環(huán)形隊(duì)列的串口接收函數(shù),用戶需根據(jù)系統(tǒng)的需要在驅(qū)動(dòng)初始化函數(shù)里定義環(huán)形隊(duì)列的長(zhǎng)度。接收函數(shù)存放數(shù)據(jù)的指針定義為void *,可將接收的數(shù)據(jù)放在任意類型的數(shù)據(jù)緩存里。接收數(shù)據(jù)的范例程序詳見(jiàn)程序清單9.48。

程序清單9.48 接收數(shù)據(jù)范例程序

其中一個(gè)模塊配置本地網(wǎng)絡(luò)地址為0x2001,目標(biāo)網(wǎng)絡(luò)地址為0x2002,另一個(gè)模塊配置本地網(wǎng)絡(luò)地址為0x2002,目標(biāo)網(wǎng)絡(luò)地址為0x2001,兩個(gè)模塊間隔1s 發(fā)送一次數(shù)據(jù),然后接收對(duì)方的數(shù)據(jù),將接收到的數(shù)據(jù)打印出來(lái),詳見(jiàn)程序清單9.49。

程序清單9.49 兩個(gè)模塊相互收發(fā)數(shù)據(jù)范例程序

程序中ZM516X 模塊的數(shù)據(jù)接收函數(shù)接收超時(shí)時(shí)間為10ms,snd_tick 累加到100 后,既時(shí)間累加到1s 后調(diào)用一次數(shù)據(jù)發(fā)送函數(shù),向目標(biāo)節(jié)點(diǎn)發(fā)送一次數(shù)據(jù)。

上述應(yīng)用程序?qū)⒈镜鼐W(wǎng)絡(luò)地址配置為0x2001,目標(biāo)網(wǎng)絡(luò)地址配置為0x2002。而另一個(gè)模塊的地址恰恰是相反的,因此另一模塊的程序需要修改程序清單9.49(20 ~ 23)如下:

>>> 9.2.6 應(yīng)用案例

AM824ZB 是廣州致遠(yuǎn)電子有限公司基于AW824P2EF 開(kāi)發(fā)的zigbee 二次開(kāi)發(fā)評(píng)估板。評(píng)估板集成了多種實(shí)驗(yàn)用的電路,如看門狗、蜂鳴器、數(shù)字溫度傳感器、熱敏電阻、按鍵等,方便用戶使用zigbee 進(jìn)行無(wú)線通訊的交互實(shí)驗(yàn)。

AM824ZB 開(kāi)發(fā)套件包括兩塊AM824ZB 開(kāi)發(fā)板、MiniCK100 仿真器和兩根天線用于遠(yuǎn)距離組網(wǎng)應(yīng)用。AM824ZB 開(kāi)發(fā)板的示意圖詳見(jiàn)圖9.9,主控核心為AW824P2EF,詳見(jiàn)廣州致遠(yuǎn)電子有限公司網(wǎng)站(www.zlg.cn)。

圖9.9 AM824ZB 開(kāi)發(fā)板接口分布

其完整資料詳見(jiàn)www.zlg.cn(廣州致遠(yuǎn)電子有限公司)和www.zlgmcu.com(廣州周立功單片機(jī)科技有限公司)網(wǎng)站,索取樣品請(qǐng)聯(lián)系各地辦事處。

基于開(kāi)發(fā)套件中的兩塊AM824ZB 開(kāi)發(fā)板,可以做一個(gè)簡(jiǎn)單的應(yīng)用:通過(guò)獨(dú)立按鍵控制對(duì)方LED0 燈狀態(tài)的翻轉(zhuǎn),每次按鍵按下,對(duì)方LED0 的狀態(tài)就發(fā)生變化(由點(diǎn)亮變?yōu)橄纾蛴上缱優(yōu)辄c(diǎn)亮)。

1. 應(yīng)用程序編寫

為了實(shí)現(xiàn)該應(yīng)用案例,作為簡(jiǎn)單的示例,我們定義,當(dāng)按鍵按下時(shí),發(fā)送一個(gè)字符串“key_pressed”到目標(biāo)節(jié)點(diǎn),當(dāng)目標(biāo)節(jié)點(diǎn)收到“key_pressed”字符串時(shí),翻轉(zhuǎn)LED0。

對(duì)于兩塊模塊來(lái)講,雖然應(yīng)用程序的邏輯是完全一樣的,但是在組網(wǎng)應(yīng)用中,必須為各個(gè)節(jié)點(diǎn)分配不同的網(wǎng)絡(luò)地址,比如,它們的地址分別設(shè)定為0x2001 和0x2002。為此,需要編寫一個(gè)通用的函數(shù),實(shí)現(xiàn)核心的應(yīng)用邏輯,不同之處(比如,本地地址和目標(biāo)地址),通過(guò)參數(shù)指定,詳見(jiàn)程序清單9.50。

程序清單9.50 使用zigbee 實(shí)現(xiàn)LED 控制的應(yīng)用程序范例(app_led_control.c)

在這里,首先根據(jù)參數(shù),完成本地地址和通信目標(biāo)地址的配置,配置完成后,通過(guò)模塊復(fù)位使設(shè)置生效,然后在while(1)主循環(huán)中檢測(cè)是否有按鍵按下,按鍵按下時(shí),則發(fā)送字符串“key_pressed”,接著接收數(shù)據(jù),若接收到“key_pressed”,則翻轉(zhuǎn)本地LED0 的狀態(tài)。

為了便于主程序使用,將其接口聲明到app_led_control.h 文件中,詳見(jiàn)程序清單9.51。

程序清單9.51 應(yīng)用程序接口聲明(app_led_control.h)

2. 主程序編寫

為了便于區(qū)分,特將兩塊板分別稱為A 板和B 板。其中,A 板的網(wǎng)絡(luò)地址為0x2001,目標(biāo)地址為0x2002,詳見(jiàn)程序清單9.52。

程序清單9.52 A 板(網(wǎng)絡(luò)地址為0x2001)主程序

B 板的網(wǎng)絡(luò)地址為0x2002,目標(biāo)地址為0x2001,詳見(jiàn)程序清單9.53。

程序清單9.53 B 板(網(wǎng)絡(luò)地址為0x2002)主程序


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ZigBee
    +關(guān)注

    關(guān)注

    158

    文章

    2270

    瀏覽量

    242881
  • 周立功
    +關(guān)注

    關(guān)注

    38

    文章

    130

    瀏覽量

    37656
  • 智能藍(lán)牙
    +關(guān)注

    關(guān)注

    9

    文章

    130

    瀏覽量

    32780

原文標(biāo)題:周立功:zigbee 核心板的應(yīng)用

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    智能家居選擇WiFi、ZigBee藍(lán)牙無(wú)線模塊的區(qū)別

    從現(xiàn)階段使用的情況來(lái)看:WIFl的應(yīng)用最廣泛;ZigBee的優(yōu)勢(shì)是低功耗和自組網(wǎng);藍(lán)牙的優(yōu)勢(shì)為組網(wǎng)簡(jiǎn)單。當(dāng)然啦,沒(méi)有一種技術(shù)能完全滿足智能家居的全部要求,用戶們要對(duì)此進(jìn)行取舍,根據(jù)自身的實(shí)際需求來(lái)選擇最適合自己的無(wú)線
    發(fā)表于 01-05 09:43 ?1.1w次閱讀

    ZigBee藍(lán)牙的傳輸距離的問(wèn)題

    知道在相同發(fā)射功率的情況下藍(lán)牙為什么比ZigBee的傳輸距離少了那么多?我了解了一下無(wú)線信號(hào)衰減公式,在相同情況下,在d距離處的信號(hào)衰減只和頻率有關(guān),而
    發(fā)表于 06-26 09:32

    ZT系列ZigBee無(wú)線通信模塊用戶手冊(cè)

    ZT 系列模塊是智蜂通信開(kāi)發(fā)的符合最新ZigBee 標(biāo)準(zhǔn)協(xié)議(可與其它廠商符合ZigBee PRO協(xié)議的產(chǎn)品實(shí)現(xiàn)互操作性),ZigBee無(wú)線
    發(fā)表于 01-10 16:17 ?54次下載
    ZT系列<b class='flag-5'>ZigBee</b><b class='flag-5'>無(wú)線</b>通信<b class='flag-5'>模塊</b>用戶手冊(cè)

    WiFi模塊ZigBee模塊的區(qū)別是什么

    無(wú)線模塊種類很多,但應(yīng)用最廣泛的無(wú)線傳輸模塊還是WiFi模塊藍(lán)牙
    的頭像 發(fā)表于 11-21 11:12 ?9066次閱讀

    Zigbee的標(biāo)準(zhǔn)和技術(shù)難點(diǎn)都有哪些

    Zigbee作為無(wú)線通信技術(shù),在現(xiàn)代生活中具有眾多應(yīng)用。比如,在智慧農(nóng)場(chǎng)這樣的場(chǎng)景下,Zigbee就發(fā)揮了重要作用。往期文章中,小編對(duì)Zigbee底層、
    發(fā)表于 03-17 17:27 ?2381次閱讀

    藍(lán)牙模塊Zigbee協(xié)議模塊的區(qū)別

    物聯(lián)網(wǎng)領(lǐng)域無(wú)線數(shù)據(jù)傳輸指的是無(wú)線數(shù)傳模塊將工業(yè)設(shè)備輸出或者各種采集的數(shù)據(jù)進(jìn)行遠(yuǎn)程傳送,可以無(wú)線模擬量采集,也能無(wú)線開(kāi)關(guān)量控制。
    發(fā)表于 09-16 17:30 ?6022次閱讀

    一文講透藍(lán)牙、WiFi、ZigBee無(wú)線通信模塊

    無(wú)線取代有線”已在全球范圍內(nèi)成為不可逆轉(zhuǎn)的趨勢(shì),而藍(lán)牙、WiFi、ZigBee便是近距離無(wú)線技術(shù)中最流行的三種。一.藍(lán)牙
    發(fā)表于 11-19 14:21 ?30次下載
    一文講透<b class='flag-5'>藍(lán)牙</b>、WiFi、<b class='flag-5'>ZigBee</b><b class='flag-5'>無(wú)線</b>通信<b class='flag-5'>模塊</b>

    zigbee與WiFi模塊藍(lán)牙模塊的區(qū)別是什么

    先說(shuō)無(wú)線吧。市面主流三大協(xié)議Wifi,Zigbee藍(lán)牙。(協(xié)議可以理解為控制通信方式)如果使用Wifi協(xié)議接入,那如果家里網(wǎng)斷了怎么辦?顯而易見(jiàn),語(yǔ)音控制遠(yuǎn)程控制全部癱瘓。所以不管有線還是無(wú)
    的頭像 發(fā)表于 02-18 14:15 ?3727次閱讀

    藍(lán)牙WiFi模塊ZigBee技術(shù)在智能家具領(lǐng)域的發(fā)展對(duì)比

    從物聯(lián)網(wǎng)無(wú)線通信模塊長(zhǎng)遠(yuǎn)來(lái)看,很難說(shuō)藍(lán)牙模塊、WiFi模塊zigbee
    的頭像 發(fā)表于 02-18 17:00 ?1986次閱讀

    ZigBee模塊無(wú)線傳輸星形拓?fù)浣M網(wǎng)結(jié)構(gòu)

    Zigbee模塊無(wú)線傳輸協(xié)議的星形拓補(bǔ)是其三種拓補(bǔ)中最簡(jiǎn)單的拓補(bǔ)結(jié)構(gòu),包括一個(gè)Co-ordinator(zigbee中央?yún)f(xié)調(diào)器)網(wǎng)絡(luò)節(jié)點(diǎn)和多個(gè)enddevice(
    發(fā)表于 06-10 17:00 ?1369次閱讀
    <b class='flag-5'>ZigBee</b><b class='flag-5'>模塊</b><b class='flag-5'>無(wú)線</b>傳輸星形拓?fù)浣M網(wǎng)結(jié)構(gòu)

    Zigbee無(wú)線通信模塊的工作原理和作用

      Zigbee無(wú)線通信模塊是一種基于Zigbee協(xié)議的無(wú)線通信模塊,常常被用于
    發(fā)表于 05-05 17:53 ?6859次閱讀

    Zigbee無(wú)線通信模塊的特點(diǎn)和應(yīng)用場(chǎng)景

      Zigbee無(wú)線通信模塊是一種基于Zigbee協(xié)議的無(wú)線通信模塊,常常被用于
    發(fā)表于 05-05 18:06 ?2242次閱讀

    智能家居選WiFi、ZigBee還是藍(lán)牙無(wú)線模塊

    ;從傳輸速率來(lái)說(shuō):WIFI>藍(lán)牙ZigBee。智能家居無(wú)線模塊1、WIFI:WIFI是目前應(yīng)用最廣泛的無(wú)線通信技術(shù),傳輸距離在100-30
    的頭像 發(fā)表于 01-12 10:32 ?4646次閱讀
    智能家居選WiFi、<b class='flag-5'>ZigBee</b>還是<b class='flag-5'>藍(lán)牙</b><b class='flag-5'>無(wú)線</b><b class='flag-5'>模塊</b>?

    介紹一款高性能的Zigbee無(wú)線模塊--SUN-JN5169 Zigbee模塊

    大家好,我是的鳴澗, 介紹給大家介紹一個(gè)款高性比、低功耗、高性能的的Zigbee無(wú)線模塊--SUN-JN5169 Zigbee模塊
    的頭像 發(fā)表于 10-19 09:41 ?2603次閱讀
    介紹一款高性能的<b class='flag-5'>Zigbee</b><b class='flag-5'>無(wú)線</b><b class='flag-5'>模塊</b>--SUN-JN5169 <b class='flag-5'>Zigbee</b><b class='flag-5'>模塊</b>

    藍(lán)牙模塊與其他無(wú)線技術(shù)的比較與選擇

    無(wú)線通信技術(shù)日新月異的今天,藍(lán)牙模塊、WiFi、Zigbee和NFC等技術(shù)都發(fā)揮著至關(guān)重要的作用。它們?cè)谥悄茉O(shè)備、工業(yè)自動(dòng)化、智能家居等多個(gè)領(lǐng)域得到廣泛應(yīng)用,各自擁有獨(dú)特的優(yōu)點(diǎn)和局限
    的頭像 發(fā)表于 06-14 16:06 ?689次閱讀
    主站蜘蛛池模板: 午夜影视啪啪免费体验区入口| 日本成人一级片| 日本不卡高清视频| 中文字幕精品一区| 中文字幕第13亚洲另类| 亚洲国产女人aaa毛片在线| 美女扒开尿囗给男生桶爽| 在线免费观看黄色小视频| 亚洲午夜久久久久久噜噜噜| 亚洲高清免费观看| 成人国产在线24小时播放视频| 国产农村一一级特黄毛片| 国产激情电影综合在线看| 人人射人人| 美女黄页在线观看| 国产拍拍视频| 午夜伦y4480影院中文字幕| 国产盗摄女子私密保健视频| 91伊人久久大香线蕉| 日日干天天干| 1000又爽又黄禁片| 亚洲日本视频| 伊人久久大香线蕉综合7| 四虎影视院| 有一婷婷色| 色草视频| 午夜色福利| 日本黄色大片免费看| 国模谢心2013.05.06私拍| 亚洲理论视频| 成年片色大黄全免费| 涩狠狠狠狠色| 天堂新版www中文| 久久精品视频5| 午夜久| 国产精品成人一区二区三区| 久久深夜福利| 中文字幕在线观看一区| 亚洲国产精品综合久久2007 | 秋霞麻豆| 一区二区三区在线看|