摘要:USB通用串行总线已经成为PC的规范装备,运用USB接口能够衔接多个不同的设备,支撑热插拔,并具有主动检测的功用。要深化了解并规划出USB设备就不得不运用到内含USB接口的微操控器或是专用的接口操控芯片。这儿评论在一般常用的AN2131QC USB单片机中内建USB接口的状况。扼要介绍EZ-USB AN2131QC的特性,描绘主机与设备之间的通讯,介绍它的几种传输并在此基础上介绍固件的界说,论述根本结构以及其固件程序的根本规划。
关 键 词:EZ-USBAN2131QC;根本结构;USB接口;固件程序规划
跟着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挂起事情。假如某项使命需求很多的处理时刻,则应将该使命分为若干小使命,并经过对该函数的屡次调用来分批处理。
(3)TD_Suspend( )
该函数可在结构进入挂起状况之前被调用。函数中应该包含使设备进入低功耗状况的程序,然后回来TRUE。当然,能够让该函数回来FALSE,以阻挠设备进入挂起状况。
(4)TD_Resume( )
该函数可在设备被外部唤醒事情唤醒且结构程序康复处理后被调用。此刻,设备将康复到正常的操作方法。
3.2 设备恳求
设备恳求函数一般具有如下方式:
该函数首要对来自主机的指令及恳求进行处理(如剖析描绘符表),以确认新的装备接口和端点。
3.3 USB中止
因为在固件程序中供给有中止服务例程接口,因而,开发者只要在需求处理的中止服务例程接口中参加自己编写的中止服务代码,即可完结对相应中止恳求的服务。这些中止服务例程接口函数的方式为:
4 固件程序
4.1 固件的界说
载有在用户环境中不能加以改动的计算机程序及数据的器材。包含在固件中的计算机程序和数据归类为软件;载有计算机程序和数据的电路归类为硬件。固件程序便是硬件中的软件部分,经过履行该软件能够完结特定的硬件功用。一般的固件程序是将一段程序存储在ROM上,设备发动之后主动引导装备特定的芯片,使之完结特定的功用。
4.2 固件程序规划
Cypress公司供给EZ-USB固件程序结构,用于加速开发依据EZ-USB芯片的外设。固件程序选用Keil C编写,首要包含2个文件,一个是使命调度和设备恳求剖析程序fw.c,其间包含了固件履行的进口,一般不必修正;一个是USB外设功用程序periph.c,包含用户初始化函数、规范设备恳求函数、完结外设功用的USB中止处理函数。用户只需供给设备描绘符表并链接进来,再编写完结外设功用的代码,就能够开宣布一个功用完善的USB外设。例如要运用AN2131QC的块输入端点2完结快速读操作,其固件编写进程如下:
(1)依照USB描绘符表样例Dser.a51中的格局,按次序顺次修正设备描绘符、装备描绘符、接口描绘符、端点描绘符、字符串描绘符。
(2)修正periph.c程序中初始化函数TD_Init(),进行端点使能与中止答应设置。
void TD_Init(void)
{
IN2VAL=bmEP2; // 使输入端点2有用
IN2IEN=bmEP2; ///使能端点中止
USBBAV=bmAVEN; //使能主动向量
EA=1; //使能8051中止
Rwuen=TRUE; //使能长途唤醒
}
(3)修正periph.c中的块输入端点2的中止函数ISR_Ep2 in(),填加用户功用代码,完结块读传输。
在KeilμVision2下调试,即可生成bulk.HEX。
5 结 语
当时,USB设备的开发已成为热门,缩短研制周期、进步开发功率是开发者寻求的方针。挑选EZ-USB芯片,运用EZ-USB程序结构,能够大大加速USB设备固件程序的开发进程。