USB接口芯片

2024-05-25

USB接口芯片(共9篇)

USB接口芯片 篇1

在工业控制和数据采集系统中, 单片机以其成本低, 编程灵活、方便、实时性强和具有一定的智能化而得到了广泛的应用。然而, 许多复杂任务的实现, 如人机对话、任务的切换、算法的实现和大数据的运算等, 单片机就显得有些力不从心, 而PC机在这方面却有很强的优势, 这就需要将它们组合成系统, 让单片机只管控制执行机构和进行数据采集与传输;PC机将数据进行处理, 实现控制和数据处理功能。

因此对数据采集系统提出了要求:一方面, 要求接口简单灵活且有较高的数据传输率;另一方面, 由于数据量通常都较大, 要求主机能够对实时数据做出快速响应, 并及时进行分析和处理, 并在单片机和PC机之间进行高速和可靠的通讯。传统的外设与主机的通信接口难以满足上述第一个方面的要求, 一般采用PCI布线或RS-232串行总线, PCI总线虽然有很高的传输率, 还能“即插即用”, 但是它们的扩展槽有限, 且插拔不方便;RS-232串行总线虽然连接方便, 可是它的带宽有限, 传输速度太慢, 而且1条RS-232串口通信电缆只能连接1个物理设备。

USB技术正是顺应这一要求提出的, 它集PCI和RS-232的优点于一身:具有较高的传输速率, 实现了真正意义上的“即插即用”, 同时USB上最多可以连接127个外设, 解决了如资源冲突、中断请求和直接数据通道等问题。因此, USB技术非常适合实时数据采集的场合, 是目前较为流行的通讯方式。

1 USB接口及芯片选择

1.1 USB接口

当今的计算机外设, 都在追求高速度和通用性, 为了满足用户的需求, 以Intel为首的7家公司于1994年推出了USB (Universal Serial Bus通用串行总线) 总线协议, 专用于低、中速的计算机外设。目前, USB端口已成为了微机主板的标准端口。

USB接口和普通并口及串口相比较而言, 主要优势表现在以下几个方面:

(1) 使用方便, 连接外设不必再打开机箱;允许外设热插拔, 而不必关闭主机电源。

(2) 速度快, USB支持3种设备传输速率:1.5Mb/s (低速设备) 、12Mb/s (中速设备) 和480Mb/s (高速设备) 。

(3) 独立供电, USB接口提供了内置电源。

(4) 连接灵活, 1个USB接口可以连接127个USB设备, 既可以使用串行连接, 也可以使用集线器Hub, 把多个设备连接在一起, 再同PC机的USB口相接。

(5) 成本低, 为了把外设连接到PC上, USB提供了一种低成本的解决方案。

1.2 USB100模块与同类产品的比较

USB100模块在传输速率上具有突出优势, 对系统没有特殊的要求, 是其中性价比最高又能实现高速数据传输要求的最佳选择, 见表1。

2 微控制器选型

当今微控制器的种类很多, 从生产厂家来说有几十家, 例如:美国Intel公司、TI公司、美国微芯公司、韩国现代 (LG) 公司、台湾义隆公司和凌阳公司等。下面通过对当前流行的微控制器的介绍, 阐述选择PIC单片机的依据。

2.1 凌阳16位单片机

随着单片机功能集成化的发展, 其应用领域也逐渐地由传统控制扩展为控制处理、数据处理以及数字信号处理等领域;它的CPU内核采用凌阳最新推出的μ′n SPTM (Microcontroller and Signal Processor) 16位微处理器芯片 (以下简称μ′nSPTM) 。围绕μ′nSPTM所形成的16位μ′n SPTM系列单片机采用的是模块式集成结构, 以μ′n SPTM内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件, 借助这种通用结构附加可选结构的积木式的构成, 便可形成各种不同系列派生产品, 以适合不同的应用场合, 这样做使每一种派生产品具有更强的功能和更低的成本。

从目前的应用来看, 凌阳16位单片机的优势在于它具有强大的语音处理功能, 然而, 它在工业控制现场的应用案例较少, 在控制领域并不具备突出的竞争力。

2.2 MCS-51系列单片机

传统的51系列微控制器, 在国内使用时间比较长, 开发产品的资料也比较多, 但其片内资源较少, 在外围电路中需加入多种模块, 如:A/D转换器、PWM、RAM和ROM存储器等。它的优点是外围电路易于扩展, 尤其是存储器的容量可以按需求增大, 缺点是在线调试程序不方便。如果应用到数据采集中, 外围扩展电路比较复杂, 电路板空间和制造成本较大, 而且在硬件电路的制作和调试方面也有一定的困难。

2.3 PIC系列单片机

PIC系列单片机是美国微芯公司 (Microchip) 的主要产品, 有PIC16系列、PIC17系列和PIC18系列等。PIC系列单片机CPU采用RISC结构, 它具有运行速度快、工作电压低、功耗低、较大的输入输出直接驱动能力、价格低和体积小等优点。

选用的PIC16F877单片机是PIC系列的中档产品, 其内部资源非常丰富, 含有8K的FLASH程序存储器、368B的RAM数据存储器、256B的EEPROM数据存储器、8通道10位A/D转换器、3个定时器、2个捕捉/比较/脉宽调制、1个同步串行端口SPI和通用同步/异步收发器?USART等。另外, 它具有外围接口电路简单、工作性能稳定等特点。

选择该芯片作为下位机控制器的核心, 利用上述丰富的资源来完成A/D转换、收发数据和输出显示信号等处理和指定的控制任务。

3 USB100模块的典型应用电路

图1为PIC16F877单片机与USB100模块通信的原理图, 其可取之处在于:

(1) 用USB自带的5V直流电源供电, 减小了系统的硬件电路制作量, 充分利用了现有的系统资源。

(2) USB传输线、电源线 (USBVCC) 与地线之间加两级滤波电容, 能有效的抑制传输过程中的噪声干扰。

(3) USB100模块输出电源VCC先经过电源开关, 接0.3A保险丝后为PIC单片机及其他用电器件供电;这样既为单片机安全用电提供了一定的保证, 又为其他器件用电留下了余量。

(4) PIC单片机的电源线和地线之间接入LED指示电路, 起到工作指示作用。它可以明确的反映出单片机是否有电源接入, 并能起到相当好的电路自检作用。

(5) 复位电路中将电容换成了电阻, 并装上了复位按钮, 可以方便地执行复位操作。

(6) USB100的I/O数据口和标志位控制端子均接入1.8kΩ的电阻, 即使发生短路等严重事故输入输出电流也不会超过3mA, 最大限度保证了电路的安全工作。

4 单片机硬件设计

美国Microchip技术公司的PIC系列单片机采用精简指令集计算机 (RISC———Reduced Instruction Set Computer) 、哈佛 (Harvard) 双总线和两级指令流水线结构的高性能价格比的8位嵌入式控制器;其高速度、低工作电压、低功耗和较大的输入输出直接驱动LED能力、一次性编程芯片的低价位、小体积、指令简单易学易用等特点, 都体现了单片机工业发展的新趋势。在全球都可以看到PIC单片机在不同领域的广泛应用, 它在世界单片机市场份额排名中逐年提前, 以致成为一种新的8位单片机的世界标准和最有影响力的主流嵌入式控制器, 所以选用PIC16F877作为主控制器。

