


免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.湖南文理学院芙蓉学院课程设计报告课程名称:嵌入式系统课程设计专业班级:通信工程1301 班学生姓名:王海波指导教师:邵湘怡完成时间:2016 年 6 月 22日报告成绩:评阅意见:评阅教师日期湖南文理学院制;.目录基于嵌入式系统 u 盘开发的设计1.一、设计题目 .1.二、设计内容及要求.1.2.1 设计内容 .1.2.2 设计要求 .1.三、设计作用与目的.2.四、系统设计方案 .2.4.1 系统总体设计 .2.4.2 简要阐述系统工作原理.3.五、系统硬件设计 .3.5.1 硬件电路 .3.5.2 基本程序结构 .4.5.2.1. usb设备端的固件分以下几个层次: 4.5.2.2. 在调试的时候,从现象上来看,分成以下几个阶段性的步骤55.2.3.检查 usb 器件工作与否 .5.5.2.4.提供描述符 .6.5.3 硬件设计 .6.六、系统软件设计 .7.6.1usb 协议 .7.6.2 bulk_only和 ufi 协议.7.6.3 fat32 .1.1.6.4 软件系统模块 .1 1.七、仿真调试分析 .1 3.八、嵌入式系统学习心得.1 4.九、参考文献 .1 4.基于嵌入式系统u 盘开发的设计一、设计题目基于嵌入式系统 u 盘开发的设计二、设计内容及要求2.1 设计内容随着 usb技术和闪存技术的飞速发展,移动存储设备的速度和容量日新月异,但在工业控制的上位机和下位机之间,数据传输依然采用传统的串并口技术,特别对一些前端的便携式采集系统,需要采集后临时存储,再拿回来传给作为上位机的 pc机进行数据处理,给人们带来很多不变,为此,本文提出了一种方法 - 利用 u盘的便捷特性开发一种基于嵌入式的 usb读写器, 方便地将采集数据以文件方式写入 u盘,pc机不需要任何特殊驱动便可以完成对数据的处理回放。利用本方法可以彻底解决下位机与 pc 机之间的数据传输难的问题。2.2 设计要求据 u 盘结构特点,设计了一种基于嵌入式系统u 盘的系统结构,可以将u 盘集成到无线数据卡上,或者手机上,以实现数据存储的功能。在进行 usb 开发过程中,比较难的是对设备端的程序(称为固件,firmware )进行调试。由于usb协议有严格的时间要求,这就使得程序必须在有效时间内对某些请求或状态进行处理, 否则,usb 将无法正常工作。 因此,在调试过程中, 较多借助 led1,led2 显示输出的一些信息来辅助调试,定位问题所在。比如,在某个函数中加入led1,led2 显示语句, 程序运行时看有否相应的led1 ,led2 显示输出, 借此来判断此函数是否得到了执行。调试工作基本分二步进行:首先对外部设备(单片机部分)借助pc 调试软件 (从网上下载 bus hound)将设备端的 usb 协议(主要有描述符请求、端口配置、地址设置以及基本数据交换)调通。然后,用调试好的usb设备接口来嵌入文件系统功能。三、设计作用与目的根据 u 盘结构特点, 设计了一种基于嵌入式系统u盘的系统结构, 可以将 u 盘集成到无线数据卡上,或者手机上,以实现数据存储的功能四、系统设计方案4.1 系统总体设计图 1 usb 读写器结构图4.2 简要阐述系统工作原理sb读写器结构框图如图1 所示,主要由 msp430f149和 sl811hs构成, msp430支持串口输入和 14 位的并口输入, p2.7 用作中断唤醒位, p2.6 用作标准位区分数据和命令,通过 p4 口向 sl811 发送控制信号, p6用作普通的双向总线接口与sl811进行数据交换, p1.1 支持中断唤醒接收sl811 的中断请求。五、系统硬件设计5.1 硬件电路下图分别为 pdiusbd12的引脚定义,其中,下列几个方面在制作电路板时应该注意。图 2 pdiusbd12引脚图a) gnd接地, vdd接正( 3.3v 或 5v),如果芯片工作在3.3v ,则 vout3.3 与 vdd都接 3.3v ;如果芯片工作在5v ,则这时 vout3.3 会输出 3.3v 的电压,用于提供给 d 作参考电压, 因为此参考电压必须为3.3v 。对于 u盘来说,由于 usb 接供的是5v电压,因此应该按后一种接法接。 即 gnd接 usb接口中的 gnd,vdd接 usb 接口中的 vdd,dd分别接 usb 接口中的对应位。b) xtal1和 xtal2按传统接法。c) pdiusbd12 与 mcu at-89c55wd 的连接方法见下表表 1 pdiusbd12与 mcu at-89c55w的d连接方法pdiusbd12引脚mcu at-89c55w引d脚data datap0.0p0.7(ad0ad7) aleale/progcs_np1.6reset_np1.7int_np3.2 (int0)suspendp3.3wr_np3.6(wr)rd_np3.7(rd)a0接 gndd) dmarq dmack_n eot_n gl_n cl引ko脚u悬t 空,可作为扩充功能使用。e) mcu at-89c55wd p1.和2p1.3 接 2 个低电平有效显示灯led1和 led2。5.2 基本程序结构5.2.1. usb设备端的固件分以下几个层次:表 2 固件层次固件模块功能main.c进行各种初始化操作、 寄存器设置、中断设置intr.c中断服务程序,负责将不同类型的中断转向不同的地方usb_op.cd12 硬件抽象层 , 所有的上层模块都必须通过此模块与usb芯片打交道usb_prtcl.c设备枚举需要的设备描述符,配置描述符,接口描述符,端口描述符都由此模块来执行提供所有 mass storage协议endpoint2_bulk_only.ccbw,csw,dat的a处理及 flash的读写都由此模块来处理5.2.2. 在调试的时候,从现象上来看,分成以下几个阶段性的步骤1、usb 芯片正常工作,可以实现软连接,此时pc 机上会出现“未知设备类型”的usb 设备; 2、向主机提供普通usb 设备提供描述符,提供正确的vid 和 pid 后, pc 能够识别设备,但要求提供设备的驱动程序;3、安装驱动程序后,使用周立功单片机公司 提供的 usbdebug.exe 简单调试端点 1 和 2,确保其均可传输数据, 验证硬件及固件的正确 性; 4、按 mass storage不得 bulk only模式提供描述符, pc 机上设备类型变成mass storage device; 5、响应了bulk only的 inquiry命令,可以出现盘符了,但尚无法访问磁盘; 6、提供了其他所有的ufi 命令( scsi 子集),开始读取磁盘0 扇区( bpb 区) 的内容按照 fat12 的格式 7、在 at-89c55wd eepro虚m拟一张软盘,可以正确读取信息, 可以访问盘符,列目录为空;8、,软盘中放一个可执行的文件,可以正常运行这个可执行文件; 8、创建文件,向设备发出write命令, 等等。下面从具体实际操作方面来描述调试各阶段的步骤5.2.3. 检查 usb器件工作与否确定 usb 芯片是否已经正常工作,是所有调试的基础,得到电路板之后,这是一个首先要解决的问题。 判断 usb 芯片是否已经工作, 可以使用 softconnect ,则在主程序中进行软连接后,如果pc 机上出现未知设备,则说明usb 进行软连接正常,也说明芯片.已经工作了。另外就是使用bus hound ,观察 usb 总线上的数据,从而判断主机与设备之间的通信已经进行到哪一步了。在主程序中,对usb初始化过程为: 初始化 mcu的各种端口; 进行中断初始化,设置中断服务程序入口地址,将mcu的中断方式设置为低电平触发,因为 d12 只要进入中断后int_n就一直为低。 断开 softconnect ,延时 1 秒后再次连接 进入主程序循环,等待中断的到来 由中断服务程序处理所有与usb 有关的操作。5.2.4. 提供描述符usb 设备的调试过程其实就是根据主机的请求,不断地向主机提供各种信息的过程。因此, 了解主机按照什么样的顺序向设备发出请求,即 windows 对 usb 设备的枚举顺序是非常有必要的: getdevicedescriptor 。主机主要对length 域感兴趣,发送内容一定要正确,特别是第2 字节 type 一定为 0x01 ,即 device ;否则,主机将不响应,或这时由于主机对device的描述符将有多长实际上都不知道,所以这个步骤只是试探性的,目的是得到真正长度,第三步中才正而巴经地读取devicedescriptor 。5.3 硬件设计系统采用 ti 公司的 msp430f149 作为 mcu ,cypress公司的 sl811hs 作为 usb 设备控制器,充分发挥各自优势满足低功耗要求。msp430ti 公司的msp430 系列单片机是一种超低功耗的混合信号控制器,针对不同的应用而由各种不同的模块组成,这些微控制器可用电池工作,且使用的时间很长,msp430 单片机具有 16 位 risc 结构,cpu 中的 16 个寄存器和常数发生器使其能达到最高的代码效率,灵活的时钟源可以使器件的功率消耗最低,数字控制的振荡器(dco)可使器件从低功耗模式迅速唤醒,在短于 6s 的时间内激活到活跃的工作方式,非常的内/ 外设和 i/o 端口资源,端口 p1 和 p2 支持中断唤醒。sl811hscypress 公司的 sl811hs是一款超低功耗的usb主/ 从设备控制器, 主设备或从设备模式由软件控制, usb主/ 从设备控制器支持全高速和低速数据传输,内部256 字节的 sram 缓存,访问时地址自动加1,可大大缩短读写指令周期,具有标准的8 位双向微处理器总线接口,其中从设备模式下支持dma。六、系统软件设计为了使上位 pc机能够直接读取该读写器写入u 盘的数据,数据存储按照fat32文件管理方式存储,其中涉及usb和 ufi 协议以及 fat32文件存储格式。6.1 usb 协议usb(通用串行总线)用于将usb 接口的外围设备( device)连接到主机( host),实现二者之间数据传输的外部总线结构,是一种快速、灵活的总线接口,usb 的传输类型有控制( control)、批量( bulk)、中断( interrupt)和同步( synchronous)传输 4 种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。控制数据用于在 usb 接入总线时对其进行配置, 其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丢失数据。典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作, 可以在硬件层次上保证数据的可靠交换。由设备自发产生的数据传输是中断数据传输,这类数据传输可以由usb 设备在任意时刻发起,而且 usb 总线以不低于设备说明的速率进行传输。同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。6.2 bulk_only 和 ufi 协议usb 设备分为 5 大类,即显示器、通信设备、音频设备、人机输入和海量存储。通常所用的 u 盘、移动硬盘均属于海量存储类。海量存储类的规范中包括4 个独立的子规范,.即 cbi 传输、bulk-only 传输、ata 命令块、 ufi 命令规范。前两个协议定义了数据/命令/ 状态在 usb 总线上的传输方法, bulk-only 传输协议仅仅使用bulk 端点传送数据 /命令/状态,cbi 传输协议则使用control/bulk/interrupt 三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ata 协议用于硬盘, ufi 协议则针对 usb 移动存储, u 盘读写器的设计遵循bulk-only 传输协议和 ufi 命令规范。 ufi 命令块规范是针对usb 移动存储而制定的,它总共定义了19 个 12 字节长度的操作命令。bulk-only 事务以主机向设备发送cbw(command block warp)包,并以建立相应的数据传输开始的, 设备接收到 cbw 包,检查并解释它, 试图满足主机的要求, 并通过 csw( command state wrap)包向主机返回状态信息。cbw 是主机通过 bulk-out 端点向设备发送的命令块包,在cbw 中使用方向位和数据传输长度域指明期待的传输,cbw 必须起始于包边界,并且必须以31 字节的短包传输结束,相继的数据包和csw 包必须开始于一个新的包边界,所有的 cbw 包必须按低字节在前的次序传输。cbw 包结构如图 2 所示,各域含义如下:表 3cbw 包结构字节765432100 3命令块包标识4 7命令块标记811数据传输长度12命令块标旗13预留逻辑单元号1415 30预留cbwcbcbwc长b 度1) 命令块包标识。 cbw 包标记,表明这是一个cbw 包,这个域的值为43425355h。2) 命令块标记。当设备返回相应的csw 包时,必须使命令状态标记域的值与此值相同。3) 数据传输长度。指明命令执行期间在bulk 端点上传数据的字节长度,如果这个域的值是 0,则在 cbw 和 csw 之间设备和主机不传输任何数据,并且设备将忽略在命令块标旗域中的方向位的值。4) 命令块标旗。方向位规定了bulk 端点数据传输的方向,其他位预留。5) 逻辑单元号。指定命令块被发送到的逻辑单元号,如果设备不支持多个逻辑单元号,则主机将这个域设置为0。6) cbwcb 长度,定义了 cbwcb 的有效长度,合法值为1-16。7) cbwcb 。由设备执行的命令,由设备解释。csw 向主机表明来自于cbw 包的命令块的执行状态。设备收到cbw 包解析处理后将通过 bulk-in 端点发送一个 csw 包。csw 开始于包边界,并以13 字节的短包结束,结构如图3 所示,各域含义如下:表 4 命令状态包结构字 节765432100 3命令状态包标识4 7命令状态标记811数据残余12命令执行状态1) 命令状态包标识。csw 包的标记,表明这是一个 csw 包,这个域的值为 53425355h。2) 命令状态标记。次域的值域cbw 包的命令块标记相同。3) 数据残余。实际数据传输量与cbw 包中规定的数据传输长度的差值。4) 命令执行状态,表明命令成功或失败信息,如果命令执行成功,则设备将设置此域的值为 0,非 0 值;则表明失败或错误。ufi 是针对 usb 移动存储而制定的命令块协议, 它规定了主机和设备进行信息交换所使用的命令块、数据和状态信息,bulk-only传输协议定义了传输这些信息的方法,其中ufi 命令块是封装在cbw 包中的 cbwcb ,设备通过读取cbwcb 确定具体要执行何种操作命令(如读命令) ,如何完成这个命令(如从闪存的哪个地址读,需要读取的长度), 设备将命令的执行状态封装成csw 返回给主机。ufi 用于大多数命令的12 字节命令块的描述, 结构如图 4 所示,其中各参数意义如下:1) 操作命令代码。指明所需要执行的操作命令;2) 逻辑单元号。指明命令将发送到哪个逻辑单元,如果设备只有一个逻辑单元,则此域的值为 0。3) 逻辑块地址。命令操作的起始地址。4) 传输长度,指明请求传输的数据量,通常以 扇区 作单位,但是有几个命令是以 字节作单位的,对于这些命令,传输长度域可以以不同的名字标识,若此域的值为 0,则表面没有数据需要传输。5) 参数列表长度,用于指定发送到设备的字节数,这个域典型的应用于发送到设备的参数命令块(如模式参数、诊断参数等),若此域的值为0,则表面没有数据需要传输。6)分配长度,指明主机已经分配的用于返回数据的最大字节长度,若此值为0,则表明没有数据需要传输。表 5ufi结构字字 节765432100操作命令代码1逻辑单元号预留2 56逻辑块地址预留7 8传输长度或参数列表长度或分配长度911预留6.3 fat32fat 是 microsoft 较早推出的文件系统, 具有高度的兼容性, 目前仍然广泛应用于个人电脑尤其是移动存储设备中,fat 由引导扇区、 fat1 表、fat2 表、目录和文件区组成 (其中 fat2 表是 fat1 表的备份)。磁盘的管理是以扇区为单位的,而移动存储设备则是以块为单位的, fat 将块映射成扇区,原理相同,fat 将磁盘空间以一定数目的扇区为单位进行划分,这样的单位成为簇 。通常情况下,每扇区512 字节的原则是不变的,簇的大小一般是 2n(n 为整数) 个扇区的大小。 所以以簇为单位而不以扇区为单位进行磁盘的分配, 是因为当区分容量较大时,采用512 字节的扇区管理,会增加fat 表的项数和大文件存取的消耗,使文件系统效率不高。引导扇区 dbr (dos boot record)通常占用分区的第0 扇区,共 512 字节, fat 表紧随其后。 dbr 的第一部分是一个x86 跳转指令、厂商标志和操作系统版本号,接下来的从偏移 0x0b 开始的是一段描述能够使可执行引导代码找到相关参数的消息,通常称之为bpb。最后是引导程序代码以及扇区结束标志。bpb 中记录了扇区大小、簇的扇区数、保留扇区数、 fat 表大小和文件系统类型等重要参数,用于文件的索引和定位计算。6.4 软件系统模块usb 读写器软件由主模块、usb 模块、 bulk模块、fat 模块和中断处理模块组成。各模块之间相互协调调用,共同完成对u 盘文件的读写创建。usb 模块负责检测 usb 设备的移入 /移出,对插入的设备进行枚举,分配设备地址端点号,配置设备接口端点描述符,建立bulk_only输入/输出通道, bulk模块则在已建立的 bulk_only输入/输出通道发送 cbw 数据包,并接收csw 数据包,通过cbw 中嵌入的 cbwcb 信息确定对 u 盘读/写操作的扇区位置和大小,fat 模块主要完成簇和扇区间的索引定位,即在u 盘内寻址,利用bpb 中的参数计算给定扇区的所在簇以及进入休眠状态,等待外部中断唤醒。中断处理模块是在中断唤醒后根据中断类型进入不同功能子模块的,也是整个软件系统的核心部分。中断模块接收到串口或并口数据后,根据内部命令字要求进行解析,命令字要求如图 5 所示,串口或并口数据接收流程如图 6 所示。表 6 命令和数据字结构11111100000000005432109876543210类型命令11命令值命令参数字节数或数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产公司建筑模型制作合同书
- 格林童话的语言特点与文化背景教学教案
- 时间王国大闯关课件
- 农村信息化服务支持合同书
- 时间坐标轴课件
- 文言文的魅力:古诗词教学专题
- 商务合同管理流程与审批表单包
- 早恋问题课件
- 2025年美发师专业(造型)考试试卷
- 2025年起重机械操作员现场管理考试试卷
- 2025-2030年中国机场酒店行业市场深度调研及竞争格局与投资研究报告
- 马工程《教育学原理》核心框架解析
- 2025年湖北省高考物理试卷真题(含答案解析)
- 中国美术学院非教学岗位招聘笔试真题2024
- 小学生无故旷课问题
- 化工中控操作管理制度
- 2024年秋季云南高中学业水平合格考历史试卷真题(含答案详解)
- T/SXCAS 015-2023全固废低碳胶凝材料应用技术标准
- T/CSMT-YB 006-2023精密数字温度计性能测试与评价方法
- 组建乐团协议书
- 留疆战士考试题库
评论
0/150
提交评论