·上一文章:基于FPGA的伪随机序列发生器设计
·下一文章:基于FPGA的TDI-CCD时序电路设计
2 USB固件结构设计
USB固件结构设计包括枚举过程和数据传输过程。数据传输过程与枚举过程中的in中断的处理方法类似。因此这里主要介绍枚举过程的固件编写。
枚举过程的流程图如图2所示。
枚举过程就是主机通过向设备发送一系列请求来识别设备的过程。USB一共定义了11种标准USB请求,其中有些请求是必须的。例如,主机必须通过Get Descriptor请求来获取设备的设备描述符、接口描述符和端点描述符等信息,才能识别设备;必须通过Set Address请求为设备分配惟一的非零地址,以便于主机识别设备并与设备进行数据传输;必须通过SetConfiguration请求为设备分配非零的配置值等。USB请求只能使用控制管道来进行传输。主机在没有识别连上的是何种设备之前,会为未知设备分配一个默认地址O,主机通过0地址与设备通信,直到主机确定真正有设备连接了之后,就会为该设备分配一个惟一的非零地址。在此之后,主机可通过这个非零地址跟设备通信,包括获取该设备的所有配置信息、接口信息以及完成最后的数据传输等。
2.1 芯片初始化
芯片的初始化主要包括工作模式、速度的选择以及寄存器的配置等操作。工作模式的选择可通过设置ISPl362的第62引脚A1为高电平来实现。这里实现的是全速的数据传输。下面主要介绍寄存器的配置。