日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 程序員小哈
[導(dǎo)讀]在DL-LN33模塊使用之前,我們需要對模塊進(jìn)行通信的波特率、地址、信道和網(wǎng)絡(luò)ID進(jìn)行設(shè)置,這樣我們首先要對模塊的通信協(xié)議進(jìn)行了解,本文重點(diǎn)分析一下模塊指令的格式,然后對模塊地址和組網(wǎng)信息進(jìn)行修改。

點(diǎn)擊上方“嵌入式從0到1”,選擇“置頂/星標(biāo)公眾號

干貨福利,第一時間送達(dá)!

在DL-LN33模塊使用之前,我們需要對模塊進(jìn)行通信的波特率、地址、信道和網(wǎng)絡(luò)ID進(jìn)行設(shè)置,這樣我們首先要對模塊的通信協(xié)議進(jìn)行了解,本文重點(diǎn)分析一下模塊指令的格式,然后對模塊地址和組網(wǎng)信息進(jìn)行修改。

接線

注意: 默認(rèn)購買的PL2303TA線一般紅線為5V,需打開藍(lán)蓋,將紅線更改為3.3V。

圖中所示的USB轉(zhuǎn)TTL的串口模塊都可以,但是使用的時候,注意: ZigBee模塊的工作電壓應(yīng)為2.5V~3.6V。

Uart通信協(xié)議

1. 串口參數(shù)

數(shù)據(jù)位:8位
起始位:1位
停止位:1位
校驗位:無校驗
波特率可以選用下面任意值:
2400、 4800、 9600、 14400、 19200、 28800、 38400、 57600、 115200、 230400、 125000、 250000、 500000。

模塊出廠默認(rèn)波特率為:115200

2. 數(shù)據(jù)包結(jié)構(gòu)定義

在通信過程中,最常見的應(yīng)用場景是單片機(jī)通過 Uart 告訴模塊這樣的信息:
“將數(shù)據(jù) 00 AE 13 33 發(fā)往地址為 0003 的模塊,目標(biāo)端口為 90,源端口為 91?!?br>對于單片機(jī),需要將這些信息整理成一個包,通過 Uart 發(fā)給模塊:
FE 08 91 90 03 00 00 AE 13 33 FF

此包的說明如下表所示:

信息名 長度 說明 舉例
包頭 2 Byte 包頭由FE和包的長度組成,長度為包的數(shù)據(jù)長度加4(源端口號1Byte+目的端口號1Byte+遠(yuǎn)程地址2Byte)。 FE 08
源端口號 1 Byte 包的源端口號。 0x91
目的端口號 1 Byte 包的目的端口號。 0x90
遠(yuǎn)程地址 2Byte 遠(yuǎn)程模塊的地址,當(dāng)發(fā)送數(shù)據(jù)給模塊時,遠(yuǎn)程地址為目標(biāo)模塊的地址, 目標(biāo)地址為 0x0000 表示此包發(fā)給本模塊,目標(biāo)地址為 0xFFFF 的包會被發(fā)往本網(wǎng)絡(luò)中的所有節(jié)點(diǎn)。 03 00
數(shù)據(jù) 可變 想要傳輸?shù)臄?shù)據(jù)。 00 AE 13 33
包尾 1 Byte 固定為FF表示一個包傳輸完成。 FF

注: 遠(yuǎn)程地址即節(jié)點(diǎn)地址,長度為2 Byte,使用小端模式進(jìn)行傳輸,即先傳輸?shù)?位,再傳輸高8位。

3. 轉(zhuǎn)義機(jī)制

  • 包尾是一個包的結(jié)束,值為 FF,如果收發(fā)過程中出現(xiàn)FF則會干擾包的正常接收。所以包中不能出現(xiàn)FF,如果需要發(fā)送FF則用 FE FD代替;
  • FE是包頭,也是轉(zhuǎn)義標(biāo)志,如果傳輸過程中出現(xiàn) FE,后面跟著一個小于64(因為該模塊傳輸?shù)臄?shù)據(jù)包最大長度為63)的數(shù)字,則會使接收方誤認(rèn)為收到了一個包頭。因此,在任何時候需要發(fā)送一個FE時,則發(fā)送 FE FC代替;
  • 處理在包頭、包尾和數(shù)據(jù)長度(數(shù)據(jù)長度不會大于63)數(shù)據(jù)傳輸過程中遇到的任何FE/FF都需要轉(zhuǎn)義處理。

