自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (8)
  • 论坛 (1)
  • 收藏
  • 关注

原创 从零开始学USB(十四、USB数据传输的组织形式)

在前面的十一节中,学习了USB中传输中一个包是由多个域组成。https://blog.csdn.net/qq_16777851/article/details/85226005 在前面的十二节中,学习了USB传输中学习了包的形式有哪些(令牌包、数据包、应答包等),以及各自的特点和功能。https://blog.csdn.net/qq_16777851/article/details...

2018-12-31 19:00:00 3930 2

原创 从零开始学USB(十三、USB的四种传输类型(2))

虽然USB定义了数据在总线上传输的基本单位是包,但是我们还不能随意地使用包来传输数据。必须按照一定的关系把这些不同的包组织成事务(Transaction)才能传输数据一、USB事务那么事务是什么呢?事务通常由两三个包组成:令牌包,数据包 和握手包。令牌包用来启动一个事务,总是由主机发送。 数据包传送数据,可以从主机到设备,也可以从设备到主机,方向由令牌包决定。 握手包的发送者通常为...

2018-12-31 16:32:45 2988 2

原创 从零开始学USB(十二、USB包的分类和具体格式)

前面章节学习了USB的包的简要结构组成。本节从四种分类上来学习一下他们的使用场景。 一、令牌包令牌由PID组成,指定IN,OUT或SETUP数据包类型以及ADDR和ENDP字段。 PING特殊令牌包也具有与令牌包相同的字段。对于OUT和SETUP事务,地址和端点字段唯一识别将接收后续数据包的端点。对于IN事务,这些字段唯一地标识哪个端点应该传输数据包。对PING事务,这些字段唯一地...

2018-12-30 23:45:56 5150 5

原创 从零开始学USB(十一、USB包的结构)

USB是串行总线,所以数据是一位一位地在数据线上传送的。既然是一位一位传送的,就存在着一个数据位的先后问题。USB采用的是LSB在前的方式,即现出来的是最低位的数据,接下来是次低位....最后是最高位(MSB)。一个包有被分成很多个域(field),而LSB、MSB就是以域来为单位划分的。这里还有一个数据传输方向的问题,因为在USB系统中,主机处于主导地位,所以把设备到主机的数据叫做输入,...

2018-12-23 22:30:23 6331 2

原创 从零开始学USB(十、USB的描述符)

USB设备使用描述符报告其属性。描述符是具有定义格式的数据结构。每个描述符都以字节宽度字段开头,该字段包含描述符中的总字节数,后跟一个标识描述符类型的字节宽度字段。使用描述符允许简单地存储各个配置的属性,因为每个配置可以重用具有相同特征的其他配置的描述符或描述符的部分。以这种方式,描述符类似于关系数据库中的各个数据记录。适当时,描述符包含对字符串描述符的引用,这些字符串描述符提供以可读形式...

2018-12-23 14:10:27 16126 1

原创 从零开始学USB(九、USB的传输类型(1))

一、传输类型USB通过与主机上的客户端软件相对应的内存储器区和USB设备上的端点之间的管道传输数据。 消息管道传输的数据以USB定义的结构传输,但USB允许特定设备的结构化数据在USB定义的消息数据有效负载内传输。 USB还定义了对于任何管道(流或消息),数据经过总线时都要进行分组,但最终在总线事务的数据有效载荷中传输的数据的格式化和解释是客户端软件和功能的责任。 但是,USB提都要供了不同的...

2018-12-20 22:08:24 5253 1

原创 从零开始学USB(八、USB的数据流模型)

一、实施者观点USB在主机和连接的USB设备之间提供通信服务。 但是,简单查看最终用户看到将一个或多个USB设备连接到主机,如图5-1所示,实际上是一点点实施起来比图中所示更复杂。 需要系统的不同视图从不同实施者的角度解释具体的USB要求。 几个重要的必须支持概念和功能,以便为最终用户提供所需的可靠操作今天的个人电脑。 USB以分层的方式呈现,以便于解释和允许特定USB产品的实施者专注于与其产...

2018-12-19 21:34:05 4250

原创 从零开始学USB(七、端点、管道、接口、配置、设备)

端点(endpoint):端点是USB设备的唯一可识别部分,其是主机和设备之间的通信流的终点。它是一个USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据。每个USB逻辑设备由一组独立的端点组成。每个逻辑设备都有一个由系统在设备连接时分配的唯一地址。设备上的每个端点在设计时都会得到一个唯一的设备确定的标识符,称为端点号。每个端点都有一个设备确定的数据流方向。设备地址,端点号和方向的组...

2018-12-16 22:06:39 9583 2

原创 从零开始学USB(六、USB通讯的数据格式)

