新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机的嵌入式USB主机系统的实现

基于单片机的嵌入式USB主机系统的实现

作者:时间:2012-04-11来源:网络收藏

0 引言

本文引用地址:http://www.eepw.com.cn/article/171654.htm

对于大多数而言,其内部存储器只有ROM和RAM两种。由于ROM对数据的不易修改性和RAM对数据的掉电易失性,而且它们有限的容量,这极大地限制了在数据存储,处理及传输方面的应用。如今,U盘已经成为使用方便的移动存储设备,它采用总线接口,支持热插拔且即插即用,体积小容量大,读写速度快,可重复擦写几百万次,无需外接电源,易于采购和携带,有多种容量可供选择,但是它通常与计算机交换数据,不是很方便。因此就有了脱离 PC机在U盘之间交换数据的需求。本文为脱离PC机的U盘对拷技术的研究与设计,主要任务是要完成在无操作的情况下对的设计,并完成Mass Storage类协议设备驱动程序及用户程序。最后,结果为在无操作环境下能够对U盘进行文件的读写操作及FAT文件系统的

1硬件电路总体设计

系统从硬件上区分主要包括USB控制器和系统主处理器,因此,嵌入式主机系统的核心就由主CPU和主机控制器芯片构成。组成系统的首要任务就是选择合适的主CPU以及USB主机控制器芯片。另外,为了直观地显示系统调试过程和运行结果,需要建立一个人机界面。若作为一个独立的系统,需要另行配置LCD显示模块、完整的键盘模块等。硬件选择的方案HAI必须综合考虑系统成本、处理速度、体积、功耗等问题。

1.1 系统硬件总体框图

嵌入式USB主机系统的核心包括中央处理器和USB主机控制器,程序存储容量和处理数据速度方面的考虑,外部扩充RAM。图1是系统的总体设计框图。

系统的大致工作流程是(视具体设计而定):单片机系统在完成系统初始化之后,等待USB主控制器的外部中断或查询USB主控制器的状态,当USB设备插入主机系统上之后,由USB主控制器通过外部中断信号或相应的状态值来通知单片机系统,单片机与USB主控制器完成设备的枚举、配置等操作,并对 Flash闪存进行操作,可以建立文件并写数据,建立文件夹,读取具体文件中的数据,修改文件的信息(例如文件的修改时间,大小等),或者使用通配符对 Flash闪盘中文件或文件夹等等。预留扩展接口是留给用户进行具体功能扩展时使用,用于通过RS-232与PC机进行通信,或控制时钟芯片等等。

11.jpg

1.2 系统主处理器的选择

常用的8位单片机体积小成本低,但是一般来说时钟频率不很高,且往往一个机器周期需要好几个时钟周期,更加导致效率降低。此外,8位单片机的片内资源较少,RAM,ROM容量都比较小,加大RAM就可以解决有大量数据需要处理的系统需求。DSP处理器由于外围集成的资源比较少,价格又比较昂贵,同样不适用于本系统。如今市面上流行的32位ARM核微处理器,处理速度快,外围集成单元齐全,价格适中,更被广泛应用于工业控制、智能系统等嵌入式设备中,因此如本系统采用ARM作为核心系统处理器可以达到很高的速度和性价比[1]。但是在一些对于速度要求不很高的场合,利用单片机也能达到很好的效果,并且能够极大的降低系统成本。本设计采用AT89S52单片机作为系统核心处理器,通过对程序的优化,使得对U盘的读写速度达到近80KB/S,完全可以满足一般情况下对U盘读写速度的要求。

1.3 U盘接口的选择

在利用单片机对U盘进行读写时,需要增加两个USB接口,在系统程序的控制下,就可以U盘数据拷贝。因此实现单片机对U盘数据的读写是问题的关键所在。为了实现复杂的USB协议及USB通信,需要使用USB总线接口芯片。本设计中选择的是CH375芯片,它是USB总线通用接口芯片,支持 USB-HOST主机模式,在本地端CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机控制器的系统总线上,且 CH375在USB主机方式下支持常用的USB全速设备,外部单片机可以通过CH375按照相应的USB协议与USB设备通讯,并且CH375支持USB 设备的控制,批量和中断传输。因此只要利用单片机对USB总线接口芯片进行在主机模式下的合理控制,即可实现嵌入式的单片机系统对U盘的读写。

2 系统软件功能模块

嵌入式USB主机系统不同于PC平台上的主机系统。由于其系统资源和性能的限制,嵌入式的主机系统只需根据需要实现特定的设备类即可。在USB总线活动的时候,主机系统是根据协议规范按照特定的时序运行。因此,整个系统的软件设计就可以不依赖于任何操作系统,而只是利用嵌入式的资源即可。在嵌入式 USB主机中,通过系统程序来调度各个任务,从而实现系统的各种功能。

2.1 系统程序流程

系统主程序的流程:首先对系统各部分功能模块进行初始化,接着根据具体需要完成相应的功能(例如采集数据等等),之后查询是否有U盘插入,插入之后即可根据具体需要完成相应的文件操作。本设计的应用系统的程序流程图如图2所示。

12.jpg

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