傳輸過程中如果遇到數(shù)據(jù)部分、地址或者端口號中出現(xiàn) FF,則使用 FE FD 來代替;如果出現(xiàn) FE,則用 FE FC 來代替。

以免傳輸過程中出現(xiàn)的包頭和包尾,使接收方誤判斷。在傳輸中這種替換稱為“轉(zhuǎn)義”。

包長度不會受到轉(zhuǎn)義的影響,例如發(fā)送的數(shù)據(jù)為 09 FF 時,替換為 09 FE FD,但包頭中的數(shù)據(jù)長度仍然按照 2+4 來計算,這樣,發(fā)送的包如下:

FE 06 91 90 03 00 09 FE FD FF

雖然一共傳輸了 7 個字節(jié),但包長為 6。如果地址、端口號中出現(xiàn)了 FF、FE 也需要進(jìn)行轉(zhuǎn)義。

  • 要發(fā)送的數(shù)據(jù)是:FE 08 90 91 FF?00 20 FE?? FF?20 FF
  • 實(shí)際發(fā)送的數(shù)據(jù)是:FE 08 90 91 FE FD 00 20 FE FC FE FD 20 FF

4. 解析包策略上的規(guī)律

  • 凡是FE后面跟著的內(nèi)容必然特殊處理

    • 如果是小于63的數(shù)據(jù),則是收到了包頭。
    • 如果是FD和FC,則將此數(shù)據(jù)+2既是要發(fā)送的數(shù)據(jù),F(xiàn)D對應(yīng)FF,F(xiàn)C對應(yīng)FE。
  • 凡是遇到FF,一定是包尾。

第四篇網(wǎng)文,串口編程解析數(shù)據(jù)包時,將會應(yīng)用此處的結(jié)論。

端口

DL-LN3X 模塊設(shè)計了端口的概念,接收方收到一個包時,會根據(jù)包的端口號,選擇對應(yīng)的程序處理包。

端口號的取值范圍是 0x00~0xFF,其中 0x00~0x7F 端口由模塊內(nèi)部程序占用, 0x80~0xFF 端口開放給 Uart 連接的 MCU 或者電腦。

當(dāng) MCU 給一個模塊發(fā)送數(shù)據(jù)時,如果源端口號填寫了小于 0x80 的值,則包無法發(fā)出;如果目的端口號填寫了小于 0x80 的值,接收方模塊的內(nèi)部程序?qū)⑻幚磉@個包并執(zhí)行相關(guān)的動作,而不是從 Uart 發(fā)出這個包。

例如發(fā)送這個包:
FE 05 91 20 03 00 0A FF

則會讓地址為 03 00 的模塊自帶的紅燈點(diǎn)亮 1 秒,而他的 Uart 不會輸出數(shù)據(jù)。

FE 05 91 20 00 00 0A FF
讓自己模塊上的紅色LED點(diǎn)亮1秒。

修改通信的波特率、地址、網(wǎng)絡(luò)ID和信道,都是跟模塊自身的內(nèi)部端口進(jìn)行通信,即與自己的小于0x80的端口進(jìn)行通信,這些端口都是廠家預(yù)先內(nèi)置的端口,用于實(shí)現(xiàn)不同組網(wǎng)信息的查詢和修改。

紅燈閃爍控制端口

端口 0x20 用于控制模塊的紅色 LED 點(diǎn)亮,發(fā)送此包可以使模塊的紅色 LED 點(diǎn)亮一定時間。

模塊與USB轉(zhuǎn)TTL連接之后,利用此端口可以測試接線是否正確。

