基于嵌入式系统U盘开发的设计

上传人:无*** 文档编号:108981470 上传时间:2022-06-16 格式:DOC 页数:14 大小:120.50KB
收藏 版权申诉 举报 下载
基于嵌入式系统U盘开发的设计_第1页
第1页 / 共14页
基于嵌入式系统U盘开发的设计_第2页
第2页 / 共14页
基于嵌入式系统U盘开发的设计_第3页
第3页 / 共14页
资源描述:

《基于嵌入式系统U盘开发的设计》由会员分享,可在线阅读,更多相关《基于嵌入式系统U盘开发的设计(14页珍藏版)》请在装配图网上搜索。

1、-*文理学院芙蓉学院课程设计报告课程名称:嵌入式系统课程设计 专业班级:通信工程1301班 学生*:王海波指导教师: 邵湘怡 完成时间:2016年 6月 22日 报告成绩:评阅意见: 评阅教师 日期 *文理学院制目录基于嵌入式系统u盘开发的设计1一、设计题目1二、设计内容及要求12.1设计内容12.2设计要求1三、设计作用与目的2四、系统设计方案24.1系统总体设计24.2简要阐述系统工作原理3五、系统硬件设计35.1硬件电路35.2根本程序构造45.2.1.USB 设备端的固件分以下几个层次:45.2.2.在调试的时候,从现象上来看,分成以下几个阶段性的步骤55.2.3.检查USB 器件工作

2、与否65.2.4.提供描述符65.3硬件设计6六、系统软件设计76.1USB协议76.2 BULK_ONLY和UFI协议86.3 FAT32116.4软件系统模块12七、仿真调试分析14八、嵌入式系统学习心得14九、参考文献15. z.-基于嵌入式系统u盘开发的设计一、设计题目基于嵌入式系统u盘开发的设计二、设计内容及要求2.1设计内容随着USB技术和闪存技术的飞速开展,移动存储设备的速度和容量日新月异,但在工业控制的上位机和下位机之间,数据传输依然采用传统的串并口技术,特别对一些前端的便携式采集系统,需要采集后临时存储,再拿回来传给作为上位机的PC机进展数据处理,给人们带来很多不变,为此,本

3、文提出了一种方法-利用U盘的便捷特性开发一种基于嵌入式的USB读写器,方便地将采集数据以文件方式写入U盘,PC机不需要任何特殊驱动便可以完成对数据的处理回放。利用本方法可以彻底解决下位机与PC机之间的数据传输难的问题。2.2设计要求据U盘构造特点,设计了一种基于嵌入式系统U盘的系统构造,可以将U盘集成到无线数据卡上,或者手机上,以实现数据存储的功能。在进展USB 开发过程中,比拟难的是对设备端的程序称为固件,Firmware 进展调试。由于USB 协议有严格的时间要求,这就使得程序必须在有效时间内对*些请求或状态进展处理,否则,USB 将无法正常工作。因此,在调试过程中,较多借助LED1,LE

