USB接口芯片SL811HS在51单片机系统中的应用.DOC

上传人:国*** 文档编号:985738 上传时间:2018-11-10 格式:DOC 页数:11 大小:218KB
下载 相关 举报
USB接口芯片SL811HS在51单片机系统中的应用.DOC_第1页
第1页 / 共11页
USB接口芯片SL811HS在51单片机系统中的应用.DOC_第2页
第2页 / 共11页
USB接口芯片SL811HS在51单片机系统中的应用.DOC_第3页
第3页 / 共11页
USB接口芯片SL811HS在51单片机系统中的应用.DOC_第4页
第4页 / 共11页
USB接口芯片SL811HS在51单片机系统中的应用.DOC_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 USB接口芯片 SL811HS在 51单片机系统中的应用摘要:介绍了 CYPRESS公司生产的主从双工作模式 USB接口芯片 SL811HS的性能与内部结构,给出了SL811HS芯片在单片机系统中扩展接口的硬件电路,同时给出了该系统的 USB驱动程序及实现盘读写功能的应用程序。 关键词:SL811HS;USB 接口;驱动程序;盘读写 引言 (通用串行总线)是、-、等公司联合提出的、最近几年逐步在领域广为应用的新型接口技术。接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且便于使用,这些优点使其得到许多硬件厂商的青睐。目前各种类型的产品已大量涌入市场,同时也被广泛地用在机及

2、嵌入式系统中。 的拓扑结构中居核心地位的是(也称为主机),任何一次数据传输都必须由主机发起和控制,所有的外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,扮演主机角色的大多是个人电脑。而我们买到和使用的移动设备都是外设(),如的移动硬盘、接口的数码相机等。所有这些设备都只能在上或通过来进行文件和数据交换。没有了,这些设备就“失灵”了(指数据交换的功能)。系列单片机以其优越的性能、成熟的技术高可靠性、高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域。用系列单片机实现主机接口,进而实现对外设的控制,对提高整个系统的数据存储、数据传输、设备控制等性能都有很大的作

3、用。本文使用系列单片机和接口芯片设计了一个主机接口,通过该接口可实现对外设盘的读写控制,从而实现单片机数据采集系统的海量数据存储。 的结构性能是公司生产的、可支持全速数据传输的控制芯片 该芯片采用脚和脚两种封装形式,且内含主从控制器,支持全速()低速 数据传输,并能自动识别低速或全速设备。所提供的接口遵从标准,可与微处理器、微控制器、相连,也可直接与、及其它总线相连。的数据接口与微处理器进行接口可提供位数据或双向通道,并能以从机操作方式支持数据传输。此外,通过中断支持还可以轻松地与、及其它众多类型的标准微处理器或微控制器相连。内部有一个字节的,可用做控制寄存器或数据缓冲器。的内部结构框图如图所

4、示。 和微控制器的硬件接口图所示是系列微控制器与的连接电路。在该设计硬件时,由于所选用的系列单片机及其周围元件的工作电压为,而的工作电压为,所以系统应同时提供和电源;虽然可以使用晶振,但在实际使用过程中发现,如果晶振质量不太好,电路稳定性就会比较差,因此,设计时推荐使用晶振;由于的中断请求输出的是高电平,因此需要用反向器把它变换成低电平以满足中断输入要求;此外,是低电平复位;其插座的电源接口也应作限流处理以保护系统。 软件设计软件设计分为部分,一是针对芯片编写主机控制器驱动程序;二是系统调用驱动程序来完成盘数据读写的应用程序。 主控制器驱动程序设计设备驱动程序是开发外设的关键,协议的复杂性导致

5、了驱动程序内容的多样性。本文只介绍主机完成盘数据读写功能所需的主要模块,包括初始化模块、枚举模块、读字节模块、写字节模块、读缓冲区模块、写缓冲区模块等。初始化模块用来设置的主从机工作模式、全速或低速工作方式、内部数据缓冲区结构等;而枚举主要是指主机监测到盘插入时,主机和盘之间产生的一个过程。当枚举发生时,主机首先自动发出查询请求,盘回应这个请求,并送出设备的 和 然后由主机根据这两个装载相应的设备驱动程序,以完成枚举过程。通过枚举不但可为盘设定设备地址,而且可以得到盘端点的描述表及盘支持协议,之后就可以根据盘所属的子类及协议对盘进行操作。在本系统中,占用的地址空间为,下面的读写函数中采用“自动

