USB之ch376s数据手册

         最近师兄交给我一个项目,虽说刚学嵌入式起步,但上手一个项目怎说都是最好的快速学习方式。因为刚了解ch376s管理U盘的数据,所以先是看了ch376s的数据手册。那我就把数据手册直接放上来吧。。。。

     1、概述
CH376 是文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。
CH376 支持 USB 设备方式和 USB 主机方式,并且内置了 USB 通讯协议的基本固件,内置了处理
Mass-Storage 海量存储设备的专用通讯协议的固件,内置了 SD 卡的通讯接口固件,内置了 FAT16 和
FAT32 以及 FAT12 文件系统的管理固件,支持常用的 USB 存储设备(包括 U 盘/USB 硬盘/USB 闪存盘
/USB 读卡器)和 SD 卡(包括标准容量 SD 卡和高容量 HC-SD 卡以及协议兼容的 MMC 卡和 TF 卡)。
CH376 支持三种通讯接口:8 位并口、SPI 接口或者异步串口,单片机/DSP/MCU/MPU 等控制器可
以通过上述任何一种通讯接口控制 CH376 芯片,存取 U 盘或者 SD 卡中的文件或者与计算机通讯。
CH376 的 USB 设备方式与 CH372 芯片完全兼容,CH376 的 USB 主机方式与 CH375 芯片基本兼容。
下图为 CH376 的应用框图。


2、特点
● 支持 1.5Mbps 低速和 12Mbps 全速 USB 通讯,兼容 USB V2.0,外围元器件只需要晶体和电容。
● 支持 USB-HOST 主机接口和 USB-DEVICE 设备接口,支持动态切换主机方式与设备方式。
● 支持 USB 设备的控制传输、批量传输、中断传输。
● 自动检测 USB 设备的连接和断开,提供设备连接和断开的事件通知。
● 提供 6MHz 的 SPI 主机接口,支持 SD 卡以及与其协议兼容的 MMC 卡和 TF 卡等。
● 内置 USB 控制传输的协议处理器,简化常用的控制传输。
● 内置固件处理海量存储设备的专用通讯协议,支持 Bulk-Only 传输协议和 SCSI、UFI、RBC 或
等效命令集的 USB 存储设备(包括 U 盘/USB 硬盘/USB 闪存盘/USB 读卡器)。
● 内置 FAT16 和 FAT32 以及 FAT12 文件系统的管理固件,支持容量高达 32GB 的 U 盘和 SD 卡。
● 提供文件管理功能:打开、新建或删除文件、枚举和搜索文件、创建子目录、支持长文件名。
● 提供文件读写功能:以字节为最小单位或者以扇区为单位对多级子目录下的文件进行读写。


 3.
● 提供磁盘管理功能:初始化磁盘、查询物理容量、查询剩余空间、物理扇区读写。
● 提供 2MB 速度的 8 位被动并行接口,支持连接到单片机的并行数据总线。
● 提供 2MB/24MHz 速度的 SPI 设备接口,支持连接到单片机的 SPI 串行总线。
● 提供最高 3Mbps 速度的异步串口,支持连接到单片机的串行口,支持通讯波特率动态调整。
● 支持 5V 电源电压和 3.3V 电源电压以及 3V 电源电压,支持低功耗模式。
● USB 设备方式完全兼容 CH372 芯片;USB 主机方式基本兼容 CH375 芯片。
● 提供 SOP-28 和 SSOP20 无铅封装,兼容 RoHS,提供 SOP28 到 DIP28 的转换板,SOP28 封装的
引脚基本兼容 CH375 芯片。
3、封装



