KT6368A藍牙芯片新增主機模式,掃描周邊的胎壓傳感器,這里扮演的角色就是觀察者。因為測試胎壓傳感器,發現它的廣播模式可發現,不可連接
胎壓傳感器部分的手冊說明如下,關于藍牙部分的協議
實際藍牙芯片收到的數據,轉發串口之后的數據格式如下:
4C 43 54 50 4D 53 2C 3A 85 92 3B CD FB 2C 07 3B 92 85 3A 83 4D B7 10 20 6D
這一組數據,有4個參數,每個參數之前,使用了‘,’=0x2C進行隔開
4C 43 54 50 4D 53?--- 對應藍牙名稱
3A 85 92 3B CD FB?--- 對應設備的mac地址
09 3B 92 85 3A 8E 4D B7 10 20?--- FF包數據,也就是核心的傳感器數據包
最后一個字節為“異或”校驗碼字節=0x6D
1、掃描全部由藍牙芯片主動完成,mcu需要控制藍牙芯片的供電
2、藍牙芯片還是500ms或者1秒搜索一下周邊合法的設備,比如“LCTPMS”
- mcu不需要掃描的時候,直接斷藍牙芯片的電源即可,這樣操作會比較靈活
4、其中增加一層數據包的校驗,主要是為了藍牙芯片和mcu之間數據的穩定性
u8 generate_xor_checksum(u8 *data, u8 length) {
????u8 checksum = 0;
????for (int i = 0; i < length; i++) {
????????checksum ^= data[i];
????}
????return checksum;
}
實測2個廣播周期,可以看出來胎壓計,大概率是廣播20秒,就進入低功耗去了
胎壓計的正反面,以及測試條件,實際上就是一個加壓的灑水壺,加壓之后傳感器就會自動喚醒并且廣播對應的數據