嵌入式系统中USBHOST的扩展.doc

上传人:laozhun 文档编号:2392848 上传时间:2023-02-17 格式:DOC 页数:4 大小:439KB
返回 下载 相关 举报
嵌入式系统中USBHOST的扩展.doc_第1页
第1页 / 共4页
嵌入式系统中USBHOST的扩展.doc_第2页
第2页 / 共4页
嵌入式系统中USBHOST的扩展.doc_第3页
第3页 / 共4页
嵌入式系统中USBHOST的扩展.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式系统中USBHOST的扩展.doc》由会员分享,可在线阅读,更多相关《嵌入式系统中USBHOST的扩展.doc(4页珍藏版)》请在三一办公上搜索。

1、嵌入式系统中USB HOST的扩展摘要:某些嵌入式系统在运行时会产生大量的数据,这些数据通常要储存在USB移动存储设备中,这就要求嵌入式系统具备USB HOST,以便读写或管理 USB移动存储设备中的数据和文件。本文将介绍一种使用文件管理芯片CH376T为单片机扩展USB HOST的方式。关键词:嵌入式系统; USB移动存储设备;USB HOST;单片机USB HOST expansion in embedded systemAbstract: Some embedded systems will produce large amounts of data in working state,u

2、sually these data are stored in the USB removable storage device. So USB host is required in the embedded system in order to read or write these data. This paper will introduce a way to extend USB HOST for the SCM with file manager chip CH376T.Keywords: embedded system; USB removable storage device;

3、 USB HOST; SCM1引言 当今计算机技术、半导体技术以及电子技术的高速发展,使得嵌入式系统在各种场合中的应用更加广泛和成熟。在某些场合,嵌入式系统需要存储大量的数据,比如水纹监测数据和无人看管设备的运行数据等。为便于数据的转移和处理,通常使用USB移动存储设备来存储这些数据。这便要求嵌入式系统具有USB HOST功能,才能对U盘中的文件数据等进行读写操作,虽然目前市场上已经出现了同时内置USB HOST的单片机,但这种单片机相对比较昂贵,不符合嵌入式系统所要求的最小软硬件配置、最小成本的条件,本文给出了一种成本更加低廉的方式实现USB HOST功能,即单片机STM32F103VC配置

4、文件管理芯片CH376T的方式。2芯片介绍2.1 STM32F103VC介绍STMF103VC是意法半导体公司生产的基于ARM Corex-M3 的处理器芯片,芯片内置了256KB FLASH、48KB RAM、3路12Bit ADC、1路12Bit DAC、3路SPI、PWM、CAN、USB、SDIO和FSMC等诸多资源。特点:1)32位的RISC处理器;2)72MHz运行频率,1.25DMIPS/MHz;3) 硬件除法和单周期乘法;4)快速可嵌套中断,6-12个时钟周期;5)具有MPU保护设定访问规则。其性价比较高,只是STM32F103VC芯片内并没有USB HOST的功能,需要外围芯片

5、扩展实现。2.2 CH376T介绍CH376T是文件管理控制芯片,支持USB HOST和SLAVE方式,内置了USB通信协议基本固件和F12、F16和F32等文件系统的管理固件,可用于单片机扩展USB HOST功能,并且支持单片机通过SPI方式控制CH376T芯片,从而使单片机能够方便的读写 USB 移动存储设备中的数据文件。特点:1) 支持1.5Mbps低速和12Mbps全速USB通讯,兼容USB2.0,外围器件只需要晶体和电容;2) 支持USB设备的控制传输、批量传输和中断传输;3) 自动检测USB设备的连接和断开,提供设备连接和断开的事件通知;4) 提供文件管理功能如打开、新建或删除文件

6、、枚举和搜索文件、创建子目录、支持长文件名;5) 以字节为最小单位或者以扇区为单位对多级子目录下的文件进行读写;6) 提供磁盘管理功能:初始化磁盘、查询物理容量、查询剩余空间金额物理扇区读写。3 USB HOST扩展的硬件实现图1便是使用CH376T芯片为单片机STM32F103VC扩展USB HOST功能的硬件电路。如图CH376T的外围电路仅需要电容和晶振,电容的作用主要是退耦,而晶振Y则为CH376T提供12MHz的时钟信号输入。RESET为CH376T的外部复位信号。图1中有两种型号的USB接口:USB_A型接口和USB_B型接口。USB_A型接口可支持USB HOST(主机)和USB

7、 SLAVE(从机)两种方式,而USB_B型接口仅支持USB_SLAVE方式。所有的通信都是由USB HOST发出的,USB SLAVE则不能发起通信,即当无系统的USB设备如U盘、USB鼠标或者USB硬盘插入时,单片机可以通过USB HOST功能对USB设备中的数据进行读写操作,而U盘等设备不能主动发起通信;当有系统的设备如PC机插入时,通过HNP对话协议判断,哪个设备作主机,哪个设备作从机;而插入USB_B型接口的设备只能作从机。图1 USB HOST硬件扩展电路Fig.1 USB HOST hardware expansion circuitUSB_A型接口与USB_B型接口均需要外接5

8、V电源,USB_A型接口的2、3脚分别连接到CH376T的9(UD-)、8(UD+)脚,USB_B型接口的2、3脚则连接到单片机的USB_DM、USB_DP脚,单片机通过USB_EN脚控制接入USB设备,LED表示USB设备的通信状态。CH376T芯片通过SPI方式与单片机进行通信,如图1所示,CH376T的SDO(串行数据输出)、SDI(串行数据输入)、SCK(串行时钟输入)、SCS(片选输入)分别与单片机的SPI1_MISO、SPI1_MOSI、SPI1_SCK、USB_CS相连。SPI的操作步骤是:1) 单片机产生SPI的片选信号,低电平有效;2) 单片机按SPI的方式发出一个字节的数据

