USB总线在同步相量测量单元中的应用

上传人:宝路 文档编号:3034942 上传时间:2017-07-30 格式:DOC 页数:16 大小:52.50KB
返回 下载 相关 举报
USB总线在同步相量测量单元中的应用_第1页
第1页 / 共16页
USB总线在同步相量测量单元中的应用_第2页
第2页 / 共16页
USB总线在同步相量测量单元中的应用_第3页
第3页 / 共16页
USB总线在同步相量测量单元中的应用_第4页
第4页 / 共16页
USB总线在同步相量测量单元中的应用_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《USB总线在同步相量测量单元中的应用》由会员分享,可在线阅读,更多相关《USB总线在同步相量测量单元中的应用(16页珍藏版)》请在金锄头文库上搜索。

1、USB 总线在同步相量测量单元中的应用摘 要 本文提出使用 USB 总线来进行下位机与上位机之间的数据通讯,以满足同步相量测量单元对数据传输高速率、低延时和高可靠性的要求。这里主要解决的是 USB 接口驱动程序的问题,通过编写上位机与下位机的硬件驱动程序,实现利用 USB 接口进行ATMAGE128 与上位微机之间数据传输的工作。 关键词 USB 总线;同步相量测量单元;数据通讯;通讯接口1 引言同步相量测量单元(PMU)测量装置与上位计算机之间的通讯速率普遍较低,不能将测量数据及时传送到上位机进行分析处理,通讯接口已成为整个系统性能提高的一个瓶颈,因此有必要使用一种传输速率、时延、稳定性均能

2、满足同步相量测量数据传输的通用接口。采用 USB 接口作为上位机与下位机的通讯接口方式可以解决这些问题。利用 USB 接口中断传输速率大,时延小,差错率极低的特点来完成实时相量数据的传输。在 USB 接口的实际应用中,驱动程序的开发是最为困难的部分,由于 USB 接口诞生较晚,目前尚未成为多数单片微机的标准设备,还需要使用专门的接口芯片进行连接,用户必须编写相应的驱动程序将数据转化为符合 USB 系统协议的格式进行传输。本文叙述了 ATMAGE128 单片机使用 PDIUSBD12 接口芯片完成USB 接口数据通讯的过程。通过驱动程序完成对相关硬件设备的操作。该驱动程序完成 USB 接口的中断

3、传输功能,用户调用通用命令就可以像使用一个普通的存储器一样使用 USB 接口芯片。该接口实现了各采样点的低延时上传功能,可以在 1ms 内完成一个工频周期全部采样值的传输。2 USB 系统及其器件选择介绍2.1 USB 体系概述 USB(Universal Serial Bus)是一种通用串行总线,为了实现整个计算机系统中总线的一致性,由 COMPAQ/ INTEL/MICRSOFT 和NEC 等公司共同开发出的一种新的、快速的、双向的、同步传输的并可以热拔插的数据传输总线,简称 USB 总线。USB 总线由以下四个主要部分构成:主机和设备:是指 USB 系统中的主要构件。物理构成:是指 US

4、B 元件的连接方法。逻辑构成:不同的 USB元件所担当的角色和责任,以及从主机和设备的角度出发 USB 总线所呈现的结构。客户软件与设备功能接口的关系。USB 总线有四种数据传输方式: 控制传输:主要用于主机把命令传给设备以及设备把状态返回给主机。中断传输:用来支持那些偶然需要少量数据通信,但服务时间受限制的设备。批量传输:用来传输大量的数据而没有周期和传输速率的设备上。批量传输方式并不能保证传输的速率,但可以保证传输的可靠性,当出现错误的时候会要求发送方重发。同步传输:以一个恒定的速率进行传输。同步传输的方式的发送和接收方都必须保证传输速率的匹配,不然会造成数据的丢失。2.2 USB 器件简

5、介及应用实现 USB 传输的方法主要有使用接口转换芯片和专用的接口芯片两种。前者就是将 USB 接口转换为标准的 RS232 接口使用,在操作方式和传输速度上与 RS232 接口完全相同。后者则可以实现真正的 USB 传输,使用 USB1.1 标准的接口芯片如 PDIUSBD12 可以达到最高 12Mb/s 的传输速率,使用 USB2.0 标准的接口芯片如ISP1581 则可以达到 480Mb/s 的传输速率。如果要使用专用的 USB接口芯片就必须编写相应的下位机与上位机驱动程序,由于 USB 传输不同于串口传输,USB 传输的方式都是通过协议规定的数据包来完成的,所以下位机的软件必须实现对接