PIC单片机外围电路如图2所示, PIC16F877微控制器的引脚功能配置如下:

(1) 端口D作为LED输出接口显示控制。

(2) RA0口为压力模拟信号输入端。

(3) RA1和RA2为USB100模块的标志位RXF和TXE。

(4) RA3和RC7为USB100模块的存入 (WR) 和读出 (RD) 标志位。

(5) 端口RC0、RC1、RC2、RC3分别为4位LED动态显示的片选控制端。

(6) B口作为USB100模块的数字I/O口。

(7) RA5可以根据编程设置, 起到工作状态监视作用。

5 结论

本文主要介绍了USB100模块的特点, 微控制器PIC16F877单片机的选择及外围电路的设计, 还简要介绍了USB100和PIC16F877单片机的典型应用案例, 在单片机应用中有一定的参考价值。

参考文献

[1]刘和平, 等.单片机原理及应用[M].重庆:重庆大学出版社, 2010.

[2]邹慧君编著机械系统设计原理[M].北京:科学出版社, 2011.

[3]刘启中, 李荣正, 等.PIC单片机原理及应用[M].北京:北京航空航天大学出版社, 2010.

[4]夏路易, 石宗义.电路原理图与电路板设计教程Protel99se[M].北京:北京希望电子出版社, 2009.

USB接口芯片 篇2

王晖

摘要关键词简单介绍USB接口的特点和Philips公司的USB接口芯片ISP1581;详细介绍USB接口的硬件原理设计、固件开发流程及USB设备的调试。

USB

ISP158

1固件

枚举

微控制器接口

DMA 引

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

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

1.1I S P1581芯片特点

ISP1581 是一个高速USB 器件控制器。它实现了USB 2.0/1.1 物理层和数据协议

层的任务,并且实现了

