精华内容
下载资源
问答
  • 比较WXS师兄同步传输固件和异步传输固件的区别,发现dscr.a51、fw.c文件完全一致,tcxmaster.c有一行存在区别,位于初始化函数TD_Init(void)中: 在同步固件中:IFCONFG=0x03;//0000 0011 在异步固件中:IFCONFG=...

    比较WXS师兄同步传输固件和异步传输固件的区别,发现dscr.a51、fw.c文件完全一致,tcxmaster.c有一行存在区别,位于初始化函数TD_Init(void)中:

    1. 在同步固件中:IFCONFG=0x03;//0000 0011
    2. 在异步固件中:IFCONFG=0xCB;//1100 1011

    同步0x03,FIFO CLK来自外部,Slave FIFO工作在同步模式之下,Slave FIFO Interface;

    异步0xCB,FIFO CLK来自内部,IFCLK频率选为48MHz,Slave FIFO工作在异步模式之下,Slave FIFO Interface;

     

    下面是IFCONFG寄存器中bit 3的注释:

    Bit3 ASYNC: Slave FIFO Asynchronous Mode.

    0 The Slave FIFOs operate synchronously. A clock is supplied either internally or externally on the IFCLK pin; the FIFO control signals function as read and write enable signals for the clock signal.

    1 The Slave FIFOs operate asynchronously. No clock signal input to IFCLK is required; the FIFO control signals function directly as read and write strobes.

    下面是IFCONFG寄存器中bit 7\6的解释:

    Bit7 IFCLKSRC: FIFO/GPIF Clock Source.

    This bit selects the clock source for both the FIFOS and GPIF.

    0 The external clock on the IFCLK pin is selected.

    1 An internal 30 or 48 MHz (default) clock is used (default).

    Bit6 3048MHZ: Internal FIFO/GPIF Clock Frequency

    This bit selects the internal FIFO and GPIF clock frequency.

    0 30 MHz (default)

    1. 48 MHz

     

    总结:由于Bit3=1时,FIFO工作在异步模式下,根据注释,IFCLK并不需要时钟信号输入,所以异步模式中IFCONFG(7,6)=11没有什么实际意义,为什么WSX师兄要写成0xCB而不是直接写成0x0B呢?

    转载于:https://www.cnblogs.com/sunmaoduo/p/3917386.html

    展开全文
  • 如果你正在你的应用程序中使用libusb,你可能想使用执行设备I/O 操作——你想执行USB数据传输。 Libusb提供2种独立的设备I/O接口。本页目的在于介绍这2种方式来帮助你决定哪一个更适合你的应用程序。你也可以选择...
    介绍
    

    如果你正在你的应用程序中使用libusb,你可能想使用执行设备I/O 操作——你想执行USB数据传输。

    Libusb提供2种独立的设备I/O接口。本页目的在于介绍这2种方式来帮助你决定哪一个更适合你的应用程序。你也可以选择同时使用这2种接口,通过对于不同传输的需求使用合适的接口。

    一但你通读完了下面讨论的内容,你应该查阅以下详细的API文档获得更多的信息:

    在逻辑层次上传输数据

    在逻辑层次上,USB传输由2部分组成。例如:当从端点读取数据:

    1. 一个数据请求被发送到设备。
    2. 一段时间后,读入数据被主机接收。

    或者向端点写入数据时:

    1. 数据被发送到设备。
    2. 一段时间后,主机接收到来自设备的应答,告知主机数据已经传输完毕。

    2个步骤之间的延时是不确定的。 假设一个有一个用户可以按下按键的USB输入设备,为了判断什么时候按键被按下,你应该在块端点或者中断端点提交一个读数据请求,并且等待数据到达。数据将会在用户按下按键后到达,但这也许会发生在几个小时之后。

    Libusb同时提供了同步和异步的接口来执行USB传输操作。 主要的不同在于:同步接口将上述提到的步骤集成到了一个单独的函数调用中,而异步是分开的。

    同步接口

    同步I/O接口允许你通过一个单独的函数调用执行USB传输操作。当函数调用返回时,传输完成并且你可以处理返回值。

    如果你已经使用过libusb-0.1,这种I/O 操作方式对你来说应该是熟悉的。 libusb-0.1 只提供了同步接口。

    在我们的输入设备的例子中,读取按键你也许会使用下面的方式:

    unsigned char data[4];

    int actual_length,

    int r = libusb_bulk_transfer(handle, EP_IN, data, sizeof(data), &actual_length, 0);

    if (r == 0 && actual_length == sizeof(data)) {

        // results of the transaction can now be found in the data buffer

        // parse them here and report button press

    } else {

        error();

    }

    这种模式的主要优势就是简单:你只需要一个函数调用就可以完成所有的事情。

    但是,这种方式存在着一定的限制。 你的应用程序将会阻塞在libusb_bulk_transfer() ,知道传输完成。如果等待按键花费3个小时,你的应用程序将也会阻塞那么长时间。执行将被阻塞在库中——这个线程在这段时间是不可用的。

    另一个值得注意的问题是,使用单个传输函数阻塞线程方式是不可以对多个端点和/或多个设备同时执行I/O操作的,除非你通过为每个传输都创建一个线程。

    而且,在提交请求后也没有办法取消传输。

    关于更多如何使用同步API内容,详见同步I/O API 文档 页面.

    异步接口

    异步I/O是libusb-1.0最重要的新特性。虽然它是一个更复杂的接口,但是它解决了上面说到的问题。

    代替那些直到I/O操作结束的阻塞函数,libusb的异步接口提供非阻塞函数,调用后会立即返回。你的应用程序传递一个回调函数给非阻塞函数,当传输结束的时候,libusb将会使用传输结果调用这个函数。

    通过调用非阻塞函数提交的传输可以被一个分离出来的函数调用取消。

    这项接口的非阻塞特性允许你在不使用多线程的情况下,同时执行多个设备上的多个端点的I/O操作。

    增加的灵活性同样带来了一下的一些问题:

    • 为了保持作为一个轻量级的库,libusb并不创建线程而且只能在你的应用程序调用它的时候才能执行操作。当事件准备好被处理的时候,你的应用程序必须从它的主循环调用,或者你必须使用一些其他的模式允许libusb接管,无论什么工作需要完成。
    • 为了准确的处理传输超时,libusb也需要及时在某些固定位置被调用。
    • 内存处理变得更复杂。你不能使用栈内存除非使用栈的函数确定是直到传输回调结束执行才返回。
    • 你将会在你的代码中损失一些线性结构,因为提交传输请求已经在一个传输结果被处理的分离函数中完成。尤其当你想提交第二次传输基于之前传输的结果,这回变得更明显。

    在内部, libusb同步接口是通过调用异步接口实现的。

    关于更多如何使用异步API的内容,请见异步 I/O API 文档页。

    展开全文
  • 如果你正在你的应用程序中使用libusb,你可能想使用执行设备I/O 操作——你想执行USB数据传输。 Libusb提供2种独立的设备I/O接口。本页目的在于介绍这2种方式来帮助你决定哪一个更适合你的应用程序。你也可以选择...
     介绍
    

    如果你正在你的应用程序中使用libusb,你可能想使用执行设备I/O 操作——你想执行USB数据传输。

    Libusb提供2种独立的设备I/O接口。本页目的在于介绍这2种方式来帮助你决定哪一个更适合你的应用程序。你也可以选择同时使用这2种接口,通过对于不同传输的需求使用合适的接口。

    一但你通读完了下面讨论的内容,你应该查阅以下详细的API文档获得更多的信息:

    在逻辑层次上传输数据

    在逻辑层次上,USB传输由2部分组成。例如:当从端点读取数据:

    1. 一个数据请求被发送到设备。
    2. 一段时间后,读入数据被主机接收。

    或者向端点写入数据时:

    1. 数据被发送到设备。
    2. 一段时间后,主机接收到来自设备的应答,告知主机数据已经传输完毕。

    2个步骤之间的延时是不确定的。 假设一个有一个用户可以按下按键的USB输入设备,为了判断什么时候按键被按下,你应该在块端点或者中断端点提交一个读数据请求,并且等待数据到达。数据将会在用户按下按键后到达,但这也许会发生在几个小时之后。

    Libusb同时提供了同步和异步的接口来执行USB传输操作。 主要的不同在于:同步接口将上述提到的步骤集成到了一个单独的函数调用中,而异步是分开的。

    同步接口

    同步I/O接口允许你通过一个单独的函数调用执行USB传输操作。当函数调用返回时,传输完成并且你可以处理返回值。

    如果你已经使用过libusb-0.1,这种I/O 操作方式对你来说应该是熟悉的。 libusb-0.1 只提供了同步接口。

    在我们的输入设备的例子中,读取按键你也许会使用下面的方式:

    unsigned char data[4];

    int actual_length,

    int r = libusb_bulk_transfer(handle, EP_IN, data, sizeof(data), &actual_length, 0);

    if (r == 0 && actual_length == sizeof(data)) {

        // results of the transaction can now be found in the data buffer

        // parse them here and report button press

    } else {

        error();

    }

    这种模式的主要优势就是简单:你只需要一个函数调用就可以完成所有的事情。

    但是,这种方式存在着一定的限制。 你的应用程序将会阻塞在libusb_bulk_transfer() ,知道传输完成。如果等待按键花费3个小时,你的应用程序将也会阻塞那么长时间。执行将被阻塞在库中——这个线程在这段时间是不可用的。

    另一个值得注意的问题是,使用单个传输函数阻塞线程方式是不可以对多个端点和/或多个设备同时执行I/O操作的,除非你通过为每个传输都创建一个线程。

    而且,在提交请求后也没有办法取消传输。

    关于更多如何使用同步API内容,详见同步I/O API 文档 页面.

    异步接口

    异步I/O是libusb-1.0最重要的新特性。虽然它是一个更复杂的接口,但是它解决了上面说到的问题。

    代替那些直到I/O操作结束的阻塞函数,libusb的异步接口提供非阻塞函数,调用后会立即返回。你的应用程序传递一个回调函数给非阻塞函数,当传输结束的时候,libusb将会使用传输结果调用这个函数。

    通过调用非阻塞函数提交的传输可以被一个分离出来的函数调用取消。

    这项接口的非阻塞特性允许你在不使用多线程的情况下,同时执行多个设备上的多个端点的I/O操作。

    增加的灵活性同样带来了一下的一些问题:

    • 为了保持作为一个轻量级的库,libusb并不创建线程而且只能在你的应用程序调用它的时候才能执行操作。当事件准备好被处理的时候,你的应用程序必须从它的主循环调用,或者你必须使用一些其他的模式允许libusb接管,无论什么工作需要完成。
    • 为了准确的处理传输超时,libusb也需要及时在某些固定位置被调用。
    • 内存处理变得更复杂。你不能使用栈内存除非使用栈的函数确定是直到传输回调结束执行才返回。
    • 你将会在你的代码中损失一些线性结构,因为提交传输请求已经在一个传输结果被处理的分离函数中完成。尤其当你想提交第二次传输基于之前传输的结果,这回变得更明显。

    在内部, libusb同步接口是通过调用异步接口实现的。

    关于更多如何使用异步API的内容,请见异步 I/O API 文档页。

     

    展开全文
  • USB主机与USB设备到主机控制器。主机负责 后: •检测USB设备的附件删除 •管理主机之间的控制流和USB设备 •管理主机和USB设备之间的数据流 ...•收集状态活动的统计数据 ...•同步数据传输异步数据传输 •电
    
    

    USB主机通过主机控制器连接到USB设备。

    主机负责以下功能:

    • 检测USB设备的连接和移除
    • 管理主机和USB设备之间的控制流
    • 管理主机和USB设备之间的数据流
    • 收集活动状态和统计数据
    • 为USB设备提供电源

    主机上的USB系统软件管理USB设备和基于主机的设备之间的交互软件。在USB系统软件和设备软件之间有五种交互:

    • 设备枚举和配置
    • 同步数据传输
    • 异步数据传输
    • 电源管理
    • 设备和总线管理信息
    展开全文
  • USB 接口

    2019-10-07 14:58:11
    USB包: USB数据传输有4种类型:  ... 2)快传输通过USB设备对数据进行异步发送;  3)同步传输用来传输实时性高的数据,单向的。  4)中断传输用来在一定时间片发送数据。 一个USB包包括1个SYNC字节,1个...
  • 自动安装驱动程序、自行进行系统配置,以及支持不同速率的同步和异步传输方式,支持热插拔即插即用(Plug and Play,PNP)等优点,已逐渐成为现代数据传输的发展趋势。目前实现USB数据传送多采用专用的USB接口芯片,...
  • 在工业生产科学技术研究中,常利用PC或工控...自动安装驱动程序、自行进行系统配置,以及支持不同速率的同步和异步传输方式,支持热插拔即插即用(Plug and Play,PNP)等优点,已逐渐成为现代数据传输的发展趋势。目
  • USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种方式。 (3)较强的纠错能力。USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输类型...
  • 2.1 USB 的端点 ...模式0 Non-ISO 模式:异步传输 模式1 ISO-OUT 模式:同步输出传输 模式2 ISO-IN 模式:同步输入传输 模式3 ISO-IO 模式:同步输入输出传输 这几种模式下可得到的端点情况如下表:
  • USB协议基础知识

    2021-01-03 22:02:34
    4)灵活的协议,能混合同步和异步的消息数据传递 5)能适应与任意外形配置的PC 6)提供一个标准接口,能快速应用于产品中 7)允许扩展出新的USB设备类,以提升PC的功能。 8)USB2.0协议必需向下兼容,以容纳...
  • USB 3.0正逐渐成为最有前景的数据传输接口之...提供异步机制,能够同步收发数据;并提供了高达900mA的电源输出。3D摄像头等跨笔记本电脑、PC、平板电脑智能手机的新应用正使USB 3.0变成下一代系统I/O互联的事实标准。
  • USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使...
  • IEEE1394是一种高性能串行总线标准,它具有体积小,价格低廉,传输速率高,支持同步和异步两种数据传输模式,支持即插即用热插拔,拓扑结构灵活,为外设提供电源,支持点对点传输等特点,基于这些特点,1394广泛...
  • USB系统数据报文附加信息少,带宽利用率高,可同时支持同步传输和异步传输两种方式。 (3)较强的纠错能力。USB系统可实时地管理设备插拔。在USB协议中包含了传输错误管理、错误恢复等功能,同时根据不同的传输...
  • jsr80 java 访问 usb

    2015-02-14 08:52:01
    该 API 支持控制传输、批量传输和中断传输,不支持等时传输,因为等时传输用于媒体数据(如音频和视频),JMF API 已经在其他标准设备驱动程序上对此提供了很好的支持(参阅 参考资料)。当前,该 API 可以在具有 Linux ...
  • 提供异步机制,能够同步收发数据;并提供了高达900mA的电源输出。3D摄像头等跨笔记本电脑、PC、平板电脑智能手机的新应用正使USB 3.0变成下一代系统I/O互联的事实标准。  在系统中设计USB 3.0时,需要考虑两个...
  • 第三章 背景 3.1 USB的目标 USB被指定为PC架构的行业标准扩展,聚焦于支持普通... 灵活的协议,支持同步数据传输以及异步信息传递的混合模式 集成了商用设备技术 不同PC配置外形的综合 提供能够快速扩散到产...
  • libusb数据传输文档 翻译

    千次阅读 2010-12-20 22:35:00
    Synchronous and asynchronous device I/O 同步和异步的设备I / O Introduction 介绍 <br /> If you're using libusb in your application, you're probably wanting to ...
  • HCI定义了如何交换命令,事件,异步和同步数据包。异步数据包(ACL)用于数据传输,而同步数据包(SCO)用于带有耳机和免提配置文件的语音。 在桌面级计算机上 笔记本电脑,USB主要用作HCI传输层。对于US
  • 同步:有时钟信号,每个时钟发一位数据(时钟的频率每一位数据对应) 异步:没有时钟信号,有数据起始位/停止位,从数据起始位开始间隔一定的时间取信号 串行与并行 串行:一位位发,先发低字节 并行:一次性发送 ...
  • 串行:数据按位传输; 并行:数据并行发送; 同步:发送端接收端同时处理; 异步:发送端接收端不同时处理; 单工:设备只能做发送端/接收端; 半双工:设备同一时刻只能做发送/接收; 全双工:设备同一时刻即可...
  • 060串口与通讯

    2017-01-10 11:39:49
    串口的分类: USB串口,UART/USART,I2C,SPI,485...异步:接受发送不能同时 同步:能同时 流控:控制数据传输(根据硬件设置,有就是USART,没有就是UART) 帧:一码元(通信传输的基本单位,可以包含Nbi
  • 常用的外设接口

    2018-11-09 10:13:00
    开发板中常用的外设接口包括串口、I2C、USB等接口。 1.串口 ...  串行通信的传送速度慢,但传输距离远,... 串行通信的两种基本方式是同步串行通信和异步串行通信方式。同步串行通信是指ISP(Interface Serial ...
  • 串行通信原理与设计 4.1 串行通信基本概念 4.1.1 串行通信特点 4.1.2 串行通信传输方式 4.1.3 数据纠错与检错 4.1.4 传输速率与距离 4.2 串行传输协议 4.2.1 异步传输协议 4.2.2 面向字符的同步传输...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

usb异步传输和同步