USB记录
USB传输方式分为批量传输、中断传输、控制传输、实时传输。
- 批量传输:占用总线。非周期性传输。
- 中断传输:键鼠常用,需要周期性的上传数据。周期性传输
- 控制传输:必须存在,针对端点号为0的端点进行的传输。可以理解为对host对device的配置。非周期性传输。
- 实时传输:数据量要求高,如音频设备。恒定速率、错误容忍。全速设备可使用。周期性传输
控制传输讲解:
- 设置阶段:总线建立setup信息;
- 数据阶段:此阶段可有可无;
- 状态阶段:
- 传输in/out令牌包并传输data数据为0(数据字段为0)作为状态阶段;
- 已上传setup阶段指定的数据量作为结束。
实时传输讲解:
- 令牌时相;
- 数据时相;
控制传输:
控制写
控制读
特点:
- 分为3(或者2)个阶段:建立阶段(SetupStage)-->数据阶段(DataStage可有可无)-->状态阶段(StatusStage);
- DATA0开始,DATA1结束;
- 建立阶段一定是DATA0,数据阶段一定是DATA1开始,状态阶段一定是DATA1;
- 状态阶段的负载即DATA1一定为0字节;
传输-->事务-->包-->域
控制传输
主机需要下拉;从机需要上拉。
CH582主机内置下拉,不需要外接上拉;设备内置上拉,不需要外部上拉。
事务处理:
- 输入(in)事务处理;
- 令牌时相(令牌包)
- 数据时相(数据包)
- 握手时相(握手包)
- 输出(out)事务处理;
- 设置(Setup)事务处理(端点0出现);
- 帧开始(SOF);
- 帧结尾(EOP)等;
USB识别硬件连接:
低速 | 全速 | 高速 | |
主机 | D+/D-接15KΩ下拉电阻 | \ | |
设备 | D-接1.5KΩ电阻到3-3.6V电压 | D+接1.5KΩ电阻到3-3.6V电压 | 先以全速设备结构与主机连接,做双向检测 |
未连接接线 | 主机端口检测到D+/D-为0V(2.5us以上) | \ | |
连接接线 | 主机检测到D-高电压3V,D+0V(2ms以上) | 主机检测到D+高电压3V,D-0V | 主机检测到D+上高电平,然后协商握手确认身份(双向检查) |