6、地址增加模式”来降低读写设备时占用的系统资源: _ ;主机控制寄存器地址 _ _ ;主机数据基址 ( , ) _ ; ; ( ) _ ; _;下面是读写缓冲区的代码函数: 缓冲区起始偏移地址 进行缓冲区读写操作时的数据指针 进行缓冲区读写操作时的数据数量 ( , , ) _ ;() _; ( , , ) ; () _; 应用程序设计总线一般包含四种基本数据传输类型:控制传输、中断传输、批传输以及同步传输,本系统使用的是控制传输和批腀输。這面以爱国者迷你王盘为例,介绍在该盘上建立目录及写文件的具体方法。爱国者迷你王()属 ,支持传输,命令集为传输命令集。传输时,其命令、数据及状态均通过端点传送。

7、爱国者迷你王()有三个端点,端点为缺省控制通道,端点为 端点,端点为 端点。首先要用(读)及 命令读取盘参数,随后即可对盘进行读写。其中的值为 ,表示当前发送的是一个;将的内容在状态阶段原样发送给可以验证命令执行的是否正确;为数据阶段要传送的字节数;表明数据阶段传送的方向; -是保留位,通常可以置零;用于指明该命令传送给哪个逻辑单元;为后续字符串中命令字节的长度,为真正要传送的命令。命令发出后,盘从中解析出-然后执行相应的操作,之后返回一个命令块,表明命令执行情况。爱国者迷你王()每次至少读取或写入字节,因此在改写某些字节时,必须把整个逻辑块一次读出,修改后再一次性写入。用控制来读写盘的工作过

8、程可以简单地概括为:当从总线检测到盘插入后,通过中断方式将此信息通知系统,系统通过调用枚举模块可以获得与此次传输有关的各种参数,并根据具体的传输参数调用数据读写模块以对的控制寄存器和数据寄存器进行相应的操作,最终完成对盘的读写。其写文件流程图见图所示。 结束语使用主机接口控制器实现对盘的读写,可为数据采集系统大容量数据存储提供一种通用、方便和可靠的解决方案,目前该方案已成功应用到笔者自主研发的温室环境信息采集系统中,并经过长时间测试证明了它的实用性和可靠性。由于同时具有从机工作模式,因此,也可将此方案经简单修改后开发接口从设备,从而满足不同场合的需要。 USB 接口芯片 SL811HS 在 5

9、1 单片机系统中的应用上传者:张殊凡 浏览次数:285 摘要:介绍了 CYPRESS 公司生产的主/从双工作模式 USB 接口芯片 SL811HS 的性能与内部结构,给出了 SL811HS 芯片在单片机系统中扩展 USB 接口的硬件电路,同时给出了该系统的 USB 驱动程序及实现 U 盘读写功能的应用程序。关键词:SL811HS;USB 接口;驱动程序;U 盘读写1 引言USB( 通用串行总线)是 INTEL、DEC、MI-CROSOFT 、IBM 等公司联合提出的、最近几年逐步在 PC 领域广为应用的新型接口技术。USB 接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且

10、便于使用,这些优点使其得到许多硬件厂商的青睐。目前各种类型的 USB 产品已大量涌入市场,同时也被广泛地用在 PC 机及嵌入式系统中。USB 的拓扑结构中居核心地位的是 Host(也称为主机),任何一次 USB 数据传输都必须由主机发起和控制,所有的 USB 外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,扮演主机角色的大多是个人电脑 PC。而我们买到和使用的 USB 移动设备都是 USB 外设(device),如 USB 的移动硬盘、 USB 接口的数码相机等。所有这些设备都只能在 PC 上或通过 PC 来进行文件和数据交换。没有了 PC,这些设备就“失灵”了

11、(指数据交换的功能 )。51 系列单片机以其优越的性能、成熟的技术高可靠性、高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域。用 51 系列单片机实现 USB 主机接口,进而实现对USB 外设的控制,对提高整个系统的数据存储、数据传输、设备控制等性能都有很大的作用。本文使用 51 系列单片机 W78E54 和 USB 接口芯片 SL811HS 设计了一个 USB 主机接口,通过该接口可实现对 USB 外设 U 盘的读写控制,从而实现单片机数据采集系统的海量数据存储*。2 SL811HS 的结构性能SL811HS 是 CYPRESS 公司生产的、可支持全速数据传输的 USB 控制芯片 该