測試命令:FE 05 A3 20 02 00 32 FF
數(shù)據(jù)位的值0x32代表紅燈點(diǎn)亮的時間,該時間為100ms的倍數(shù),換算關(guān)系如下:

0x32 = 50 * 100ms = 5 S。

所以上面命令為點(diǎn)亮地址為0x0002的模塊紅燈5秒鐘。

FE 05 A3 20 00 00 32 FF
讓本模塊的LED點(diǎn)亮5 S。

應(yīng)用: 此功能可以用于測試一個指定地址的模塊是否包含在網(wǎng)絡(luò)中,如果想從許多節(jié)點(diǎn)中迅速找到某個特定地址的節(jié)點(diǎn),也可以使用此功能。

基本信息管理端口

設(shè)置/修改模塊信息

端口 0x21 用于配置模塊的基本參數(shù),包括波特率、地址、網(wǎng)絡(luò) ID和信道等。

此端口只接受遠(yuǎn)程地址填寫 0x0000 的包,因此,這些信息的讀取和修改只能通過本模塊的 Uart 進(jìn)行,不能遠(yuǎn)程操作。

查詢組網(wǎng)信息

發(fā)送數(shù)據(jù) 長度 意義
命令 1Byte 必須為以下值中的一個:0x01 讀取地址;0x02 讀取網(wǎng)絡(luò)ID;0x03 讀取信道編號;0x04 讀取Uart的波特率。

發(fā)送這個數(shù)據(jù)后,模塊會根據(jù)修改的內(nèi)容返回一個地址包、網(wǎng)絡(luò) ID 包、信道包或者波特率包。這些包將會攜帶對應(yīng)的配置信息。

通信的波特率

1. 設(shè)置波特率包

發(fā)送數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x14。
新波特率 1Byte 想要設(shè)置的新波特率讀數(shù)。

發(fā)送這個數(shù)據(jù)后,模塊的波特率將被修改為新的的值,除非此值不合法。操作完成后,此端口會返回一個響應(yīng)包。

測試指令:修改波特率
發(fā)送:FE 06 90 21 00 00 14 08 FF
返回:FE 05 21 90 00 00 00 FF
修改后模塊信息:波特率讀數(shù)為0x08(115200)

2. 查詢波特率

返回數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x24。
波特率 1Byte 當(dāng)前波特率,如果節(jié)點(diǎn)曾經(jīng)收到過設(shè)置信息包,并且沒有進(jìn)行更新,則此處返回最新設(shè)置的波特率讀數(shù)。

測試指令:
發(fā)送:FE 05 90 21 00 00 04 FF
返回:FE 06 21 90 00 00 24 08 FF

模塊信息:波特率為0x08,查看下表即為 115200。

注意: 如果不發(fā)送復(fù)位指令,那么重新上電之后,修改的信息將無效。

3. 波特率--讀數(shù)對照表

波特率 讀數(shù)
波特率 讀數(shù)
2400 0x00
57600 0x07
4800 0x01
115200 0x08
9600 0x02
230400 0x09
14400 0x03
125000 0x0A
19200 0x04
250000 0x0B
28800 0x05
500000 0x0C
38400 0x06


設(shè)置說明

如果不知道模塊配置的波特率,可以將 BaudReset 引腳連接到 GND,這樣便可以使用 115200 波特率對模塊進(jìn)行配置。

地址

1. 設(shè)置地址

發(fā)送數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x11。
新地址 2Byte 想要設(shè)置的新地址值,新地址必須合法。

發(fā)送這個數(shù)據(jù)后,模塊的地址將被修改為新地址給定的值,除非此值不合法。操作完成后,此端口會返回一個響應(yīng)包。

測試指令:修改地址為0x0001
發(fā)送:FE 07 90 21 00 00 11 01 00 FF
返回:FE 05 21 90 00 00 00 FF
修改后模塊信息:地址為0x0001

2. 查詢地址

返回數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x21。
地址 2Byte 當(dāng)前地址,如果節(jié)點(diǎn)曾經(jīng)收到過設(shè)置信息包,并且沒有進(jìn)行更新,則此處返回最新設(shè)置的值。

