




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5151 单片机控制单片机控制 SL811HSSL811HS 的的 USBUSB 主机底层驱动主机底层驱动 摘 要 本文介绍了 51 单片机控制 SL811HS 实现 USB 主机的硬件设计和底层驱动的编写 其中 底层 驱动部分主要讲述了 USB 总线复位 设备插拔动作检测 设备速度检测以及 USB 传输事务的实现 引言 基于 USB 接口的设备使用方便 性价比高 因此在人们的工作和生活中得到了广泛的应用 如 U 盘 移动硬盘 移动光驱 USB 摄像头 USB 鼠标键盘等 同时 51 系列单片机以其成熟的技术和高性价比吸 引了大量国内用户 被广泛应用于测控和自动化领域 因此 如果在 51 单片机系统中增加 USB 主机接口 实现对 USB 从机设备的控制 则该单片机系统可充分利用现有的各种 USB 从机设备 大大扩展单片机 系统的功能 本设计实现了在 51 单片机系统中增加 USB 主机功能 采用普通 51 单片机外接专用 USB 接口芯片的方 案 这种方案虽然会使系统传输速度受到限制 而且在稳定性方面有所欠缺 但此方案设计灵活性高 且 易于移植 为低成本产品的开发提供了广阔前景 设计中采用的 51 单片机是 Atmel 公司的 AT89S52 芯片 USB 主机功能的扩展通过外接专用 USB 接口芯片 SL811HS 实现 CYPRESS 公司的 USB 接口芯片 SL811HS 可以工作在主机或从机模式 支持 USB1 1 的全速和低速数据传输 工作在主机模式时 SL811HS 可以自 动检测外设的插拔动作 可以按照外处理器 如单片机 的要求自动把数据整合为 USB 协议数据包进行数据 传输 图 1 系统硬件示意图 本文将介绍单片机 AT89S52 控制 SL811HS 的硬件设计和底层驱动的编写 其中重点讲述底层驱动的设 计 硬件设计 系统的硬件原理图如图 1 所示 AT89S52 的供电电压为 5V SL811HS 的为 3 3V 尽管供电电压不同 但根据芯片引脚的信号噪声容限参数分析可知 AT89S52 与 SL811HS 之间的引脚可以直接相连 不需要电 平转换或缓冲 表 1 USB 主机枚举操作驱动的层次关系 软件设计 USB 主机驱动是一个高低层子程序的组合 实现 USB 传输和控制的过程是较高层子程序调用较低层子 程序的过程 编写 USB 主机驱动时 可接从低层往高层的顺序逐层进行 以 USB 主机枚举从机设备的操作为例 实现该功能所需要的各层子程序层次关系如表 1 所示 本文将 介绍较低层的几个子程序的实现 包括读写 SL811HS 内部寄存器 传输事务的实现 设备插拔检测 复位 等 其中 传输事务的实现 是关键和难点 同时也是本文的重点 单片机读写 SL811HS 内部寄存器 读写 SL811HS 内部寄存器子程序是最低层的子程序 系统所进行的各种操作主要都是通过调用这些子 程序读写 SL811HS 内部寄存器实现的 例如 通过读取 SL811HS 的状态寄存器获取 SL811HS 的状态信息可 以实现设备插拔检测 设备速度检测等 通过向 SL811HS 的相关控制寄存器写入控制字节可以实现 USB 总 线复位以及 USB 数据传输等操作 SL811HS 内部寄存器 从编程结构的角度来看 SL811HS 内部寄存器一共有 256 个单元 每个单元是一个字节 其中地址为 00H 0FH 的前 16 个单元是 SL811HS 的状态寄存器或控制寄存器 统称为特殊寄存器 其余的是数据缓 冲寄存器 表 2 列出了 16 个特殊寄存器的名称和主要功能含义 表 2 SL811HS 内部特殊寄存器简介 单片机读写 SL811HS 内部寄存器的实现 按照 SL811HS 的读写控制信号时序图编写单片机读写 SL811HS 内部寄存器的子程序 使各控制引脚上 按照规定的时序给出符合要求的信号脉冲 在这个程序中 单片机指令周期的大小将直接影响输出信号 的保持时长和时序关系 初始化 初始化操作主要包括 SL811HS 芯片复位 USB 总线复位 设备插拔检测和设备 USB 数据传输速度检测 等 通过这些初始化操作 SL811HS 将作为 USB 主机与从机之间建立一个底层协议连接关系 为后续的数 据通信做好准备 SL811HS 芯片复位 USB 接口芯片 SL811HS 的复位是对芯片的状态进行复位 包括了对芯片内部寄存器值的复位 实现该 操作不需要读写接口芯片内部寄存器 只需向接口芯片的复位引脚输入一个有效的复位脉冲即可 USB 总线复位 按照 USB 协议 USB 总线复位是指在 USB 数据线上输出 SE0 态 并保持 10ms 以上 接在 USB 总线上 的从机设备收到这个复位信号后就会进行自身的复位操作 为接下来的 USB 数据传输做好准备 通过设置 接口芯片的 CtrlReg 05H 寄存器的第 4 3 位为逻辑 01 并保持 10ms 然后再把它们恢复为逻辑 00 就可以让接口芯片产生 USB 总线复位信号 设备拔插检测和设备速度检测 在 USB 协议的物理层上 USB 从机设备是否接在 USB 总线上是通过检测总线的电压得知的 根据该电 压的高低 还可获知 USB 总线上的设备所支持的速度 例如 在 USB1 1 协议中 分有低速和全速 USB 主机接口芯片 SL811HS 把这个物理层的电压检测结果反映到状态寄存器的取值上 通过读取这些状态寄存 器的值 可以获知当前的设备插拔状态和设备速度 USB 主机所进行的初始化操作除了上述 3 项外 还包括帧起始包启动 禁止的设置 帧同步设置 帧 定时初值的设置等 它们都是通过对接口芯片特殊寄存器进行读写而实现的 传输事务的实现 根据 USB1 1 协议 一个传输事务一般包含 3 个包 Packet 的传输 分别是标记包 Token Packet 数据包 Data Packet 和握手包 Handshake Packet USB 数据传输方式一共有四种 分别是控制传输 CO NTROL Transfer 同步传输 Isochronous Transfer 中断传输 Interrupt Transfer 和批传输 Bulk T ransfer 其中 控制传输方式至少由 2 个传输事务构成 其它三种传输方式则都各由 个传输事务构成 可见 传输事务在 USB 传输中至关重要 一个典型的传输事务含有 3 个包的传送 这连续的 3 个包数据流如表 3 所示 表 3 一个传输事务的数据流示意 使用 SL811HS 设计 USB 主机系统时 用户只需让单片机设置 SL811HS 内部几个相关的特殊寄存器 然 后把传输事务启动位使能 置为逻辑 1 就可以让接口芯片自动完成这个包的发送与接收 在表 3 所 示的例子中 第 n 个包 标记包 和第 n 2 个包 握手包 都是由主机发送给从机的 第 n 1 个包 数据包 是 由从机发送给主机的 这个传送方向和第 n 2 个包的传送方向都是由标记包中的标识域取值决定的 其规 则可参考 USB 协议 如果传输事务的数据包是由从机发送给主机 则该传输事务属于输入类型 称为输入传输事务 反之 则称为输出传输事务 可见 表 3 例子是一个输入传输事务 对于一个输入传输事务 单片机通过设置 S L811HS 内部特殊寄存器就可以决定其取值的包域主要有 标记包中的标识域 地址域和端点域 数据包 中的标识域 在输入传输事务中 虽然数据包并不是由主机发送的 但之所以仍需要单片机设置与数据包 标识域相关的寄存器 是因为主机在该传输事务中将只认可标识域符合所设置值的数据包 其余部分 如 标记包中的其它域及握手包的内容则都是 SL811HS 根据情况自动产生的 主机接口芯片 SL811HS 完成一次输入传输事务后 如果传输成功 单片机就可以从 SL811HS 的数据缓 冲寄存器读到从机发送过来的数据 此处 数据缓冲区的首地址是由单片机预先通过设置控制寄存器指定 的 对于输出传输事务 单片机同样需要设置相关的寄存器以确定标记包的标识域 地址域 端点域和数 据包的标识域 以及存放发送数据的缓冲区首地址 并且 这个缓冲区中的数据也是由单片机写入的 具体地 单片机控制 USB 主机接口芯片进行一次传输事务所需要执行的操作步骤如下 首先 如果是输出传输事务 则需要把将在数据包中发送给从机的数据存放到 SL811HS 的数据缓冲区 中 其次 做好相关的传输准备工作 即设置接口芯片中的 4 个特殊寄存器 这 4 个寄存器的名称及其在 传输事务中的作用如表 4 的前 4 项所列 表 4 与传输事务直接相关的 SL811HS 特殊寄存器 第三 启动传输事务 把寄存器 EP0CONTROL 00H 或 EP1CONTROL 08H 的第 0 位 即传输事务启动位 置为逻辑 1 即可启动传输事务 但在此之前必须把这个寄存器中其它位设置好 或与启动位同时设置 与这个寄存器相关的包域如表 4 中最后一项所列 第四 单片机读取寄存器 EP0Status 03H 或 EP1Status 0BH 的值 以获知此次事务传输的完成情况 最后 如果传输成功 而且该传输事务是输入性质的 则单片机可读取数据缓冲区 获得由从机发送 过来的数据 结语 在 51 单片机控制 USB 接口芯片 SL811HS 的底层驱动中 读写 SL811HS 内部寄存器的子程序是最低层 的 各种 USB 传输的较低层操作 如总线复位 插拔检测 速度检测以及传输事务等 都主要是通过读写 SL811HS 内部特殊寄存器实现的 其中 传输事务的实现就直接涉及了 5 个特殊寄存器的读写 在本文所述的底层驱动基础上 添加相关的高层程序 使该 51 单片机系统实现了对各种 USB 从机设 备的枚举控制和对 U 盘的数据交换 为 51 单片机系统的开发提供了广阔的应用前景 同时也对其它平台 的 USB 主机设计有一定的参考价值 作者 华南理工大学 微电子研究所 陈智荣 李 斌 USBUSB 接口芯片接口芯片 SL811HSSL811HS 在在 5151 单片机系统中的应用单片机系统中的应用 USB 接口芯片 SL811HS 在 51 单片机系统中的应用 摘要 介绍了 CYPRESS 公司生产的主 从双工作模式 USB 接口芯片 SL811HS 的性能与内部结构 给出 了 SL811HS 芯片在单片机系统中扩展 接口的硬件电路 同时给出了该系统的 USB 驱动程序及实现 盘读写功能的应用程序 关键词 SL811HS USB 接口 驱动程序 盘读写 引言 通用串行总线 是 等公司联合提出的 最近几年逐步在 领域广为应用的新型接口技术 接口通用性好 实时性强 传输方式多样 成本低 支持即插即用 易于扩展且便于使用 这些优点使其得到许多硬件厂商的青睐 目前各种类型的 产品已大量涌入市场 同时也被广泛地用在 机及嵌入式系统中 的拓扑结构中居核心地位的是 也称为主机 任何一次 数据传输都必须由主 机发起和控制 所有的 外设都只能和主机建立连接 任何两个外设之间或是两个主机之间无法直接 通信 而目前 扮演主机角色的大多是个人电脑 而我们买到和使用的 移动设备都是 外 设 如 的移动硬盘 接口的数码相机等 所有这些设备都只能在 上或 通过 来进行文件和数据交换 没有了 这些设备就 失灵 了 指数据交换的功能 系列单片机以其优越的性能 成熟的技术高可靠性 高性价比吸引了大量国内用户 被广泛应用 于测控和自动化领域 用 系列单片机实现 主机接口 进而实现对 外设的控制 对提高整 个系统的数据存储 数据传输 设备控制等性能都有很大的作用 本文使用 系列单片机 和 接口芯片 设计了一个 主机接口 通过该接口可实现对 外设 盘的读 写控制 从而实现单片机数据采集系统的海量数据存储 的结构性能 是 公司生产的 可支持全速数据传输的 控制芯片 该芯片采用 脚 和 脚 两种封装形式 且内含 主 从控制器 支持全速 低速 数据传输 并能自动识别低速或全速设备 所 提供的接口遵从 标准 可与微处理器 微控制器 相连 也可直接与 及其它总线相连 的数据接口与微处理器进行接口可提供 位数据 或双向 通道 并能以从机操作方式支持 数据传输 此外 通过中断支持还可以轻松地与 及其它众多类型的标准微处理器或微控制器相连 内部有一个 字节的 可用做控制寄存器或数据缓冲器 的内部结构框图如图 所示 和微控制器的硬件接口 图 所示是 系列微控制器 与 的连接电路 在该设计硬件时 由于所 选用的 系列单片机 及其周围元件的工作电压为 而 的工作电压为 所以系统应同时提供 和 电源 虽然 可以使用 晶振 但在 实际使用过程中发现 如果晶振质量不太好 电路稳定性就会比较差 因此 设计时推荐使用 晶振 由于 的中断请求输出的是高电平 因此需要用反向器把它变换成低电平以满足 中断输入要求 此外 是低电平复位 其 插座的电源接口也应作 限流处理以保护系统 软件设计 软件设计分为 部分 一是针对 芯片编写 主机控制器驱动程序 二是系 统调用驱动程序来完成 盘数据读写的应用程序 主控制器驱动程序设计 设备驱动程序是开发 外设的关键 协议的复杂性导致了 驱动程序内容的多 样性 本文只介绍主机完成 盘数据读写功能所需的主要模块 包括初始化模块 枚举模块 读字节模块 写字节模块 读缓冲区模块 写缓冲区模块等 初始化模块用来设置 的主 从机工作模式 全速或低速工作方式 内部数据缓冲区结 构等 而枚举主要是指主机监测到 盘插入时 主机和 盘之间产生的一个过程 当枚举发生时 主机首 先自动发出查询请求 盘回应这个请求 并送出设备的 和 然 后由主机根据这两个 装载相应的设备驱动程序 以完成枚举过程 通过枚举不但可为 盘设定设备地 址 而且可以得到 盘端点的描述表及 盘支持协议 之后就可以根据 盘所属的子类及协议对 盘进行 操作 在本系统中 占用的地址空间为 下面的读写函数中采 用 自动地址增加模式 来降低 读写设备时占用的系统资源 主机控制寄存器地址 主机数据基址 下面是读写缓冲区的代码函数 缓冲区起始偏移地址 进行缓冲区读写操作时的数据指针 进行缓冲区读写操作时的数据数量 应用程序设计 总线一般包含四种基本数据传输类型 控制传输 中断传输 批传输以及同步传输 本系统使 用的是控制传输和批腀输 這面以爱国者迷你王 盘为例 介绍在该盘上建立目录及写文件的具体方法 爱国者迷你王 属 支持 传输 命 令集为 传输命令集 传输时 其命令 数据及状态均通过 端点传送 爱国者迷你王 有三个端点 端点 为缺省控制通道 端点 为 端点 端点 为 端点 首先要用 读 及 命令读取 盘参数 随后即可对 盘进行读写 其中 的值为 表示当前发送的是一个 将 的内容在状态阶段原样发送给 可以验证命令执行的是否正确 为数据阶段要传送的字节数 表明数据阶段 传送的方向 是保留位 通常可以置零 用于指明该命令传送给哪个 逻辑单元 为后续字符串中命令字节的长度 为真正要传送的命令 命令发出后 盘从 中解析出 然后执行相应的操作 之后返回一个 命 令块 表明命令执行情况 爱国者迷你王 每次至少读取或写入 字节 因此在改写某些字节 时 必须把整个逻辑块一次读出 修改后再一次性写入 用 控制 来读写 盘的工作过程可以简单地概括为 当 从 总线检测到 盘插入后 通过中断方式将此信息通知系统 系统通过调用枚举模块可以获得与此次 传输有关的各种参数 并根据具体的传输参数调用数据读写模块以对 的控制寄存器和数据 寄存器进行相应的操作 最终完成对 盘的读写 其写文件流程图见图 所示 结束语 使用 主机接口控制器 实现对 盘的读写 可为数据采集系统大容量数据存储提 供一种通用 方便和可靠的解决方案 目前该方案已成功应用到笔者自主研发的温室环境信息采集系统中 并经过长时间测试证明了它的实用性和可靠性 由于 同时具有从机工作模式 因此 也 可将此方案经简单修改后开发 接口从设备 从而满足不同场合的需要 USBUSB 接口芯片接口芯片 SL811HSSL811HS 在在 5151 单片机系统中应用单片机系统中应用 摘要 介绍了 CYPRESS 公司生产的主 从双工作模式 USB 接口芯片 SL811HS 的性能与内部结构 给 出了 SL811HS 芯片在单片机系统中扩展 接口的硬件电路 同时给出了该系统的 USB 驱动程序及实现 盘读写功能的应用程序 关键词 SL811HS USB 接口 驱动程序 盘读写 引言 通用 串行总线 是 等公司联合提出的 最近几年逐步在 领域广为应用的新型接口技术 接口通用性好 实时性强 传输方式多样 成本低 支持即插 即用 易于扩展且便于使用 这些优点使其得到许多硬件厂商的青睐 目前各种类型的 产品已大量 涌入市场 同时也被广泛地用在 机及嵌入式系统中 的拓扑结构中居核心地位的是 也称为主机 任何一次 数据传输都必须由主机发起和控制 所有的 外设都只能和主机建 立连接 任何两个外设之间或是两个主机之间无法直接通信 而目前 扮演主机角色的大多是个人电脑 而我们买到和使用的 移动设备都是 外设 如 的移动硬盘 接口的数码相机等 所有这些设备都只能在 上或通过 来进行文件和数据交换 没有了 这 些设备就 失灵 了 指数据交换的功能 系列单片机以其优越的性能 成熟的技术高可靠性 高性价比吸引了大量国内用户 被广泛应用于测控和自动化领域 用 系列单片机实现 主机接口 进而实现对 外设的控制 对提高整个系统的数据存储 数据传输 设备控制等性能都有很大的作 用 本文使用 系列单片机 和 接口芯片 设计了一个 主机接口 通过该接口可实现对 外设 盘的读写控制 从而实现单片机数据采集系统的海量数据存储 的结构性能 是 公司生产的 可支持全速数据传输的 控制芯片 该芯片采用 脚 和 脚 两种封装形式 且内含 主 从控制 器 支持全速 低速 数据传输 并能自动识别低速或 全速设备 所提供的接口遵从 标准 可与微处理器 微控制器 相 连 也可直接与 及其它总线相连 的数据接口与微处理器进行接口 可提供 位数据 或双向 通道 并能以从机操作方式支持 数据传输 此外 通过中断支 持还可以轻松地与 及其它众多类型的标准微处理器或微控制器相连 内部有一个 字节的 可用做控制寄存器或数据缓冲器 的内部 结构框图如图 所示 和微控制器的硬件接口 图 所示是 系列微控制器 与 的连接电路 在该设计硬件时 由于所选用的 系列单片机 及其周围元件的工作 电压为 而 的工作电压为 所以系统应同时提供 和 电源 虽然 可以使用 晶振 但在实际使用过程中发现 如果晶振质量不太好 电路稳定性 就会比较差 因此 设计时推荐使用 晶振 由于 的中断请求输出的是高电平 因此需要用反向器把它变换成低电平以满足 中断输入要求 此外 是低电平 复位 其 插座的电源接口也应作 限流处理以保护系统 软件设计 软件设计 分为 部分 一是针对 芯片编写 主机控制器驱动程序 二是系统调用驱动程序来完 成 盘数据读写的应用程序 主控制器驱动程序设计 设备驱动程序是开发 外设的 关键 协议的复杂性导致了 驱动程序内容的多样性 本文只介绍主机完成 盘数据读写功能 所需的主要模块 包括初始化模块 枚举模块 读字节模块 写字节模块 读缓冲区模块 写缓冲区模块 等 初始化模块用来设置 的主 从机工作模式 全速或低速工作方式 内部数据缓冲区 结构等 而枚举主要是指主机监测到 盘插入时 主机和 盘之间产生的一个过程 当枚举发生时 主机 首先自动发出查询请求 盘回应这个请求 并送出设备的 和 然后由主机根据这两个 装载相应的设备驱动程序 以完成枚举过程 通过枚举不但可为 盘设定设备 地址 而且可以得到 盘端点的描述表及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年自考专业(金融)练习题带答案详解(满分必刷)
- 2023年度安全员考试复习提分资料【A卷】附答案详解
- 2024-2025学年度机械设备制造修理人员自我提分评估【完整版】附答案详解
- 2024自考专业(工商企业管理)测试卷【历年真题】附答案详解
- 2024-2025学年度火电电力职业鉴定模拟试题(名师系列)附答案详解
- 2025年绿色建筑室内空气检测施工物业合同
- 2025临床执业医师模拟题库含完整答案详解(易错题)
- 2024年职称计算机考前冲刺测试卷及参考答案详解【完整版】
- 强化训练人教版8年级数学上册《整式的乘法与因式分解》定向训练试题(含答案及解析)
- 2025年大学生百科知识竞赛必刷经典题库及答案
- 急性心梗诊疗(2025指南)解读课件
- 防触电及安全用电培训课件
- 鄂托克高新技术产业开发区固废处理场建设项目环评报告书
- 精准分析分离与鉴定技术知到智慧树章节测试课后答案2024年秋浙江中医药大学
- 老年焦虑障碍课件
- 产科护理个案分享案例
- DB31-T 1540-2025 针刀技术操作规范
- 2024-2025学年黑龙江省1月普通高中学业水平合格性考试数学试卷(含答案)
- 招商转正工作总结
- 公路工程全套资料表格
- QC/T 1210-2024汽车防夹系统
评论
0/150
提交评论