12、芯片采用 28 脚 PLCC 和 48 脚 TQFP 两种封装形式,且内含 USB 主/ 从控制器,支持全速(full-speed)/低速low-speed 数据传输,并能自动识别低速或全速设备。 SL811HS所提供的接口遵从 USB1.1 标准,可与微处理器、微控制器、DSPs 相连,也可直接与ISA、PCMCIA 及其它总线相连。SL811HS 的数据接口与微处理器进行接口可提供 8 位数据 I/O 或双向 DMA 通道,并能以从机操作方式支持 DMA 数据传输。此外,通过中断支持还可以轻松地与 Motorola、Intel 及其它众多类型的标准微处理器或微控制器相连。SL811HS 内

13、部有一个 256 字节的 RAM,可用做控制寄存器或数据缓冲器。SL811HS 的内部结构框图如图 1 所示。3 和微控制器的硬件接口图 2 所示是 51 系列微控制器 W78E54 与 SL811HS 的连接电路。在该设计硬件时,由于所选用的 51 系列单片机 W78E54 及其周围元件的工作电压为 5V,而 SL811HS 的工作电压为 3.3V,所以系统应同时提供 5V 和 3.3V 电源;虽然 SL811HS 可以使用12MHz 晶振,但在实际使用过程中发现,如果晶振质量不太好,电路稳定性就会比较差,因此,设计时推荐使用 48MHz 晶振;由于 SL811HS 的中断请求输出的是高电平

14、,因此需要用反向器把它变换成低电平以满足 W78E54 中断输入要求; 此外,SL811HS 是低电平复位;其 USB 插座的电源接口也应作 500mA 限流处理以保护系统。4 软件设计USB 软件设计分为 2 部分,一是针对 SL811HS 芯片编写 USB 主机控制器驱动程序;二是系统调用驱动程序来完成 U 盘数据读写的应用程序。4.1 主控制器驱动程序设计USB 设备驱动程序是开发 USB 外设的关键,USB 协议的复杂性导致了 USB 驱动程序内容的多样性。本文只介绍主机完成 U 盘数据读写功能所需的主要模块,包括初始化模块、枚举模块、读字节模块、写字节模块、读缓冲区模块、写缓冲区模块

15、等。初始化模块用来设置 SL811HS 的主/从机工作模式、全速或低速工作方式、内部数据缓冲区结构等;而枚举主要是指主机监测到 U 盘插入时,主机和 U 盘之间产生的一个过程。当枚举发生时,主机首先自动发出查询请求,U 盘回应这个请求,并送出设备的 Verdor ID 和 Product ID 然后由主机根据这两个 ID 装载相应的设备驱动程序,以完成枚举过程。通过枚举不但可为 U 盘设定设备地址,而且可以得到 U 盘端点的描述表及 U 盘支持协议,之后就可以根据 U 盘所属的子类及协议对 U 盘进行操作。在本系统中,SL811HS 占用的地址空间为 0xA000-0xBFFF,下面的读写函数

16、中采用“自动地址增加模式” 来降低 SL811HS 读写设备时占用的系统资源:xdata unsigned char SL811_ADDR_at 0xA000;/USB 主机控制寄存器地址xdata unsigned char SL811_DATA _at_ 0xA001;/USB 主机数据基址void wr811(unsigned char address, unsigned char value) SL811_ADDR = address;SL811 DATA = value; unsigned char rd811(unsigned char address) SL811_ADDR =

17、address;return SL811_DATA;下面是读写缓冲区的代码函数:/ addr = 缓冲区起始偏移地址/ s = 进行缓冲区读写操作时的数据指针/ c = 进行缓冲区读写操作时的数据数量void SL811BufRead(unsigned char addr, unsigned char *s, unsigned char c) SL811_ADDR = addr;while(c-) *s+= SL811_DATA;void SL811BufWrite(unsigned char addr, unsigned char *s, unsigned char c) SL811 ADDR = addr;while (c-) SL811_DATA=*s+;4.2 应用程序设计USB 总线一般包含四种基本数据传输类型:控制传输、中断传输、批传输以及同步传输,本系统使用的是控制传输和批腀输。這面以爱国者迷你王 U 盘为例,介绍在该盘上建立目录及写文件的具体方法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。