位置:51电子网 » 技术资料 » 接口电路

AN2131QC芯片USB总线通信的开发

发布时间:2008/6/3 0:00:00 访问次数:538

1 usb总线的网络配置

在usb总线网络中,只能有一个主机,一个主机通过usbhub最多可以扩展127个usb外围设备。如果不通过hub,那么usb总线的传输距离最好不超过5 m。图1是usb总线网络图。

从数据的传输流程可以知道,两个计算机无法直接通过usb总线进行通信。

2 an2131qc的主要特点
   an2131qc是基于usb1.1的外设通信控制芯片,主要特点:
  (1)四时钟周期的8051内核。
  (2)2个快速存储器到存储器的数据传送指针。
  (3)扩展的中断,包含有多个usfb数据传输中断。  
  (4)8 k内部ram,用于存放程序和数据,支持外部存储器。
  (5)灵活的固件程序升级。
  (6)32个输入输出管道,其中同步传输支持1 024 b长度数据传输。
  (7)多种固件程序引导方式,方便的固件程序升级办法。

3 an2131qc的数据传送方式
  usb总线的数据传送是通过管道(pipline)来完成的,主机发送in令牌和out令牌,完成信息输入或输出。不同于can总线的固定地址分配,所有usb外围设备接入到总线时,地址由主机随机分配。
  基于an2131qc的设备接入主机后,信息交换是通过4种方式实现的:
  (1)控制传输方式
  主要作用是建立主机和usb外设之间的联系管道和usb外设的状态反映,不能用于传输信息数据。an2131qc的端点0用于控制传输。
  (2)块传输方式
  主要用于传输长度不大于64个字节而且需要周期性传输的数据块,具有错误重发功能,可以动态地利用可获得的usb总路线带宽。
  (3)中断传输方式
  传输主式同块传输基本相同,但其主要用于发送或接收少量数据,而且并不经常进行传送的情况。an2131qc的端点1~7可以进行块传输和中断传输。
  (4)同步传输方式
  可以一次传输长度不超过1 024 b的数据块,主要用于传输大批量的实时数据,例如音频数据,不支持错误重发。  

4 an2131qc的程序引导
  an2131qc内部没有rom,因此程序只能在上电复 位时从外部导入,主要为以下几个途径:
  (1)通过驱动程序,cypress公司提供了工具将编译的固件hex文件嵌入到驱动程序内,usb外围设备接入到总线后,主机自动将固件程序写入到ez-usb内ram,完成枚举和重枚举。
(2)通过外部i2ce2prom。将固件hex文件通过“hex2bix-i-b2(target).iic(source).hex”命令转换成iic文件,用编程器或者“控制面板程序”写入到i2c器件。i2 c器件选用24lc64a或者24aa64,将其 a0管脚上拉到高电平,a1,a2接地。
  (3)采用外部flashirom和ram。固件程序如果大于4 k,那么就要考虑用这种方式,注意ea上拉到高电平。

5 an2131qc的电路配置
  主机向外围usb设备提供的最大电流是500 ma,因此当usb外围设备电流消耗超过500 ma时,需外接电源。an2131qc的工作电压是3.3 v,可以通过ldo芯片将5 v转换成3.3 v。
  an2131qc芯片的电路原理如图2所示,其中有几点要说明:
  (1)芯片的5,6,13,14,72脚通过一个1 kω电阻接地,主要用于上电测试。
  (2)无论i2c总线是否外接有器件,scl和sda管脚都应通过2.2 kω的电阻上拉。
  (3)不能让wakeup管脚悬空。
  (4)将usb+和usb-通过2个24ω电阻接到d+和d-,可以抑制虚噪声信号和限制环流。

6 an2131qc的固件程序开发
  从cypress公司网站,可以下载到“控制面板程序”和驱动程序,也可以得到开发例程。通过开发例程,我们可以总结出开发自己固件程序的框架,从而可以轻松完成usb外围设备的开发。
  在建立固件程序框架后,根据地址分配,在keilc51 编译器内设置编译连接地址,如果选用内部ram,code地址设置为0x100,xdata地址设置为0x1200。
  (1)在dscr.a51文件中设置外围设备配置信息和通信管道
  在此文件内包含有usb外设的定义信息和通信管道,其中需要自己修改的东西是设备描述和通信管道。
  stringdscr1和stringdscr2用于描述usb外设的种类和功能。
  epindscr用于定义an2131qc的输出端点,包括端点号(作为输入的端点号字节的最高位为“1”)、传输方式、数据包最大长度等。
  epoutdscr用于定义an2131qc的输入端点,格式与epindscr相同,但端点号字节的最高位为“0”。
   (2)通信管道的初始化
  在dscr.a51文件内定义了端点号后,需要在初始化定义里使能相应的通信端点,下面的例子为输入端点2和输出端点2的初始化例程:

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

