从来也没写过技术博客,最近在男票的积极鼓励下,在系统学习蓝牙,写下今天的收获,持续更新中~~~
1.蓝牙的系统架构,从底到上:如下图:
按照我自己看的文章总结,
上层的大多是Profile
底层的大多是:Protocol
详细如下图:
以上资料整理自wikipedia.
后续会根据使用场景提取某些profile和protocol之间的关系。
今天学习了马建仓老师书里面的
第5章 HCI协议
下面列一下这部分的框架,前面几章也都看了,但因为比较偏底层,偏硬件和射频,没太看懂,先不写前面,待后续深入理解后更新。
HCI协议部分 更新如下:
明天继续整理一下以上提到的重点:HCI 通信流程,这部分结合HCIlog看,会比较清晰,log里打印出来的就是按照通信流程一步一步打出来的。
未完待续~~
第6章L2CAP协议
HFP:Hands-Free Profile
12.利用HF端提供的号码进行拨号:
HF -> AG: ATDdd...dd
13.HF 端记忆拨号:
HF -> AG: ATD>nnn
AG -> HF : +CIEV:
14.HF 端上次号码的重播:
HF -> AG: AT+BLD
15.呼叫等待通知:
HF -> AG: CCWA
16.三方呼叫处理:
a) AG accept 3rd incoming call
AG -> HF :CCWA
HF -> AG: AT+CHLD
AG -> HF :OK
HF -> AG:AT+CHLD=...
AG -> HF :OK
b) HF out going call to 3rd
HF -> AG: ATD...
AG -> HF: OK
HF -> AG: AT+CHLD=...
AG -> HF :OK
HF -> AG:AT+CHLD=...
AG -> HF :OK
17.主叫号码识别通知 CLIN:Call Line Identification Notification
HF ->AG: AT+CLIN=1
AG -> HF: OK
18.HF请求关闭AG的降噪与回声消除功能
降噪:NR
回声消除:EC
HF -> AG : AT+NREC=0 要求关闭AG端的NR与EC功能,
AG -> HF: OK 若AG默认支持NR与EC功能,则回复OK表示同意关闭该功能
或者:
HF -> AG : AT+NREC=0若AG默认不支持NR与EC功能,
AG -> HF: OK
19.语音识别功能
HF请求打开或关闭AG的语音识别功能
HF -> AG : AT+BVRA=1
AG -> HF: OK 若AG默认支持语音识别功能,则回复OK表示同意打开该功能
HF -> AG : AT+BVRA=1
AG -> HF: ERROR若AG默认不支持语音识别功能,则回复ERROR
打开则发送1,关闭时发送的是0
a)HF端请求关闭:
HF -> AG : AT+BVRA=0
AG -> HF: OK
若AG不支持语音识别;
HF -> AG : AT+BVRA=0
AG -> HF: ERROR
b)AG端主动关闭语音识别功能:
AG -> HF: +BVRA:0
20.语音标志与电话号码的关联:
语音标志:VoiceTag
HF -> AG :AT+BINP=1 表示:HF向AG请求一个电话号码
AG -> HF: +BINP: (电话号码) 表示AG接受了HF的请求
AG -> HF: ERROR表示AG拒绝了HF的请求
21.发送双音多频码
双音多频码:DTMF,也就是Double T Multiple Frequency
HF -> AG: AT+VTS
AG -> HF: OK 表示AG接受了这一请求,并向网络发送了一个双音多频码
22.音量遥控
a) AG 端控制HF端的音量和Mic增益
AG -> HF: +VGM:12 控制Mic增益为12
AG -> HF: +VGS:6 控制Speaker音量为6
b)HF端通知AG端自己的音量和Mic增益
HF -> AG: AT+VGM=5
AG -> HF: OK
HF -> AG: AT+VGS=6
AG -> HF: OK
用户在HF端进行音量调节:
HF -> AG: AT+VGS=7
AG -> HF: OK