蓝⽛通讯协议
⼀、数据透传
  蓝⽛模块可以通过串⼝(SPI、IIC)和MCU控制设备来进⾏数据传输。蓝⽛模块可以做主机和从机两种模块。主机模式就是能够搜索别的蓝⽛模块并且主动与之建⽴连接。⽽从机模式不能主动的建⽴连接,只能够等主机连接⾃⼰。
⼆、低功耗
  低功耗蓝⽛(Bluetooth Low Energy),简称为BLE。蓝⽛低能耗⽆线技术利⽤许多智能⼿段最⼤限度地降低功耗。
  蓝⽛低能耗架构共有两种芯⽚构成:单模芯⽚和双模芯⽚。蓝⽛单模器件是蓝⽛规范中新出现的⼀种只⽀持蓝⽛低能耗技术的芯⽚——是专门针对ULP操作优化的技术的⼀部分。蓝⽛单模芯⽚可以和其它单模芯⽚及双模芯⽚通信,此时后者需要使⽤⾃⾝架构中的蓝⽛低能耗技术部分进⾏收发数据。双模芯⽚也能与标准蓝⽛技术及使⽤传统蓝⽛架构的其它双模芯⽚通信。
三、蓝⽛协议组成
 蓝⽛协议体系中的协议按SIG的关注程度分为四层:
  1、核⼼协议:BaseBand、LMP、L2CAP、SDP;
  2、电缆替代协议:RFCOMM;
  3、电话传送控制协议:TCS-Binary、AT命令集;
  4、选⽤协议:PPP、UDP/TCP/IP、OBEX、WAP、vCard、vCal、IrMC、WAE。
  除上述协议层外,规范还定义了主机控制器接⼝(HCI),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接⼝。在上图中可见,HCI位于L2CAP的下层,但HCI也可位于L2CAP上层。
  蓝⽛核⼼协议由SIG制定的蓝⽛专⽤协议组成。绝⼤部分蓝⽛设备都需要核⼼协议(加上⽆线部分),⽽其他协议则根据应⽤的需要⽽定。总之,电缆替代协议、电话控制协议和被采⽤的协议在核⼼协议基础上构成了⾯向应⽤的协议。
421事件内容四、蓝⽛基本架构
  1、底层硬件模块
  (1)⽆线射频模块(Radio):蓝⽛最底层,带微带天线,负责数据接收和发送。
  (2)基带模块(BaseBand):⽆线介质访问约定。提供同步⾯向连接的物理链路(SCO)和异步⽆连接物理链路(ACL),负责跳频和蓝⽛数据及信息帧传输,并提供不同层次的纠错功能(FEC和CTC)。
  (3)链路控制模块(LC):蓝⽛数据包的编码和解码。
  (4)链路管理模块(LM):负责创建、修改和发布逻辑链接,更新设备间物理链接参数,进⾏链路的安全和控制。
  (5)主机控制器接⼝(HCI):是软硬件接⼝部分,由基带控制器、连接管理器、控制和事件寄存器等组成;软件接⼝提供了下层硬件的统⼀命令,解释上下层消息和数据的传递。硬件接⼝包含UART、SPI和USB等。
    2、中间协议层
  (1)逻辑链路控制与适配协议(L2CAP):蓝⽛协议栈的基础,也是其他协议实现的基础。向上层提供⾯向连接和⽆连接的数据封装服务;采⽤了多路技术、分割和重组技术、组提取技术来进⾏协议复⽤、分段和重组、认证服务质量、组管理等⾏为。
  (2)⾳视频发布传输协议(AVDTP)和⾳视频控制传输协议(AVCTP):⼆者主要⽤于Audio/Video在蓝⽛设备中传输的协议,前者⽤于描述传输,后者⽤于控制信号交换的格式和机制。
  (3)服务发现协议(SDP):蓝⽛技术框架⾄关重要⼀层,所有应⽤模型基础。动态的查询设备信息和服务类型,建⽴⼀条对应的服务通信通道,为上层提供发现可⽤的服务类型和属性协议信息。
  (4)串⼝仿真协议(RFCOMM):实现了仿真9针RS232串⼝功能,实现设备间的串⾏通信。
  (5)⼆进制电话控制协议(TCS):基于 ITU-T Q.931 建议的采⽤⾯向⽐特的协议,它定义了⽤于蓝⽛设备之间建⽴语⾳和数据呼叫的控制信令(Call Control Signalling),并负责处理蓝⽛设备组的移动管理过程。
  3、蓝⽛Profile
  Bluetooth Profile是蓝⽛设备间数据通信的⽆线接⼝规范。⽬前有四⼤类、⼗三种协议规则,⼚商可以⾃定义规格。⼏种最常见的Profile ⽂件:
  (1)通⽤访问配置⽂件(GAP):其他所有配置⽂件的基础,定义了在蓝⽛设备间建⽴基带链路的通⽤⽅法,并允许开发⼈员根据GAP定义新的配置⽂件。包含所有蓝⽛设备实施的功能,发现和连接设备的通⽤步骤,基本⽤户界⾯等通⽤操作。
  (2)服务发现应⽤配置⽂件(SDAP):描述应⽤程序如何⽤SDP发现远程设备服务,可与向/从其他蓝⽛设备发送/接收服务查询的SDP连接。
  (3)串⾏端⼝配置⽂件(SPP):基于ETSI TS 07.10规格定义如何设置虚拟串⾏端⼝及如何连接两个蓝⽛设备。速度可达128kb/s。
  (4)通⽤对象交换配置⽂件(GOEP):可以将任意对象(如图⽚、⽂档等)从⼀个设备传输到另⼀个设备。
  五、蓝⽛协议栈层次
 1、物理层(PHY):射频传输。
  2、链路层(LL):控制射频状态,包括等待、⼴告、扫描、初始化、连接。
  3、主机控制接⼝层(HCI):主机和控制器通信接⼝。
  4、逻辑链路控制及适配协议层(L2CAP):提供数据封装服务,允许逻辑上点对点通信。
  5、安全管理层(SM):加解密,为安全连接和数据交换提供服务。
  6、属性协议层(ATT):允许设备(服务器)向另⼀个设备(客户端)展⽰特定的数据(属性)。
  7、通⽤属性配置⽂件层(GATT):定义了使⽤ATT的服务框架,两个建⽴连接的设备之间的所有数据通信都是通过GATT⼦程序处理。
  8、通⽤访问配置⽂件层(GAP):对所有蓝⽛设备提供共同的功能,如传输模式和访问程序、协议和应⽤描述。GAP服务包含设备发现、连接模式、安全、认证、联合模型和服务发现。
 六、蓝⽛传输过程
  1、主从机建⽴过程
  2、主从通信透传模块
 分为主透传协议模块(MTTM)和从透传协议模块(STTM)。
  MTTM可以⼯作在透传模式(TTM)和指令模式(CM),⼯作如下:⽤户通过AT指令控制模块连接从设备。在成功建⽴链接
后,MTTM⾃动查从设备的透传通道,如果从设备属于STTM,MTTM默认进⼊TTM,否则进⼊CM。
  透传模式,⽬的是实现透传或直驱控制功能,主机CPU可以通过通⽤串⼝模块与STTM双向通信,MTTM直接将数据转发给STTM,再从STTM串⼝输出到从机CPU。反向亦可。