连同端点EP0(设置用于 访问设置缓冲器在内的 16 个USB 端点的共同协 作;用于基于微控制器 的系统,与微控制器/微 处理器的通信是通过一 个高速的通用并行接口 实现的,接口速度可达 12.5M字节/s或12.5 M字/s;支持DMA传输, 可很好地实现与大容量

存储设备的接口;通过ATA/A TAPI接口,可以直接与ATA/A TAPI设备相连。ISP1581能适应大多数设备类规范的设计,非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器和数码相机等的外部接口。(注: ATA/A TAPI,Advanced Technology Attachmen t/Advanced Technology Attachment Peripheral Int erface。中文名称为高级技术附加装置/高级技术附加装置外围接口。ATA是一种硬盘接口标准,ATA标准的接口类型其实就是IDE 接口类型。

1.2I S P1581内部模块功能描述

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

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

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

DREQ,DACK CS0,CS1, [16:0] DS/WR 图

1ISP1581内部结构方框图

固件介入。

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

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

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

2硬件连接

ISP1581 有一个快速通用接口,利用它可以实现与大

部分类型的微控制器/处理器的通信。上电时,由引脚BUS_CONF、MODE1 和MODE0 共同设置。由于MMC2107的外部地址、数据总线是分开的,因此在本开发平台上ISP1581只能工作在通用处理器工作模式下,设置方式如表1所列。

ISP1581提供微控制器接口与微控制器进行数据传输,也支持DMA 传输。在微控制器速度较高时,两者的读写访问速度均可达12.5M b/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 中选择一个作为供电电压。

3I S P 1581固件(F I R E W A R E 程序设计 由于所有的通信都是由主机发起,设备只能响应来

自主机的命令。在这种结构下,ISP1581的固件采取中断驱动。这样一方面保证了快速的数据传输和较好的软

件结构,另一方面简化了编程和测试。

固件程序由5部分组成,如图3所示。(1主循环流程

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

1设置工作方式

注:这里使用16位总线,AD[0]必须与ISP1581的地端相连。图

3固件结构和数据流向 图

4USB主循环程序

2MMC2107与ISP1581硬件连接原理

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

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

进行应用通信以前,主机必须枚举设备。该过程是通过给端点0发送包含标准设备请求(CHA P_9的控制传

输实现的。USB 标准请求流程(见图6译码设备请求类型,转到相应的处理子流程。枚举过程如下: ①主机使用默认地址(地址0读取设备描述符G etDeviceDescriptor;② SetAddress;③ 连续3次G etDev iceDescriptor ,读取全部设备描述符;④ G etConfigDescriptor;

⑤ G etStringDescriptor(可能没有;⑥ 读取全部ConfigDescriptor 后,主机将找到新设备,提示安装驱动程序。⑦ 在设备能通信前,主机给出SetConfiguration 请求,设备收到后调整有关信息,使设备能被客户软件利用。(4厂商请求处理(VENDOR 厂商请求和USB 标准请求一样,都根据控制传输的内容进行相应处理。本开发平台的固件程序中定义了两个厂商请求,分别为取得固件版本和将批量数据写入设备或从设备中读出数据。

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

方约定,启动批量传输。批量传输流程如图8所示。调

试 4.1 调试步骤

USB 的调试可分为以下几个步骤: ① 若USB 芯片正常工作,可实现软连接,将设备插 入主机后,主机上出现“未知设备类型”的USB 设备;② 提供描述符,提供正确的VID 和PID 后,主机能够识别设备,但要求提供设备的驱动程序;③ 安装驱动程序后,调试各端点,使其均可传输数据,用主机端的测试程序对其进行测试,验证硬件及固件的正确性。

中断服务程序

5中断服务程序流程 图6

USB标准设备请求流程 取得固件版本

图7

取得固件版本流程 图8

批量传送流程

4.2调试工具

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

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

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

USB接口芯片 篇3

USB2.0接口技术具有安装方便、带宽高、成本低、可靠性高、易于扩展等优点。目前USB2.0支持的最高传输速度可达到480Mbps, 基本能够满足日益复杂的高级外设与PC机之间的高性能连接需求, 正逐渐成为现代数据传输发展的必然趋势之一。鉴于此, 本系统采用USB2.0技术运用ARM芯片进行通信接口的设计。

1 数据传输系统的结构设计

基于USB接口的数据传输系统主要由发射和接收两部分组成。其中, 发射系统由ARM芯片控制射频发射模块和ARM控制USB芯片两部分组成。系统的工作过程为:主机将数据通过USB接口传给ARM, 数据通过ARM的SPI口再传给射频发射模块, 最后由射频发射模块把数据发射出去。射频接收端接收到符合的数据包后, 通知ARM读取数据, ARM将数据通过USB接口送给主机, 这样就完成了一个数据包从发射端到接收端的传输。

1.1 USB接口芯片和主控制器芯片的选择

USB控制器有2类, 一种是集成了USB接口的单片机, 如Cypress公司生产的EZ2USB (基于8051) 系列芯片CY7C68013、CY7C64613等;另一种是单独的USB控制器, 如Philips公司的PDIUSBD12、ISP1581, NetChip公司的NET2888, National公司的USBN9603、USBN9604等。第一种开发工具虽然编程简单, 但需要购置专门的开发系统, 投资较大, 并且单片机性能有限;后一种芯片的特点是价格低廉、连接方便、可靠性高, 但其片上不带CPU, 必须选择微处理器来进行协议处理和数据交换。本系统选择了片上不带CPU的性价比较高的USB 2.0控制芯片ISP1581, 它完全符合USB 2.0规范, 传输率可达480Mbps, 采用ISP1581可以快速开发出高性能的USB2.0设备, 同时为了满足速度要求, 主控器芯片选择了高性能、低功耗的ARM芯片S3C44BOX。

1.2 ARMS3C44BOX的工作原理

S3C44BOX微处理器是由Samsung Electronics Co., Ltd为手持设备设计的低功耗、高度集成的基于ARM7TDMI核的微处理器。S3C44BOX具有丰富的内置部件, 包括:8KBcache、内部SRAM、LCD控制器、带自动握手的2通道UART、4通道DMA、系统管理器 (片选逻辑, FP/EDO/SDRAM控制器) 、代用PWM功能的5通道定制器、I/O端口、RTC, 8通道10位ADC、ⅡC-BUS接口、ⅡS-BUS接口、同步SIO接口和PLL备频器。S3C44BOX采用了一种新的总线结构, 即SAMBAⅡ (Samsung ARM CPU嵌入式微处理器总线结构) 和0.25um工艺的CMOS标准宏7单元和存储编译器。它的低功耗精简和出色的全静态设计特别适用于对成本和功耗敏感的场合应用。

1.2.1 S3C44BOX中断概述

ARM7TDMI具有外部中断 (IRQ) 、快速中断 (FIQ) 和软件中断 (Software Interrupt) 3种中断方式, 其中外部中断和快速中断均是硬件中断。对于ARM7TDMI内核的微处理器来说, 中断是作为一种异常来处理的。S3C44BOX的中断控制器可以接收来自30个中断源的中断请求。这些中断源来自DMA、UART、SIO等芯片内部外围或接口芯片的外部引脚。

中断控制器的任务是在片内外围和外部中断源组成的多重中断发生时, 经过优先级判断选择其中的一个中断, 通过FIQ (快速中断请求) 或IRQ (通用中断请求) 向ARM7TDMI内核发出FIQ或IRQ中断请求。

实际上最初ARM7TDMI内核只有FIQ和IRQ两种中断, 其他的中断都是各芯片厂家在设计芯片时定义的, 这些中断根据中断的优先级高低来进行处理。特别是为了解决中断反应时间过长的问题, S3C44BOX提供了一种新的中断模式——矢量中断模式。它具有CISC结构微控制器的特征, 能够缩短中断反应时间。

1.2.2 S3C44BOX中断处理流程

S3C44BOX处理器的中断处理与其他处理器的处理模式基本上是一致的, 只是由于引入了几种不同的处理器模式, 使中断处理变得更容易。中断处理的典型步骤如下:

(1) 保存现场。当系统出现中断时, 处理器首先要做的就是保存现场, 这一过程包括:保存当前的PC值到lr (链接寄存器) 中, 保存当前程序运行状态CPSR到程序状态保存寄存器SP-SR中。由于ARM7TDMI采用了三级流水线结构, 此时的PC值实际上等于当前指令地址加上8 (ARM指令时) , 则返回时还需要将保存的PC值减4, 得到当前指令的下一条指令。

(2) 模式切换。设置当前程序状态CPSR中相应的位, 使处理器进入相应的执行模式。如当进入FIQ模式时, 禁止FIQ中断。

(3) 获取中断源。如IRQ中断, 都从向量地址0x18处开始执行, 通常在此地址处放一条跳转指令, 跳转到中断程序。

(4) 处理中断。获取中断源后, 通过中断向量表获取相应中断的处理程序入口, 调用对应的中断处理函数。

(5) 恢复现场, 中断返回。返回时需要恢复处理器模式, 包括恢复中断处理用到的所有寄存器、恢复被中断的程序状态到当前程序状态CPSR, 并跳转到被中断的主程序。

2 USB设备驱动程序的开发

当外设连接到主机上的USB接口时, 主机会检测到新硬件, 这时需要安装一个驱动程序, 在该驱动程序中包含了一个动态链接库 (DLL) 。该DLL由4部分组成:Classic Interface Functions、EEPROM Interface、Extended API和FT-Win32 API。Classic Interface Functions中包括FT_Open、FT_Read、FT_Write、FT_Close、FT_SetTimeOuts等函数。

基于Windows2000和XP的USB设备驱动程序采用W in32设备驱动模型WDM (Win32 DriverModel) 。USB数据采集系统设备驱动程序处于固件程序和用户态应用程序之间, 帮助操作系统识别USB设备, 同时建立主机与设备之间的通信。WDM驱动程序具有规范的模型, 我们使用开发工具包D riverStudios中的DriverWorks进行USB总线驱动程序的开发, 利用其向导功能生成驱动程序框架, 然后根据具体情况添加适当代码, 经过编译、调试, 构造驱动程序.sys文件。使用D riverWorks还可以生成驱动程序的安装文件 (INF文件) , 用以将USB设备及接口安装在主机上。这个过程是非常方便、快捷的。

3 结束语

随着数据传输技术的飞速发展, 在数据传输系统中采用USB接口进行数据的高速传输已经得到非常广泛的应用。本系统通过ARM芯片S3C44BOX进行USB接口的控制, 在主机端用VB编写了USB软件, 实现了两台设备之间的快速数据传输, 解决了传统通信技术的不足, 具有很好的应用前景。当然, 在基于USB接口的数据传输系统中, 包括固件程序、WDM设备驱动程序以及用户态应用程序等在内的软件设计是非常关键的, 软件系统的设计需要建立在相关硬件系统设计的基础上, 两者只有完美结合才能设计出高效、安全的数据传输系统。

摘要:利用传统的数据传输系统进行数据传输, 存在速度慢、扩展性差、安装麻烦、易受各种环境的干扰, 在许多场合尤其是便携式应用场合不方便等缺点。而基于USB接口的数据传输系统能够较好地解决这些问题。介绍了一种基于USB2.0接口的数据传输系统, 解决了传统通信技术带给我们的不便。

关键词:USB接口,数据传输,ARMS3C44BOX,芯片

参考文献

[1]萧世文.USB2.0硬件设计[M].北京:清华大学出版社, 2002.

[2]周立功.PDIUSBD12USB固件编程与驱动开发[M].北京:北京航空航天大学出版社, 2003.

MINI USB接口维修实例 篇4

1.拆卸

这款U盘的封装没有采用通用的螺丝紧固方式,而是采用如图所示的方式,其匙环端采用螺丝直接压入的方式,外露部分为光滑面,无法使用普通工具进行拧下螺丝。所以维修时想拆下来,可以采用用小一字螺丝刀将扣环撬下来,或者采用尖嘴钳硬拧下螺丝的方式,不过此种方式会把紧固螺丝拧花,影响美观,

只要把两个固定螺丝拧下来,再把印有方正LOGO的金属条沿USB接口方向推出,就会露出电路板。

2.焊接

MINI USB接口在电路板上的焊接共有六个焊点,四个USB数据连线,两个接地板固定。脱落的原因主要是MINI接地板的固定点焊接不牢,松动后导致MINI接头被直接推入所致。

焊接不用多说了,只要按原位置焊好就行,两侧的接地点容易焊接,但四个数据线接点却不容易焊接,须使用尖头烙铁进行焊接。一定要注意在焊接时电烙铁一定要良好接地,否则闪存芯片或驱动芯片可能会因静电而击穿损坏;还有是MINI接口的位置不能偏斜。

3.检测

插入MINI连接线,再与PC机连接,如果主机能够识别出U盘型号并顺利读出其中的数据,就说明修复成功了。

4.结束

全面解析USB接口 篇5

USB即“通用串行总线 (UniversalSerial Bus) ”, 广泛地应用于PC和相关领域。从486以后, USB接口就占据了PC端口的半壁江山。它们很快取代了曾经立下汗马功劳的串口、并口, 以及键盘、鼠标的PS/2接口, 让试图崛起的eSATA一直抬不起头, 并进一步威胁到1394接口。在手机充电接口统一为USB之后, USB的优势更为明显, 大有傲视群雄、一统天下之势。

USB3.0规范发布之后, USB接口的传输速度再次跃升, USB接口不仅应用于各种PC外设、周边设备、数码产品、信息通讯产品, 也成了事实上移动存储的统一接口 (如图1) 。

雾里看花:USB接口面面观

几乎每一台电脑上, 都有多个USB接口, 分别位于机箱前面板和机箱后部, 在笔记本电脑、多媒体音箱上, 也都设置有USB接口。

USB接口几乎应用到了所有可能的PC外设, 甚至连有些电池都设计了USB接口 (如图2) 。

有了接口就需要有相应的接头来插入这些接口。根据要插入的接口的不同, USB的接头也有各种形状 (如图3) 。

从类型上, USB接口分A型和B型, 包括mini A型、mini B型, 以及后来的Micro A型、Micro B型。从作用上, USB接口又分为插头和插座两种。

U S B - A型插座 (Standard-A) 是用在主机上的 (如电脑、手机) , USB-B型插座 (Standard-B) 是用在外设上的 (如打印机、数码相机) 。插头常常是连接在电缆上的, 用来插入设备的USB插孔, 如手机数据线、相机数据线, 以及不同的转接线, 两端都是插头。而USB延长线, 往往一端是插头, 另一端是插座。

此外, 在笔记本上还经常有USB与eSATA二合一的接口, 以及具有关机充电功能的USB接口。

拨开迷雾:USB数据引脚定义

USB接口内部只有4根引脚, 既能供电又能传输数据。根据接口的不同类型, 其数据引脚的排列和定义也稍有不同。在普通型的USB接口 (A、B型) 中, 有4个脚, 排列如下页图4 (接口朝向观察者的正视图) 。

由于插头和插座是对应插在一起的, 因此它们的引脚排列顺序正好相反。

USB-A型、USB-B型引脚功能如表1所示。

而迷你型的USB接口 (mini-A型、mini-B型) 却有5个引脚。USBmini-B型插座和插头引脚排列如下图5所示。USB mini-A型与之类似。

USB mini-A型、mini-B型引脚功能如表2所示。

其中ID引脚用于在OTG功能中识别主从设备。由于mini-USB接口分mini-A、mini-B接口, 如果设备仅仅是用做从设备, 那么就使用B接口。USB控制器会根据ID脚的电平判断是什么样的设备插入, 如果是高电平, 则是B型插入, 此时系统就使用主模式;如果ID为低电平, 则是A型插入, 系统使用HNP对话协议来决定哪个做主, 哪个做从。

如果细看USB接口内的引脚, 会发现它们长短不一:外边两个电源线的引脚明显长一些, 而中间两根数据线的引脚却短一些。这种设计是由USB的热插拔特点决定的。当USB接头插入时, 较长的电源线引脚最先接通, 然后数据引脚才会接通;而拔下时正好相反, 较短的数据引脚最先断开, 最后才是电源的断开。这样处理保证了数据的安全, 避免了在热插拔时对数据的影响 (如图6) 。

主机前面板的USB接线常常会让新手头痛。不同的机箱、不同的主板, 它们的接线和接针各不相同, 在更换主板时常常会出现USB接线错误的情形。这时候就需要从接线颜色、标识以及主板上接针的标记来正确判断每一根接线。主板上的USB接针一般是两组一起, 有8针、9针、10针等不同排列, 以9针的排列形式最为常见, 对应前面板的两个USB接口 (如图7) 。每组USB接针有4根线, 两根电源线, 两根信号线, 需要注意的是千万不要把电源线接反了, 否则会烧掉USB设备或者主板的南桥芯片。如果两根信号线接反, 就会出现“无法识别的USB设备”的提示。

摇身一变:USB的连接和转换

众多USB设备的出现, 就会不可避免地出现如何连接它们的问题, 这样就有了各种各样的连接线 (如图8) 。

为了减少信号串扰, USB连线中的两根数据线, 一般是双绞线的形式, 但是长度较大时, 仍然会造成信号大幅度衰减, 所以USB连接线的长度一般不超过5米, 较长的连接线会在一端套上磁环, 以减少干扰。质量较好的USB延长线, 可以支持15米的距离。

需要注意的是, 手机上常用的数据线, 因为同时具有USB充电功能, 有时会与单纯的充电线搞混, 它们在外观上是完全一样的。不同的是, 单纯的充电线, 里面只有两根电源线, 而没有数据线, 用这样的连接线把手机接到电脑上时, 只会显示充电状态, 而不能进行数据传输。不过, 即使是正常的USB数据线, 有时用它们把手机接到电脑上也不能识别出手机上的存储设备, 这是因为, 虽然数据线是通用的, 但不同手机的USB驱动却可能各不相同, 而且, 有些手机的操作系统中, 需要开启USB调试模式, 才能连接电脑进行数据传输。

当USB设备较多而主机上的USB接口不够用时, 还可能会用到USB集线器 (USB Hub) 或分支器 (如图9) 。因为USB本身支持菊花链方式连接, 因此USB Hub实际上仅仅是电缆的分支, 其中并没有控制设备或芯片。这种连接在理论上最多可以支持到127个USB设备。

有些设备的USB数据电缆比较特殊, 具有多接口多功能, 如索尼相机的数据线, 就较有代表性 (如图10) 。

有时, USB接口还需要与其他不同的接口进行转换, 甚至直接把USB接口做到本来应该是另外一种接口的设备上, 如USB网卡, 读卡器等 (如下页图11) 。

各种各样的连接线一般都是用来连接电脑和USB设备的, 那么可否实现两台电脑间的USB连接呢?

要用USB实现两台PC间的双机互连, 需要用到特殊的USB联机线, 而不是普通的USB连接线。这类联机线可分为两种, 一种是USB直连线, 只能用来进行文件传输;另一种是USB网络线, 可以实现用网卡联网的所有功能。

USB联机线并不是简单的一根线, 而是一个设备, 在线的中间部分封装有芯片 (如下页图12) 。如果用普通的USB连接线直接连接两台电脑的USB接口, 是不能实现双机互连的, 甚至可能会损坏主板。不过有些主板上已经集成了USB Network Bridge功能, 可以直接支持普通USB连接线进行联网。

常见的USB联机电缆便是USBLink。它实际上是一种“USB DataBridge Cable”, 在相应驱动程序和应用程序支持下才能工作。用它连接两台电脑的USB接口, 安装上驱动程序后, 电脑上就会多出一个名为“USBVirtual Network Adapter”的虚拟网卡, 对应的应用程序是PC-Linq等。

PC-Linq窗口由上下两部分组成:一般上半部分显示的是本地计算机 (Local Machine) 上的资源, 而下半部分显示的是远程计算机 (Remote Machine) 上的资源。在PC-Linq中可以直接访问另一台电脑的磁盘、光驱、打印机等设备, 实现光驱共享和打印机共享。而且, 还可以在本地计算机中直接打开另一台电脑中的文件或运行程序, 可以直接查看到隐藏文件, 还可以任意复制、删除另外一台电脑中的任何文件, 不受权限限制。当然, 用来共享上网也不在话下, 只需要在PC-Linq中把可上网的电脑设置为“SoftwareRouter”, 即可让另一台电脑共享上网。

如果要实现两个USB设备的互连 (如数码相机连接到打印机或移动硬盘) , 难度就大了一些, 因为它们可能都不能充当Host端。不过现在有了新的技术可以实现这一点了, 那就是OTG。

USB的最初设计, 是以PC为核心进行连接, 离开了PC, 其他USB装置无法互连和对接。2001年12月, USB-IF (Implementers Forum) 组织以原有USB规格为基础, 衍生制定了USB的对接标准, 称为USB OTG (On-The- Go) 。OTG虽然是一种衍生规格, 却能让USB接口发挥更多的功能和作用。

传统的USB运行模式中, PC是Host (主控) 角色 (也称为A-device) , 其他USB设备为Peripheral (外围) 角色 (也称为B-device) 。OTG正是通过让其中一个USB设备由原来的外围角色改为充当主控角色, 而实现USB设备互连。能够改变角色的设备, 称之为DRD (Dual-Role Device, 双重角色设备) 。OTG需要至少有一端是DRD, 才能实现USB对接。

OTG要实现这种角色转换, 需要借助于USB mini设备的ID引脚 (前文述及) 。再利用HNP (Host NegotiationProtocol) 协议协商主控角色, 用SRP (Session Request Protocol) 协议协商传输请求, 用TPL (TargetedPeripheral List) 协议标识外围支持信息清单, 最终实现可控的数据传输。

从蜗牛到高铁:USB规范概览

在谈论USB时, 常常会提到USB2.0与USB3.0, 这便是不同版本的USB规范, 它们的传输速度也大不相同, USB先后发布的各个版本的比较如下:①USB1.0:理论传输速率1.5Mbps (192KB/s) , 即低速 (Low-Speed) USB接口, 电流为500mA, 1996年1月发布;②USB1.1:理论传输速率12Mbps (1.5MB/s) , 即全速 (Full-Speed) USB接口, 电流为500mA, 1998年9月发布; ③USB2.0:理论传输速率480Mbps (60MB/s) , 即高速 (High-Speed) USB接口, 电流为500mA, 2000年4月发布;④USB3.0:理论传输速率5Gbps (640MB/s) , 即超速 (Super-Speed) USB接口, 电流为900mA, 2008年11月发布。

目前最普遍使用的是USB2.0, 其理论传输速度是USB1.1的40倍。而即将成为主流的USB3.0速度更快, 理论传输速度达到5Gbps, 是USB2.0的10倍还多。

USB规范是向下兼容的, 因此不同USB版本的接口和设备间完全可以正常使用, 只是传输速度受到较低一端的影响。为了直观地区别USB3.0和USB2.0, 在USB3.0的接口中统一使用了蓝色的塑料基质, 以方便识别。

虽然从外观上看USB3.0与USB2.0没有什么区别, 实际上内部结构却很不一样。USB3.0采用了9针引脚, 除了具备USB2.0接口的4个金属触点外, 在内部增添了5个较小的新触点, 并使用了铜导线。USB3.0是全双工传输的, 并非广播总线, 它在包头中采用发送列表区段来进行发包, 上行接口提供分散式的USB3.0互联, 下行接口支持USB2.0设备, 并用两个信道将数据传输和确认的过程进行分离, 在实现高速传输的同时又照顾了向下的兼容性。

USB3.0高速传输体验有如乘坐高铁一般, 如果再回到USB1.1的全速USB时代, 就只会感觉到慢如蜗牛了。

在供电电流上, USB3.0提高到了900mA, 为大功率设备的稳定运行提供了保障。

从理论到表现:USB设备的读写速度

USB接口的最大特点是热插拔和独立供电, 因此非常适合作为移动存储设备的接口。然而在移动设备的实际读写体验中, 我们却发现其速度远远没有相应规范中标识的速度那样快。

以最常用的USB2.0设备为例, 当主板接口和U盘都是USB2.0时, 用USBFlash Benchmark测试, 读写速度分别为10~30MB/s和4~10MB/s, 与理论值的480Mbps (60MB/s) 相去甚远。

这里, 首先我们要明白, USB2.0的480Mbps的传输速度, 是传输速度, 不是设备读写速度, 并且这是理论最大值。在实际设备中 (如U盘、移动硬盘、存储卡) , 因为受主控芯片和闪存模块的读写性能影响, 真实的读写速度远远没有想象的快。

再看USB3.0的情况。用USB3.0的U盘和主板测试, 写入速度可以达到30~40MB/s, 比USB2.0要快上几倍。

可见, 即使在USB3.0的条件下 (主板和设备都支持USB3.0) , 虽然读写速度大幅度提升, 明显可以感觉到比USB2.0快了很多, 但同样距离USB3.0的理论传输速度 (5Gbps) 也还很远。

需要说明的是, USB3.0的存储设备, 即使是在USB2.0的接口上使用, 速度也比USB2.0的设备要快得多。

USB2.0采用传统的BOT (Bulk- OnlyTransport) 协议, 影响了读写速度, 而USB3.0新增了UASP (USBAttached SCSI Protocol) 协议, 新增了两组数据总线, 支持多命令并发执行和NCQ队列功能, 可以发挥5Gbps的高速带宽优势。

微软曾经 发布了一 个补丁KB2581464来提高USB设备的访问速度 (Windows7) , 但是还需要修改注册表, 把USB2.0存储设备的最大传输值从默认的64KB增加到2MB, 并且需要针对特定的U盘来进行修改, 比较麻烦, 不过的确可以提升一些速度。

U盘的写入速度与文件大小也密切相关。大文件的写入速度明显大于小文件。另外, U盘每写入一个文件, 都要更新一次文件分配表, 这也使得小而多的文件复制速度极慢。如果有大批量的小文件要复制到U盘, 建议先打包成压缩包再复制, 不然写入过程将会是漫长的等待。

为了让USB设备的写入更快一些, 操作系统会为其分配一定的缓存, 写入时先写入缓存, 再写入U盘。这样, 有时我们会看到文件复制已经结束, 而U盘的读写指示灯却仍在闪烁, 因为其实数据还没有从缓存中全部写入U盘。这时如果不执行弹出U盘的操作而直接拔下, 就会造成数据丢失。

存储卡的读写速度一般要比U盘和移动硬盘稍慢, 受读写速度的影响, 当使用存储卡作为高清录像机的存储介质时, 可能就会由于写入速度不足而影响拍摄。比如, 以30fps的速度录制1920×1080高清画面时, 每秒写入的数据为7.5MB左右, 如果不经过录像机的压缩处理, 存储卡的速度很难达到要求。

U盘的读写速度提高之后, 还可以有更多的用途, 如用来做磁盘缓存。在Windows 7系统下, U盘属性页中有一个“ReadyBoost”标签, 可以用U盘空间作为缓存为系统加速。但是对于速度不快的U盘, 不会有明显作用。

USB接口芯片 篇6

USB设备的开发,大体可分为设备端开发和主机端开发两部分。设备端驱动程序是设备端开发的核心,它主要完成设备初始化、USB协议标准请求处理以及其它应用程序等。主机端开发[3,4],主要是在Windows下开发USB设备驱动程序。

设备控制端一般由单片机和USB控制芯片构成。在硬件设计中,要根据硬件系统的性能要求进行器件的选型,还要充分考虑性能价格比以及应用的方便。本文以ATMEL单片机和PHILIPS公司的PDIUSBD12构成USB设备控制端,对PDIUSBD12芯片及应用进行研究。

1 USB控制器PDIUSBD12

目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)或纯粹的USB接口芯片。带USB接口的单片机,但由于价格、开发工具以及单片机性能有限等问题,所以一般不推荐选用。

纯粹的USB接口芯片仅处理USB通信,必须有一个外部微处理器来进行协议处理和数据交换。典型产品有PHILIPS公司的PDIUSBD11(I2C接口),PDIUSBD12(并行接口),NS公司的USBN9603/9604(并行接口),NetChip公司的NET2888等。USB接口芯片的主要特点是价格便宜、接口方便、可靠性高,尤其适合于产品的改型设计(硬件上仅需对并行总线和中断进行改动,软件则需要增加微处理器的USB中断处理和数据交换程序、PC机的USB接口通信程序,无需对原有产品系统结构做很大的改动)。PHILIPS公司的PDIUSBD12具有独特优点,常在USB接口系统中选用。

1.1 PDIUSBD12的特点

PDIUSBD12是一款性价比很高、符合通用串行总线(USB)1.1版规范的USB接口器件,它通常用在微控制器系统中实现微控制器与PC机进行通信的高速通用并行接口。它还支持本地的DMA传输。这种USB控制器使得设计者可以选择最合适的微控制器,从而使开发更具灵活性,减少了开发周期、风险及费用,进而为USB外设的实现提供了一种最快捷的解决方案。

除此之外,PDIUSBD12器件还具有以下特性:

1)高性能USB接口器件,集成了SIE,FIFO存储器、收发器以及电压调整器;

2)符合大多数器件的分类规格;

3)可与任何外部微控制器/微处理实现高速并行接口(2M字节/秒);

4)完全自治的直接内存存取(DMA)操作;集成320字节多结构FIFO存储器;

5)主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;

6)在批量模式和同步模式下均可实现1 M字节/秒的数据传输速率;具有良好EMI特性的总线供电能力;

7)PDIUSBD12所具有的低功耗挂起连同LazyClock输出可以满足使用ACPI、OnNOW和USB电源管理的要求,低的操作功耗还使总线供电于外设成为可能;

8)可通过软件控制与USB的连接;

9)采用GoodLink技术的连接指示器,在通讯时使LED闪烁;

