基于嵌入式系统U盘开发的设计_第1页
基于嵌入式系统U盘开发的设计_第2页
基于嵌入式系统U盘开发的设计_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南文理学院芙蓉学院课程设计报告课程名称:嵌入式系统课程设计专业班级:通信工程1301班

王海波邵湘怡完成时间:2016年6月22日报告成绩:评阅意见:评阅意见:评阅教师日期湖南文理学院制目录基于嵌入式系统u盘开发的设计 1一、设计题目 1二、设计内容及要求 12.1设计内容12.2设计要求1三、设计作用与目的 2四、系统设计方案 2系统总体设计 2简要阐述系统工作原理 3五、系统硬件设计 3硬件电路 3基本程序结构 45.2.1USB设备端固件分以下几个层次: 45.2.2. 在调试的时候,从现象上来看,分成以下几个阶段性的步骤 55.2.3检查USB件工作与否 55.2.4提供描述符6硬件设计 6六、系统软件设计 7USB协议 7BULK_ONLY和UFI协议 86.3 FAT32 116.4 软件系统模块 11七、仿真调试分析 14八、嵌入式系统学习心得 14九、参考文献 14PAGEPAGE14基于嵌入式系统u盘开发的设计一、设计题目基于嵌入式系统u盘开发的设计二、设计内容及要求设计内容USBPC机进行数据处理,给人们带来很多不变,为此,本UUSB读写器,方便地将采集数据以U,PC决下位机与PC设计要求UUU上,或者手机上,以实现数据存储的功能。在进行USB开发过程中,比较难的是对设备端的程序(称为固件,Firmware)进行调试。由于USB协议有严格的时间要求,这就使得程序必须在有效时间内对某些请求或状态进行处理,否则,USBLED1,LED2显示输出的一些信息来辅助调试,定位问题所在。比如,在某个函数中加入LED1,LED2显示语句,程序运行时看有否相应的LED1,LED2(单片机部分)借助PC调试软件(BusHound)将设备端的USB协议(端口配置、地址设置以及基本数据交换)调通。然后,用调试好的USB设备接口来嵌入文件系统功能。三、设计作用与目的U盘结构特点,设计了一种基于嵌入式系统UU到无线数据卡上,或者手机上,以实现数据存储的功能四、系统设计方案系统总体设计

