EZ-USB开发笔记(九)——USB传输

本文介绍了USB2.0传输的基本概念,包括USB拓扑结构、包的分类(如令牌包、数据包、握手包、特殊包)、USB事务、传输类型(批量、同步、中断、控制)以及USB帧。重点阐述了EZ-USB串行引擎如何处理USB数据传输,并在CPU复位期间实现固件程序的下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文简单介绍USB2.0传输的一些概念,为方便了解EZ-USBUSB中断和端点。由于EZ-USB的串行引擎隐藏了USB收发的诸多细节,因此本文只是对USB的传输的关键概念做介绍,具体的细节需要参见USB2.0协议。

一、USB拓扑结构

USB是一种主从拓扑结构,主机叫Host,从机(设备)叫Device

一个主机连接一个根集线器(root hub),根集线器可以再扩展出其他的集线器(hub)和主控制器(host controller),主控制器即对应着主机的USB插口。

因此,从设备到主机的数据叫做输入数据,从主机到设备的数据叫做输出数据。

二、包

USB传输数据是由一个一个的包(package)传输的,每个包再细分成一个一个域。包的具体构成及操作(如同步、位填充、校验等)被USB串行引擎隐藏,这里略去不介绍。

每个包中都有一个8bit的域,用来表示正在传输的包的类型,叫做PID package ID)。

USB2.0协议一共规定了16个包,分为四个大类,如下表所示:

PID类型 PID名字
令牌类(Token) IN  OUT SOF  SETUP
数据类(Data) DATA0  DATA1  DATA2  DATAM
握手类(HandShake) ACK  NAK  STALL  NYET
特殊类(Special) PRE  ERR  SPLIT  PING

2.1 令牌包

令牌包用来启动一次USB传输事务(有关USB事务的概念见第三章)。

·输入令牌包(IN):通知设备,本次USB事务是要输入一个数据包。即本次USB事务中的数据包是输入的。

·输出令牌包(OUT):通知设备,本次USB事务是要输出一个数据包。即本次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值