transport


1,transport


HCI的数据格式:


1)HCI COMMAND :由host发送给controller的命令
2)HCI EVENT:由controller上报给host的事件
3)HCI ACL:host跟controller双向交互的普通数据
4)HCI SCO: controller和host双向交互的通话/语音识别数据
5)HCI ISO: BLE audio

Transport作用:


1,解决问题核心(区分数据格式,发送的数据格式是什么类型的)
2,补充其他功能 (WS 流控)

分类:
串口:H4 H5 BCSP
USB:H2
SD:
本质上每一种传输协议会有1BYTE来表示自己的身份


UART协议


1,UART概念


串行数据总线
全双工


1)并行发送数据

发射器 0 -> 0   接收器 
           1 -> 1
           2 -> 2
              ....
           7 -> 7   
特点:不抗干扰,距离近,速率快,成本高

2)串行发送数据


发射器 0 1 2 3 4 5 6 7 -> 0 1 2 3 4 5 6 7接收器
特点:抗干扰,距离远,速率慢,成本低

3)UART数据格式

①起始位   开始数据传输时发送方要先发一个低电平‘0’来表示传输字符的开始。由于空闲位一直是高电平,所以开始传输时发送一个明显区别于空闲状态的信号低电平。

②数据位    数据可以是5,6,7,8,9位 可配置,一般都是8位。先发送最低位,后发送最高位。

③校验位    奇偶校验

4)数据速率

115200  921600 3M.....

波特率(bps   bit per second)

Q1:真实的传输user速率是多少呢?

A1:取决于数据位/校验位/停止位各自配置多少,比如我们数据位配置为8,校验位无,停止位为1,那么速率应该为115200/(1+8+1) = 11620 BYTE/S

Q2:为什么uart没有时钟。是如何采集数据呢?

A2:取决于波特率的,收发双方对齐波特率即可。

Q3:为什么每个data都要经历一遍开始位,校验位,停止位这个过程呢?

A3:防止ppm误差造成大量数据包出错

5)流控

一般UART传输数据只通过RX/TX即可,如果需要硬件流控,则需要CTS/RTS,一般在蓝牙H4 transport需要流控

流控原理:

RTS(require to send,发送请求)为输出信号。本设备准备好接收数据,低电平有效。

CTS(clear to send,发送允许)为输入信号,是否可以向对方发送数据,低电平有效。

如果设备A要给设备B发送数据,需要先检测local CTS是否拉低,如果是低电平,则可以发送数据。

如果设备A要接受B的数据,先拉低RTS表述可以接受,然后B开始发数据。

USB

1,概念

host/device两个角色

  • Host(主机): 主机是USB总线的控制方,负责管理和控制数据传输。它会向设备发送请求,管理USB设备的连接、断开和供电等功能。在大多数情况下,Host通常是计算机、智能手机或嵌入式系统。

  • Device(设备): 设备是由主机控制的从属设备,它响应主机的请求并进行数据传输。USB设备的典型例子包括鼠标、键盘、打印机、存储设备等。

  • 电脑是Host:它管理整个USB连接,负责轮询鼠标、获取鼠标的输入数据,并供电给鼠标。

  • 鼠标是Device:它等待电脑(Host)的请求,响应请求并将用户操作数据(例如鼠标移动和按键点击)传输给电脑。

2,TYPE-A  TYPE-B TYPE-C

3,USB设备的插入检测和速度检测

1. VBUS 电压检测

在 USB 接口中,有一条称为 VBUS 的电源线,当 USB 设备插入后,它会从主机(如计算机、手机等)获取电源(通常是 +5V)。USB 控制器通过监测 VBUS 引脚上的电压来判断设备是否插入。

  • 无设备连接时:VBUS 电压为 0。
  • 设备插入时:VBUS 电压上升到 5V,控制器检测到这个电压变化,便可以确认有设备连接。

2. D+ 和 D- 信号线检测

在 USB 2.0 及以下版本的设备中,除了 VBUS 之外,控制器还会通过 D+ 和 D- 两根信号线的上拉或下拉电阻状态来识别设备类型(如低速、全速和高速设备)。

  • 低速(LS)设备:在 D- 线上有上拉电阻(1.5kΩ),控制器会检测到 D- 线上拉。
  • 全速(FS)设备:在 D+ 线上有上拉电阻(1.5kΩ),控制器会检测到 D+ 线上拉。
  • 高速(HS)设备:在初始阶段和全速设备相同(D+ 线上拉),但在后续握手过程中会切换到高速模式。

通过这些上拉电阻的位置,USB 控制器可以判断设备是否为低速、全速还是高速,从而进行相应的配置。

4,USB的枚举过程

当设备连上之后。。。。

主机(host):你是什么设备呀?

设备(device):device descriptor。。

H:你有几种功能呀?

D:configuration descriptor。。。

H:每个功能有几个接口呀?

D:interface descriptor。。。

H:每个接口使用哪几个端点?

D:endpoint decriptor。。。

H:好了,我知道你是谁了,开始传数据吧

D:OK gogogo

usb协议封包直接对着协议抓wireshark包分析即可。

5,USB传输类型

1,控制传输(controller): 非周期性,突发

·用于命令和状态的传输

2,大容量数据传输:非周期性,突发

·U盘,数据 任意带宽,允许延迟

3,同步传输:周期性

·电话语音  持续性传输

4,中断传输

·HCI event 

H4 解读

1,模型

1)HCI COMMAND :由host发送给controller的命令
2)HCI EVENT:由controller上报给host的事件
3)HCI ACL:host跟controller双向交互的普通数据
4)HCI SCO: controller和host双向交互的通话/语音识别数据
5)HCI ISO: BLE audio

TLV模型

2,RS232

流控用于方式buff太快。

 3,Error recovery

假如type丢了怎么办呢?

比如controller 收到错的commend,那他会报给host一个HCI_HW_ERROR,此时host会重新reset

H2解读

1,USB的transport叫H2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值