欢迎来到亿配芯城! | 免费注册
你的位置:JSCJ长晶科技CJ(JCET长电科技)-亿配芯城 > 芯片资讯 > AN2131QC芯片USB总线通信的开发
AN2131QC芯片USB总线通信的开发
发布日期:2024-06-12 07:29     点击次数:184

随着USB接口的推出,AN2131QC芯片正在逐渐成为计算机外围设备一种主流接口,所以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挂起事件。如果某项任务需要大量的处理时间,则应将该任务分为若干小任务,并通过对该函数的多次调用来分批处理。

(3)TD_Suspend

该函数可在框架进入挂起状态之前被调用。函数中应该包括使设备进入低功耗状态的程序,然后返回TRUE。当然,可以让该函数返回FALSE,以阻止设备进入挂起状态。

(4)TD_Resume

该函数可在设备被外部唤醒事件唤醒且框架程序恢复处理后被调用。此时,设备将恢复到正常的操作方式。

AN2131QC芯片电路原理图

9-1.png