6、口器件的硬件管理功能,及对协议发出的各种请求作出响应。而上位机驱动程序需完成对接口芯片的枚举、地址分配等工作。2.3 USB 接口在本系统中的作用USB 接口在本系统中用来完成下位机与上位机的通讯,具体就是连接 AVR 单片机与 PC,将下位机采集的数据及一些相关信息传送到 PC 进行处理。传输的数据包括:电压值( 每周期采样 64 个点,12 位数据)。电流值(每周期采样 64 个点,12 位数据)。同步时间信号(取自 GPS)。上位机在接收到这些信息后将会对其进行描点,故障录波,远程传送等处理。12 位的电压电流数据都要经过变换,成为 16 位数据,占一个字节。每通道 1 秒钟传输的数据在

7、 6KB 以上,多个通道合计,接口的传输速率至少要 40KB/s,这一要求已经超过 RS232 接口所能提供的传输速率。如果使用 CAN 总线进行传输,则硬件设备较为复杂。综合比较后,采用 PDIUSBD12 作为接口芯片进行数据传输是较合适的选择。采用塑料极小封装的 PDIUSBD12 可以很容易安置在电路板上。而且对上位机的要求也较为宽松,只要有 USB 接口的计算机都可以作为本系统的上位机。3 ATMAGE128 单片机3.1 ATMAGE128 单片机介绍ATMAGE128 单片机是由 ATMEL 公司出品的一款高性能低功耗的 8 位微型控制器,最高时钟频率可以达 16MHz。片内集成

8、有容量为 128KB 的闪存作为程序存储器,4KB 的 EEPROM,以及 4KB 的片内存储器,最高可支持 64KB 的片外存储器。3.2 开发过程简述TMAGE128 的开发一般是由 ATMEL 公司提供的免费仿真工具avrstudio 完成的,与常用的 51 单片机略有不同,使用 c 语言进行开发的时候必须使用第三方编译器对源代码进行编译后才能在仿真环境下运行。本次采用的是 icc 作为编译器,本文所有的单片机程序都在此环境下运行调试。USB 接口器件采用总线控制方式,数据传输形式采用中断传输。USB 接口器件在使用上与一个普通的外部存储器相同,所有的控制与数据传输都必须对 ATMAGE

9、128 中相应的寄存器进行读写操作才能完成。4 USB 驱动程序 MCU 部分 MCU 即设备方控制器,可以是各类型单片机或者是 PC,它们的驱动程序在结构上是类似的,而具体的代码,由于使用的系统环境不同,存在较大差异,下面就详细说明以 ATMAGE128 单片机作为设备方控制器的 USB 驱动程序结构以及具体实现的代码。4.1 程序整体结构对于 CPU 而言,PDIUSBD12 芯片与一个外部存储器完全相同,CPU 通过总线控制的方式对 PDIUSBD12 进行操作。USB 接口的传输并不会占用许多 CPU 资源,CPU 可以执行前台操作,而 USB 接口传输的工作则在后台完成,两者之间通过

10、中断服务程序连接。当PDIUSBD12 从 USB 收到一个数据包,那么就对 CPU 产生一个中断请求,CPU 立即响应中断。在 ISR 中固件将数据包从PDIUSBD12 内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12 的内部缓冲区以使能接收新的数据包 CPU 可以继续它当前的前台任务直到完成,然后返回到主循环检查循环缓冲区内是否有新的数据,并开始其它的前台任务。无论是上传或者下载数据都是对循环缓冲区内的数据进行处理,主循环只要检查循环缓冲区内是否有要处理的新数据。各模块分工如下:(1)硬件提取层:对单片机的 I/O 口、数据总线等硬件接口进行操作。 (2)PDIUSBD12

11、命令接口:对 PDIUSBD12 器件进行操作的模块子程序集。(3)中断服务程序:当 PDIUSBD12 向单片机发出中断请求时,读取 PDIUSBD12 的中断传输来的数据,并进行相关处理。(4)标准请求处理程序:对 USB 的标准设备请求进行处理。(5)厂商请求处理程序:对用户添加的厂商请求进行处理。(6)主循环程序:发送 USB 请求、处理 USB 总线事件和用户功能处理等。4.2 硬件提取层相关程序硬件提取层执行对单片机 I/O 口、数据总线等的操作,包含向PDIUSBD12 发送数据或命令的子程序及从 PDIUSBD12 读取数据的子程序,该部分代码需对地址总线和数据总线进行直接操作