10)可编程的时钟频率输出;

11)双电源操作3.3±0.3 V或扩展的5V电源,范围为3.6V~5.5V;12)多中断模式,支持批量和同步传输。

1.2 PDIUSBD12的管脚配置

PDIUSBD12的管脚排列如图1所示,其管脚说明如表1所列。

1.3 PDIUSBD12的内部结构与功能

PDIUSBD 12的功能框图如图2所示,其功能和相关说明如下。

1)模拟收发器:

集成的模拟收发器接口可通过终端电阻直接与USB电缆相连。

2)电压调整器

片内集成了一个3.3V的调整器用于模拟收发器的供电。该电压还作为输出连接到1.5K?的内部上拉电阻。可选择PDIUSBD12提供的带1.5KΩ内部上拉电阻的软件连接技术。

3)PLL

片内集成了6M到48M的时钟乘法PLL,因此可使用6M晶振,既降低成本,又降低EMI。

4)位时钟恢复

位时钟恢复电路使用4X过采样规则,从进入的USB数据流中恢复时钟。它能跟踪USB规定范围内的抖动和频漂。

5)PHILIPS串行接口引擎(PSIE)

PHILIPS SIE实现了全部的USB协议层,完全由硬件实现而无需固件的参与。该模块的功能包括:同步模式的识别、并行/串行转换、位填充/解除填充、CRC校验/产生、PID校验/产生、地址识别和握手评估/产生等功能。

