新闻中心

EEPW首页>嵌入式系统>设计应用> AN2131QC芯片USB总线通信的开发

AN2131QC芯片USB总线通信的开发

作者: 时间:2012-03-31 来源:网络 收藏

2]

  6的固件程序开发

  从CYPRESS公司网站,可以下载到“控制面板程序”和驱动程序,也可以得到开发例程。通过开发例程,我们可以总结出开发自己固件程序的框架,从而可以轻松完成USB外围设备的开发。

  在建立固件程序框架后,根据地址分配,在KEILC51 编译器内设置编译连接地址,如果选用内部RAM,CODE地址设置为0x100,XDATA地址设置为0x1200。

  (1)在DSCR.A51文件中设置外围设备配置信息和管道

  在此文件内包含有USB外设的定义信息和管道,其中需要自己修改的东西是设备描述和管道。

  StringDscr1和StringDscr2用于描述USB外设的种类和功能。

  EpInDscr用于定义的输出端点,包括端点号(作为输入的端点号字节的最高位为“1”)、传输方式、数据包最大长度等。

  EpOutDscr用于定义的输入端点,格式与EpInDscr相同,但端点号字节的最高位为“0”。

   (2)通信管道的初始化

  在DSCR.A51文件内定义了端点号后,需要在初始化定义里使能相应的通信端点,下面的例子为输入端点2和输出端点2的初始化例程:

3

  其中需要注意的是USBPAIR寄存器的初始化值,他用于设定相应端点的双输入输出缓冲区。在一些控制设备中需要实时获取USB外设的状态,但在使用双缓冲功能后,主机需要发送3个IN令牌,才能从外设取得最新的状态数据,因此在实时性要求比较高的情况下,应避免使用输入输出双缓冲功能。

  (3)数据收发

  USB外设向主机发送信息和获取信息都是以一个数据包为单位,数据包的长度可以随机改变,但不能超过前面端点定义的最大数据包长度。以输入端点2和输出端点3为例说明数据的收发过程。

  向主机发送数据:输入端点2

4

  if((IN2CS&0x02)!=0x02))
                 //检查输出缓冲是否为空

  7 结语

  在有些设备中,可能用AN2131QC作为USB通信,用其他功能强大的微处理器作数据处理,这样的配置有一个瓶颈就是AN2131QC与微处理器的输入输出数据交换问题,可以用双口RAM来解决,但这将使系统复杂,所以最好使用带有标准并行总线接口的USB控制器。在USB设备的开发过程中,驱动程序的开发也是同等重要。

参考文献

[1]AN2131QCDATABOOK.Cypress公司.
[2]EZ-USB_TRM. Cypress公司
[3]张弘.USB接口设计[M].西安:西安电子科技大学出版社,1999.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