12、。PDIUSBD12 的任何操作都是由命令指令和数据指令组合完成的,通过改变 A0 引脚的电平就可以完成命令模式/数据模式的切换。4.3 命令接口该部分是由一系列命令接口子程序构成的,包含了所有PDIUSBD12 给出的访问功能接口的命令。在命令接口中调用了硬件提取层中的子程序。PDIUSBD12 的所有功能都必须由类似的方法完成,先发送一条命令,然后写该命令的具体参数。有的命令参数是多个字节的,如设置模式命令,此时就必须调用两次写数据线的指令。命令接口程序的编写格式相对固定,按照 PDIUSBD12 说明书中给出的命令汇总表依次编写即可。4.4 中断服务程序中断服务程序代码处理由 PDIUS

13、BD12 产生的中断,它将数据从PDIUSBD12 内部的缓冲区内取出,并建立正确的标志,通知主循环进行处理。当 PDIUSBD12 向单片机发出中断请求后,单片机调用读取中断寄存器的标准命令接口子程序 d12_readinterruptregister( )来决定中断源,然后跳转到相应的中断服务子程序进行处理。中断服务程序从 PDIUSBD12 收集数据,而主循环程序对数据进行处理。当中断服务程序收集到足够的数据时,它通知主程序已经做好准备等待处理。例如在发送数据包阶段建立包时,中断服务程序将建立包和数据都存入缓冲区内,然后将 setup_packet 标志送到主循环,这样主循环就可以节省不

14、必要的服务时间。4.5 总线复位和挂起当接收到总线复位或挂起的请求时,中断服务程序将 bus_set 或suspends 标志位置位,然后退出。控制传输总是由建立阶段开始,之后为可选的数据阶段,然后结束于状态阶段。单片机需通过选择控制输出端点来提取建立包的内容来决定端点是为满还是为空。如果控制端点是为满,单片机将从缓冲区内读出内容并将其存入存储区。之后,单片机将从存储区使主设备请求生效。如果是一个有效的请求,单片机需向控制端点发送应答建立命令,以重新使能下一个建立阶段。接下来单片机需要证实传输是控制读还是写,这可以通过建立包重定向的请求类型位来实现。 建立阶段结束后,主机就会执行数据阶段。PD

15、IUSBD12 等待接收控制输入包。单片机首先需要读取最后处理状态寄存器清零中断标志位。确认 PDIUSBD12 处于传输模式后,进行数据包的发送。当下一个控制输入标志来到时,单片机将确定剩余的字节是否为零。如果已经没有数据要发送,单片机需要发送一个空的包以指示主机数据已经发送完毕。如果建立包的为获得描述符请求,那么建立包中的控制传输将指示此包为控制写类型。在执行完获得描述符请求过程后,单片机处于等待数据阶段。主机发送一个控制输出的标志,单片机从 PDIUSBD12 缓冲区内减去数据。此时单片机确认PDIUSBD12 是否处于 USB 接收模式,然后单片机通过检查选择控制输出端点确认缓冲区是否

16、已满,并将数据从缓冲区内读出。4.6 标准请求处理程序标准设备请求是由 USB 协议决定的,由主机发出,以数据包的形式传送到单片机。当单片机接收到这些标准设备请求时就转入相应的处理程序。其过程包括:获取状态。清除特性。设置特性。设置地址。获取设备描述符。设置配置。获取配置信息。获取接口信息。设置接口。同步帧。其中同步帧用来设置和报告一个端点的同步帧,在同步传输中才使用,如果设备不支持这个请求,返回停止标志。4.7 主循环程序主循环程序主要功能是设置单片机的初始化,以及设定各个相关子程序的入口。由于使用了中断服务程序和一系列的命令接口子程序,主循环程序中涉及 USB 接口的部分只是设定相关的寄存器。5 USB 驱动程序上位机部分5.1 驱动程序基本概念主机驱动程序的功能是将硬件与用户应用程序连接起来。编写的方法有多种,可以直接与硬件相连接,在应用程序中直接读写系统应将,或者将与硬件直接交换数据的底层

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

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号