注:在没有使用到DMA方式的时候,DMACK_N和EOT_N要求接上拉电阻。

6)SoftConnectTM

与USB的连接是通过1.5K?的上拉电阻将D+(用于告诉USB器件)置为高实现的。1.5KΩ上拉电阻集成在PDIUSBD12片内,默认状态下不与VCC相连。连接的建立通过外部系统微控制器发送命令来实现。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。

PDIUSBD12在连接可以建立之前会检测USB VBUS是否可用。VBUS可通过EOT_N管脚进行检测。

7)GoodLinkTM

GoodLinkTM技术可提供良好的USB连接指示。在枚举中,LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功的枚举和配置后,LED指示将一直点亮。随后与PDIUSBD12之间成功的传输(带应答)将关闭LED,处于挂起状态时,LED将会关闭。

8)存储器管理单元(MMU)和集成RAM

在以12Mb/s的速率传输并与微控制器并口相连时,MMU和集成RAM作为USB之向速度差异的缓冲区。这就允许微控制器以它自己的速率对USB信息包进行读写。

9)并行和DMA接口

PDIUSBD12对于微控制器而言,看起来就象一个带有8位数据总线和一个地址位的存储器件。PDIUSBD12支持多路复用和非复用的地址和数据总线。还支持主端点(端点2)和本地共享RAM之间直接读取的DMA传输。支持单周期和突发模式的DMA传输,且可以和对其他端点的正常I/O操作交叉进行。DMA操作中的自动指针处理,在跨过缓冲区边界时无需本地CPU的干预。

