通用串行总线usb(universal serial bus)应用由三部分组成:具有usb接口的pc系统、能够支持usb的系统软件和使用usb接口的设备。usb应用采用通用连接技术,实现外设的简单快速连接,借以达到方便用户、降低成本、扩展pc机连接外设范围的目的。usb的特点如下:
(1)连接灵活、使用方便 现在计算机系统连接外围设备的接口并无统一的标准,如键盘用ps/2接口,打印机用25针的并行接口等。usb则将这些不同的接口统一起来,由一组微小的矩型插座和软件构成。用户插入外设后,计算机系统能够自动识别接入的外设,而不需要重新启动系统,用户可以带电插拔;为usb设计的驱动程序和应用软件可以自动启动,无需用户干预usb设备,也不涉及irq冲突等问题;usb单独使用自己的保留中断,不会同其它设备争用pc机的有限资源。
(2)为外设提供电源 usb能自动识别外设所需的电源,并通过usb电缆向该设备供电(最高可达500ma)。
(3)速度快 usb的最高传输率可达12mbit/s,比串口速度快100倍,比并口速度快近10倍。usb端口的传输速率比目前pc机平台上的任何其它类型端口的传输速率都快。预计今后usb的速度将会提高到100mbit/s以上。
(4)支持多媒体 usb提供了对电话的两路数据支持,它可支持异步及等时数据传输,使电话可与pc机集成,共享语音邮件及其它功能。由于usb音频信息生成于计算机外,因而减少了电子噪音干扰声音质量的机会,从而使音频系统具有更高的保真度。
1、 usb接口芯片an2131q
目前市场上usb接口芯片很多,使用较为广泛的是crypress公司的an2131系列的usb接口芯片an2131q。an2131q具有以下优点:
(1)基于ram的“软”系统解决方案(soft,ram based),不需要rom或其它的固化存储器,而只使用片内的程序/数据ram。通过主机下载的方式来配置usb接口,因而使接口系统的修改和升级变得非常简单,使外设硬件的更新和升级变得更为方便。
(2)数据吞吐量完全达到usb协议要求,可以向用户提供足够的端口、缓冲区和传输速度;提供usb协议要求的全部四种传输方式(控制传输、中断传输、批量传输和同步传输),可以满足用户对各种类型数据传输的需求。
(3)片上的串行接口处理机(sie)完成大部分的usb协议操作,使用户可以摆脱复杂的协议细节,简化了用户配置代码,加快了开发过程。
(4)内嵌增强型8051处理器,兼容8051指令系统;一个指令周期仅需四个时钟周期,可提供标准8051三倍以上的处理能力;双数据指针,方便数据块搬移;使用片内ram作为数据/程序存储器,非复用数据/地址总线,使程序执行速度更快,并且其同外部器件的连接更加简单。
(5)休眠模式可以降低系统功耗,延长器件的使用寿命。
an2131q的功能框图如图1所示。
usb收发器和pc机的接口只有四根导线:+5v、gnd、d+、d-。数据以12mb/s的全速信号或者以1.5mb/s的低速信号在d+和d信号线上差分传输。收发器固化在芯片上,不需要外部电路,最多只需要用来选择全速或者低速的上拉电阻。
串行接口引擎(sie)通过包排序、信号产生及检测、crc产生及校验、nrzi数据编码、位填充以及包标识产生及解码等功能块处理usb通信协议,并保证传送到usb电缆上的数据字节以lsb开头。
an2131q采用通用的8051微控制器及片上ram,其编程语言为51系列单片机的通用语言,使用方便。
2 、tms320c54xx dsp和an2131q接口芯片的硬件连接
tms320c54xx dsp芯片选用ti公司的tms320vc5409,tms320vc5409是定点dsp芯片,它使用改进的哈佛结构,8级流水线操作,最高速度可以达到166mips。
在an2131q芯片和tms320c54xx dsp芯片之间采用fifo(first in first out sram)芯片连接,可以使usb接口芯片和dsp之间的最大数据交换速度超过usb总线的速度,使之不成为数据传输的瓶颈,从而使dsp和主机间的数据传输速度只受usb协议限制。
由于an2131q芯片内嵌8位8051处理器,所以使用两片8位fifo芯片实现usb接口和dsp之间的双向通信。fifo选用具有1k×9bit内存的idt72v02。从an2131q或者dsp传输的数据首先保存在fifo中,然后再由dsp或者an2131q读走,从而使得数据的传输不会出现堵塞情况,其硬件连接框图如图2所示。
由于选用的fifo只有双端数据总线和状态信号,没有地址总线,所以dsp采用i/o译码方式访问fifo。fifo状态信号有空(ef)、半满(hf)和满(ff),它们都是低有效。合理利用这三个信号可以很有效地提高fifo的读写效率。例如利用hf,如果其无效,表示fifo中的数据没有达到半满,此时不用查询ff就可以向fifo中写入一块数据,只要数据块的大小等于或小于fifo容量的一半,fifo肯定不会满溢出。这样就可以大大提高fifo的写入速度。
3、 tms320c54xx dsp芯片和an2131q芯片的软件连接
an2131q芯片和tms320c54xx dsp芯片之间的软件连接包括四个部分:an2131q对fifo1的写、an2131q对fifo2的读、dsp对fifo1的读、dsp对fifo2的写。为了描述方便,将fifo1的三个状态信号称之为:ef1、hf1和ff1,将fifo2的状态信号称为ef2、hf2和hf2。
3.1 an2131q写fifo1
当usb总线上有数据要传送至dsp时,an2131q查询hf1。若hf1无效,an2131q一次向fifo1写入一个数据包。包大小要小于或等于fifo1容量的一半,写每一个字节时不需再查询ff1。
3.2 dsp读fifo1
dsp每次从fifo1中读入一个数据包。每读一个字节前,dsp需要查询ef1,只有当ef1无效(fifo1不空)时,dsp才可能进行读操作。
3.3 dsp写fifo2
当dsp有数据要传送至主机时,dsp把数据打包,每次向fifo2中写入一包数据。方法同an2131q写fifo1,只不过dsp查询的信号是hf2。写完一包后,dsp向an2131q发一个中断信号,dsp在写下一包数据时要等待an2131q的应答。an2131q应答的方法是利用dsp的外部中断int1中断dsp。
3.4 an2131q读fifo2
an2131q收到dsp发出的中断信号,应答dsp后,从fifo2中读入一包数据,不用再查询ef2。
3.5 数据包格式
每个数据包由包头和数据两部分构成如图3所示。包头长度为一个字节,指明以字节为单位包中数据(不含包头)的长度。包中的数据要少于或等于64字节,即最大的包总长度为65字节。
3.6 dsp中断an2131q的方法
通过操作控制字向an2131q发一个负脉冲,下降沿有效,时序要求如图4所示。
3.7 dsp读fifo状态
方法一是dsp通过读i/o地址0xxx xxxx xxxx x010b可获得状态信号ef1和hf2。方法二是dsp通过置tms320vc5409状态寄存器st1中的xf位,从bio引脚上获取状态信号。当xf置1时,bio引脚反映hf2的电平,当xf置0时反映ef1的电平。
4 、an2131q芯片驱动程序的实现
an2131q芯片的一个特点就是能够按照个人需要通过“下载”和“重列举”动态地改变设备性能。an2131q芯片内部有不可改变的存储单元存放特有的代理号(vid)和产品号(pid),vid/pid将绑定主机中的某个设备驱动程序,而该驱动程序的唯一任务就是向an2131q下载程序代码。
用户需要编写三个程序来实现usb设备的使用。一个是负责usb接口调用程序,用于pc机识别usb设备;另一个是安装usb的信息文件,用于对usb设备的一些说明;第三个是an2131q使用的程序,用于对数据的传输。下面对这三个程序分别做一些简单的说明。
4.1 负责usb接口调用程序
cypress提供了制作该程序的模板。首先,将keil51编译生成的16进制文件转换为可写入usb ram中的二进制文件。然后将该二进制文件拷入模板中,调用ddk(device driver kit),在ddk环境下对模板进行编译,生成驱动程序的系统文件。usb通过gpd(general purpose driver)实现上层软件与usb的通信。gpd提供一种用户模式的界面,完成usb设备的请求和数据传输。cypress的开发工具包中提供了其开发面板的源程序,而其开发面板的设计就是基于gpd的。这使得开发者在例子程序的指引下,能快速地编写出用于通信的应用软件。gpd的设计思想是服务于一般用户的,其接口函数具有通用性。通过gpd提供的接口函数的原型,可以实现各种usb操作。包括实现负责usb设备的请求(即打开usb设备);负责usb的i/o口控制;通过改变ioctl(i/o control code)实现各种操作。
4.2 安装usb的信息文件
安装文件的任务就是将驱动程序文件绑定到特定的vid/pid。主要说明哪一个文件是负责usb接口调用程序,哪一个文件是an2131q需要下载的文件。crypress公司提供了一个标准的usb安装信息文件。然而用户还需要将自己对usb设备的描述(包括说明、版本号、日期、生产商等信息)加到安装信息文件中。
4.3 an2131q使用的程序
an2131q使用的程序是在pc机找到usb设备后下载到an2131q芯片内的程序,此程序实现an2131q对fifo和usb接口的监控和读写数据。这个文件因为涉及到下层硬件的连接,不可能提供通用的模板,需要用户自己编写。
数万智能汽车量产应用的ADAS、IMS方案
线切割机放电间隙控制系统的软硬件设计和应用方案分析
数字多用表新的国际安全标准
AR在军事中的应用包括头盔显示器,CV90等设备
基于光谱传感器的创新型现场护理解决方案确保公共卫生及社会安全
TMS320C54XX DSP和USB接口芯片AN2131Q的接口软硬件设计
MH493体重振动感应线性霍尔效应传感器IC元件
小米6plus配置曝光:惊喜不断,小米6不过是开胃菜,小米6plus才是重磅戏!
一体成型电感的应用范围是怎样的
LDO输入输出之间并联的肖特基二极管作用分析
一文知道伺服驱动器电子齿轮比的设置方法
华为nova 2 Plus魔镜版明日开启预售
5G是新兴技术变革和新生态体系的构建
LG化学向美国申请制裁令,制裁SK在电动汽车电池的“盗取”
5G全面普及后带给我们的生活变化,那么这些变化具体都体现在哪些方面?
Allegro软件中,封装由什么组成
升压芯片选型原则是什么 升压芯片工作原理是什么
SmartRunner Explorer激光轮廓传感器产品介绍
AI芯片飙升,AI软件备受瞩目
芯片短缺,本田的数万辆汽车或受影响