8051单片机与U盘接口的设计
- 提问者网友:我们很暧昧
- 2021-04-14 12:19
- 五星知识达人网友:刀戟声无边
- 2021-04-14 12:28
基于单片机的USB接口的设计刘井权,等
基于单片机的USB接口的设计
Design of USB Interface Based on Single Chip Computer
49 井权王宪裁笠
(江南大学通信与控制工程学院,无锡214122)
摘要:提出了一种基于单片机的智能仪表扩展USB接口的方法。介绍了USB接口芯片SL811H S的结构和性能以及USB接口的硬
件电路图,详细分析了USB接口驱动程序的设计方法及FAT16文件系统的结构。利用SCSI传输命令集,通过BULK-IN和BULK-OUT
端点实现了主机与U盘设备之间的数据通信。实验和应用结果表明,该方案具有控制方便、传输速度快、存储数据稳定可靠等优点。
关键词:端点枚举配置文件系统
中图分类号:TP368 文献标识码:B
Abstract; The method of expanded USB interface of intelligent instrument based on single chip computer is stated. The structure and performance
of the USB interface chip SL81IHS, hardware circuit of USB interface are introduced, and the design method of the USB interface drivers,
structure of the FAT16 file systems are analyzed in detail. The communication between the host computer and USB disk is completed via BULKIN
and BULK-OUT endpoint using SCSI command set. The results of experiment and application show that the scheme features convenient control,
fast transmission and reliable storage of data.
Keywords;E ndpoint Enumeration Configuration Files ystem
0 引言
US B ( u niversalse rialb us)是近年发展起来的一种
快速、灵活的总线接口。它最大的特点是易于使用、可
热插拔、接口连接灵活,并且能够提供外设电源川,在
嵌人式系统及智能仪表中得到广泛的应用。而51系
列单片机以其优越的性能、成熟的技术、高性价比被广
泛应用于测控仪器等自动化领域。因此用51系列单
片机实现USB主机接口,进而实现对USB外设的控
制,对提高整个系统的数据存储、数据传输、设备控制
等性能都有很大的作用。本文论述的方案基于压强测
试仪的应用环境,在开发压强测试仪的过程中根据实
际的需求,要求能够存储大量数据,以往的解决方案是
RS-232C接口,但由于传输速度慢、在高速采样时容易
导致数据丢失,而且必须有上位机的参与,这对于室外
作业很不方便。USB接口克服了上述缺点,测试仪器
可以把采集到的数据保存到U盘,工作人员可以随时
取下U盘,将数据拿到异地进行分析,另外笔者还开
发了读写U盘的文件系统,存储的数据可以直接在PC
机上打开,不需要编写其它的分析软件。
1 硬件设计
1.1 SL811H S概述
51.8 11 H S是Cypress公司推出的具有主/从两种工
《自动化仪表》第27卷第8期2006年8月
作模式的USB控制器[4],遵循USB1.1 规范,可自动检
测总线速率,支持全速12M bps和低速1.5 M bps设备;
具有8位双向的数据总线,易与单片机连接;片内256
字节的SRAM(其中16字节用于工作寄存器),用于数
据传输;可自动产生SOF和CRC5/16,简化软件工作
量;片内具有根Hub,US B口可以直接外接集线器;支
持挂起/唤醒工作模式,减少功耗;支持地址自动加1
功能,在连续读写过程中,只需设置一次地址,其内部
寄存器地址自动增加,这在大容量数据的通信中是非
常必要的。
1.2 单片机与SL811H S接口设计
图 1所 示 是AT89C 51与SL811H S的硬件连接电
路111。在本设计中,由于所选用的单片机AT89C51及
其外围元件的工作电压为5V,而SL811H S的工作电
压为3.3 V,所以系统应提供5V电压同时要进行电压
转换。虽然SL811H S可以使用12M Hz晶振,但在实
图1 硬件连接图
Fig.1 Ha rd wa re c on ne ct ion
基于单片机的USB接口的设计刘井权,等
际使用过程中,如果晶振质量不太好,电路稳定性就会
比较差,因此,设计时推荐使用48 MHz有源晶振。
SL811H S的中断请求输出的是高电平,因此需要用反
向器把它变换成低电平以满足AT89C51中断输人要
求。此外,应注意SL811H S是低电平复位。为了便于
调试,系统扩展了液晶显示器。硬件完成后要进行测
试,先向SL811HS 寄存器中写人数据,之后读出数据
并在液晶显示器上显示,如果和写人的数据相同,说明
SL811H S与单片机连接正确。再用示波器观察有源晶
振是否起振,一切正常后便进入软件调试。
2 软件设计
2.1 USB枚举过程
US B总 线 一般包含控制传输、中断传输、批传输以
及同步传输四种基本数据传输类型,本系统使用的是
控制传输和批量传输[3]。最基本的函数就是对
SL811H S寄存器的读写,代码可参照文献「6]a
读单个寄存器:
BY TE S L811R ead( B YTEa )
{SL 81 1H _ADDR二a;
ret unr ( SL811H _DATA);}
写单个寄存器:
voi dS L8 11W rite(BYTEa ,B YTEd )
}S L8 11 H _ADDR=a;
SL8 11 H DATA=d;}
连续读SL811H S寄存器:
voi dS L8 11BufRead(BYTEa ddr,B YTE*s,B YTEc )
{B YT E c ;
SL8 11 H _ AD DR=addr;
wh ile (c --)
*s ++ = S L8 11H_DATA;}
连续写SL811H S寄存器:
voi dS L8 11BufWrite(BYTEa ddr,B YTE*s,B YTEc )
}B YT E c ;
SL8 11 H _ AD DR=addr;
wh ile (c --)
SL8 11 H _D AT A=*s++;}
读写 寄 存 器正常以后,便进人SL811H S底层函数的
编写,具体的函数可参照CYPRESS公司提供的代码修
改。在对U盘读写之前需正确配置SL811H S芯片,这
部分工作通过枚举[3]来完成。枚举是对USB接口正确
配置的过程,包括获取设备描述符、配置描述符、接口描
述符、端点描述符,以及对接口、端点的正确配置。
请求 设 备 描述符的setup数据包〔,]为80h060001
00 00 12 00,通过读取设备描述符,可获得设备的子
类。请求配置描述符的setup数据包为80h060001
0000 0900,对于请求配置描述符,可以先进行首次请
求,要求数据包长为9。接收到设备返回的数据,获得
此描述符的总长,然后再发二次请求,获得全部描述符
数据。第二次发送的setup数据包内容为80h 06 00 01
00 00 2Eh 00,此时返回的数据包括了设备配置、接口、
端点的全部描述信息{’]。枚举过程如图2所示。
图2 枚举过程
Fig.2 Thep rocesso fe numeration
设备 刚 插 人时,SL811H S是通过中断方式通知主
机的。主机通过查询SL811H S中断寄存器的值判断
引起中断的原因。如果是由于设备插人引起的,主机
接下来要对设备进行配置。首先要获得设备描述符,
以判别设备是哪一类设备,此时USB设备默认地址
为0,通信采用控制传输;接下来主机对USB设备分
配地址,地址从1一127可根据系统需要任意选择,在
以后与USB设备通信时就用此地址,然后获取有关
设备配置的描述符,获取此描述符要进行两次请求。
第一次是试探性的,以便得到相关数据的具体长度,
第二次才返回接口以及端点的全部信息;最后按照得
到的数据对USB设备进行正确的配置,至此USB枚
举过程结束。
2.2 U 盘 的 读 写 及FAT16文件系统[z]
U盘 属 于 大容量存储设备,当U盘枚举成功后,主
机与USB设备通过BULK-ONLY传输方式传输数据,
所有的通信数据都通过BULK-IN和BULK-OUT端点
传输。在这种传输方式下,有CBW,CS W和普通数
据[3]三种类型的数据在USB和设备之间传送。命令
块包CBW (command block wrapper)是从USB Host发
送到设备的命令,命令格式遵从接口bInterfaceSub-
Class中所指定的命令块,这里为SCSI传输命令集。
USB设备需要将SCSI命令从CBW中提取出来,执行
相应的命令,完成以后,向Host发出反映当前命令执
行状态的CSW,H ost根据CSW 来决定是否继续发送
下一个CBW或是数据。Host要求USB设备执行的命
令可能为发送数据,则此时需要将特定数据传送出去,
完毕后发出CSW,以使Host进行下一步的操作。
U盘 一 般 支持FAT16文件系统,它可以分成保留
PROCESSA UTOMATION INSTRUMENTATION Vol.27 No.8 August2 006
基于单片机的USB接口的设计刘井权,等
区、FAT区、根目录区、数据区4个部分。保留区的第
一个扇区也叫引导扇区,它含有对文件系统识别的关
键信息。根目录区存放目录项,每个目录项为32个字
节,记录一个文件或目录的信息。FAT区即文件分配
表,操作系统分配磁盘空间按簇来分配的。同一个文
件的数据并不一定完整地存放在磁盘的一个连续的区
域内,而往往会分成若干段,像一条链子一样存放。这
种存储方式称为文件的链式存储。为了实现文件的链
式存储,硬盘上必须准确地记录哪些簇已经被文件占
用,还必须为每个已经占用的簇指明存储后继内容的
下一个簇的簇号,对一个文件的最后一簇,则要指明本
簇无后继簇。这些都是由F,AT表来保存的,FAT表的
对应表项中记录着它所代表的簇的有关信息:诸如是
否空,是否是坏簇,是否已经是某个文件的尾簇等。
目录项所占的最后一个扇区之后,便是真正存放文件
数据的位置了。只有清楚地了解FAT16的结构才能
对文件正确读写,图3给出写文件的流程图,读文件相
对比较简单,在此不再赘述。
3 结束语
本文 介 绍 的USB主机接口不同于以往的USB设
备接口[,],在USB系统设计中,USB主机接口的设计
一直是其难点所在。它能主动发出命令,USB外设通
过解析命令数据包然后执行相应的命令。通过USB
主机接口的控制,不仅提高了数据传输的稳定性,而且
能够对采集过程中出现的错误及时进行处理。本方案
已成功实现了对U盘的读写,在实际的应用中,读写
数据稳定可靠,可兼容市场上绝大多数U盘。作者在
单片机系统中可以建立、删除、修改文件,可以把数据
存储成多种文件格式,存储后的数据可以在PC机上
打开,这为数据的分析提供了便利。
参考文献
1 Cypressse miconductorco rporation.S L811H Sd ates heet[M ] .2002.
2 Microsoftco rporation.F ATF ileS ystemS pecification[M ] .19 99.
3 Compaq,In ter,M icorsoft,NEC.U niversalS erialB usS pecification
[M ]. Re visionl.1 ,19 98.
4 史波,田凯通用串行总线USB技术概述【1l.信息技术,20DI,(4 )
5 许永和.8051单片机USB接口程序设计【M].北京:北京航空航
天大 学出版社,2004.
6 冉光志,赵明生.基于SLSII H ST和S3C4510B的嵌人式USB主
机与 设备的设计【J].微计算机信息,2005,(11).
7 路永坤.基于USB接口的数据采集模块的设计与实现〔J].自动
化仪 表,2005,26(2):3 5一37.
图 3 写 U盘的流程图
Fig.3 Thew ritep rocesso fU disk
修改稿收到日期:2006 -04 -060
第一作者刘井权。男,19” 年生,现为江南大学通信与拉制工程学院
在读硕士研究生;主要研究方向为嵌入式系统。
(上接第28页)
P.. (‘一1)= K,x e (‘一1)+Ki/艺e(‘一1)+
凡 x [ e (t 一1 ) 一e (t 一 2) ] ( 6)
两式相减得到增量式计算公式:
Pd,, = KP x [ e(t)一e(‘一1)]+ Kix e(t)+
Kd x [ e( t) 一 2x e (‘ 一1 )+ e(t一2)] ( 7)
式中:K ,K;,K,分别为比例常数、积分常数、微分常
数;e(t)为基本偏差。
还包 含 了 手操模块、输出模块以及一些简单的运
算模块,如加、减、乘、除等,通过组态,可运行单回路
PID控制、双回路PID控制和串级PID控制,配合手操
模块,可实现手/自动无扰切换,并可选择多种输出模
式,进行各种类型的PID控制。
4 结束语
价比较高。基于该芯片的智能仪表,具有测量精度高、
运算速度快、控制输出模式多、控制效果好、成本低的
优点,适用于各种工业控制现场。
参考文献
1魏小龙.MSP430系列单片机接口技术及系统设计实例〔M].北
京: 北京航空航天大学出版社,2002.
2 杨宏丽,张健.单片机测控系统的硬件及软件抗干扰技术[i].
电子 工 程 ,2004,(4);45一49.
3 胡大可.MSP430系列单片机C语言程序设计与开发【M].北
京: 北京航空航天大学出版社,2003.
4 吴志祥.实用温度测量技术〔J].常州工学院学报,2003,(4);
52 一 5 7.
收稿日期:2006 -03 -15 0
第一作者黄琦,男,1981年生,现为浙江大学控制科学与工程学系在
MSP430F149单片机功能强、体积小、性能稳定、性读硕士研究生;主要研究方向为工业自动化。
《自动化仪表》第27卷第8期2006年8月
- 1楼网友:北城痞子
- 2021-04-14 13:41
给你说个芯片吧,你可以上网查一下相关的论文或者是资料看看。
CH375