基于嵌入式系统U盘开发的设计.doc
- 文档编号:119004
- 上传时间:2022-10-03
- 格式:DOC
- 页数:16
- 大小:231.50KB
基于嵌入式系统U盘开发的设计.doc
《基于嵌入式系统U盘开发的设计.doc》由会员分享,可在线阅读,更多相关《基于嵌入式系统U盘开发的设计.doc(16页珍藏版)》请在冰豆网上搜索。
湖南文理学院芙蓉学院
课程设计报告
课程名称:
嵌入式系统课程设计
专业班级:
通信工程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.在调试的时候,从现象上来看,分成以下几个阶段性的步骤 5
5.2.3.检查USB器件工作与否 6
5.2.4.提供描述符 6
5.3硬件设计 6
六、系统软件设计 7
6.1USB协议 7
6.2BULK_ONLY和UFI协议 8
6.3FAT32 11
6.4软件系统模块 12
七、仿真调试分析 14
八、嵌入式系统学习心得 14
九、参考文献 15
基于嵌入式系统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调试软件(从网上下载BusHound)将设备端的USB协议(主要有描述符请求、端口配置、地址设置以及基本数据交换)调通。
然后,用调试好的USB设备接口来嵌入文件系统功能。
三、设计作用与目的
根据U盘结构特点,设计了一种基于嵌入式系统U盘的系统结构,可以将U盘集成到无线数据卡上,或者手机上,以实现数据存储的功能
四、系统设计方案
4.1系统总体设计
图1USB读写器结构图
4.2简要阐述系统工作原理
SB读写器结构框图如图1所示,主要由MSP430F149和SL811HS构成,MSP430支持串口输入和14位的并口输入,P2.7用作中断唤醒位,P2.6用作标准位区分数据和命令,通过P4口向SL811发送控制信号,P6用作普通的双向总线接口与SL811进行数据交换,P1.1支持中断唤醒接收SL811的中断请求。
五、系统硬件设计
5.1硬件电路
下图分别为PDIUSBD12的引脚定义,其中,下列几个方面在制作电路板时应该注意。
图2PDIUSBD12引脚图
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,D+D-分别接USB接口中的对应位。
b)XTAL1和XTAL2按传统接法。
c)PDIUSBD12与MCUAT-89C55WD的连接方法见下表
表1PDIUSBD12与MCUAT-89C55WD的连接方法
PDIUSBD12引脚
MCUAT-89C55WD引脚
DATA<0>~DATA<7>
P0.0~P0.7(AD0~AD7)
ALE
ALE/PROG
CS_N
P1.6
RESET_N
P1.7
INT_N
P3.2(INT0)
SUSPEND
P3.3
WR_N
P3.6(WR)
RD_N
P3.7(RD)
A0
接GND
d)DMARQDMACK_NEOT_NGL_NCLKOUT引脚悬空,可作为扩充功能使用。
e)MCUAT-89C55WDP1.2和P1.3接2个低电平有效显示灯LED1和LED2。
5.2基本程序结构
5.2.1.USB设备端的固件分以下几个层次:
表2固件层次
固件模块
功能
Main.c
进行各种初始化操作、寄存器设置、中断设置
intr.c
中断服务程序,负责将不同类型的中断转向不同的地方
usb_op.c
D12硬件抽象层,所有的上层模块都必须通过此模块与USB芯片打交道
usb_prtcl.c
设备枚举需要的设备描述符,配置描述符,接口描述符,端口描述符都由此模块来执行提供
endpoint2_bulk_only.C
所有massStorage协议CBW,CSW,DATA的处理及FLASH的读写都由此模块来处理
5.2.2.在调试的时候,从现象上来看,分成以下几个阶段性的步骤
1、USB芯片正常工作,可以实现软连接,此时PC机上会出现“未知设备类型”的USB设备;2、向主机提供普通USB设备提供描述符,提供正确的VID和PID后,PC能够识别设备,但要求提供设备的驱动程序;3、安装驱动程序后,使用周立功单片机公司提供的UsbDebug.exe简单调试端点1和2,确保其均可传输数据,验证硬件及固件的正确性;4、按MassStorage不得Bulk-Only模式提供描述符,PC机上设备类型变成MassStorageDevice;5、响应了Bulk-Only的Inquiry命令,可以出现盘符了,但尚无法访问磁盘;6、提供了其他所有的UFI命令(SCSI子集),开始读取磁盘0扇区(BPB区)的内容按照FAT12的格式7、在AT-89C55WDEEPROM虚拟一张软盘,可以正确读取信息,可以访问盘符,列目录为空;8、,软盘中放一个可执行的文件,可以正常运行这个可执行文件;8、创建文件,向设备发出Write命令,等等。
下面从具体实际操作方面来描述调试各阶段的步骤
5.2.3.检查USB器件工作与否
确定USB芯片是否已经正常工作,是所有调试的基础,得到电路板之后,这是一个首先要解决的问题。
判断USB芯片是否已经工作,可以使用SoftConnect,则在主程序中进行软连接后,如果PC机上出现未知设备,则说明USB进行软连接正常,也说明芯片已经工作了。
另外就是使用BusHound,观察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设备控制器,充分发挥各自优势满足低功耗要求。
MSP430
TI公司的MSP430系列单片机是一种超低功耗的混合信号控制器,针对不同的应用而由各种不同的
模块组成,这些微控制器可用电池工作,且使用的时间很长,MSP430单片机具有16位RISC结构,CPU中的16个寄存器和常数发生器使其能达到最高的代码效率,灵活的时钟源可以使器件的功率消耗最低,数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在短于6μs的时间内激活到活跃的工作方式,非常的内/外设和I/O端口资源,端口P1和P2支持中断唤醒。
SL811HS
Cypress公司的SL811HS是一款超低功耗的USB主/从设备控制器,主设备或从设备模式由软件控制,USB主/从设备控制器支持全高速和低速数据传输,内部256字节的SRAM缓存,访问时地址自动加1,可大大缩短读写指令周期,具有标准的8位双向微处理器总线接口,其中从设备模式下支持DMA。
六、系统软件设计
为了使上位PC机能够直接读取该读写器写入U盘的数据,数据存储按照FAT32文件管理方式存储,其中涉及USB和UFI协议以及FAT32文件存储格式。
6.1USB协议
USB(通用串行总线)用于将USB接口的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构,是一种快速、灵活的总线接口,USB的传输类型有控制(control)、批量(bulk)、中断(interrupt)和同步(synchronous)传输4种,它最大的特点是易于使用,即插即用,主要是用在中速和低速的外设。
控制数据用于在USB接入总线时对其进行配置,其他的驱动软件可以根据具体的应用来选择使用控制传输,这种数据传输不会丢失数据。
典型的批量数据包括象使用打印机或扫描仪时所出现的大数据量的数据,这种批量数据是连续的,通过在硬件中实现差错检测功能,并且有选择地进行一定的应进重试操作,可以在硬件层次上保证数据的可靠交换。
由设备自发产生的数据传输是中断数据传输,这类数据传输可以由USB设备在任意时刻发起,而且USB总线以不低于设备说明的速率进行传输。
同步数据在产生、传送和处理过程中是连续的和实时的,在稳定的同步数据发送和接收速率中包含了相应的时钟信息,为了保持定时关系,同步数据必须按照接收的速率进行传输。
6.2BULK_ONLY和UFI协议
USB设备分为5大类,即显示器、通信设备、音频设备、人机输入和海量存储。
通常所用的U盘、移动硬盘均属于海量存储类。
海量存储类的规范中包括4个独立的子规范,即CBI传输、Bulk-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 系统 开发 设计