嵌入式系统中USBHOST的扩展_第1页
嵌入式系统中USBHOST的扩展_第2页
嵌入式系统中USBHOST的扩展_第3页
嵌入式系统中USBHOST的扩展_第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_ofs_data 命令写入新的文件目录信息;6)cmd_dir_info_save 命令,保存文件目录信息;7)cmd_file_close 命令,参数是0,关闭文件并禁止自动更新文件长度,可选操作。4.2.9 创建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论