1.4 PDIUSBD12的端点和指令集

PDIUSBD12的端点适用于不同类型的设备,如图像、打印机、海量存储器和通信设备。PDIUSBD12支持3个端点,其中主端点最多能保存128B,自动切换的双缓冲结构允许保存256B,允许USB和本地CPU之间的并行读写操作,这既增加了数据的吞吐量,也导致了缓冲区操作的透明性。

PDIUSBD12主端点可通过“SET MODE”命令配置为模式0~3四种不同的模式。模式0(NON-ISO模式)为非同步传输。模式1(ISO-OUT模式)为同步输出传输。模式2(ISO-IN模式)为同步输入传输。模式3(ISO-IO模式)为同步输入输出传输。

PDIUSBD12有自己的指令集,用于管理USB总线事务,这些指令在微处理器控制下执行,可以分为三类:初始化、数据流和通用命令。模式配置和指令集在此不作详述。

2 PDIUSBD12的典型连接

PDIUSBD12与单片机的接口有两种方式:多路地址/数据总线配置方式和单独地址/数据总线配置方式。当PDIUSBD12接收到主机的有效信息时,会产生一个中断通知单片机进行处理。

在多路地址/数据总线配置方式中使用了单片机的INT、ALE、WR、RD和P0口,PDIUSBD12在ALE下降沿的时候对单片机的输出地址进行锁存。在这种方式中单片机使用MOVX指令就可以对PDIUSBD12进行数据操作了。倘若输出地址为奇数表示对PDIUSBD12发送指令,输出的地址为偶数时则表示对PDIUSBD12进行数据传输。在我们的实际应用中,USB接口系统采用的就是多路地址/数据总线接口方式。