图1USB读写器结构图SB读写器结构框图如图1所示,主要由MSP430F149和SL811HS构成,MSP430支持串口输入和14位的并口输入,P2.7用作中断唤醒位,P2.6用作标准位区分数据和命令,通过P4口向SL811发送控制信号,P6用作普通的双向总线接口与SL811进行数据交换,P1.1支持中断唤醒接收SL811的中断请求。五、系统硬件设计硬件电路下图分别为PDIUSBD12的引脚定义,其中,下列几个方面在制作电路板时应该注意。图2PDIUSBD12引脚图GND接地,VDD接正(3.3V5V3.3VVout3.3VDD3.3V;如果芯片工作在5V,则这时Vout3.3会输出3.3V的电压,用于提供给D考电压必须为3.3V。对于U盘来说,由于USB接供的是5V电压,因此应该按后一种接法接。即GND接USB接口中的GND,VDD接USB接口中的VDD,D+D-分别接USB位。XTAL1和XTAL2按传统接法。PDIUSBD12引脚MCUAT-89C55WD引脚DATA<0>~DATA<7>P0.0~P0.7(AD0~AD7)ALEALE/PROGCS_NP1.6RESET_NP1.7PDIUSBD12引脚MCUAT-89C55WD引脚DATA<0>~DATA<7>P0.0~P0.7(AD0~AD7)ALEALE/PROGCS_NP1.6RESET_NP1.7INT_NP3.2(INT0)SUSPENDP3.3WR_NP3.6(WR)RD_NP3.7(RD)A0接GNDDMARQDMACK_NEOT_NGL_NCLKOUT引脚悬空,可作为扩充功能使用。MCUAT-89C55WDP1.2和P1.3接2个低电平有效显示灯LED1和LED2。基本程序结构USB设备端的固件分以下几个层次:表2固件层次固件模块固件模块功能进行各种初始化操作、寄存器设Main.c置、中断设置中断服务程序,负责将不同类型的intr.c中断转向不同的地方usb_op.cusb_op.cD12硬件抽象层,所有的上层模块都必须通过此模块与USB芯片打交道设备枚举需要的设备描述符,配置描述usb_prtcl.c符,接口描述符,端口描述符都由此模块来执行提供所有massStorage协议endpoint2_bulk_only.CCBW,CSW,DATAFLASH由此模块来处理在调试的时候,从现象上来看,分成以下几个阶段性的步骤1、USBPCUSB、向主机提供普通USB设备提供描述符,提供正确的VID和PID后,PC能够识别设备,但要求提供设备的驱动程序;3UsbDebug.exe12,;4MassStorageBulk-Only提供描述符,PCMassStorage、响应了Inquiry;6、提供了其他所有的UFI(SCSI),开始读取磁盘0(BPB)FAT12AT-89C55WDEEPROM信息,可以访问盘符,列目录为空;8、,软盘中放一个可执行的文件,可以正常运行这个可执行文件;8、创建文件,向设备发出Write检查USB器件工作与否确定USBUSBSoftConnectUSBBusHound,USBUSB初始化过程为:①初始化MCU的各种端口;②进行中断初始化,设置中断服务程序入口地址,将MCU的中断方式设置为低电平触发,因为D12只要进入中断后INT_N就一直为低。③断开SoftConnect,延时1秒后再次连接④进入主程序循环,等待中断的到来⑤由中断服务程序处理所有与USB有关的操作。提供描述符USB设备的调试过程其实就是根据主机的请求,不断地向主机提供各种信息的过程。因此,了解主机按照什么样的顺序向设备发出请求,即Windows对USB设备的枚举顺序是非常有必要的:GetDeviceDescriptor。主机主要对Length域感兴趣,发送内容一定要正确,特别是第2字节type一定为0x01,即Device;否则,主机将不响应,或这时由于主机对Device的描述符将有多长实际上都不知道,所以这个步骤只是试探性的,目的是得到真正长度,第三步中才正而巴经地读取DeviceDescriptor。硬件设计TIMSP430F149MCU,CypressSL811HSUSB充分发挥各自优势满足低功耗要求。MSP430TIMSP430的模块组成,这些微控制器可用电池工作,且使用的时间很长,MSP43016位RISC结构,CPU中的16个寄存器和常数发生器使其能达到最高的代码效率,灵活的时钟源可以使器件的功率消耗最低,数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在短于6μs的时间内激活到活跃的工作方式,非常的内/外设和I/O端口资源,端口P1和P2支持中断唤醒。SL811HSCypressSL811HSUSB/控制,USB/从设备控制器支持全高速和低速数据传输,内部256SRAM动加8DMA。六、系统软件设计为了使上位PC机能够直接读取该读写器写入U盘的数据,数据存储按照FAT32文件管理方式存储,其中涉及USB和UFI协议以及FAT32文件存储格式。USB协议通用串行总线)USB接口的外围设备连接到主机数据传输的外部总线结构,是一种快速、灵活的总线接口,USB的传输类型有控制(control)(bulk)、中断(interrupt)和同步(synchronous)传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。USB控制传输,这种数据传输不会丢失数据。通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作,可以在硬件层次上保证数据的可靠交换。由设备自发产生的数据传输是中断数据传输,这类数据传输可以由USB设备在任意时刻发起,而且USB总线以不低于设备说明的速率进行传输。同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。BULK_ONLY和UFI协议USB5U4个独立的子规范,即CBI传输、Bulk-Only传输、ATA命令块、UFI命令规范。前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/CBIControl/bulk/interrupt三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFIUSBUBulk-OnlyUFIUFI命令块规范是针对USB1912字节长度的操作命令。Bulk-Only事务以主机向设备发送CBW(CommandBlockWarp)包,并以建立相应的数据传输开始的,设备接收到CBW包,检查并解释它,试图满足主机的要求,并通过CSW(CommandStateWrap)包向主机返回状态信息。CBWBulk-OutCBW域指明期待的传输,CBW31CSWCBW包必须按低字节在前的次序传输。CBW包结构如图2所示,各域含义如下:字节7字节76543210~3命令块包标识4~7命令块标记8~11数据传输长度12命令块标旗13预留逻辑单元号1415~30预留CBWCBCBWCB长度命令块包标识。CBW包标记,表明这是一个CBW包,这个域的值为43425355H。命令块标记。当设备返回相应的CSWBulkCBWCSW值。命令块标旗。方向位规定了Bulk端点数据传输的方向,其他位预留。0。CBWCBCBWCB的有效长度,合法值为1-16。CBWCB。由设备执行的命令,由设备解释。CSW向主机表明来自于CBW包的命令块的执行状态。设备收到CBW包解析处理后将通过Bulk-In端点发送一个CSW包。CSW开始于包边界,并以13字节的短包结束,结构如图3所示,各域含义如下:表4命令状态包结构字节字节765432100~3命令状态包标识4~7命令状态标记8~11数据残余12命令执行状态命令状态包标识。CSWCSW53425355H。命令状态标记。次域的值域CBW包的命令块标记相同。CBW包中规定的数据传输长度的差值。非0值;则表明失败或错误。UFI是针对USB移动存储而制定的命令块协议,它规定了主机和设备进行信息交换所使用的命令块、数据和状态信息,Bulk-Only传输协议定义了传输这些信息的方法,其中UFI命令块是封装在CBW包中的CBWCB,设备通过读取CBWCB确定具体要执行何种操作命令(如读命令),如何完成这个命令(如从闪存的哪个地址读,需要读取的长度),设备将命令的执行状态封装成CSW返回给主机。UFI1241)操作命令代码。指明所需要执行的操作命令;逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为0。逻辑块地址。命令操作的起始地址。传输长度,指明请求传输的数据量,通常以扇区作单位,但是有几个命令是以字节"作单位的,对于这些命令,传输长度域可以以不同的名字标识,若此域的值为0,则表面没有数据需要传输。块(如模式参数、诊断参数等),若此域的值为0,则表面没有数据需要传输。分配长度,指明主机已经分配的用于返回数据的最大字节长度,若此值为0,则表明没有数据需要传输。表5UFI结构字节字节765432100操作命令代码1逻辑单元号预留2~5逻辑块地址6预留7~8传输长度或参数列表长度或分配长度9~11预留FAT32FAT是Microsoft较早推出的文件系统,具有高度的兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT由引导扇区、FAT1表、FAT2表、目录和文件区组成(其中FAT2表是FAT1表的备份)。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的,FAT将块映射成扇区,原理相同,FAT将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为"簇"。通常情况下,每扇区512字节的原则是不变的,簇的大小一般是2n(n为整数)个扇区的大小。所以以簇为单位而不以扇区为单位进行磁盘的分配,是因为当区分容量较大时,采用512字节的扇区管理,会增加FAT表的项数和大文件存取的消耗,使文件系统效率不高。引导扇区DBR(DOSBootRecord)通常占用分区的第0扇区,共512字节,FAT表紧随其后。DBR的第一部分是一个x86跳转指令、厂商标志和操作系统版本号,接下来的从偏移0x0B开始的是一段描述能够使可执行引导代码找到相关参数的消息,通常称之为BPB。最后是引导程序代码以及扇区结束标志。BPB中记录了扇区大小、簇的扇区数、保留扇区数、FAT表大小和文件系统类型等重要参数,用于文件的索引和定位计算。软件系统模块USB读写器软件由主模块、USB模块、BULK模块、FATU盘文件的读写创建。USBUSB设备的移入/配置设备接口端点描述符,建立BULK_ONLY输入/BULK模块则在已建立的BULK_ONLY输入/输出通道发送CBW数据包,并接收CSW数据包,通过CBWCBWCB信息确定对U盘读/写操作的扇区位置和大小,FATUBPB外部中断唤醒。中断处

温馨提示

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

评论

0/150

提交评论