基于USB接口的数据采集系统设计
摘要:以自行开发的基于USB接口的数据采集系统为例,介绍了USB接口的硬件和软件开发过程。
关键词:USB数据采集 PDIUSBD12
1USB协议和芯片选择
理解好USB协议是USB系统开发的第一步。USB协议版本包括1.0、1.1和2.0,USBOTG是对2.0版本协议的补充。虽然USB协议内容繁多且复杂,然而,对USB开发影响较大的却只是少数部分,以下对协议版本1.1[1]中这些部分进行介绍。
1.1USB协议
一般,每个USB设备由一个或多个配置(Configuration)控制其行为。使用多配置原因是对操作系统的支持;一个配置由接口(Interface)组成;接口则是由管道(Pipe)组成;管道与USB设备的端点(Endpoint)对应,一个端点可以配置为输入输出两个管道。在固件编程中,USB设备、配置、接口和管道都用描述符报告其属性。
图1为USB多层次通信模型。端点0默认配置为控制管道,用来完成所规定的设备请求(USB协议第九章)。其它端点可配置为数据管道。对开发而言,主要的大数据传输都是通过数据管道完成的[2]。
USB传输类型包括批量传输、等时传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同[3]。控制传输可靠性是最高的,但速度最慢;等时传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。
在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。
1.2USB接口芯片选择
USB接口芯片的类型有:
(1)按传输速度的高低:低速(1.5Mbps)和全速(12Mbps)可选USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可选USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。
(2)是否带MCU(微控制器):一般Philips公司的都不带MCU,Cypress公司大多都带,例如AN2131。
(3)是否带主控器功能:不需要主机参与,主从设备间可进行数据传输,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。
还有专门用途USB芯片,例如闪存专用芯片IC1114。工程中用户可根据自己的需求选择一款性价比高的芯片。另外可用开发资源也是要考虑的重要方面,例如开发板和芯片厂商提供的网上资源,可大大降低开发的难度。
2基于USB接口的数据采集系统的设计
2.1系统简介
该系统能够实现16路温度数据自动采集,系统的组成框图如图2所示。主要包括8个组成部分:中央处理器选用AT89C52芯片,完成各部分控制功能和USB传输协议;实时时钟记录当前测量温度的时间;温度传感器和接口电路主要完成温度采集,并读入MCU处理;复位电路完成对MCU的上电复位和电源电压监视;看门狗电路用来监视MCU是否工作;存储电路主要存储采集到的温度数据以及采集的实时时间;电源电路主要为各部分提供要求的电源;外设与主机间的通信电路采用USB接口。
2.2接口芯片选择
接口电路采用Philips公司的PDIUSBD12[4](以下简称为D12)芯片。主要因为D12芯片信息、开发资源丰富,具有较高的性价比。
D12芯片的主要特点包括:
·符合USB1.1版本规范;
·可与任何外部微控制器/微处理器实现高速并行接口(2MB/s);
·采用GoodLink技术的连接指示器,在通信时使LED闪烁;
·主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;
·在批量和等时模式下均可实现1MB/s的数据传输率;
《基于USB接口的数据采集系统设计》
本文链接地址:http://www.oyaya.net/fanwen/view/165431.html
关键词:USB数据采集 PDIUSBD12
1USB协议和芯片选择
理解好USB协议是USB系统开发的第一步。USB协议版本包括1.0、1.1和2.0,USBOTG是对2.0版本协议的补充。虽然USB协议内容繁多且复杂,然而,对USB开发影响较大的却只是少数部分,以下对协议版本1.1[1]中这些部分进行介绍。
1.1USB协议
一般,每个USB设备由一个或多个配置(Configuration)控制其行为。使用多配置原因是对操作系统的支持;一个配置由接口(Interface)组成;接口则是由管道(Pipe)组成;管道与USB设备的端点(Endpoint)对应,一个端点可以配置为输入输出两个管道。在固件编程中,USB设备、配置、接口和管道都用描述符报告其属性。
图1为USB多层次通信模型。端点0默认配置为控制管道,用来完成所规定的设备请求(USB协议第九章)。其它端点可配置为数据管道。对开发而言,主要的大数据传输都是通过数据管道完成的[2]。
USB传输类型包括批量传输、等时传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同[3]。控制传输可靠性是最高的,但速度最慢;等时传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。
在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。
1.2USB接口芯片选择
USB接口芯片的类型有:
(1)按传输速度的高低:低速(1.5Mbps)和全速(12Mbps)可选USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可选USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。
(2)是否带MCU(微控制器):一般Philips公司的都不带MCU,Cypress公司大多都带,例如AN2131。
(3)是否带主控器功能:不需要主机参与,主从设备间可进行数据传输,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。
还有专门用途USB芯片,例如闪存专用芯片IC1114。工程中用户可根据自己的需求选择一款性价比高的芯片。另外可用开发资源也是要考虑的重要方面,例如开发板和芯片厂商提供的网上资源,可大大降低开发的难度。
2基于USB接口的数据采集系统的设计
2.1系统简介
该系统能够实现16路温度数据自动采集,系统的组成框图如图2所示。主要包括8个组成部分:中央处理器选用AT89C52芯片,完成各部分控制功能和USB传输协议;实时时钟记录当前测量温度的时间;温度传感器和接口电路主要完成温度采集,并读入MCU处理;复位电路完成对MCU的上电复位和电源电压监视;看门狗电路用来监视MCU是否工作;存储电路主要存储采集到的温度数据以及采集的实时时间;电源电路主要为各部分提供要求的电源;外设与主机间的通信电路采用USB接口。
2.2接口芯片选择
接口电路采用Philips公司的PDIUSBD12[4](以下简称为D12)芯片。主要因为D12芯片信息、开发资源丰富,具有较高的性价比。
D12芯片的主要特点包括:
·符合USB1.1版本规范;
·可与任何外部微控制器/微处理器实现高速并行接口(2MB/s);
·采用GoodLink技术的连接指示器,在通信时使LED闪烁;
·主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;
·在批量和等时模式下均可实现1MB/s的数据传输率;
《基于USB接口的数据采集系统设计》