4、D2显示输出的一些信息来辅助调试,定位问题所在。比方,在*个函数中参加LED1,LED2显示语句,程序运行时看有否相应的LED1,LED2显示输出,借此来判断此函数是否得到了执行。调试工作根本分二步进展:首先对外部设备单片机局部借助PC 调试软件(从网上下载Bus Hound)将设备端的USB 协议(主要有描述符请求、端口配置、地址设置以及根本数据交换调通。然后,用调试好的USB 设备接口来嵌入文件系统功能。三、设计作用与目的根据U 盘构造特点,设计了一种基于嵌入式系统U 盘的系统构造,可以将U 盘集成到无线数据卡上,或者手机上,以实现数据存储的功能四、系统设计方案4.1系统总体设计图1 US

5、B读写器构造图4.2简要阐述系统工作原理SB读写器构造框图如图1所示,主要由MSP430F149和SL811HS构成,MSP430支持串口输入和14位的并口输入,P2.7用作中断唤醒位,P2.6用作标准位区分数据和命令,通过P4口向SL811发送控制信号,P6用作普通的双向总线接口与SL811进展数据交换,P1.1支持中断唤醒接收SL811的中断请求。五、系统硬件设计5.1硬件电路以下图分别为PDIUSBD12的引脚定义,其中,以下几个方面在制作电路板时应该注意。图2 PDIUSBD12引脚图aGND 接地,VDD 接正3.3V 或5V ,如果芯片工作在3.3V ,则Vout3.3 与VDD

6、都接3.3V ;如果芯片工作在5V ,则这时Vout3.3 会输出3.3V 的电压,用于提供应D 作参考电压,因为此参考电压必须为3.3V 。对于U 盘来说,由于USB 接供的是5V 电压,因此应该按后一种接法接。即GND 接USB 接口中的GND ,VDD 接USB 接口中的VDD ,D D分别接USB 接口中的对应位。b*TAL1 和*TAL2 按传统接法。cPDIUSBD12与MCU AT-89C55WD的连接方法见下表表1 PDIUSBD12与MCU AT-89C55WD的连接方法PDIUSBD12引脚MCU AT-89C55WD引脚DATA DATAP0.0P0.7(AD0AD7)A

7、LEALE/PROGCS_NP1.6RESET_NP1.7INT_NP3.2INT0SUSPENDP3.3WR_NP3.6(WR)RD_NP3.7(RD)A0接GNDdDMARQ DMACK_N EOT_N GL_N CLKOUT引脚悬空,可作为扩大功能使用。eMCU AT-89C55WD P1.2和P1.3接2个低电平有效显示灯LED1和LED2。5.2根本程序构造5.2.1.USB 设备端的固件分以下几个层次:表2固件层次固件模块功能Main.c进展各种初始化操作、存放器设置、中断设置intr.c中断效劳程序,负责将不同类型的中断转向不同的地方usb_op.cD12硬件抽象层,所有的上层模

8、块都必须通过此模块与USB芯片打交道usb_prtcl.c设备枚举需要的设备描述符,配置描述符,接口描述符,端口描述符都由此模块来执行提供endpoint2_bulk_only.C所有mass Storage 协议CBW,CSW,DATA的处理及FLASH的读写都由此模块来处理5.2.2.在调试的时候,从现象上来看,分成以下几个阶段性的步骤1、USB 芯片正常工作,可以实现软连接,此时PC 机上会出现未知设备类型的USB 设备;2、向主机提供普通USB 设备提供描述符,提供正确的VID 和PID 后,PC 能够识别设备,但要求提供设备的驱动程序;3、安装驱动程序后,使用周立功单片机公司提供的U

9、sbDebug.e*e简单调试端点1和2,确保其均可传输数据,验证硬件及固件的正确性;4、按Mass Storage不得BulkOnly 模式提供描述符,PC 机上设备类型变成Mass Storage Device;5、响应了BulkOnly 的Inquiry 命令,可以出现盘符了,但尚无法访问磁盘;6、提供了其他所有的UFI命令SCSI 子集,开场读取磁盘0 扇区BPB 区的内容按照FAT12 的格式7、在AT-89C55WD EEPROM虚拟一*软盘,可以正确读取信息,可以访问盘符,列目录为空;8、,软盘中放一个可执行的文件,可以正常运行这个可执行文件;8、创立文件,向设备发出Write

10、命令,等等。下面从具体实际操作方面来描述调试各阶段的步骤5.2.3.检查USB 器件工作与否确定USB 芯片是否已经正常工作,是所有调试的根底,得到电路板之后,这是一个首先要解决的问题。判断USB 芯片是否已经工作,可以使用SoftConnect ,则在主程序中进展软连接后,如果PC 机上出现未知设备,则说明USB 进展软连接正常,也说明芯片已经工作了。另外就是使用Bus Hound ,观察USB 总线上的数据,从而判断主机与设备之间的通信已经进展到哪一步了。在主程序中,对USB 初始化过程为: 初始化MCU 的各种端口; 进展中断初始化,设置中断效劳程序入口地址,将MCU 的中断方式设置为低

11、电平触发,因为D12 只要进入中断后INT_N 就一直为低。 断开SoftConnect ,延时1 秒后再次连接 进入主程序循环,等待中断的到来 由中断效劳程序处理所有与USB有关的操作。5.2.4.提供描述符USB 设备的调试过程其实就是根据主机的请求,不断地向主机提供各种信息的过程。因此,了解主机按照什么样的顺序向设备发出请求,即Windows 对USB 设备的枚举顺序是非常有必要的:GetDeviceDescriptor 。主机主要对Length 域感兴趣,发送内容一定要正确,特别是第 2 字节type 一定为0*01 ,即Device ;否则,主机将不响应,或 这时由于主机对Devic

12、e 的描述符将有多长实际上都不知道,所以这个步骤只是试探性的,目的是得到真正长度,第三步中才正而巴经地读取DeviceDescriptor 。5.3硬件设计系统采用TI公司的MSP430F149作为MCU,Cypress公司的SL811HS作为USB设备控制器,充分发挥各自优势满足低功耗要求。MSP430TI公司的 MSP430系列单片机是一种超低功耗的混合信号控制器,针对不同的应用而由各种不同的模块组成,这些微控制器可用电池工作,且使用的时间很长,MSP430单片机具有16位RISC构造,CPU中的16个存放器和常数发生器使其能到达最高的代码效率,灵活的时钟源可以使器件的功率消耗最低,数字控

13、制的振荡器DCO可使器件从低功耗模式迅速唤醒,在短于6s的时间内激活到活泼的工作方式,非常的内/外设和I/O端口资源,端口P1和P2支持中断唤醒。SL811HSCypress公司的SL811HS是一款超低功耗的USB主/从设备控制器,主设备或从设备模式由软件控制,USB主/从设备控制器支持全高速和低速数据传输,内部256字节的SRAM缓存,访问时地址自动加1,可大大缩短读写指令周期,具有标准的8位双向微处理器总线接口,其中从设备模式下支持DMA。六、系统软件设计为了使上位PC机能够直接读取该读写器写入U盘的数据,数据存储按照FAT32文件管理方式存储,其中涉及USB和UFI协议以及FAT32文

14、件存储格式。6.1USB协议USB通用串行总线用于将USB接口的外围设备device连接到主机host,实现二者之间数据传输的外部总线构造,是一种快速、灵活的总线接口,USB的传输类型有控制control、批量bulk、中断interrupt和同步synchronous传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。控制数据用于在USB接入总线时对其进展配置,其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丧失数据。典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现过失检测功能,并且有选择地进展一定

15、的应进重试操作,可以在硬件层次上保证数据的可靠交换。由设备自发产生的数据传输是中断数据传输,这类数据传输可以由USB设备在任意时刻发起,而且USB总线以不低于设备说明的速率进展传输。同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进展传输。6.2 BULK_ONLY和UFI协议USB设备分为5大类,即显示器、通信设备、音频设备、人机输入和海量存储。通常所用的U盘、移动硬盘均属于海量存储类。海量存储类的规*中包括4个独立的子规*,即CBI传输、Bulk-Only传输、ATA命令块、UFI命令规*。

16、前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/状态,CBI传输协议则使用Control/bulk/interrupt三种类型的端点进展数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFI协议则针对USB移动存储,U盘读写器的设计遵循Bulk-Only传输协议和UFI命令规*。UFI命令块规*是针对USB移动存储而制定的,它总共定义了19个12字节长度的操作命令。Bulk-Only事务以主机向设备发送CBWmand Block Warp包,并以建立相应的数据传输开场的,设备接收到CBW包,

17、检查并解释它,试图满足主机的要求,并通过CSWmand State Wrap包向主机返回状态信息。CBW是主机通过Bulk-Out端点向设备发送的命令块包,在CBW中使用方向位和数据传输长度域指明期待的传输,CBW必须起始于包边界,并且必须以31字节的短包传输完毕,相继的数据包和CSW包必须开场于一个新的包边界,所有的CBW包必须按低字节在前的次序传输。CBW包构造如图2所示,各域含义如下:表3 CBW包构造字节位7654321003命令块包标识47命令块标记811数据传输长度12命令块标旗13预留逻辑单元号14预留CBWCB长度1530CBWCB1命令块包标识。CBW包标记,说明这是一个CB

18、W包,这个域的值为43425355H。2命令块标记。当设备返回相应的CSW包时,必须使命令状态标记域的值与此值一样。3数据传输长度。指明命令执行期间在Bulk端点上传数据的字节长度,如果这个域的值是0,则在CBW和CSW之间设备和主机不传输任何数据,并且设备将忽略在命令块标旗域中的方向位的值。4命令块标旗。方向位规定了Bulk端点数据传输的方向,其他位预留。5逻辑单元号。指定命令块被发送到的逻辑单元号,如果设备不支持多个逻辑单元号,则主机将这个域设置为0。6CBWCB长度,定义了CBWCB的有效长度,合法值为1-16。7CBWCB。由设备执行的命令,由设备解释。CSW向主机说明来自于CBW包的

19、命令块的执行状态。设备收到CBW包解析处理后将通过Bulk-In端点发送一个CSW包。CSW开场于包边界,并以13字节的短包完毕,构造如图3所示,各域含义如下:表4 命令状态包构造字节位7654321003命令状态包标识47命令状态标记811数据剩余12命令执行状态1命令状态包标识。CSW包的标记,说明这是一个CSW包,这个域的值为53425355H。2命令状态标记。次域的值域CBW包的命令块标记一样。3数据剩余。实际数据传输量与CBW包中规定的数据传输长度的差值。4命令执行状态,说明命令成功或失败信息,如果命令执行成功,则设备将设置此域的值为0,非0值;则说明失败或错误。UFI是针对USB移

20、动存储而制定的命令块协议,它规定了主机和设备进展信息交换所使用的命令块、数据和状态信息,Bulk-Only传输协议定义了传输这些信息的方法,其中UFI命令块是封装在CBW包中的CBWCB,设备通过读取CBWCB确定具体要执行何种操作命令如读命令,如何完成这个命令如从闪存的哪个地址读,需要读取的长度,设备将命令的执行状态封装成CSW返回给主机。UFI用于大多数命令的12字节命令块的描述,构造如图4所示,其中各参数意义如下:1操作命令代码。指明所需要执行的操作命令;2逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为0。3逻辑块地址。命令操作的起始地址。4传输长度,指

21、明请求传输的数据量,通常以扇区作单位,但是有几个命令是以字节作单位的,对于这些命令,传输长度域可以以不同的名字标识,假设此域的值为0,则外表没有数据需要传输。5参数列表长度,用于指定发送到设备的字节数,这个域典型的应用于发送到设备的参数命令块如模式参数、诊断参数等,假设此域的值为0,则外表没有数据需要传输。6分配长度,指明主机已经分配的用于返回数据的最大字节长度,假设此值为0,则说明没有数据需要传输。表5 UFI构造字节位字节765432100操作命令代码1逻辑单元号预留25逻辑块地址6预留78传输长度或参数列表长度或分配长度911预留6.3 FAT32FAT是Microsoft较早推出的文件

22、系统,具有高度的兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中,FAT由引导扇区、FAT1表、FAT2表、目录和文件区组成其中FAT2表是FAT1表的备份。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的,FAT将块映射成扇区,原理一样,FAT将磁盘空间以一定数目的扇区为单位进展划分,这样的单位成为簇。通常情况下,每扇区512字节的原则是不变的,簇的大小一般是2nn为整数个扇区的大小。所以以簇为单位而不以扇区为单位进展磁盘的分配,是因为当区分容量较大时,采用512字节的扇区管理,会增加FAT表的项数和大文件存取的消耗,使文件系统效率不高。引导扇区DBRDOS Boot Rec

23、ord通常占用分区的第0扇区,共512字节,FAT表紧随其后。DBR的第一局部是一个*86跳转指令、厂商标志和操作系统版本号,接下来的从偏移0*0B开场的是一段描述能够使可执行引导代码找到相关参数的消息,通常称之为BPB。最后是引导程序代码以及扇区完毕标志。BPB中记录了扇区大小、簇的扇区数、保存扇区数、FAT表大小和文件系统类型等重要参数,用于文件的索引和定位计算。6.4软件系统模块USB读写器软件由主模块、USB模块、BULK模块、FAT模块和中断处理模块组成。各模块之间相互协调调用,共同完成对U盘文件的读写创立。USB模块负责检测USB设备的移入/移出,对插入的设备进展枚举,分配设备地址

24、端点号,配置设备接口端点描述符,建立BULK_ONLY输入/输出通道,BULK模块则在已建立的BULK_ONLY输入/输出通道发送CBW数据包,并接收CSW数据包,通过CBW中嵌入的CBWCB信息确定对U盘读/写操作的扇区位置和大小,FAT模块主要完成簇和扇区间的索引定位,即在U盘内寻址,利用BPB中的参数计算给定扇区的所在簇以及进入休眠状态,等待外部中断唤醒。中断处理模块是在中断唤醒后根据中断类型进入不同功能子模块的,也是整个软件系统的核心局部。中断模块接收到串口或并口数据后,根据内部命令字要求进展解析,命令字要求如图5所示,串口或并口数据接收流程如图6所示。表6 命令和数据字构造类型型15

25、141312111009080706050403020100命令字11命令值命令参数字节数或数据长度数据字10预留12位数据12位数据开场根据中断接口类型屏蔽另外一个接口,直到系统复位读一个字Y获取命令参数长度等待传送的数据长度数据流方向命令字?N处理命令参数或数据缓存N需要访问U盘?Y检测U盘N可用?Y访问U盘完毕图3 数据接收流程图七、仿真调试分析在人造金刚石压力机压力锤头裂纹检测中,采用声发射技术进展实时监控,一旦出现异常立即停机报警,为了对出现异常时的数据进一步分析,需要将现场数据带回研究室。利用基于嵌入式的U盘读写器可以免去现场布线的麻烦,还可以省去PC机端驱动软件的开发,直接将现场

26、数据写入U盘,方便地利用PC机中安装的MATLAB进展数据的详细分析处理。八、嵌入式系统学习心得首先,我要感谢教师给予了我这次课程设计的时机。在这次嵌入式系统课程设计中,虽然有些难题和困惑之处,但在同学和教师的帮助下,最终也是完成了最后的课程设计。通过此次的课程设计,我对ARM嵌入式有了深入的了解,同时,对硬件MSP430F149和SL811HS也有所认识。在软件上,通过对USB协议、BULK_ONLY、UFI协议、FAT32和软件系统模块的运用也让我受益匪浅。在操作上,经过反复的学习和推敲,也由不熟悉变成熟练。理论知识方面也是通过与同学和教师们的讨论,最终也达成了实验的目的,得到了相应的成果。对于本次实验的课题嵌入式系统U盘开发的设计,基于嵌入式U盘读写器的设计实现我认为可以方便地将下位机数据存储到普通U盘,彻底解决了工业控制中上下位机之间数据传输难的问题,也为以后其他领域的应用创造了前提条件。如长途客车中的黑匣子、家庭老人安康监测等等。在人们以后的生活中,随着USB技术和闪存技术的进一步开展,这种嵌入式U盘设备应用领域将会逐步扩展,在以后的市场上将有着良好的前景,同时也会对人们的生活提供不小的帮助。九、参考文献 1 潘松,王国栋VHDL实用教程M:电子科技大学,2001 2 王坤,侯国屏,赵伟可编程仪器控制规*和关键技术一. z.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!