碧波液压网 欢迎你,游客。 登录 注册

基于AN2131QCUSB固件程序设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  随着USB接口的推出,它正在逐渐成为计算机外围设备一种主流接口,所以USB接口的开发也越来越得到关注。在其开发中,固件程序的开发是一个重要的环节,它是USB设备运行的核心,响应各种USB设备请求,完成各种数据交换工作和事件的处理,直接影响产品的数据传输速率。固件程序也是开发过程中的一个难点,因此本文介绍其基本框架和其基本的程序设计。

  1 AN2131QC的主要特点

  AN2131QC是基于USB 1.1的外设通讯控制芯片

  主要特点:

  (1)4时钟周期的8051内核;

  (2)2个快速存储器到存储器的数据发送指针;

  (3)多个USB数据传输中断;

  (4)8 kB内部RAM,支持外部存储器;

  (5)软配置,方便固件程序升级;

  (6)32个输入输出管道,支持1024B的同步数据传输。

  2 AN2131QC的数据传输方式

  USB总线的数据传送是通过管道来完成的,当外围设备接到总线上时,地址是由主机随机分配的,信息的交换通过4种方式实现。

  (1)控制传输

  主要作用是建立主机和USB外设之间的联系管道和USB外设的状态反映,不能用于传输信息数据。AN2131QC的端点O用于控制传输。

  (2)批量传输

  主要用于传输长度不大于64个字节,而且需要周期性传输的数据块,具有错误重发功能,可以动态地利用可获得的USB总线带宽。

  (3)中断传输

  对于一个规定的时间里传输一个中等数量的数据是很有用,因为它将保证主机在最短的延迟里响应或发送数据。

  (4)同步传输

  可以1次传输长度不超过1 024 B的数据块,主要用于传输大批量的实时数据,例如音频数据,不支持错误重发。

  3 框架函数

  框架函数一般都提供有交互的挂钩,可以用来方便用户添加完成特定的功能代码。所谓函数挂钩,就是应用程序之间的桥梁,就好比用钩子在应用程序之间建立联系。函数挂钩非常简单,其所能完成的功能也非常有限,但可以根据实际需要向函数中添加代码,以实现特定的功能。框架函数分为3类:任务分配、标准设备请求和USB中断处理。

  3.1 任务分配

  (1)D_Init( )

  该函数可在框架初始化期间被调用。在设备重枚举和任务调度启用前调用该函数,可用于初始化用户的全局状态变量。在该函数中,用户可设置整体状态变量的初始值,并可规定各种端点资源的使用(包括中断)以及配置外围接口的输入/输出等。

  (2)TD_Poll( )

  在设备工作期间,该函数可被重复调用。它包含一个执行外设功能的状态机。该函数在高优先级的任务处理完成后便可返回。然而,如果不能从该函数中返回,则,框架将不能响应设备请求和USB挂起事件。如果某项任务需要大量的处理时间,则应将该任务分为若干小任务,并通过对该函数的多次调用来分批处理。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论