- 博客(56)
- 收藏
- 关注
原创 USB2.0之设备枚举(Enumeration)
USB主机在检测到USB设备的插入后,就会对设备进行枚举。枚举过程主机将获得设备的各种描述符信息,从而知道设备是怎样的设备,需要如何通信,然后加载合适的驱动进行操作。
2025-03-08 10:02:21
481
原创 USB2.0之设备请求(Device Requests)
所有USB设备都要响应USB主机通过默认控制管道发送过来的请求(Requests),USB协议定义了一个8字节的标准请求,主要用在设备的枚举过程中。这8字节的数据是在控制传输的SETUP阶段发送给默认控制端点0的。在这8字节的数据中,包含了DATA阶段数据传输的方向、长度、类型等信息。
2025-02-12 11:42:51
726
原创 USB2.0之描述符(Descriptors)
描述符是设备本身各项信息的集合,主机通过获取描述符的内容得知设备的情况,从而知道如何与设备通信(加载对应的驱动程序)。描述符包括设备描述符(Device Descriptors)、配置描述符(Configuration Descriptors)、接口描述符(Interface Descriptors)、端点描述符(Endpoint Descriptors),字符串描述符(String Descriptors)
2025-01-01 15:39:35
429
原创 USB2.0之协议规范——信息包(packet)与传输(transfer)
包是 USB 总线是数据传输的最小单位,不能被打断或干扰,否则会引发错误。若干个数据包组成一次事务传输(transaction),一次事务传输也不能打断,属于一次事务传输的几个包必须连续,不能跨帧完成。一次传输(transfer)由一次到多次事务传输构成,可以跨帧完成。
2024-11-17 13:59:50
1260
原创 USB2.0之数据流模型(Data Flow Model)
在 HSOT 端,应用软件( ClientSW)不能直接访问 USB 总线,而必须通过 USB 系统软件和 USB 主机控制器来访问 USB 总线,在 USB总线上和 USB设备进行通讯。设备级则完成从功能级到传输级的转换,把一次功能级的行为转换为一次一次的基本传输;USB 总线接口层则处理总线上的 Bit 流,完成数据传输的物理层实现和总线管理。USB Driver (USBD):通过合适的HCD将IRPs(I/O Request Packets)转换成各种传输(transfers)。
2024-11-10 19:37:27
364
原创 USB2.0之架构简述
主机与设备端点(Endpoint)之间的数据传输可以看作是管道(Pipe)模型,这是逻辑上的管道概念,设备上有多个端点,每个端点只能处理规定的数据类型,那么主机就要明确数据是发给哪个端点的,如此主机和每一个端点就有了独立的捆绑关系,在逻辑上类似于在两者之间架设了直连管道传输数据。主机发送过来的数据,由端点接收,设备要发送给主机数据,也由端点发送。,由于时间的限制,USB系统最多拓展到7层,其中的hub最多只能级联5层(不包括root hub)。每一个设备都有端点0,设备的信息都是通过端口0发送给主机的。
2024-11-03 19:44:02
1097
原创 SD2.0 Specification之命令(Commands)
按功能,SD卡的命令被分为11类,但一张SD卡不需要支持所有的类别的命令,除了类别 0, 2, 4, 5, 7, 8 必须有,其它类别的可以选择性支持。
2024-10-20 18:03:06
414
原创 SD2.0 Specification之状态信息(Status information)
SD卡有2种用于描述状态的字段,一种称为卡状态(Card Status),一种称为SD状态(SD Status)。卡状态(Card Status)有32 bits,描述的是一个命令执行后的错误与状态情况,通常作为响应给出。SD状态(SD Status)有512 bits,用于支持特定功能或者将来的功能拓展。
2024-10-14 16:25:16
1213
原创 SD2.0 Specification之SD卡寄存器(Card Register)
每一张SD卡都有一系列SD卡寄存器,这些寄存器包含了SD卡的各种信息。
2024-10-10 17:34:08
1416
原创 SD2.0 Specification之CPRM(Content Protection for Recordable Media)
CPRM是一种防止内容未经许可而被复制传播的技术,可用于商业娱乐影音内容、版权等的保护。
2024-09-29 20:28:44
448
原创 FAT32文件系统详解
则在目录项中,记录的首簇号是3,而在FAT表中,簇3对应的FAT条目里面记录的是4,,簇4对应的FAT条目记录的则是5,而簇5对应的FAT条目记录的则是结束标志 0x0FFFFFFF。它的大小是512 byte,对这个扇区有多种叫法----启动扇区(boot sector),保留扇区(reserved sector),0号扇区(0th sector)等等,在DOS分区下,又被叫做操作系统引导记录区(DOS BOOT RECORD,简称DBR)。以簇为最小存储单位,即使文件大小不足1个簇,也会占用1个簇。
2023-12-02 11:50:13
765
原创 USB大容量存储类规范概述
参考资料Universal Serial Bus Mass Storage Class Specification Overview
2022-02-20 11:36:12
788
原创 三星nand flash K9K8G08U0M详解
文章目录1 特点2 一般说明3 产品介绍存储映射闪存技术说明1 特点电压 2.7V~3.6V结构 记忆单元阵列:(1G + 32M)X 8bit 数据寄存器:(2K + 64) X 8bit自动编程与擦除 页编程:(2K + 64)Byte 块擦除:(128K + 4K)Byte页读取操作 页大小:(2K + 64)Byte 随机读:最大20us 串行存取:最少25ns快速写周期 页编程时间:典型200us 块擦除时间
2020-10-17 21:34:25
11939
4
原创 从Bus Hound开始学USB之U盘
文章目录准备工作我们的USB之旅,将从这张图开始准备工作一台安装了Bus Hound软件的电脑,一个U盘。首先介绍一下Bus Hound这款软件工具,Bus Hound是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,是一个超级软件总线协议分析器,可用于捕捉来自设备的协议包和输入输出操作,本博客使用的版本是Bus Hound 6.01,软件启动界面如下图所示接下来轮到U盘登场,将U盘插入电脑,点击Bus Hound的Devices窗口,可以看到在U盘已出现在
2020-07-25 17:57:55
1100
2
原创 SPI NAND FLASH
前段时间在项目里面使用了spi nand flash,打算记录分享相关知识,所以开了本篇博客,后面会陆续补充相关内容。
2020-05-07 22:38:03
2482
原创 USB
本篇博客主要记录接触到的USB相关知识,将在一段时间内持续更新内容,如果读者发现内容有错漏,请留言,我会尽快更正相关内容。USB使用差分传输模式。VCC和GND引脚要比数据引脚长,插入时先通电,拔出时先断数据,保证芯片安全。设备描述符—>配置描述符—>接口描述符—>端点描述符每个USB设备只有一个设备描述符 。同一个端点号不能出现在同一个配置下的两个或者多个不同的接口...
2020-05-07 22:17:59
468
原创 eFuse memory
最近在项目中使用到这种小容量的存储器,将在本篇博客记录相关内容,方便以后回忆复习。在项目中使用的eFuse型号是UM055EFULP03200825400_A,该型号存储器只有256-bits,容量真的特别小,下面将介绍有关eFuse的相关知识...
2020-05-07 21:32:05
8030
原创 OneNand Flash
本篇博客将介绍OneNand flash的相关知识,将在一段时间内持续更新内容,如果读者发现内容有错漏,请留言,我会尽快更正相关内容。OneNAND可看作NOR和NAND技术的一种混合。部分三星OneNand Flash产品列表 产品 容量 电压 接口 型号 设备ID 速度 封装 512Mb A-die 512Mb 1.8V Dem...
2020-05-07 21:18:05
306
原创 Nand Flash知识集录
六大nand flash厂商三星电子(Samsung),SK海力士(SK Hynix),东芝半导体(Toshiba),西数(Western Digital),美光(Micron),英特尔(Intel)。其中的东芝半导体已被东芝公司出售,现更名为铠侠(Kioxia...
2020-05-07 20:54:43
1647
原创 Keil C51 存储模式
之前碰到过这么一个问题:一份keil C51工程,里面有几百个函数,大部分函数在运行过程中都会被调用,后来需要调试某个功能,就将主函数main里面其它功能函数的调用注释掉,结果编译后报出一堆溢出错误,当时就懵了,难道函数只定义不调用占的空间还会比调用占的空间大?仔细看了编译信息,发现都是跟数据空间溢出有关,再深入研究发现,跟keil中的存储模式有关。下图展示的就是keil 中的memory mod...
2020-05-06 21:18:09
1822
3
原创 SPI EEPROM
SPI EEPROM功能介绍:简介欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...
2020-05-02 16:29:22
13745
11
原创 CC2530之串口
本次实验,主要与CC2530的串口相关。 串口电路图如下所示 首先,先介绍一下CC2530的外设I/O引脚映射,如下图所示,每个外设单元对应两组可以选择的I/O引脚。而外设I/O位置的选择使用由寄存器PERCFG来控制,其中bit1和bit0决定UART1和UART0的位置,0表示外设位置1,1表示外设位置2.PERCFG |= 0x00;//设置UART0为外设位置1P0SEL |= 0
2018-02-04 10:32:15
8311
1
原创 CC2530之定时器T3
CC2530之定时器T3在本次学习中,主要通过定时器T3周期性的控制LED的亮灭。首先,先查看相关电路图。由图可知,当CC2530端口1的0号引脚输出低电平时,LED1将被点亮。 接下来,先查看与LED(P1_0)配置相关的寄存器。端口1功能选择寄存器(P1SEL)。这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为普通的I/O口,若设置为1,则将相关引脚设为外设I
2018-02-03 11:08:33
9785
1
原创 CC2530之定时器T1
CC2530之定时器T1在本次学习中,主要通过定时器来控制LED的亮灭。 首先,先查看相关电路图。由图可知,当CC2530端口1的0号引脚输出低电平时,LED1将被点亮。 接下来,先查看与LED(P1_0)配置相关的寄存器。端口1功能选择寄存器(P1SEL)。这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为普通的I/O口,若设置为1,则将相关引脚设为外设I/O,
2018-02-02 17:17:16
8034
原创 CC2530之ioCC2530.h
#define SFR(name,addr) __sfr __no_init volatile unsigned char name @ addr;该宏定义告诉编译器将指定的变量“name”链接到地址为“addr”的存储位置中去,__sfr表示将变量是保存在特殊功能寄存器SFR中,__no_init表示将变量保存在非初始化数据区(一个目标文件的数据区分为以初始化的和未初始化的),同时该
2018-02-02 13:34:31
3585
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人