簡介
本文介紹了我司藍(lán)牙模塊系列的數(shù)據(jù) “有效指示功能”及相關(guān)用法。
數(shù)據(jù)有效指示是通過模塊一個(gè)引腳DATA(數(shù)據(jù)有效指示引腳,不同型號(hào)可能名稱不同)的電平變化來實(shí)現(xiàn)的,在實(shí)際應(yīng)用中,模塊與外部MCU協(xié)同工作,外部MCU的一個(gè)引腳與模塊的DATA相連接即可實(shí)現(xiàn)數(shù)據(jù)有效指示等功能。
數(shù)據(jù)有效指示和輸出延時(shí)
數(shù)據(jù)有效指示
數(shù)據(jù)有效指示是指在透傳模式下,藍(lán)牙從機(jī)接收到數(shù)據(jù)后通過串口向外輸出透傳數(shù)據(jù)時(shí),從串口開始發(fā)送時(shí),數(shù)據(jù)指示引腳以低電平或者高電平來指示。發(fā)送完畢之后,數(shù)據(jù)指示引腳電平翻轉(zhuǎn)。如以低電平來作為數(shù)據(jù)有效指示,無輸出延時(shí)時(shí),如圖表 2 1所示。
圖表 2 1 無輸出延時(shí)時(shí)數(shù)據(jù)有效指示
上圖中,DATA引腳作為數(shù)據(jù)有效指示引腳,在藍(lán)牙接收完一幀數(shù)據(jù)并串口的TXD發(fā)送該數(shù)據(jù)時(shí),DATA引腳拉低為低電平并保持,指示當(dāng)前正在發(fā)送數(shù)據(jù),直到該幀數(shù)據(jù)發(fā)送完畢,DATA引腳翻轉(zhuǎn)為高電平,表示此時(shí)串口空閑。
輸出延時(shí)
數(shù)據(jù)輸出延時(shí)是指,模塊藍(lán)牙接收到數(shù)據(jù)后,先拉低DATA引腳,10ms后通過串口發(fā)送數(shù)據(jù)。如圖表 2 2所示。
圖表 2 2 開啟輸出延時(shí)時(shí)數(shù)據(jù)有效指示
上圖中,在開啟數(shù)據(jù)輸出延時(shí)時(shí),藍(lán)牙接收完一幀數(shù)據(jù)后,先拉低DATA引腳并保持10ms,然后串口才開始發(fā)送數(shù)據(jù),白色柱形為串口正在輸出數(shù)據(jù)。
各個(gè)藍(lán)牙模塊輸出延時(shí)指令說明
各個(gè)藍(lán)牙模塊輸出延時(shí)指令可能不一致,詳細(xì)描述如下(以下指令參考自最新的用戶手冊(cè))。
E104-BT02
開啟數(shù)據(jù)輸出延時(shí)指令如表格 2 1所示。
表格 2 1 開啟數(shù)據(jù)輸出延時(shí)指令
關(guān)閉數(shù)據(jù)輸出延時(shí)指令如表格 2 2所示。
表格 2 2 關(guān)閉數(shù)據(jù)輸出指令
E104-BT51(A)
E104-BT51和E104-BT51A輸出延時(shí)指令如表格 2 3所示。
表格 2 3 E104-BT51和E104-BT51A輸出延時(shí)指令
E104-50無線藍(lán)牙模塊系列
E104-BT5011A和E104-5032A輸出延時(shí)指令如表格 2 5所示。
表格 2 5 E104-BT5011A和E104-5032A輸出延時(shí)指令
藍(lán)牙系列數(shù)據(jù)有效指示功能匯總
藍(lán)牙系列部分模塊的數(shù)據(jù)有效指示功能如表格 2 6所示。
表格 2 6 藍(lán)牙系列模塊數(shù)據(jù)有效指示功能匯總
從上述表格可以看出,開啟數(shù)據(jù)輸出延時(shí)功能時(shí),延時(shí)時(shí),DATA(數(shù)據(jù)有效指示引腳)為低電平保持且保持時(shí)間均為10ms;在串口發(fā)送數(shù)據(jù)過程中,僅E104-BT51(A)為高電平保持;其他型號(hào)為低電平保持,數(shù)據(jù)發(fā)送完畢后電平翻轉(zhuǎn)。E104-BT52無輸出延時(shí)且數(shù)據(jù)有效指示為高電平。
數(shù)據(jù)有效指示應(yīng)用場景
數(shù)據(jù)有效指示用法由具體應(yīng)用決定,即外部MCU是否在串口空閑時(shí)進(jìn)入休眠狀態(tài)以降低功耗。
喚醒外部MCU
如果為低功耗應(yīng)用,DATA(數(shù)據(jù)有效指示引腳)可用于喚醒外部MCU,串口準(zhǔn)備發(fā)送數(shù)據(jù)并啟動(dòng)延時(shí)時(shí),DATA引腳從高電平切換為低電平產(chǎn)生一個(gè)下降沿,外部MCU引腳可設(shè)置為下降中斷,在休眠和正常狀態(tài)之間切換;在輸出延時(shí)10ms內(nèi),外部MCU可從休眠中醒來并初始化相關(guān)外設(shè)。
提示外部MCU接收數(shù)據(jù)
如果為非低功耗應(yīng)用,模塊將要發(fā)送數(shù)據(jù)時(shí),DATA引腳產(chǎn)生的下降沿也可以提醒外部MCU,可以開啟串口接收透傳數(shù)據(jù)了。 即外部MCU連接至DATA的引腳可設(shè)置為下降沿中斷,這樣當(dāng)模塊每當(dāng)要發(fā)送數(shù)據(jù)時(shí),外部MCU可及時(shí)整理本地內(nèi)存,存放即將接收的數(shù)據(jù)。
注意事項(xiàng)
在開啟輸出延時(shí)后,有以下注意事項(xiàng):
不支持流傳輸,因?yàn)樵谘訒r(shí)期間,串口處于空閑狀態(tài),串口數(shù)據(jù)流會(huì)出現(xiàn)分幀;
若空中數(shù)據(jù)包接收得過快,會(huì)導(dǎo)致數(shù)據(jù)整包丟失;
因此,輸出延時(shí)較適用于數(shù)據(jù)量不大且外部MCU不斷地進(jìn)入休眠狀態(tài)的應(yīng)用。
總結(jié)
我司大部分藍(lán)牙模塊均支持?jǐn)?shù)據(jù)有效指示功能,可根據(jù)實(shí)際情況啟用該功能,但需要注意的是,在開發(fā)硬件時(shí),已將DATA引腳引出且連接至外部MCU。數(shù)據(jù)有效指示功能為實(shí)現(xiàn)更低功耗提供了可能,也便于二次開發(fā)省時(shí)省力。