位置:51电子网 » 技术资料 » 测试测量

基于EZ-USB的数据采集与控制

发布时间:2008/6/3 0:00:00 访问次数:794

作者:武汉空军雷达学院 颜荣江 空军雷达兵第14团 阴大兴

来源:《单片机与嵌入式系统应用》

基于ez-usb的数据采集与控制* 摘要:主要介绍带usb控制核的51系列单片机ez-usb的传输特性与控制机理,简述信息包的组成及几种枚举方式。文中给出的程序是一个利用端点2in/out进行块传输的应用实例。由此可验证它的开发效率。 关键词:ez-usb pid 枚举 bulk传输 1 概述 在目前pc的i/o模式中,外围设备通常被映射为cpu的i/o地址空间,并且被分配一个指定的irq(中断请求),在某些情况下也可以是一个dma通道。这些系统资源被分配给指定的外围设备。这种地址分配的方法已经成为一种标准,软件开发者要根据这对指定的设备进行访问。这给编程者带来了不便,同时外设消耗了pc的许多系统资源,使许多系统资源不可使用,并且产生了很多冲突,由此造成了许多问题。 cypress推出的带智能usb接口的单片机ez-usb,极大地降低了usb外设的开发难度,为pc外设的制造商提供了一性能的优良、价格较低的设计方案。基于ez-usb的强大功能,让我们看到了应用usb的美好前景。使用该芯片后,我们在很短的时间内便实现了基于usb传输的采集系统。为便于理解,有必要介绍一下相关的usb知识。 1.1 usb信息包 usb传送的数据包由被称为packet ids(pids)的特定代码所定义,pid表示了正在被传送的包的类型。usb的包中一类有四种pid类型,如表1所列。

表1 usb pid pid类型 pid名称 数据信号 in、out、sof、setup、data0、data1 握手信号 ack、nak、stall 特殊信号 pre 图1举例说明了usb传输。包(1)是一个由out标志表示的输出信号,表示主机发出的数据将要通过总线进行传送。包(2)由数据组成,它由data1标志表示。包(3)是一个由外设发送的握手信息包。外设使用ack(确认)标志向主机报告外设已正确地接收数据。接下来发出的out信号(4),开始进行第二次传输。紧跟其后的是数据包,这一次使用的是data0标志。最后,设备通过传送握手信息包中的ack标志表示接收成功。 为什么要用到data0与data1两种数据标志呢?这是因为usb的设计者对待错误的检测非常严格。如前面提到的,ack握手信号是一个向主机报告外设无差错接收数据的信号(包中的crc位用于错误检测)。但是如果在传输过程中,握手信号本身出了错,那又该怎么办呢?为了检测这种错误,在主机和外设双方都保留了一个数据轮换位,它在数据信息包的传送过程中轮流改变其状态。内部轮换位的状态与随数据到达的pid相比较,要么是data0,要么是data1。当传送数据时,主机或设备发出交替的data0-data1标志。通过比较数据pid和内部轮换位,主机或设备能够检测到一个出错的握手信号包。

setup令牌只针对控制传输。它是数据包中的前8个字节,通过这几个字节外对主机的设备请求进行解码。 sof信号每ms发生1次,代表1个usb帧的开始。 3个握手信号:ack、nak和stall。 *ack表示“成功”,即数据无误接收。 *nak表示“忙,重发”。nak看上去好像表示“出错”,但其实不是。usb设备不响应,

作者:武汉空军雷达学院 颜荣江 空军雷达兵第14团 阴大兴

来源:《单片机与嵌入式系统应用》

基于ez-usb的数据采集与控制* 摘要:主要介绍带usb控制核的51系列单片机ez-usb的传输特性与控制机理,简述信息包的组成及几种枚举方式。文中给出的程序是一个利用端点2in/out进行块传输的应用实例。由此可验证它的开发效率。 关键词:ez-usb pid 枚举 bulk传输 1 概述 在目前pc的i/o模式中,外围设备通常被映射为cpu的i/o地址空间,并且被分配一个指定的irq(中断请求),在某些情况下也可以是一个dma通道。这些系统资源被分配给指定的外围设备。这种地址分配的方法已经成为一种标准,软件开发者要根据这对指定的设备进行访问。这给编程者带来了不便,同时外设消耗了pc的许多系统资源,使许多系统资源不可使用,并且产生了很多冲突,由此造成了许多问题。 cypress推出的带智能usb接口的单片机ez-usb,极大地降低了usb外设的开发难度,为pc外设的制造商提供了一性能的优良、价格较低的设计方案。基于ez-usb的强大功能,让我们看到了应用usb的美好前景。使用该芯片后,我们在很短的时间内便实现了基于usb传输的采集系统。为便于理解,有必要介绍一下相关的usb知识。 1.1 usb信息包 usb传送的数据包由被称为packet ids(pids)的特定代码所定义,pid表示了正在被传送的包的类型。usb的包中一类有四种pid类型,如表1所列。

表1 usb pid pid类型 pid名称 数据信号 in、out、sof、setup、data0、data1 握手信号 ack、nak、stall 特殊信号 pre 图1举例说明了usb传输。包(1)是一个由out标志表示的输出信号,表示主机发出的数据将要通过总线进行传送。包(2)由数据组成,它由data1标志表示。包(3)是一个由外设发送的握手信息包。外设使用ack(确认)标志向主机报告外设已正确地接收数据。接下来发出的out信号(4),开始进行第二次传输。紧跟其后的是数据包,这一次使用的是data0标志。最后,设备通过传送握手信息包中的ack标志表示接收成功。 为什么要用到data0与data1两种数据标志呢?这是因为usb的设计者对待错误的检测非常严格。如前面提到的,ack握手信号是一个向主机报告外设无差错接收数据的信号(包中的crc位用于错误检测)。但是如果在传输过程中,握手信号本身出了错,那又该怎么办呢?为了检测这种错误,在主机和外设双方都保留了一个数据轮换位,它在数据信息包的传送过程中轮流改变其状态。内部轮换位的状态与随数据到达的pid相比较,要么是data0,要么是data1。当传送数据时,主机或设备发出交替的data0-data1标志。通过比较数据pid和内部轮换位,主机或设备能够检测到一个出错的握手信号包。

setup令牌只针对控制传输。它是数据包中的前8个字节,通过这几个字节外对主机的设备请求进行解码。 sof信号每ms发生1次,代表1个usb帧的开始。 3个握手信号:ack、nak和stall。 *ack表示“成功”,即数据无误接收。 *nak表示“忙,重发”。nak看上去好像表示“出错”,但其实不是。usb设备不响应,

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!