在USB接口电路的设计中,PDIUSBD12完成所有的USB传输功能,与PDIUSBD12相连的是微处理器AT89S51,微处理器底层应用程序完成USB总线枚举过程、PDIUSBD12的中断访问过程、电源管理功能和USB协议层的功能。USB控制芯片PDIUSBD12有能与微控制器接口的8位并行数据总线。基于PIUSBD12的USB接口电路原理图如图3。

PDIUSBD12具有内置的上电复位电路。所以RESET_N脚可以直接连到Vcc。但是如果静电放电足够大,会导致PDIUSBD12进入不确定状态。为了避免这种状态出现,在这使用外部控制源(AT89S51)提供PDIUSBD12的复位信号。而不是将RESET_N脚直接连到Vcc。另外有个好处就是复位变得容易,在PDIUSBD12在数据传输请求时可随时复位。

3 结束语

本文讨论了USB核心芯片PDIUSBD12的特性,给出了PDIUSBD12与AT89S51连接的电路图,可以看出PDIUSBD12控制器为USB外设的实现提供了一种最快捷的解决方案,可以使设计者选择最合适的微控制器,从而使开发更加灵活,缩短了开发周期、降低了风险和开发费用。本文对USB协议、软件设计以及USB外设的固件编程没有做更深入的探讨。

参考文献

[1]武安河.Windows2000/XP WDM设备驱动程序开发[M].北京:电子工业出版社,2003:284-325.

[2]周涛,张辉.采用PDlUSBU12的USB系统固件程序设计[J].电子技术应用[J].200329(5):70-72.

[3]陈军波.USB接口芯片PDIUSBD12及应用[J].国外电子元器件,2002,11:47-49.

便携式USB接口数据采集模块 篇7

USB-2401数据采集模块具有24位四通道同步的高分辨率, 每通道采样率最高可达1.6 k S/s, 该系列内建多种信号处理电路, 相比目前仅能量测电压信号的插卡式数据采集卡而言, USB数据采集模块可直接对应量测应用中常见的传感器, 包含热电偶 (TC) 、热敏电阻 (RTD) 、荷重元、应变规, 进行温度、应力或应变等量测, 而无需额外的信号处理电路, 节省外接信号调理器的装置成本。

USB-1900系列包含USB-1901/1902/1903模块, 具有16位高分辨率, 最高可达250 k S/s模拟输入采样频率, 提供高性能的A/D和D/A转换, 且更新频率达1 MS/s模拟输出, 其中USB-1903模块内建高精密转换电阻, 可直接量测0至20m A的电流信号。

USB设备接口驱动程序设计开发 篇8

1芯片概述

接口芯片与上位机通信并提供对外围CPU接口, 使得开发者无须去关心复杂的USB协议。 根据所设计产品的需求, 选择CYPRESS半导体公司的CY7C63001A USB控制器作为接口芯片。 CY7C63001A是符合低速USB低成本的一种解决方案, 它支持2个端点和1个设备地址。 CY7C63001A是一个高性能的8位RISC微控制器, 具有128字节的片内RAM, 4K字节的EPROM。 有12个通用I/O引脚[2]。

2硬件设计

该USB设备的硬件设计以CY7C63001A芯片为中心, 所连接的存储器是ATMEL公司的AT24C02, 接口兼容I2C总线规范, 通过一对串行时钟、 数据线对片内存储单元进行读写。 其电路原理图如图1所示。 按照USB规范的要求, 将微控制器第13引脚 (D-) 通过一个7.5K上拉电阻 连接到+5V的VBUS。 微控制器 第5引脚 ( P1.0) 连接24C02的第7脚 (WP, 写保护 ) , 控制24C02的写操作功能 。 WP为高电平读取24C02的内容; WP为低电平时可进行读、 写操作。 微控制器第1脚 (P0.0) 连接24C02的第6脚 (SCL, 串行时钟),为控制24C02的读写操 作提供时 钟 ; 微控制器 的第2脚 (P0.1) 接24C02的第5脚 (SDA, 串行数据 、 地址 ), 作为读写24C02的数据、 地址信号线。 微控制器通过这3根信号线完成对24C02的读写操作。

3编写驱动程序

系统内核与硬件之间设备通信要通过驱动程序, 它屏蔽了应用程序与硬件之间的细节。 Linux设备驱动分为3类: 字符设备、 网络设备与块设备。 USB设备一般都作为字符设备来进行处理, 这是是通过串行通信来读写数据, 在此所编写驱动即为字符设备驱动。 下面则结合该设备代码来介绍Linux下USB驱动的开发。

3.1注册与注销驱动

Linux下USB驱动程序在USB子系统里注册并提供一些信息。

这是USB驱动框架数据结构。 name是驱动程序模块的名字。 probe函数是在驱动向USB系统注册后当插入一个USB设备时将自动处理的函数。 disconnect函数在拔掉设备后自动运行。 fops是驱动提供的文件操作的接口结构, 通过这样注册一个file_operations函数指针, 使得可与用户空间实现方便的交互。

USB驱动程序初始化模块函数中通过调用usb_register进行注册, 传入刚才定义的驱动框架结构。

相应地在卸载模块函数中通过调用usb_unregister函数注销USB子系统。

在probe函数中, 驱动程序通常首先确认插入的设备是否可被接受, 即USB硬件的厂商号和设备号是否和驱动相匹配, 若相符则在devfs子系统中注册设备, 允许devfs用户通过fops定义的文件操作接口来访问该设备。

当拔掉USB设备时, 会调用disconnect函数, 驱动程序需要从devfs上注销。

3.2数据处理函数

当USB驱动与设备绑定好后, 任何用户 通过file_operations结构所定义的函数即可操作此设备 。

首先, open设备后即可对设备进行操作。 MODULE_INC_ USE_COUNT宏在open函数中起到计数的作用 , 计数器在用户态程序打开一个设备后就加1。 若以模块方式加入一个驱动且计数器不为零, 则说明该驱动属于使用状态, 是不可以通过rmmod命令卸载驱动模块的。

当open完设备完成后, read、 write函数就可以发送和接收数据了。

在usb_read函数中 , 我们采用 中断方式 传输 , 用FILL_INT_URB宏建立一个urb, 调用usb_submit_urb函数来提交urb。

由于设备没有中断OUT端点, 因此需要采用Set_Repor标准请求来从主机接收数据。 所以write函数没有用urb传送数据, 而是用usb_set_report函数代替, 这个函数可以发送数据给设备, 并且不需要创建urb和操作urb函数。

4结语