9、,CH376T总是将SPI片选SCS有效后收到的首个字节当做命令码,后续字节当数据;3) 单片机延时 TSC时间(约1.5);4) 如果是写操作,单片机向CH376T发出一个字节的待写数据,等待SPI接口空闲后,单片机继续发出若干个字节的待写数据,直到单片机禁止SPI片选;5) 如果是读操作,单片机从CH376T接收一个字节的数据,等待SPI接口空闲后,CH376T继续接收若干个字节的数据,直到单片机禁止SPI片选;6) 单片机结束CH376T芯片的SPI片选,以便结束当前的SPI操作。4 USB HOST的软件说明4.1 USB HOST软件流程图2是单片机通过USB HOST功能对USB设

10、备中的文件数据进行相关操作的软件流程图。图 2 USB HOST软件流程图Fig.2 USB software flow chart4.2文件操作程序说明4.2.1初始化,进行任何一项文件操作之前的必要步骤1)CMD_SET_USB_MODE 命令,进入USB-HOST 工作方式;2) 等待U 盘连接,U 盘可以由CH376T自动检测并产生中断通知,或者由单片机向CH376T 发出CMD_DISK_CONNECT 命令定期查询;3)CMD_DISK_MOUNT 命令,初始化U 盘,并测试磁盘是否就绪,失败后可以重试最多5 次;4)上述步骤只需执行一次,除非U 盘断开后重新连接,那么必须回到步骤

11、2)。4.2.2 顺序读文件1) CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件;2) 多次CMD_BYTE_READ 命令+CMD_RD_USB_DATA0 命令+CMD_BYTE_RD_GO 命令,读取数据;3) CMD_FILE_CLOSE 命令,关闭文件,可选操作。4.2.3 顺序改写文件(覆盖原数据,超过原文件长度后转变为追加数据)1) CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件;2) 多次CMD_BYTE_WRITE 命令+CMD_WR_REQ_DATA 命令+CMD_BYTE_WR_GO 命令,写入数

12、据;3) CMD_FILE_CLOSE 命令,参数是1,关闭文件并允许自动更新文件长度。4.2.4 向已有文件追加数据1) CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件;2) CMD_BYTE_LOCATE 命令,参数是0FFFFFFFFH,移动文件指针到文件末尾;3) 多次CMD_BYTE_WRITE 命令+CMD_WR_REQ_DATA 命令+CMD_BYTE_WR_GO 命令,写入数据;4) CMD_FILE_CLOSE 命令,参数是1,关闭文件并允许自动更新文件长度。4.2.5 新建文件并写入数据1)CMD_SET_FILE_NAME 命令+CM

13、D_FILE_CREATE 命令,新建文件;2)多次CMD_BYTE_WRITE 命令+CMD_WR_REQ_DATA 命令+CMD_BYTE_WR_GO 命令,写入数据;3)CMD_FILE_CLOSE 命令,参数是1,关闭文件并允许自动更新文件长度。4.2.6 先读文件再改写文件1)CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件;2)多次CMD_BYTE_READ 命令+CMD_RD_USB_DATA0 命令+CMD_BYTE_RD_GO 命令,读取数据;3)CMD_BYTE_LOCATE 命令,参数是0,移动文件指针到文件头部;4)多次CMD_BYT

14、E_WRITE 命令+CMD_WR_REQ_DATA 命令+CMD_BYTE_WR_GO 命令,写入数据;5)CMD_FILE_CLOSE 命令,参数是1,关闭文件并允许自动更新文件长度。4.2.7 如果文件已经存在则追加数据,如果文件不存在则新建文件再写入数据1)CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件,如果返回ERR_MISS_FILE 说明文件不存在,那么转步骤3);2)CMD_BYTE_LOCATE 命令,参数是0FFFFFFFFH,移动文件指针到文件末尾,然后转步骤4);3)CMD_FILE_CREATE 命令,新建文件;4)多次CMD_B

15、YTE_WRITE 命令+CMD_WR_REQ_DATA 命令+CMD_BYTE_WR_GO 命令,写入数据;5)CMD_FILE_CLOSE 命令,参数是1,关闭文件并允许自动更新文件长度。4.2.8 修改文件名、文件日期/时间、文件长度等文件目录信息1)CMD_SET_FILE_NAME 命令+CMD_FILE_OPEN 命令,打开文件;2)CMD_DIR_INFO_READ 命令,参数是0FFH,将文件目录信息读入内存;3)用CMD_RD_USB_DATA0 命令读出原文件目录信息;4)CMD_DIR_INFO_READ 命令,参数是0FFH,将文件目录信息读入内存;5)用CMD_WR_

16、OFS_DATA 命令写入新的文件目录信息;6)CMD_DIR_INFO_SAVE 命令,保存文件目录信息;7)CMD_FILE_CLOSE 命令,参数是0,关闭文件并禁止自动更新文件长度,可选操作。4.2.9 创建子目录(文件夹)1)CMD_SET_FILE_NAME 命令+CMD_DIR_CREATE 命令,新建子目录(文件夹);2)CMD_FILE_CLOSE 命令,参数是0,关闭文件并禁止自动更新文件长度。5 结语随着嵌入式系统在各种场合的应用越来越加广泛,尤其是在运行时会产生大量数据,并且需要存储的嵌入式系统中,本文所介绍的以文件管理芯片CH376T扩展单片机的USB HOST功能的方式,既方便了USB移动存储设备存取数据,又降低了系统成本,具有较大的实用价值。参考文献:12345

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号