首页|Search|火腿下载
网站地图 BBS/论坛
欢迎投稿 Unix站
  首页 | 业余无线电 | 电源技术 | 信号处理 | 通信与网络 | 下载 | 电子技术与应用 | RF无线 | 家电频道 | 电子动态 | DIY
 
 当前位置:首页 > 信号处理 > 正文  
USB接口器件ISP1581的接口应用设计
文章来源:《单片机与嵌入式系统应用》 文章作者:王 晖 发布时间:2006-07-13   字体: [ ]  
 



 

引言

通用串行总线USB(Universal Serial Dus)是近年来应用在PC领域的新型接口技术;是一些大PC厂商,如Microsoft、Intel等,为了解决日益增加的PC外设与有限的主插槽和端口之前的矛盾,而制定的一种串行通信的标准。USB以其高速、易于安装配置、使用灵活和可靠性高日益受到人们的欢迎。现在已广泛使用于计算机和周边设备的连接,如键盘、鼠标、打印机、存储设备等。

USB控制器一般有两种类型:一种是MCU集成在芯片里面;另一种是纯粹的USB接口芯片,仅处理USB通信。前者由于开发时需要单独的开发系统,因此开发成本较高;后者只是一个芯片与MCU接口,实现USB通信功能,因此成本较低、可靠性较高。本文主要介绍Philips公司的ISP1581器件的使用方法,它属于后者。

图1

1 硬件设计

1.1 ISP1581芯片特点

ISP1581 是一个高速USB器件控制器。它实现了USB2.0/1.1物理层和数据协议层的任务,并且实现了连同端点EP0(设置用于访问设置缓冲器)在内的16个 USB端点的共同协作;用于基于微控制器的系统,与微控制器/微处理器的通信是通过一个高速的通用并行接口实现的,接口速度可达12.5M字节/s或 12.5M字/s;支持DMA传输,可很好地实现与大容量存储设备的接口;通过ATA/ATAPI接口,可以直接与ATA/ATAPI设备相连。 ISP1581能适应大多数设备类规范的设计,非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器和数码相机等的外部接口。(注: ATA/ATAPI,Advanced Technology Attachment/Advanced Technology Attachment Peripheral Interface.中文名称为高级技术附国装置/高级技术附加装置外围接口。ATA是一种硬盘接口标准,ATA标准的接口类型其实就是IDE接口类型。)

 

 

ISP1581内集成了多个模块,各自完成不同功能,如图1所示。

①USB2.0收发器。模拟收发器通过集成的终端电阻直接与USB电费相连。

②Philips 串行接口引擎(SIE,Serial Interface Engine)。完成所有USB协议层的功能,主要完成以下的功能:同步方式的识别、并行/串行的转换,位填充/解除填充、CRC校验/产生、包标识(PID)校验/产生、地址识别和握手评估/产生。考虑到速度,它是全硬件的,不需要软硬件介入。

③存储器管理单元(MMU)和集成RAM。MMU和集成RAM实现了USB总线和微控制器管理器或DMA管理器之间的速度转换。

④微控制器/处理器接口和微控制器/处理器的管理器。可以直接与大部分的微控制器相连。

⑤DMA接口和DMA管理器。DMA管理器接收到DMA命令后,可直接把数据从内部RAM传送到外部DMA设备或从外部DMA设备传送给内部RAM。

2 硬件连接

ISP1581有一个快速通用接口,利用它可以实现与大部分类型的微控制器/处理器的通信。上电时,由引脚BUS_CONF、MODE1和MODE0共同设置。由于MMC2107的外部地址、数据总线是分开的,因此在本开发平台上ISP1581只能工作在通用处理器工作模式下。

ISP1581提供微控制器接口与微控制器进行数据传输,也支持DMA传输。在微控制器速度较高时,两者的读写访问速度均可达12.5Mb/s,采用DMA方式会增加电路设计的复杂度。经过综合比较,采用微控制器接口方式。USB模块硬件连接原理如图2所示。

注: ①ISP1581提供两种复位方式:a.ISP1581集成有上电复位电路(POR),RESET引脚接电源,实现上电复位功能。b.RESET引脚接 MMC2107的一个数字I/O引脚,将该引脚置低800μs后置高,实现复位。②ISP1581的供电电压为3.3V或5.0V,I/O引脚最大能承受 5.0V的电压。根据I/O口的电压,从3.3V和5.0V中选择一个作为供电电压。