測試指令:查詢地址
發(fā)送:FE 05 90 21 00 00 01 FF
返回:FE 07 21 90 00 00 21 01 00 FF
模塊信息:地址為0x0001。

網(wǎng)絡(luò)ID

1. 設(shè)置新網(wǎng)絡(luò)ID

信息名 長度 說明 舉例
包頭 2 Byte 包頭由FE和包的長度組成,長度為包的數(shù)據(jù)長度加4。 FE 07
源端口號 1 Byte 包的源端口號。 0x91
目的端口號 1 Byte 包的目的端口號。 0x21
遠(yuǎn)程地址 2 Byte 目標(biāo)地址為 0x0000 表示此包發(fā)給本模塊。 00 00
數(shù)據(jù) 3 Byte 第一個字節(jié)固定為0x12,后兩個字節(jié)為新網(wǎng)絡(luò)ID 12 34 12
包尾 1 Byte 固定為FF表示一個包傳輸完成。 FF

測試指令:修改網(wǎng)絡(luò)ID為0x1234
發(fā)送:FE 07 90 21 00 00 12 34 12 FF

發(fā)送這個數(shù)據(jù)后,模塊的網(wǎng)絡(luò) ID 將被修改為新網(wǎng)絡(luò) ID 給定的值:0x1234,除非此值不合法。操作完成后,此端口會返回一個響應(yīng)包。

返回:FE 05 21 90 00 00 00 FF
修改后模塊信息:網(wǎng)絡(luò)ID為0x1234。

2. 查詢網(wǎng)絡(luò)ID包

返回數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x22。
網(wǎng)絡(luò)ID 2Byte 當(dāng)前網(wǎng)絡(luò) ID,如果節(jié)點(diǎn)曾經(jīng)收到過設(shè)置信息包,并且沒有進(jìn)行更新,則此處返回最新設(shè)置的值。

測試指令:
發(fā)送:FE 05 90 21 00 00 02 FF
返回:FE 07 21 90 00 00 22 34 12 FF
模塊信息:網(wǎng)絡(luò)ID為0x1234。

信道

1. 設(shè)置信道

發(fā)送數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x13。
新信道 1Byte 想要設(shè)置的新信道值,新網(wǎng)絡(luò)信道必須合法。

發(fā)送這個數(shù)據(jù)后,模塊的網(wǎng)絡(luò) ID 將被修改為新網(wǎng)絡(luò) ID 給定的值,除非此值不合法。操作完成后,此端口會返回一個響應(yīng)包。

測試指令:修改信道為0x0F
發(fā)送:FE 06 90 21 00 00 13 0F FF
返回:FE 05 21 90 00 00 00 FF
修改后模塊信息:信道為0x0F

2. 查詢信道

返回數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x23。
信道 1Byte 當(dāng)前信道,如果節(jié)點(diǎn)曾經(jīng)收到過設(shè)置信息包,并且沒有進(jìn)行更新,則此處返回最新設(shè) 置的值。

測試指令:
發(fā)送:FE 05 90 21 00 00 03 FF
返回:FE 06 21 90 00 00 23 0F FF
模塊信息:信道為0x0F

重啟命令包

設(shè)置信息包含設(shè)置地址,設(shè)置網(wǎng)絡(luò) ID,設(shè)置波特率,設(shè)置信道四種。

這些設(shè)置信息在更新以后,不會立即執(zhí)行,模塊會使用原有的參數(shù)繼續(xù)工作,此時如果希望寫入的參數(shù)生效,則需發(fā)送重啟命令包給模塊。

在設(shè)置地址信息且沒有發(fā)送重啟命令的情況下,如果模塊斷電后再次啟動,設(shè)置的信息也將丟失。

一旦設(shè)置這些信息并發(fā)送重啟命令包,這些信息不會因為斷電和任何形式的復(fù)位丟失。

發(fā)送重啟命令

發(fā)送數(shù)據(jù) 長度 意義
命令 1Byte 必須為0x10,更新信息并重啟。