1 usb总线的网络配置

在usb总线网络中,只能有一个主机,一个主机通过usbhub最多可以扩展127个usb外围设备。如果不通过hub,那么usb总线的传输距离最好不超过5 m。图1是usb总线网络图。

从数据的传输流程可以知道,两个计算机无法直接通过usb总线进行通信。

2 an2131qc的主要特点
   an2131qc是基于usb1.1的外设通信控制芯片,主要特点:
  (1)四时钟周期的8051内核。
  (2)2个快速存储器到存储器的数据传送指针。
  (3)扩展的中断,包含有多个usfb数据传输中断。  
  (4)8 k内部ram,用于存放程序和数据,支持外部存储器。
  (5)灵活的固件程序升级。
  (6)32个输入输出管道,其中同步传输支持1 024 b长度数据传输。
  (7)多种固件程序引导方式,方便的固件程序升级办法。

3 an2131qc的数据传送方式
  usb总线的数据传送是通过管道(pipline)来完成的,主机发送in令牌和out令牌,完成信息输入或输出。不同于can总线的固定地址分配,所有usb外围设备接入到总线时,地址由主机随机分配。
  基于an2131qc的设备接入主机后,信息交换是通过4种方式实现的:
  (1)控制传输方式
  主要作用是建立主机和usb外设之间的联系管道和usb外设的状态反映,不能用于传输信息数据。an2131qc的端点0用于控制传输。
  (2)块传输方式
  主要用于传输长度不大于64个字节而且需要周期性传输的数据块,具有错误重发功能,可以动态地利用可获得的usb总路线带宽。
  (3)中断传输方式
  传输主式同块传输基本相同,但其主要用于发送或接收少量数据,而且并不经常进行传送的情况。an2131qc的端点1~7可以进行块传输和中断传输。
  (4)同步传输方式
  可以一次传输长度不超过1 024 b的数据块,主要用于传输大批量的实时数据,例如音频数据,不支持错误重发。  

4 an2131qc的程序引导
  an2131qc内部没有rom,因此程序只能在上电复 位时从外部导入,主要为以下几个途径:
  (1)通过驱动程序,cypress公司提供了工具将编译的固件hex文件嵌入到驱动程序内,usb外围设备接入到总线后,主机自动将固件程序写入到ez-usb内ram,完成枚举和重枚举。
(2)通过外部i2ce2prom。将固件hex文件通过“hex2bix-i-b2(target).iic(source).hex”命令转换成iic文件,用编程器或者“控制面板程序”写入到i2c器件。i2 c器件选用24lc64a或者24aa64,将其 a0管脚上拉到高电平,a1,a2接地。
  (3)采用外部flashirom和ram。固件程序如果大于4 k,那么就要考虑用这种方式,注意ea上拉到高电平。

5 an2131qc的电路配置
  主机向外围usb设备提供的最大电流是500 ma,因此当usb外围设备电流消耗超过500 ma时,需外接电源。an2131qc的工作电压是3.3 v,可以通过ldo芯片将5 v转换成3.3 v。
  an2131qc芯片的电路原理如图2所示,其中有几点要说明:
  (1)芯片的5,6,13,14,72脚通过一个1 kω电阻接地,主要用于上电测试。
  (2)无论i2c总线是否外接有器件,scl和sda管脚都应通过2.2 kω的电阻上拉。
  (3)不能让wakeup管脚悬空。
  (4)将usb+和usb-通过2个24ω电阻接到d+和d-,可以抑制虚噪声信号和限制环流。

6 an2131qc的固件程序开发
  从cypress公司网站,可以下载到“控制面板程序”和驱动程序,也可以得到开发例程。通过开发例程,我们可以总结出开发自己固件程序的框架,从而可以轻松完成usb外围设备的开发。
  在建立固件程序框架后,根据地址分配,在keilc51 编译器内设置编译连接地址,如果选用内部ram,code地址设置为0x100,xdata地址设置为0x1200。
  (1)在dscr.a51文件中设置外围设备配置信息和通信管道
  在此文件内包含有usb外设的定义信息和通信管道,其中需要自己修改的东西是设备描述和通信管道。
  stringdscr1和stringdscr2用于描述usb外设的种类和功能。
  epindscr用于定义an2131qc的输出端点,包括端点号(作为输入的端点号字节的最高位为“1”)、传输方式、数据包最大长度等。
  epoutdscr用于定义an2131qc的输入端点,格式与epindscr相同,但端点号字节的最高位为“0”。
   (2)通信管道的初始化
  在dscr.a51文件内定义了端点号后,需要在初始化定义里使能相应的通信端点,下面的例子为输入端点2和输出端点2的初始化例程:

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

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!