3 ISP1581固件(FIREWARE)程序设计

由于所有的通信都是由主机发起,设备只能能来自主机的命令。在这种结构下,ISP1581的固件采取中断驱动。这样一方面保证了快速的数据传输和较好的软件结构,另一方面简化了编程和测试。

固件程序由5部分组成,如图3所示。

(1)主循环流程

上电后,初始化MMC2107和ISP1581。然后,主循环程序轮询检查事件标志,进入相应的子程序进行进一步的处理。图4是主循环的流程。

(2)中断服务程序(ISR)流程

图5所示的中断服务流程,用来处理由ISP1581产生的中断。通过访问ISP1581的中断寄存器,建立正确的事件标志,以通知主循环程序进行处理。

(3)USB标准请求处理

进行应用通信以前,主机必须枚举设备。该过程是通过给端点0发送包含标准设备请求(CHAP_9)的控制传输实现的。USB标准请求流程(见图6)译码设备请求类型,转到相应的处理子流程。枚举过程如下:

①主机使用默认地址(地址0)读取设备描述符GetDeviceDescriptor;

②SetAddress;

③连续3次GetDeviceDescriptor,读取全部设备描述符;

④GetConfigDescriptor;

⑤GetStringDescriptor(可能没有);

⑥读取全部ConfigDescriptor后,主机将找到新设备,提示安装驱动程序。

⑦在设备能通信前,主机给出SetConfiguration请求,设备收到后调整有关信息,使设备能被客户软件利用。

(4)厂商请求处理(VENDOR)

厂商请求和USB标准请求一样,都根据控制传输的内容进行相应处理。本开发平台的固件程序中定义了两个厂商请求,分别为取得固件版本和将批量数据写入设备或从设备中读出数据。

取得固件版本流程如图7所示。主机发送批量数据读写请求时,在控制传输的数据阶段,主机给出需要传输的数据字节数、数据传输方向、页索引和数据定位。控制传输结束后,主机和设备就可以根据双方约定,启动批量传输。批量传输流程如图8所示。

图6

4 调试

4.1 调试步骤

USB的调试可分为以下几个步骤:

①若USB芯片正常工作,可实现软连接,将设备插入主机后,主机上出现“未知设备类型”的USB设备;

②提供描述符,提供正确的VID和PID后,主机能够识别设备,但要求提供设备的驱动程序;

③安装驱动程序后,调试各端点,使其均可传输数据,用主机端的测试程序对其进行测试,验证硬件及因条件限制的正确性。

4.2 调试工具

因为每一次USB的传输过程,都有时效要求,等待时间过长,通信过程也就中止了,因此不适合用硬件仿真器来设断点调试。可采用串口辅助调试过程,即在固件代码中加入类似于Printf的语句,向串口输出一些信息。借此,可以知道程序是否运行到此外,以及运行到此处时相应的变量或寄存器值。

设备完成配置后,在Bus Hound中可以看到该设备(bus Hound是一种应用软件)。选择该设备,就可以对主机与此设备间的通信数据进行分析和监视。Bus Hound工作在主机端,串口工作在微控制器端。将串口调试和Bus Hound两种手段配合使用,可以使USB通讯过程的调试更加容易。

 

    1.2 ISP1581内部模块功能描述    在调试USB设备时,还可使用UsbView程序。在该程序中可以查看设备描述符、配置描述符和端点描述符是否正确。



↑返回顶部   打印本页   关闭窗口↓  
14.270.020 - frequency in MHz, USB - mode, IC-735 - radio, 05-Oct-2008 12:12:14 - current date and time
 推荐文章
·基于AD6623的多路中频数字
 
 热点文章
·基于D类功放的宽范围可调
·基于ADSP-BF532嵌入式网络
·基于Blackfin533的H.264编
·TMS320C6701DSP线性调频信
·基于AD6623的多路中频数字
·USB软件狗的设计及反破解
·Matlab与数字示波器的通信
·了解6大类主流视频处理器
 
 相关文章
·USB软件狗的设计及反破解
·USB安全钥功能扩展与优化
·基于TMS320C64x/DM64x的视

Copyright (C) 2001-2005 cnham.com  All Rights Reserved
本网站部分资源来源于网络为个人收藏、学习之用,如有侵权请与我取得联系(feedback at cnham.com),我将及时删除。

备案序号:京ICP备05006143号