4、命令
本手册中的数据,后缀 B 为二进制数,后缀 H 为十六进制数,否则为十进制数。
低字节在前(Little-Endian)的双字数据(共 32 位)指:先是最低字节(位 7~位 0),接着是
较低字节(位 15~位 8),然后是较高字节(位 23~位 16),最后是最高字节(位 31~位 24)。
数据流是指由若干连续字节组成的数据块,数据块的总长度最小为 0,最大为 255。
下表输入数据和输出数据的括号中的数字为参数的字节数,没有括号则默认为一个字节。
本手册中所指的单片机基本适用于 DSP 或者 MCU/MPU/SCM 等。
本手册中所指的 U 盘包括 U 盘、USB 外置硬盘、USB 闪存盘、USB 读卡器等。
本手册中所指的 SD 卡包括 SD 卡、MMC 卡、HC-SD 卡(高容量 SD 卡)、TF 卡等。
本手册主要提供了常用的文件管理控制类命令,用于 U 盘和 SD 卡。关于一些不太常用的辅助命
令和执行 USB 基本事务及控制传输的命令请参考手册(二)CH376DS2.PDF。
CH376 芯片包含了 CH372 芯片的全部功能,本手册中没有提供 CH376 在 USB 设备方式下的说明,
相关资料可以参考 CH372 手册 CH372DS1.PDF。
代码 命令名称 CMD_ 输入数据 输出数据 命令用途
01H GET_IC_VER 版本号 获取芯片及固件版本
分频系数
02H SET_BAUDRATE
分频常数
(等 1mS)
操作状态 设置串口通讯波特率
03H ENTER_SLEEP 进入低功耗睡眠挂起状态
05H RESET_ALL (等 35mS) 执行硬件复位
06H CHECK_EXIST 任意数据 按位取反 测试通讯接口和工作状态
数据 16H
0BH SET_SDO_INT
中断方式 设置 SPI 的 SDO 引脚的中断方式
0CH GET_FILE_SIZE 数据 68H 文件长度(4) 获取当前文件长度
15H SET_USB_MODE 模式代码 (等 10uS)
操作状态 设置 USB 工作模式
22H GET_STATUS 中断状态 获取中断状态并取消中断请求
数据长度
27H RD_USB_DATA0
数据流(n)
从当前 USB 中断的端点缓冲区或者
主机端点的接收缓冲区读取数据块
CH376 手册(一) 4
数据长度
2CH WR_HOST_DATA
数据流(n)
向 USB 主机端点的发送缓冲区
写入数据块
数据长度
2DH WR_REQ_DATA
数据流(n)
向内部指定缓冲区
写入请求的数据块
偏移地址
2EH WR_OFS_DATA 数据长度
数据流(n)
向内部缓冲区指定偏移地址
写入数据块
2FH SET_FILE_NAME 字符串(n) 设置将要操作的文件的文件名
30H DISK_CONNECT 产生中断 检查磁盘是否连接
31H DISK_MOUNT 产生中断 初始化磁盘并测试磁盘是否就绪
32H FILE_OPEN 产生中断 打开文件或目录,枚举文件和目录
33H FILE_ENUM_GO 产生中断 继续枚举文件和目录
34H FILE_CREATE 产生中断 新建文件
35H FILE_ERASE 产生中断 删除文件
36H FILE_CLOSE 是否允许更新 产生中断 关闭当前已经打开的文件或目录
37H DIR_INFO_READ 目录索引号 产生中断 读取文件的目录信息
38H DIR_INFO_SAVE 产生中断 保存文件的目录信息
39H BYTE_LOCATE 偏移字节数(4) 产生中断 以字节为单位移动当前文件指针
3AH BYTE_READ 请求字节数(2) 产生中断 以字节为单位从当前位置读取数据块
3BH BYTE_RD_GO 产生中断 继续字节读
3CH BYTE_WRITE 请求字节数(2) 产生中断 以字节为单位向当前位置写入数据块
3DH BYTE_WR_GO 产生中断 继续字节写
3EH DISK_CAPACITY 产生中断 查询磁盘物理容量
3FH DISK_QUERY 产生中断 查询磁盘空间信息
40H DIR_CREATE 产生中断 新建目录并打开或打开已存在的目录
4AH SEC_LOCATE 偏移扇区数(4) 产生中断 以扇区为单位移动当前文件指针
4BH SEC_READ 请求扇区数 产生中断 以扇区为单位从当前位置读取数据块
4CH SEC_WRITE 请求扇区数 产生中断 以扇区为单位在当前位置写入数据块
50H DISK_BOC_CMD 产生中断 对USB存储器执行BO传输协议的命令
LBA 扇区地址(4)
54H DISK_READ
扇区数 产生中断 从 USB 存储器读物理扇区
55H DISK_RD_GO 产生中断 继续 USB 存储器的物理扇区读操作
LBA 扇区地址(4)
56H DISK_WRITE
扇区数
产生中断 向 USB 存储器写物理扇区
57H DISK_WR_GO 产生中断 继续 USB 存储器的物理扇区写操作
如果命令的输出数据是操作状态,参考下表。
状态代码 状态名称 状态说明
51H CMD_RET_SUCCESS 操作成功
5FH CMD_RET_ABORT 操作失败
表中标为“产生中断”的命令通常需要时间去执行操作。CH376 在命令执行完成后向单片机请求
中断,单片机可以读取中断状态作为该命令的操作状态。如果中断状态是 USB_INT_SUCCESS,那么说
明操作成功,有些命令具有返回数据(参考 CH376INC.H 文件中的 CH376_CMD_DATA 结构),可以通过
CMD_RD_USB_DATA0 命令读取返回数据

猜你喜欢

转载自blog.csdn.net/guiwukejiBGG/article/details/81211008