測試指令:重啟包
發(fā)送:FE 05 90 21 00 00 10 FF
返回:無
現(xiàn)象:模塊上的燈閃爍亮2S左右

發(fā)送這個重啟命令之后,模塊的最新參數(shù)將被固化。

參考閱讀

2.4G ZigBee無線自組網(wǎng)mesh網(wǎng)絡(luò)模塊簡介


寫文不易,對你有幫助的話,

請四連鼓勵一下,謝謝各位!

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

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

全球嵌入式技術(shù)領(lǐng)域的年度盛會2026嵌入式世界展(Embedded World 2026,簡稱EW26)于3月10日至12日在德國紐倫堡成功舉辦。作為物聯(lián)網(wǎng)和邊緣AI領(lǐng)域的領(lǐng)先企業(yè),Silicon Labs(亦稱“芯科科...

關(guān)鍵字: 物聯(lián)網(wǎng) 邊緣AI 嵌入式

3月10日至12日,2026年嵌入式世界展(Embedded World 2026,簡稱EW26)在德國紐倫堡展覽中心成功舉辦。作為領(lǐng)先的邊緣AI與智能音頻等媒體處理技術(shù)和芯片解決方案提供商,XMOS以沉浸式演示與技術(shù)交...

關(guān)鍵字: 邊緣AI 智能音頻 嵌入式

在嵌入式系統(tǒng)開發(fā)中,SoC(System on Chip)的多樣性始終是橫亙在開發(fā)者面前的難題。以某工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)項目為例,其需同時支持NXP i.MX8M、Rockchip RK3566和Allwinner H616三...

關(guān)鍵字: Platform Driver模型 嵌入式

在非易失性存儲器領(lǐng)域,EEPROM(電可擦除可編程只讀存儲器)曾長期占據(jù)主流地位,廣泛應(yīng)用于各類電子設(shè)備的參數(shù)存儲、日志記錄等場景。但隨著工業(yè)控制、汽車電子、醫(yī)療設(shè)備等領(lǐng)域?qū)Υ鎯π阅芴岢龈咭螅現(xiàn)RAM(鐵電隨機(jī)存取存...

關(guān)鍵字: 存儲器 可編程 嵌入式

康佳特將aReady.COM擴(kuò)展至Arm架構(gòu)模塊,基于恩智浦i.MX 95處理器打造應(yīng)用就緒的軟硬件構(gòu)建模塊,集成操作系統(tǒng)、系統(tǒng)整合與IoT連接能力,賦能高價值應(yīng)用快速落地

關(guān)鍵字: 處理器 IoT 嵌入式

3月12日,2026年中國家電及消費(fèi)電子博覽會(以下簡稱:AWE 2026)在上海盛大開幕。展會現(xiàn)場,場景化、系統(tǒng)化、一體化的家電解決方案成為行業(yè)焦點(diǎn),消費(fèi)者對家電的關(guān)注也已從基礎(chǔ)的尺寸匹配,延伸至對“空間秩序感”和“視...

關(guān)鍵字: 消費(fèi)電子 蒸烤箱 嵌入式

超高效NPU IP在資源受限設(shè)備中推進(jìn)邊緣AI,因而獲得認(rèn)可

關(guān)鍵字: 人工智能 嵌入式 NPU

上海2026年3月12日 /美通社/ -- 3月12日,2026中國家電及消費(fèi)電子博覽會(AWE 2026)在上海新國際博覽中心和東方樞紐國際商務(wù)合作區(qū)展區(qū)正式啟幕。本屆展會以"AI科技?慧享未來"為...

關(guān)鍵字: 西門子 博世 嵌入式 洗碗機(jī)

在“AI科技,慧享未來”的時代命題下,人工智能正加速滲透至家庭生活的每一個細(xì)節(jié)。2026年中國家電及消費(fèi)電子博覽會(AWE2026)在上海啟幕,聚焦AI技術(shù)如何重塑家電形態(tài)與人居體驗。圍繞“智造不凡 悅享非凡”主題,西門...

關(guān)鍵字: 嵌入式 冰箱 AI
關(guān)閉