USB设备由于其低价和高性能 , 在近几年内得到迅速的普及。 采用CY7C63001A开发出的低速通信设备, 满足了价格和性能这两方面的要求。 已投放市场经过了实际的 检验 , 证实了该系统设计方案的可行性。

参考文献

[1]杨辉,等.数字化教学资源保护系统的设计[J].山东水利职业学院院刊,2006,(3).

[2]徐增祥.USB软件狗的设计及反破解技术[J].电子技术应用,2012,(8).

[3]罗予东.一种USB软件狗的设计及防解密研究[J].计算机时代,2009,(8).

USB接口芯片 篇9

本文介绍的USB接口的红外数据传输模块是我们红外智能车辆管理系统的一部份,它负责将车主信息传送到车辆管理卡中。红外通信是一种成本低廉,简单易用的无线通讯方式,广泛用在计算机与设备及设备与设备之间的通信,我们的车辆管理卡就是通过红外的方式同外界进行数据通信。目前,大多数PC并没有红外接口,为了与车辆管理卡进行数据通信,本文设计了一个基于PC机USB接口的红外数据传输模块。考虑到成本以及应用的特定性,没有实现IrDA规范,而是制定了一个较简单通信协议,简化了软硬件设计。

1 硬件设计

1.1 红外发送、接收接口设计

红外信号发送的原理如图1所示,与非门U2A、晶振Y1等构成振荡电路,产生38k交变信号。当BM为高电平时,U2B被锁死,38k交变信号无法通过,没有红外信号发出。当BM为低电平时,振荡电路产生的38k信号经由与非门U2B,U2D到达晶体管Q1基极,控制着Q1的导通与截止,当Q1导通时有红外信号发送出去,信号的强度跟Q1集电极电流大小成正比;当Q1截止时,就没有红外信号发射。所以当BM为低电平时,红外发光二级管发射38k交变红外信号。

红外接收原理如图2所示,TSOP34138芯片为VISHAY公司为远程控制系统开发的红外接收模块,它能够将38 k的红外载波信号解码输出为单片机可以直接读取的电平信号。当没有38 k红外信号时1脚输出高电平;当接收到38 k红外信号时,1脚输出为低电平,触发单片机INT0中断。

1.2 底层通信协议

数据传送采用脉宽编码方式,一次数据传输的格式如下:起始码+数据+结束码。以下的论述中,编码格式我们用BM脚的高低电平来表示,BM脚为低电平时有红外信号发出,BM脚为高电平时,没有红外信号发出。在发送端,起始码格式为12 ms低电平+12 ms高电平;bit1编码格式为560 μs低电平+1 690 μs高电平;bit0编码格式为560 μs低电平+560 μs高电平;结束码为560 μs低电平。接收端通过判断两次低电平中断之间的间隔来解码。

1.3 USB固件

本模块的主要控制芯片为CY7C68013,这款芯片满足USB2.0规范,自带增强型51内核。在本设计中它除了完成与主机的USB通信工作,同时也是红外编解码的主控芯片。为了帮助用户开发设计,Cypress公司提供了一整套的工具链以及各种应用的示例程序。固件主要完成USB协议的实现工作,同时也完成红外通信的相关处理。

USB通信有控制传输、块传输、中断传输、同步传输4种方式,根据我们实际需要,选择了块传输的方式,固件程序在厂家提供的例子程序bulkloop的基础上编写。这个示例程序中提供一个程序框架,它完成了USB协议实现的大部分工作,我们可以通过修改和添加代码来实现自己的功能。

首先,我们要修改设备描述符中的厂商ID和产品ID。打开dscr.a51文件,找到DeviceDscr栏中对应的Vendor ID和Product ID,分别修改为自己的厂商ID和产品ID。

然后,我们要添加代码实现特定的功能。框架程序FW在系统上电后,完成一系列初始后,循环调用TD_Poll函数检测各端点是否有数据收到。在此,我们选用端点2和端点6作为工作端点。我们可以在这个函数中添加相应的代码。流程图如图3所示。

CY7C68013除了完成USB通信工作外,还要完成红外信号的收发工作。在发送端,由于我们采用硬件振荡电路产生38k基波信号,程序中处理发送的程序非常简单。按照通信协议依次赋值BM为高低电平即可,定时器T0用于定时。在接收时,INT0会产生多次中断,在中断处理程序中通过比较上一次中断和本次中断时间间隔来确定起始码、BIT1码、BIT0码 。当接收到8个bit数据时,将这个byte数据存储到变量中;依次读取全部数据。

2 上位机程序设计

2.1 驱动程序

Cypress公司为CY7C68013提供了通用的驱动程序CYUSB.SYS以及一个设备安装文件CyUSB.INF。CYUSB.SYS能够理解基本的USB命令,但是不能理解厂商自定义的命令。这个驱动程序与应用程序的接口类在CyAPI.lib中实现,具体的使用方法将在下一节上位机应用程序设计中详细说明。为了能够正确驱动设备我们需要对CyUSB.INF做以下修改:

(1) 用编辑器打开CyUSB.INF文件找到下面这一行

复制上面这行,并且去掉前面的分号。

(2) 更改复制行中的VVVV为自己的厂商ID,PPPP为产品ID。

(3) 同上修改另一行

并且修改"Cypress Generic USB Device"字符串为自己的设备名如"USB Infrared Write Card Device"。这样windows在加载设备时发现的设备名将为USB Infrared Write Card Device 。

(4)在设备管理器中强制使用CYUSB.SYS作为本设备的驱动程序。

经过以上几个步骤,即可成功驱动设备。

2.2 上位机应用程序设计

CyAPI.lib是Cypress提供的一个类库,这个类库为CyUsb.sys驱动程序提供了一个高级应用程序编程接口,有了这个类库,我们可以使用Open,Close,XferData这样的方法来同USB设备通信,勿需使用DeviceIoControl这样的Windows API,大大简化了应用程序编写,提高了效率。我们的编程采用Visual C++ 6.0,为了使用类库,必须在使用了CCyUSBDevice类的文件中包含CyAPI.h,并且将CyAPI.lib静态链接到工程中。这个类库使用设备和端点模型,首先用new方法新建一个CCyUsbDevice类实例,然后使用Open方法打开特定厂商ID和产品ID的设备,设备打开后可以使用CCyUsbEndPoint类的XferData方法同设备进行数据交换。

3 结果分析

为了检验模块的性能,我们进行了大量的测试实验。在办公室环境下,当角度为

0°(模块与车辆管理卡正对)时,最大距离为20 m;当角度为30°时,最大距离为7 m ;当角度为60°时,最大距离为2 m。在上述的扇形范围内平均写卡成功率为99.5%,完全符合设计要求。

摘要:利用CY7C68013芯片设计了一个USB接口的红外数据传输模块,实现了红外智能车辆管理系统的写卡操作,多次试验证明该模块稳定可靠,符合设计要求。

关键词:USB红外数据传输,车辆管理系统,驱动程序

参考文献

[1]潘言全.利用单片机实现的红外通信接口.中国水运,2007;7(05):140—141

[2][美]艾珂尔逊.USB大全.陈逸,译.北京:中国电力出版社,2001

[3][美]海德.USB设计应用实例.孙耀国,译.北京:中国铁道出版社,2003

上一篇:送变电企业的社会责任下一篇:规模化猪场疾病防控