USB中用NRZI来编码数据前面章节已经学习过了USB的引脚定义了,但是对于其中的USB 2.0的两根数据线D+和D-所对应的数据传输,却没有详细介绍。此处就是介绍,在此串行数据线中,数据是如何被编码和传送的。USB所传输的数据,用的数据编码方式是NRZI(Non-Return-to-Zero Inverted),其具体的含义解释,看到有位网友已经非常清晰的分析过了,我就不重复造轮子了。...

2018-12-16 16:59:48 6587 10

原创 从零开始学USB(五、USB的电器特性)

关于机械特性就不在这里详细描述了,这里列出几个重要的知识点。USB电缆:标准的USB电缆包括一对用于电源分配的20~28AWG规格的线对和一对28AWG规格的双绞线,并具有屏蔽和完整的保护层。高速(480 Mb / s)和全速(12 Mb / s)要求使用带有两根电源导线和双绞线信号导线的屏蔽电缆。低速(1.5 Mb / s)建议,但不要求使用带双绞线信号导线的电缆。连接器设计为热插...

2018-12-15 00:19:04 4673 1

原创 从零开始学USB(四、USB系统结构)

一个USB系统可以从三个定义区域来描述:USB互联 USB设备 USB主机USB互连是USB设备与USB主机连接和通信的方式。 这包括以下内容:总线拓扑:USB设备与主机之间的连接模型。层间关系:USB在系统中的每一层都要完成一定的任务。数据流模型:数据在生产者之间通过USB在系统中移动的方式和消费者。任务规划:USB提供可以共享的互连机制。通过规划对互连机制的访问,可以支持同...

2018-12-14 21:35:49 4908 2

原创 从零开始学USB(三、基础知识3)

1. USB 2.0协议内容概览当前最新的USB协议,已经发展到USB 3.0了。但是主流的USB设备和技术,还是以USB 2.0居多。所以此文,主要是以USB 2.0为基础来学习USB协议的基础知识,当然,会在相关内容涉及到USB 3.0的时候,也把USB 3.0的相关内容添加进来。关于USB 2.0和USB 3.0等USB的协议规范,可以去官网下载:http://www.usb.o...

2018-12-12 21:32:14 6800 3

原创 从零开始学USB(二、基础知识2)

1.USB相关的硬件USB设备,从物理上的逻辑结构来说,包含了主机Host端和设备Device端。其中,主机Host端,有对应的硬件的USB的主机控制器Host Controller,而设备端,连接的是对应的USB设备。1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI由于历史原因,导致USB的主机控制器,出现了多种不同的类型,即OHCI和UHCI,EHCI,和xH...

2018-12-08 21:40:55 6962 5

原创 从零开始学USB(一、基础知识1)

1.什么是USB?USB是Universal Serial Bus的缩写,中文译为通用串行总线。正如USB的第一个单词表述的那样,为了通用。那么我们看一下,还有哪些总线不是串行的,哪些是不通用的串行总线下表来自《USB Complete》里面对一些常见总线所总结的一些区别:当然上表中关于SPI的2.1M肯定是不对的,之前学习单片机的时候用STM32的SPI接口读写SD卡,现...

2018-12-08 19:04:26 8473 1

基于51单片机写的一个多任务切换的简易OS

里面代码是本人亲自手写的一个基于51单片机的多任务切换代码,核心代码只有不到200行,可以从代码层面方便单片机开发者了解任务切换的原理和使用,里面没有使用任何复杂的算法。

2018-07-22

linux0.11源代码

里面包含有linux0.11版本的原版代码和 赵炯博士对里面所有代码的注释。

2018-07-22

输入子系统编程模板

尴尬,我自己的某个博客要用。这个东西我不想设置分数的,结果不能为0分。

2018-07-29

51单片机移植的ucosii嵌入式操作系统

对ucosii中不必要的内容进行了裁剪。因为51单片机的idata很小,这份代码用了51单片内部的idata作为当前运行任务的任务栈,其它没被运行的任务的栈则被放置在内存较大的xdata区。但因为51单片机的汇编语句少,简单,可以作为其他处理器移植ucosii的模版和参考,同时也是学习51单片机递增以及高级应用的实例。

2018-07-22

read-copy-update

linux锁机制的经典文档,read - copy - update。来自linux社区。

2018-09-25

USB_HID的两篇官方文档

Device Class Definition for Human interface Devices和 HID Usage Tables两篇官方文章,保存起来,已被更换电脑后用

2019-01-10

基于51单片机移植的ucosii的代码

对ucosii中不必要的内容进行了裁剪。这份代码用了51单片内部的idata作为任务栈,因为51单片机的idata很小,所以这份代码可以运行的任务数量比较少。但因为51单片机的汇编语句少,简单,可以作为其他处理器移植ucosii的模版和参考。

2018-07-22

C陷阱与缺陷

c开发者必有的一本经典好书,你值得拥有,经典中的经典

2015-07-24

to_run_away的留言板

发表于 2020-01-02 最后回复 2020-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除