Transport介绍
Transort层的作用:
区分host和controler之间的hci数据是commond、event、acl、sco。比如说H4这种transport,它在hci数据前加一字节的type,来区分这四种不同的数据。
type:
0x01(commond):当controler识别到type为0x01,他就会按照commond的方式来解析hci数据
0x02(acl):当host/controler识别到type为0x02,他就会按照acl的方式来解析hci数据
0x03(sco):当host/controler识别到type为0x03,他就会按照sco的方式来解析hci数据
0x04(event):当host识别到type为0x04,他就会按照event的方式来解析hci数据
1. UART
串口是全双工的、串行协议,包括起始位、数据位、校验位、停止位、
注:空闲位为1,起始位为0,即当一端的tx线由高变低时,对端的rx接收到低电平,它就开始接收数据。
校验位分为奇校验和偶检验:
奇校验是统计数据位中1的个数,如果数据为中1的个数是4个(数据位位8位),那么校验位就得填1,即保证要有奇数个1
偶校验是统计数据为中1的个数,如果数据为中1的个数是4个(数据位位8位),那么校验位就得填0,即保证要有偶数个1
波特率:协商两边发/收一位数据用的时间,即两边的波特率要相同
比如设备A通过rx将起始位0发出去用时1秒,那么设备B在检测到rx为低时,要保持1秒的时间,这样设备B才能确定这是一个0
如果波特率不同,如A 1秒发送一位数据,B 0.9秒接收一位数据,那么9秒后,A发送了9bit,而B能解析10bit,这样就不对。
H4:
数据格式:
H4需要硬件流控,其原理如下:
RTS为输出信号,低电平有效,即当RTS为低时,表示本设备可以接收数据;
CTS为输入信号,也是低电平有效,即当CTS为低时,表示本设备可以向对端设备发送数据了
如A设备要接收数据,那么它就要将自己的RTS拉低,表示自己可以接受数据;A的RTS和B的CTS相连,这样B的CTS也会被拉低,B就会像A发送数据。
H5:
BCSP:
2. USB
usb分为host和device角色,如usb的鼠标,鼠标作为device角色,电脑作为host角色
H2: