USB总线

2024-05-21

USB总线(精选8篇)

USB总线 篇1

1. 前言

ISA总线是工业标准总线架构,在工控领域中历史悠久,是最早的系统级总线。ISA总线有时也称作I/O设备总线,可用来连接低速I/O设备。ISA总线作为工业总线的标准架构虽然如今在商业机中被后来的PCI总线挤出了历史舞台,但是由于利用ISA总线可以很方便地扩展中低速的I/O端口,因此在工业控制计算机中都保留了ISA总线。

USB总线协议从1995年11月由Intel和Microsoft公司倡导发起后,得到了迅速的发展,从最初的0.7到现在普遍使用的2.0版本,USB以其优越的热插拔特性得到了广泛的应用,USB总线取代传统的老式接口必将成为一种趋势。

市场上虽然出现了很多USB总线到其它总线转接的转换板,但是还没有出现USB总线到ISA总线转接的转接板,这正是本文研究的重点。

2. USB总线介绍

一个基于计算机的USB系统可以在系统层次上分为三个部分:USB主机、USB设备、USB互联。通用串行总线通常被称作USB总线,USB是Universal Serial Bus的简称。USB总线是连接外部设备的一个串口总线标准,它可以同时处理计算机与具有USB接口的多种外设之间的通信。

USB总线是通过总线枚举来识别设备的接入和移除的。一般而言总线枚举是指对总线上接入的USB设备进行识别和寻址操作。对许多总线而言,这一工作都是在启动时完成的,并且所搜集的信息都是静态的,而USB技术则允许在任何时候从USB总线上接入或拔除USB设备,因此USB总线的总线枚举操作是一种持续执行的工作。而且,USB总线枚举还包括发现和处理设备的移出。这是USB与以往一些总线技术的区别。

USB外设普及之后,将会使得PC机箱后面的各式各样繁杂的连接线变得简单,大多数老式的接口将被淘汰,如ISA接口、PS/2接口、串并行接口等,取而代之的是各种USB接口的外设。

3. I SA总线介绍

ISA总线最早是作为一种系统总线的,用在IBM-PC、IBM-PC/XT系列计算机当中,后来被标准化为工业总线标准,并且产生了深远的影响。由于技术的发展,ISA总线的传输速率跟不上处理器的速度,从而被其它总线所取代。然而由于ISA总线的低速使得其与现在的外设速率十分匹配,适合作为一种外围设备总线,用于扩展设备接口。并且ISA总线的地址线是非常多的,可以连接数量庞大的设备。综合这两点原因,ISA总线在工业控制领域仍然占有一席之地,并且ISA总线工业领域中的应用还会持续一段很长的时间。

ISA总线的引线分为:地址线、数据线、控制线、状态线和辅助与电源线五类。

(1)地址线:8位ISA的地址线是A0~A19,16位ISA在原来的基础上增加了LA17~LA23七根地址线。

(2)数据线:8位ISA的数据线是D0~D7,16位ISA在原来的基础上增加了D8~D15八根数据线,变成了16位的数据总线。

(3)控制线:包括中断请求线IRQ2~IRQ7;请求输入线DRQ1~DRQ3;DMA响应信号输出线;地址允许信号输出线AEN;地址锁存允许输出信号线ALE;I/O口读写输出信号线;存储器读写输出信号线;系统复位信号线等。

(4)状态线:I/O通道就绪输入信号线(I/O CH RDY),通道奇偶校验信号输入线。

(5)辅助与电源线:为总线设备提供电源。

ISA总线的这种结构使得其非常容易与单片机等控制器相连。

4. USB总线和I SA总线转接的实现

4.1 转接卡的设计原理

该转接卡利用CH375芯片完成USB设备端的设计,由CH375接收上位机传送过来的数据,再经过单片机处理后发送到ISA总线。单片机替代工控机总线控制器产生ISA总线的控制信号,并且CH375芯片屏蔽了Windows操作系统下的底层驱动;提供了上位机和下位机的接口函数以及与单片机等MCU的硬件接口。

4.2 CH375芯片介绍

CH375芯片是一个USB总线的通用接口芯片,支持USB-DEVICE/SLAVE设备方式和USB-HOST主机方式。CH375芯片在本地端提供了通用的被动并行接口和点对点的串行接口,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。它内置了USB通讯中的底层协议,屏蔽了复杂的底层驱动。CH375芯片内置了电源上电复位电路,一般情况下不需要外部提供复位。

4.3 转接卡的硬件设计

该转接板卡通过USB接头和上位计算机连接,通过ISA接口插接在下位机的ISA插槽上。图1为其PCB图。

4.4 转接卡的软件设计

本设计中上位机用户界面程序是使用VB语言来编写的。VB语言是一种比较简单的面向对象的程序设计语言。图2是主程序界面,通过不同的按钮可以选择相应的程序进行操作。

上位机程序最主要的任务是将用户想要发送给I/O设备的数据准确地发送到设备,因此要解决的问题有:要发送到哪个设备、发送什么样的数据。这两个数据在实际应用中最终是要由主控制程序来决定的。例如音乐喷泉控制系统,哪个设备要喷水,哪个灯要亮,这些都是通过主控制程序发送数据给相应的设备来实现的。

为了便于以后的调试,本文调试程序设计成这两个数据均由用户手动输入。如图3和图4所示。

5. 转接卡的具体工程应用

以音乐喷泉控制系统为例,该系统从整体上说是由上位工控机、下位工控机和被控设备组成的。如图5所示,上位机和下位机通过专用的37针连接线连接,下位机和显示卡也是通过37针连接线连接的,显示卡通过控制柜再将控制信号接到被控设备,从而实现对实际被控设备的控制。

本转接卡在原来的控制系统中的应用,只要对上位机软件控制程序稍作修改就可以使用。并且提供了上位机的接口函数,这就使得本转接卡可以很方便地应用于音乐喷泉控制系统。

6. 结束语

本转接卡也可以很方便地应用于各种工控系统,但要注意,这块转接卡只接了读写控制信号,其它控制信号没做处理,因此只适用于简单的I/O口扩展。这是考虑到现在ISA总线的作用主要就是用来做I/O口扩展的。

参考文献

[1]易先威,刘伟,何方.基于ISA总线的USB协议栈的设计与实现[A].中国科学院,2005,11.

[2]边海龙,贾少华.USB2.0设备的设计与开发[M].北京:人民邮电出版社,2004.

[3]李肇庆,廖峰,刘建存.USB接口技术[M].北京:国防工业出版社,2004.

[4]Internal USB hub[N].Research Disclosure,2007.

USB总线 篇2

摘要:介绍了基于USB总线的实时数据采集系统的USB设备固件程序、驱动程序、应用程序的设计与具体实现。

关键词:通用串行总线 实时数据采集 设备固件 驱动程序

在现代工业生产和科学技术研究的各行业中,通常需要对各种数据进行采集。目前通用的通过数据采集板卡采集的方法存在着以下缺点:安装麻烦,易受机箱内环境的干扰而导致采集数据的失真?熏易受计算机插槽数量和地址、中断资源的`限制,可扩展性差。而通用串行总线USB(Universal Serial Bus)的出现,很好地解决了上述问题,很容易实现便捷、低成本、易扩展、高可靠性的数据采集,代表了现代数据采集系统的发展趋势。

1 系统硬件设计与实现

1.1 硬件总体结构

基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。多路模拟信号经过模拟开关传到A/D转换器转换为数字信号?熏单片机控制采集,USB接口芯片存储采集到的数据并将其上传至PC,同时也接收PC机USB控制器的控制信息。

1.2 PDIUSBD12芯片

USB接口芯片采用Philips公司的一种专用芯片PDIUSBD12(以下简称D12)。该芯片完全符合USB1.1规范,集成了SIE、320B的多配置FIFO存储器、收发器、电压调整器、SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等,支持双电压工作、完全自动DMA 操作、多中断模式,内部结构如图2所示。

单片机通过8位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并/串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D+、D-发送至PC。上述过程遵循USB1.1协议。D12与89C51的具体实现电路如图3所示。

2 系统软件设计与实现

系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片D12采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令。

2.1 USB设备固件程序设计与实现

设备固件是设备运行的核心,用C语言设计。其主要功能是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB1.1标准请求;控制芯片D12接收应用程序的控制指令等。其程序主框图如图4所示。单片机检测到D12后进入主循环。此时PC机先发令牌包给D12,D12接收到令牌包后给单片机发中断,单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。

USB总线协议层的研究 篇3

关键词:通用串行总线USB,协议

1 USB总线协议概述

USB总线属于一种轮讯方式总线, 主机控制端口初始化所有的数据传输。每一总线动作最多传送3个数据包, 包括令牌 (Token) 、数据 (Data) 、联络 (Hand Shake) 。按照传输前制定好的原则, 在每次传送开始时, 主机送一个描述传输动作的种类、方向、USB设备地址和终端号的USB数据包, 这个数据包通常被称为令牌包 (Token Packet) 。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时, 由标志包来标志数据的传输方向, 然后发送端开始发送包含信息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的USB数据传输, 在主机和设备的端口之间, 可视为一个通道。USB中有一个特殊的通道—缺省控制通道, 它属于消息通道, 设备一启动即存在, 从而为设备的设置、状态查询和输入控制信息提供一个入口。

2 字段和包的定义

2.1 字段定义

USB总线传输包括6种字段, 下面对各种字段分别予以介绍。

2.1.1 同步字段

所有的包都从同步 (SYNC) 字段开始的, 同步字段是产生最大的边缘转换密度的编码序列, 同步字段被输入电路用来以本地时钟对齐输入数据。

2.1.2 包标识符字段

所有万用串列总线包的同步字段后都紧跟着包标识符 (PID) 。包标识符由8位构成, 前4位表明包的类型, 而后4位是前4位的二进制反码, 作为校验用, 以保证包标识符的可靠性。包标识符分为标记 (Token) 、数据 (Date) 、握手 (Handshake) 和专用 (Special) 4种类型。包标识符传送的最低2位PID[1:0], 即bit1-bit0, 表明其所属类型。其中标记类型中含有输出 (OUT) 、输入 (IN) 、帧起始 (SOF) 和建立 (SETUP) 4类;数据类型中含有DATE0和DATE1 2类;握手类型中含有、不确认 (NAK) 、停止 (STALL) 和无回应 (NYET) 4类。专用类型则为前同步字 (PRE;preamble) 。

2.1.3 地址字段

功能部件地址 (ADDR) 字段通过其地址指定功能部件, 至于是数据包的发出地还是目的地, 则取决于标记PID的值。地址字段被用于输入, 建立和输出标记。在复位或加电时, 功能部件地址的默认值为零, 并用作缺省地址, 不可分配作其它用途。随后的4位端口子字段可以满足功能部件寻址的需求。除了零端口之外, 其它端口的个数由功能部件决定。所有功能部件都必须在零端口处提供一条控制通道 (缺省控制通道) 。

2.1.4 数据字段

数据字段可以在0~1023字节之间变动, 但必须是整数字节。每个字节范围内的数据位移出时都是低位在前。数据包大小随着传送类型而变化。

2.1.5 帧号字段

帧号字段是一个11位的字段, 主机每过一帧就将其内容加一。帧号字段达到其最大值时归0, 且它仅每个帧最初时刻在SOF标记中被发送。

2.1.6 循环冗余校验字段

CRC用来保护标记包和数据包中的非PID字段, 用于令牌包和数据包中除PID字段外其它部分的校验。发送端在各个字段进行位填充之前就产生了CRC码;相应地, 接收端在填充位删除之前就要译出CRC码。令牌包和数据包的循环冗余校验码CRC能够校验出单、双位错误。若循环冗余校验失败, 则接收端认为该包的部分字段已损坏, 将忽略这些字段甚至整个包。

2.2 包定义

USB总线传输包括4种信息包:令牌包、帧开始包、数据包和握手包4种。下面就来分别作介绍。

2.2.1 令牌包

如表2所示, 令牌包 (Token Packet) 由PID、ADDR、ENDP和CRC构成, 其中PID指定了分组是IN、OUT还是SETUP类型。对于PID为OUT和SETUP类型的传输, 地址和端点域唯一地确定了接下来将收到数据 (DATA) 分组的端口。对于PID为IN类型的传输, 这些域唯一地确定了哪个端口应该传送数据分组, 只有主机能发出令牌分组。

2.2.2 帧开始包

如表3所示, 帧起始包 (SOF) 是由表明包类型的PID, 11位帧号字段及CRC构成。主机以1.00±0.0005 ms次的固定时间长度发出SOF包, 包括集线器在内所有全速功能部件都可收到SOF包。然而SOF包并不要求功能部件接收后应答, 这就不能保证任何给定的功能部件都能收到。对总线时间调配信息的没有特别需要的全速设备可以忽略SOF包。

2.2.3 数据包

数据包 (DATA Packet) 由PID、包括至少0个字节数据的数据域和CRC构成。其中PID指示两种类型的数据包:DA-TA0和DATA1。两种数据包PID是为了支持数据切换同步 (Data Toggle Synchronization) 而定义的。结合USB协议中的上述论述, 可以简要地总结出以下内容:

(1) 非零长度的数据分组:

数据分组的长度非零, 则分组由PID和数据组成, 如表4和表5所示。

(2) 零长度的数据分组

允许数据长度为0的数据分组。在USB里, 数据长度为0和没有数据概念有些不一样, 如表6所示。

因为USB协议中规定, 零长度的数据分组一般用于控制传送的状态阶段 (大多数时候如此, 在批量传输阶段, 有时也见需要回复零长度的数据分组) 。状态阶段的令牌分组是以相对前面的阶段的数据流方向的变化来刻画的 (比如前面为OUT, 则状态阶段的令牌类型就是IN) , 并且其数据分组总是使用DATA1 PID。

2.2.4 握手包

如表7所示, 握手包仅由PID构成。握手分组用来报告数据传输的状态 (即握手分组总是跟在DATA0或DATA1分组的后面) 。表示数据成功接收、命令的接收或拒绝、流控制 (Flow Control) 和停止 (Halt) 条件。只有支持流控制的事务类型才能返回握手信号。握手分组总是在某种传输 (比如控制传输、批量传输) 的握手阶段 (Phase) 中被返回, 也可在数据传输阶段代替数据被返回。有5种类型的握手包:

(1) ACK表示数据分组没有位填充或数据域上的CRC错, 并且数据PID被正确收到。ACK在当时序列位匹配且接收器能接收数据的时候或者当时序位失配, 但发送方和接收器互相之间必须再同步的时候这两种情况下被发散。ACK握手信号只适用于数据被传送且期待握手信号的事务中。对于输入事务, ACK由主机返回, 而对于输出、建立或PING事务则由功能部件返回;

(2) NAK:对于OUT传输, 该握手包表示USB设备不能接收从主机发送来的数据:对于IN传输, 它表示USB设备当前没有数据要发送给主机。NAK握手包仅能由USB设备正在IN事务的数据阶段或OUT和PING事务的握手阶段返回, 它指出该设备暂时不能发送或接收数据, 但最终还是能完成这个事务处理, 且不需要主机的干涉。另外, 主机永远不会发出NAK。

(3) STALL:该握手包表示USB设备没有能力发送或接收数据, 或USB设备不支持某个控制请求。主机永远不会发ST八LL, 它仅可能由USB设备在IN事务的数据阶段或OUT事务的握手阶段返回。

(4) NYET:该握手包仅适用于高速传输, 它通常作为PING协议的一部分由高速端点返回。在SPLIT事务处理中, 当低速或全速事务不能正确结束或集线器不能处理SPLIT时, 集线器也会返回NYET。

(5) ERR:是高速传输仅有的允许高速集线器在全速或低速总线上被返回以报告错误的握手。它仅作为分割传输协议的一部分被高速集线器返回。

3 事务处理的描述

事务处理是USB总线上数据传输的基本单位, 主机和USB设备间的一次通信可能需使用多个事务处理。各种事务都带有标记时相和数据时相。多数事务还带有握手时相。此外, 各种事务有不同的格式, 事务格式根据端口类型而变化。根据所含令牌包的种类, USB中的事务处理可分为6种类型:IN事务、OUT事务、SETUP事务、PING事务、SOF事务和PRE事务。下面详细介绍一下常用的几种事务处理:IN、OUT、SETUP和SOF处理。

3.1 IN事务处理

IN事务处理用于完成USB设备到主机的数据传输。如果传输成功, 它将包含令牌、数据和握手3个阶段。

(1) 令牌阶段:主机首先准备好接收数据, 并向指定的USB设备发出IN令牌包。

(2) 数据阶段:USB设备接收到该令牌包后, 向主机发送含有专用数据的数据包。

(3) 握手阶段:主机接收到这些数据后, 向USB设备返回ACK握手包。

在IN事务处理中, USB设备并不是每次都能成功地响应主机发出的IN令牌包, 如果USB设备再接收到IN令牌包后发现其已经损坏, 则不会作任何应答。如果USB设备暂时不能向主机发送数据, 则会返回NAK握手包。如果USB设备的这个IN端点已经被停止了, 则会向主机返回STALL握手包。如果上述错误情况都未发生, 则USB设备将向主机发出数据包。

3.2 OUT事务处理

OUT事务处理用于完成主机到USB设备的数据传输。如果传输成功, 它将包括令牌、数据和握手3个阶段。 (1) 令牌阶段, 主机向指定的USB设备发出OUT令牌包; (2) 数据阶段, 主机发送含有专用数据的数据包; (3) 握手阶段, USB设备接收到该令牌包和数据包后, 向主机返回ACK握手包。

在OUT事务处理中, USB设备并不是每次都能成功地响应主机发出的OUT令牌包, 如果USB设备再接收到OUT令牌包和数据包后发现其已经损坏, 则不会做出任何应答。如果USB设备暂时不能接收主机发送来的数据, 则它会返回NAK握手包。如果USB设备的这个OUT端点已经被停止, 则它会向主机返回STALL握手包。如果USB设备和该数据包的数据触发位不匹配, 则USB设备会丢弃数据, 并返回ACK握手包。如果上述错误情况都未发生, 则USB设备将接收数据, 并返回ACK握手包。

3.3 SETUP事务处理

SETUP事务处理定义了一种特殊的主机到USB设备的数据传输, 其所传输的数据具有USB定义的格式。它仅适用于USB控制传输的建立阶段。如果传输成功, 它将包括令牌、数据和握手3个阶段。 (1) 令牌阶段, 主机指定的USB设备发出SETUP令牌包; (2) 数据阶段, 主机发送具有USB定义格式的数据包; (3) 握手阶段, USB设备接收到该令牌包和数据包后, 向主机返回ACK握手包。

如果USB设备接收到的SETUP令牌包有错误, 则会忽略该信息包, 并必须向主机返回ACK握手包。USB设备永远不能对SETUP事务处理以STALL和NAK握手包来响应。

3.4 SOF事务处理

SOF事务处理表示USB帧/微帧的开始, 它仅包含主机或集线器事务翻译器发出的SOF包, 而不需要USB设备返回任何握手。对于低速/全速传输, USB定义了长度为1ms的帧, SOF令牌包每1ms产生一次。对于高速传输, USB定义了长度为125us的微帧, SOF令牌包每隔7个微帧产生一次。在1ms的时间内, 高速USB设备将看到同一个SOF令牌包8次, 且它们具有相同的帧号。如果需要的话, 也可以对这1ms内的8个125us定义一组微帧号, 其取值范围为0~7。

当USB设备检测到SOF令牌包的PID字段时, 表明其将进行SOF事务处理。对帧时间敏感的USB设备 (如全速集线器) 不需使用帧号字段, 仅需对PID字段进行译码即可, 如果USB设备需要使用帧号, 则它必须对PID、帧号和CRC字段都进行译码。不需使用USB总线时间的全速设备可以忽略SOF令牌包。

4 USB的传输类型

数据和控制信号在主机和USB设备间的交换存在两种通道:单向和双向USB的数据传送是在主机软件和一个USB设备的指定端口之间。这种主机软件和USB设备的端口间的联系称作通道。总的来说, 各通道之间的数据流动是相互独立的。一个指定的USB设备可有许多通道。例如, 一个USB设备存在一个端口, 可建立一个向其它USB设备的端口, 发送数据的通道, 它可建立一个从其它USB设备的端口接收数据的通道。USB体系结构包括4种基本的数据传输方式:

(1) 同步传输:占用大量USB带宽, 有严格的时间间隔, 又被称为实时流传输。

(2) 控制传输:双向传输, 该方式传输数据量较小, 但要求交付无损且强调实时效果。USB系统软件主要用它来查询配置和给USB终端发送通用命令。

(3) 中断传输:用于少量的、分散的、不可预知的数据传输, 例如数据控制指令、设备状态查询和确认命令。

(4) 批量传输:用于大数据量传送和接收精确度较高的数据, 且没有对带宽和时间间隔的要求。

5 结束语

要开发和支持USB (通用串行总线) 设备, 就需要理解USB规范以及与之相关的OHCI (开放式主控制器接口) 规范的内容。随着PC机性能越来越高, 其外围设备加入了更多的功能, 为了把计算机和日益复杂的外围设备高性能地连接起来, 产生了支持高传输速率的USB2.O协议标准, 这也使USB系统的研究成为今后研究工作的重点。

参考文献

[1]Compaq, Intel, Lucent, Microsoft, NEC, Philips.Universal serial busspecification, Revision 2.0[S].2000.

[2]美国迈舍尔公司.USB系统体系 (第2版) [M].孟文, 译.北京:中国电力出版社, 2003.

USB总线 篇4

在遥测接收系统中, PCM位同步器从接收机输出含有噪声、波形畸变等的视频数据流中提取位同步时钟, 并高质量地再生遥测数据PCM信号。而PCM解调器由帧同步器、时间码产生器、数据合并器等组成。帧同步器从位同步器输出的遥测数据中识别帧同步码并输出帧脉冲和其他定时脉冲供恢复数据格式使用。时间码产生器能接受GPS授时, 并且在没有外时码输入时产生本地时间码, 作为遥测数据处理的时间基准。数据合并器用于将遥测数据打上时间标记, 供计算机存盘和处理。以往的PCM解调器多是基于PCI总线或ISA总线, 在计算机标准接口中, USB通用串行总线具备其他总线无法比拟的优点, 比如安装方便、易于扩展、支持热拔插、传输速度快且稳定、低耗能、价格低廉等。因此, 目前USB总线渐有取代传统的ISA及PCI总线的趋势, 已成为计算机与外围设备通信的首选接口。尤其是USB 2.0理论传输速度可达480Mb/s, 为计算机与外设的高速数据交换提供了可能, 是PCM解调器的理想选择。因此开发基于USB总线的PCM解调器, 对遥测事业具有另辟路径的意义。

1 硬件设计

1.1 系统组成

PCM解调器由设备主控制器、存储器、USB控制器、EEPROM、RS-232接口芯片和总线驱动器等组成。硬件电路原理框图见图1。

由位同步器输入的数据NRZ_L码和00时钟, 先通过总线驱动器74ABT245进入FPGA实现数字相关器、帧同步三态策略, 输出位脉冲、字脉冲、帧脉冲和三态标志到总线驱动器74ABT245。GPS输入的数据进入RS-232接口芯片HCPL-0631进行电平转换, 转换成FPGA的兼容电平, 然后送入FPGA提取UTC时间并转换为北京时间。PCM遥测数据流和时间码合并送入存储器SRAM进行乒乓缓存, 再由FPGA从存储器中读出, 通过USB总线控制器, 发送到USB总线。最后通过计算机的驱动程序和应用程序, 把数据送到计算机的存储器内进行实时显示和事后处理。

1.2芯片介绍

1.2.1 设备主控制器

设备主控制器EP1C6控制RS-232接口的GPS数据接收, 实现帧同步和数据合并的复杂逻辑功能, 并通过USB控制器外部接口对USB数据传输端点进行读写操作。

主控制器采用Altera公司的Cyclone系列EP1C6。Cyclone FPGA是目前市场上性价比最优且价格最低的FPGA。器件基于成本优化的全铜1.5VSRAM工艺, 容量为5980个逻辑单元, 具有多达92160位嵌入RAM。支持各种单端I/O标准如LVTTL、LVCMOS、PCI和SSTL-2/3, 通过LVDS和RSDS标准提供多达72个通道的差分I/O支持。每个LVDS通道高达640 Mb/s。有两个锁相环 (PLLs) 提供六个输出和层次时钟结构, 以及复杂设计的时钟管理电路。FPGA的I/O端口多达185个, 可通过VHDL语言编程来自由支配、定义其接口功能, 方便PCB版图设计时的布局布线, 而且FPGA硬件的速度是ns级的, VHDL程序内部对各功能模块的处理是按并行方式进行的, 这样既很好地解决了采集信号通路多的问题, 又能实时地、快速地传输处理高速数据流。同时, 借助EDA工具软件Quartus直接进行代码编写、功能仿真和时序仿真, 简单易行的完成硬件功能的验证、添加和修改。

FPGA的配置器件采用EPCS1。主要特性是:低价优势、在系统编程 (ISP) 、Flash存储器访问和小型化设计。

1.2.2 存储器

存储器用两片IS61LV25616完成合并后数据帧的乒乓缓存, 保证数据能完整的存储和实时处理。存储器SRAM采用ISSI公司的IS61LV25616, 它是256 k×16位高速异步CMOS静态RAM, 单电源3.3 V供电。

1.2.3 USB控制器

各大公司都推出了USB2.0接口芯片, 例如PHILIPS公司的ISP1581, NETCHIP公司的NET2270, ALI公司的M5621, CYPRESS公司的CY7C68013等, 选择CYPRESS公司推出的EZ-USB FX2 系列中的CY7C68013芯片的主要原因有:

(1) 出色的USB2.0单芯片解决方案, 68013包含增强型8051内核和智能USB接口;

(2) 优良的性价比, 56引脚的68013市场售价不到50元;

(3) 开发简单, CYPRESS公司提供了完整开发方案, 如调试界面和固件框架;

(4) 真正体现USB2.0传输速度, 包含通用可编程接口 (GPIF) , 实现与外设的“胶连接”, 增强型8051的指令周期只有4个时钟周期。

CY7C68013芯片结构见图2。

USB控制器CY7C68013主要完成USB2.0总线物理层和协议层事务处理。

芯片集成了USB2.0总线收发器、串行接口引擎 (SIE) 、增强型8051微控制器、8.5kByte内部RAM存储器、4kbyte端点FIFO空间、一个可编程外围接口和I2C总线控制器。CY7C68013与外设有两种接口方式: GPIF工作方式和SLAVE FIFO工作方式。GPIF方式中CY7C68013作为接口工作主控制器, 通过GPIF波形设计工具产生波形, 读取外部数据到内部端点FIFO;SLAVE FIFO方式中CY7C68013作为接口工作辅控制器, 通过外部控制器 (如CPLD、MCU、DSP、MPU) 将数据直接写入到端点FIFO中。这两种方式都支持8位或16位并行数据总线, 可以方便地与各种外围接口及控制器进行无缝连接[1]。

1.2.4 EEPROM

EEPROM 24LC02存放PID/VID程序。芯片复位后可以自动从EEPROM载入配置信息。配置完成后, 芯片可以完全独立于内部的8051核, 由硬件自动完成USB数据传输功能。这样可以充分发挥USB2.0的数据传输速率。

1.2.5 RS-232接口芯片和总线驱动器

接口电路采用HCPL-0631完成RS-232接口GPS数据的接收, 采用74ABT245完成TTL电平的接收和驱动。

1.3工作原理

PCM解调器由帧同步器、GPS时间码产生器、数据合并器等组成。

1.3.1 帧同步器

帧同步器从位同步器输出的遥测数据中识别帧同步码并输出位脉冲、字脉冲、帧脉冲和三态标志供恢复数据格式使用。性能良好的帧同步器应能正确识别帧同步码, 误检和漏检的概率要小。一旦建立同步, 应能可靠的维持同步。

帧同步码检测采用门限法, 根据PCM序列与预先设置的帧同步码的相关函数值是否达到预知门限来判断帧同步码是否出现。相关器实现方法采用全数字相关法, 数字相关法具有电路简单, 调试方便, 利于集成, 易于与微机相结合, 便于编程控制实现各种帧同步码组的检测等优点。采用数字相关器原理, 以FPGA器件为核心设计了帧同步器。原理框图见图3。输入数据流经过串/并转换后, 与本地帧同步码进行同或运算, 产生32位相关结果再与屏蔽位相与, 屏蔽掉无关位后进入全加网络, 经全加运算, 以6位二进制码输出, 然后与门限值进行比较。大于门限值表示接收到帧同步码。

系统设计时为避免假同步和漏检, 使帧同步器稳定可靠工作, 采用三态逻辑, 即搜索-校核-锁定。校核态用于对帧同步码的真伪进行检验, 锁定态使系统在一定的信号质量下保持锁定, 搜索容错数与帧同步码长和帧长有关。校核帧数太多会延误系统进入同步时间, 锁定帧数太少, 则信号质量变化时反复进入三态工作。帧同步器在系统开始工作时处于搜索态, 在搜索态, 不使用窗口, 符合相关器输出即认为是帧同步码。一旦接收到帧同步码, 由搜索态转入校核态。位/字计数器、字/帧计数器复位, 二者开始计数, 这个过程一直持续到字/帧计数器达到预定的字/帧数。这时字/帧计数器输出一特定信号至窗口产生器, 以预期检测位为中心产生窗口脉冲。利用帧同步码的周期性, 下一个检测位应落在窗口脉冲宽度内, 三态逻辑产生第二个帧标志脉冲。若在窗口范围内, 没有帧码, 在统计意义上多半是虚警, 三态逻辑从校核重新返回到搜索态。在校核态, 只有连续通过预定的校核帧数 (, 帧同步器才进入锁定态。在锁定态, 即使在帧同步码发生漏检或数据错误的情况下, 帧标志脉冲也由本地产生。从而避免了由于帧同步码的漏检而造成的数据丢失。连续漏检超过预定的保护帧数 (, 帧同步即返回搜索态, 否则将重新计数, 一直保持在锁定态[2]。

1.3.2 GPS时间码产生器

GPS时间码产生器接受GPS授时, 没有GPS数据时产生本地时间码, 作为遥测数据处理的时间基准。时间码的格式为IRIG-B码。用GPS接收机输出的秒脉冲信号的上升沿触发状态寄存器, 这样, 即可记录下秒脉冲上升沿到来的准确时刻, 再从GPS接收机RS232接口输出的串行数据流中寻找“MYMGPZDA”语句并从中分离出UTC时间信息和日期信息, 从而得到精确的UTC时间。由于从串行数据中分离出的时间信息是以ASCII码表示的, 需要转换成二进制数才便于硬件电路进行处理, 经时间格式转换电路转换以后, 小时用5位二进制表示, 分钟和秒用7位二进制表示。由于GPS接收机先输出秒脉冲, 然后才输出MYMGPZDA语句, 因此从RS232数据中分离出的时间信息实际上滞后的, 如果在下一个秒脉冲的上升沿将分离出的时间信息打入本地时钟发生器, 就会产生1秒的延迟, 因此在分离时间信息时由硬件预先加1秒。本地时钟发生器采用48 MHz的时钟计数器, 产生本地的小时、分钟、秒及毫秒。如果GPS接收机没有秒脉冲输出时, 本地时钟发生器仍然可以依靠本地时钟正常工作, 只不过由于本地晶振的钟差, 所提供的时间信息的误差会越来越大。一旦GPS与卫星取得联系, 产生正常的秒脉冲, 本地时钟发生器就在每次秒脉冲的上升沿将本地时钟的时、分、秒信息用GPS时间替代, 同时将毫秒和本地时钟计数器清零, 这样就可以使本地时间与GPS时间保持同步。原理框图见图4。

1.3.3 数据合并器

数据合并器用于将遥测数据打上时间标记, 供计算机存盘和处理。来自帧同步器的串行数据经串并转换后, 与时间码按一定格式合并送入存储器中。存储器由两个相同的存储电路组成。当一个存储器存满后, 另一个存储器开始存储数据。同时控制电路向总线发出中断申请, 主机开始读该存储器的数据。如此反复工作, 保证数据能完整的存储和实时处理[3]。原理框图见图5。

2软件设计

软件设计主要涉及三个方面:固件程序、设备驱动程序、主机应用程序。软件设计内容包括:USB驱动程序和主机应用程序。

2.1固件程序

固件是运行在CY7C68013上的程序, 主要功能是控制CY7C68013接收并处理USB驱动程序的请求、控制CY7C68013接收应用程序的控制指令、通过CY7C68013存放数据并实时上传至计算机等[4]。

为了简化固件编程, CYPRESS提供了固件编程框架, 在此基础上只需修改少量代码就可以完成固件编程。固件编程框架已将USB标准请求和USB电源管理, 并且提供了钩子函数, 在钩子函数中输入少量代码就可以完成编程。也可以直接编程, 但是编程难度较大, 使用编程框架可降低开发难度。

本系统中的固件代码存储在EEPROM中, 当设备上电时, EEPROM中的代码被自动下载到FX2芯片的RAM中, 由8051执行。

2.2设备驱动程序

驱动程序用于完成系统和应用程序的通信及控制。USB驱动程序的开发可采用Driver Works、DDK或Windriver, 并以VC6.0作为辅助开发环境。但CYPRESS公司为了方便用户开发USB接口, 在CY7C68013的开发包中提供了一个通用驱动程序ezusb.sys, 该程序可不加修改, 经DDK编译后直接使用。本设计中采用的就是这个通用驱动程序。

2.3主机应用程序

应用程序是系统与用户的接口。通过通用驱动程序来完成对系统的控制和通信。在编写应用程序时, 首先要建立与系统的连接, 然后才能实施数据传输。本设计的操作系统选用Win2000或WinXP, 开发工具采用Visual C++6.0。主机应用程序采用基于局域网的客户/服务器模式的多机数据处理系统, 支持分布式处理, 数据存储格式仍采用遥测帧格式, 可根据需要转成用户所需的格式。

主机应用程序可完成设置帧同步器、采集、记录、浏览等多项功能。帧同步器设置的参数包括帧长、字长、容错数、校核数、锁定数、同步码、同步码字长、时间码, 设置采用读写INI文件保存配置信息, 在程序初始化或采集时这两部分分别进行配置, 保证系统的设置时刻处于被更新的状态, 设置内容可以保存, 下次默认调用。

3结论

阐述了PCM解调器的设计原理, USB总线接口保证了PCM解调器可以接收高速串行数据流。其灵活的接口和可编程特性简化了硬件设计, 提高了系统稳定性, 同时也有利于PCB板的制作和调试。开发的基于USB总线的PCM解调器已用于解调遥测数据PCM信号, 与目前常用的基于PCI总线开发的遥测数据解调卡相比, 具有体积小、传输速度快, 使用方便灵活等优点, 可应用到各种遥测数据的解调中。

摘要:介绍了基于USB总线的PCM帧同步及数据合并解调器的设计与实现, 选用Cypress公司的CY7C68016A作为USB接口芯片和Altera公司的FPGA作为控制器完成硬件设计, 并基于VHDL、C/C++语言完成软件设计。该设备主要用于PCM码流与USB总线的数据交换, 已在遥测接收系统中用于PCM解调和数据处理。

关键词:遥测,USB总线,PCM,FPGA

参考文献

[1] EZ-USB FX2 Technical Reference Manual, Cypress SemiconductorCorporation, 2003.11

[2]高宇, 张凤辰.新型全数字化PCM同步解调器, 遥测与遥控, 1998;19 (2) :51—55

[3]李英丽, 刘春亭.空空导弹遥测系统设计.北京:国防工业出版社, 2006:7

USB总线 篇5

CAN (Controller area network) 总线是20世纪80年代初德国Bosch公司为解决现代汽车中控制与测试之间的数据交换而开发的一种串行数据通信协议。由于较好的解决了现场实际环境中数据的高速通信以及抗干扰等问题, 而被广泛应用于工业现场和汽车电子等领域[1,2,3,4]。对于计算机系统, 由于大多没有CAN总线接口, 因此不能直接获得工业现场CAN总线设备的数据。传统的方法都是采用基于PCI总线的CAN转接卡实现对远端CAN总线设备的控制操作。但是该方法不能实现即插即用, 并且插卡操作需要打开机箱。另外, CAN总线的数据通信也必须与配有PCI转CAN总线接口的计算机才能完成, 切换计算机比较繁琐。而USB具有使用简单、即插即用、热插拔、开放性、高速、稳定、可靠性高等优点, 特别适用于仪器仪表、虚拟仪器、数据采集设备、监控设备和加密设备等场合。因此可以采用USB接口实现CAN总线设备与PC机的数据通信, 使C AN总线的数据接入PC机变得更简便。

2、CAN总线适配器的硬件设计

CAN总线适配器电路主要由微控制器C8051F340、CPLD时序电路、CAN总线接口芯片、DC-DC隔离保护电路组成。CAN总线适配器系统框图如图1所示。

2.1 微控制器

微控制器采用C8051F340 (以下简称F340) , F340集成了全速/低速USB功能控制器, 用于实现USB接口与PC的数据通信。U SB功能控制器 (USB0) 由串行接口引擎 (SI E) 、USB收发器、1KB FIFO存储器和时钟恢复电路组成, 不需要外部元件[5,6]。USB功能控制器和收发器符合通用串行总线规范2.0版。实验测试表明:微控制器F340的US B接口与计算机之间的通信速度最快可以达到500Kbytes/s。

2.2 CPLD电路的设计

CPLD电路主要完成对CAN控制器SJA1000内部寄存器和SRAM的地址分配, 以及对相关外设间接口的数字逻辑电路的集成。通过CPLD编程可以灵活地实现单片机对S RAM的访问和对两路CAN总线控制器的读写操作。

2.3 CAN总线接口的设计

SJA1000是一个独立的CAN控制器, 符合CAN2.0规范。SJA1000可应用于多种工程领域, 尤其在系统优化诊断和维护方面。

CAN通信控制电路主要包括SJA1000独立控制器、PCA82C250总线收发器和6N137高速隔离光耦等器件。PCA82C250可以提供对总线的差动发送和接收, 从而提高了系统总线的节点驱动能力, 增大了通信距离、降低了干扰。为确保计算机的安全, 在SJ A1000与PCA82C250之间采用高速光耦6N137来隔离, 被隔离的两个部分分别使用不同的电源和地线, 以提高抗干扰性能, 确保后续电路的安全。

3、系统程序设计

3.1 微处理器程序设计

系统程序的主要功能是实现CAN总线控制器与单片机的通信, 以及单片机与PC机的USB通信。

本设计采用C语言编程, 利用中断驱动机制, 前台主程序专注于单片机的USB接口与PC机之间的数据的处理, 而后台中断程序 (ISR) 主要实现单片机与SJA1000控制器之间的数据通信。二者通过事件标志和数据缓冲区来实现, 主程序流程图如图2 (a) 所示。

3.2 CAN总线程序设计

CAN总线程序部分包括:SJA1000初始化、数据发送和数据接收。SJA1000初始化程序放在主程序开始部分, 而数据发送和数据接收采用中断方式, 以提高程序运行效率。

SJA1000必须在上电或硬件复位后设置CAN通信, 它可能会在主控制器操作期间发送一个软件复位请求, 此时SJA1000会被重新配置并再次初始化。假设上电后独立CAN控制器得到一个复位脉冲而进入复位模式, 则主控制器首先通过读复位模式/请求标志来检查SJA1000是否已达到复位模式, 然后再设置SJA1000的寄存器的状态。若工作在Peli CAN模式, 在复位模式中主控制器必须配置SJA1000控制段寄存器:模式寄存器、时钟分频寄存器、验收码寄存器和验收屏蔽寄存器、总线定时寄存器、输出控制寄存器。CAN中断程序流程图如图2 (b) 所示。

3.3 USB固件程序设计

USB固件程序设计主要完成USB设备与PC间的通信, 当USB设备接入主机时, 要经历一个枚举过程, 这是USB器件与其他器件所不同的地方。枚举过程是一个标准设备请求的过程, 主机通过枚举获取USB器件的详细信息, 以提示安装驱动程序, 此后设备才能进入正常的数据通讯。

USB固件程序设计主要目的:当USB设备连接到主机上时, 主机可以发现新设备, 然后建立连接并完成数据传输任务, 也就是能够让Windows正常检测和识别USB设备。因此在USB固件程序中, 最重要的工作就是USB描述符的定义和USB传输中断的处理。鉴于系统的高速和纠错要求, 采用块传输模式, 与F340内核之间通过中断完成数据传输。在系统采集到一包数据后, 通过USB接口将数据包传递到PC机, PC机收到正确数据后对下位机进行确定答复。若数据有误, 将向下位机请求重发, 确认与重发命令在单片机中通过PC机控制命令包的命令字识别。当USB中断到达时, F340首先通过读取USB功能控制器的三个中断寄存器C MINT、IN1INT和OUT1INT来判断中断来源, 然后根据不同的中断来源跳入相应的处理模块以进行不同的中断处理, 并在处理完毕后返回。USB中断程序流程见图2 (c) 。

3.4 USB驱动的开发

设计的驱动程序是建立在Windows W DM基础上的USB设备驱动, WDM驱动程序主要的开发工具是微软提供的软件开发包 (DDK, device driver kits) , 该软件包为驱动程序开发者提供了用于开发驱动程序所需的资源文件、编译连接程序、开发技术文档等, 再利用第三方开发工具Driver Stud io可以快速地建立USB设备驱动的框架, 只要进行少量的修改即可实现程序的正常运行, 此处不做详述。

4、实验测试

基于USB接口的CAN总线适配器实物图如图3所示。上位机采用Labview软件实现对USB转CAN装置性能的测试。测试数据传输准确率为100%。当C8051F340工作在48MHz时, USB接口与PC机的通信速度超过330k Byte/s, 最快可达500Kbytes。适配器在CAN总线数据转换, 并通过USB接口传输到上位机的传输速度大于100Kbytes/s, 可以满足工程实际的应用需求。

5、结语

本文设计的基于USB接口的CAN总线适配器实现了计算机与CAN总线设备的数据通信。与PCI接口的CAN总线转接卡相比, 具有价格低, 使用灵活方便的优点, 在实现CAN总线设备与计算机接口通信领域具有一定的实用性。

参考文献

[1]史久根, 张培仁, 陈真勇.CAN现场总线系统设计技术[M].北京:国防工业出版社, 2004.

[2]王恩怀, 李永红, 刘忠献, 等.CAN总线接口自动检测系统[J].仪表技术与传感器, 2008, 4:36-38.

[3]何青, 李红, 何子睿.基于CAN总线远程振动检测系统研究[J].振动、测试与诊断, 2009, 29 (4) :398-400.

[4]冷毅, 李青侠, 刘胜, 等.基于无线传感器和CAN总线的直接式轮胎压力检测系统[J].仪器仪表学报.2008, 29 (4) :711-717.

[5]C8051F430 Data Sheet, Rev.1.4[Z], SilicioLn aboratories, 2009.

USB总线 篇6

传统的数据采集系统下位机采集的数据通常使用RS-232通信接口送到上位机显示和处理,随着计算机技术的不断发展,RS-232通信接口逐步被USB通用总线接口所取代,本设计解决了目前PC机及笔记本电脑没有RS-232串口接口问题,利用CH341(USB转串口)芯片在PC机或笔记本电脑上虚拟出一个RS-232串行接口,实现USB总线的实时数据采集。其特点是电路简单,使用方便,开发成本低。

1 电路设计

系统硬件电路包括SST98E516RD单片机、8路模拟量采集电路和CH341 USB转串口电路组成,模拟量采集电路由TC4051八选一模拟开关及ADC0832A/D转换器构成。采集数据经USB接口送上位机显示和处理。上位机操作界面使用VB程序编写,具有数据接收和显示功能,当接收信号超限时可进行声光报警。

1.1 USB转串口电路

CH341是一个USB总线的转接芯片,可以通过USB总线提供标准的TTL电平(0-5V DC)异步串型接口,兼容USB V2.0。外围元器件只需要晶振和电容,具有电路简单使用方便的特点。CH341内置了独立的收发缓冲区,支持单工、半双工或者全双工异步串行通讯,支持标准串行接口的波特率,串口发送信号的波特率误差小于0.3%。

CH341的硬件驱动程序由硬件代理商免费提供,在计算机端的Windows操作系统下,CH341的驱动程序能够仿真标准RS-232串型接口,仿真串口与应用程序完全兼容,不需要作任何修改,使用非常方便,CH341与51单片机连接电路如图1所示。

1.2 模拟量采集电路

模拟量采集电路由TC4051八选一模拟开关、ADC0832 A/D转换器和模拟量输入电路组成,完成八路模拟信号(0-5V DC)到数字信号的转换。模拟量采集电路如图2所示。

(1)ADC0832引脚引脚说明:CS:片选端,用以启动A/D转换;CH0,CH1:模拟量输入端;CLK:时钟输入端,做串行数据传送的同步时钟信号;DO:数据输出端,用以读取转换后的数据;DI:数据输入端,向ADC0832写命令端口;VCC:电源输入端,接+5V DC电源;GND:接地端。

ADC0832是两通道A/D转换器,可以单端输入或差分输入,由软件选择输入通道和输入方式。

(2)ADC0832主要特点:单5V供电,SPI串行数据连接,双通道输入,8位转换精度,转换时间位32μS。

(3)ADC0832 A/D转换原理:ADC0832启动一次转换首先要将片选CS置为低电平,然后向ADC0832发送由开始位和通道设置位构成的关键字,发送数据位对应的时钟信号由时钟输入端送入。在每一个时钟的上升沿DI端口的数据状态被锁存到通道设置地址寄存器。起始位送1(高电平)做为ADC0832的转换标志,接下来的2和3位是通道设置位的设置字。如使用单端输入方式中的0通道作为模拟量的输入,应向ADC0832的DI端口送“110”命令字。当开始位和通道设置位送入ADC0832的DI端口后,相应的输入通道被选择,转换开始。在同步时钟的引导下,每个时钟的下降沿,从ADC0832的DO端口读取转换的位,高位在前,8个时钟周期过后转换完成,转换后的数字量存入单片机内存。转换结束后,CS置1(高电平),此时ADC0832所有的内部寄存器清零。为下一次转换作准备。

2 系统设计软件

2.1 主程序流程图

单片机主程序流程框图参见图3所示,主程序主要完成硬件初始化、数据采集、A/D转换和数据发送等子程序调用功能。初始化程序完成通信参数设置及A/D转换准备等初始化工作;数据采集、A/D转换程序完成模拟量采集及处理工作,采集到的数据进行存储和转换;数据发送程序完成采集数据的发送工作,发送的数据通过CH341送上位机显示。

2.2 上位机操作界面

上位机软件由启动、登陆、主操作界面等构成,数据的接收和发送等功能在主操作界面中完成,由VB开发。主操作界面如图4所示。

2.2.1 参数的动态显示

模拟量使用动态棒图显示,当参数超过高限或低于底限时相应的指示灯亮同时发出声音报警信号,开关量使用指示灯表示,红色表示断开,绿色表示接通。

2.2.2 通信操作部分

“接收”按钮完成参数的手动接收,通信操作通过下拉菜单选择通信使用的串口号,通信状态CD、DTR用来显示单片机和上位机是否准备就绪。

3 结束语

本文通过CH341USB转串口功能完成了USB接口标准下的数据采集,基于USB接口的数据采集系统由于具有使用简单、即插即用、开放性、高速、稳定、可靠性高等优点,因此特别适用于仪器仪表、虚拟仪器、数据采集、数据采集设备和监控设备等场合。

摘要:本文提出一种基于USB接口数据采集系统的实现方案.使用CH341(USB转串口)芯片完成数据的采集.可实现8路模拟量和8路开关量的数据采集,采集数据通过USB接口送PC机显示和处理。

关键词:USB,数据采集,上位机

参考文献

[1]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.48-95.

[2]曹桂琴.数据采集基础[M].大连:大连理工大学出版社,2002:39-41.

USB总线 篇7

一、设计思想

要学好单片机设计关键是动手实验。目前单片机教学中使用的单片机实验箱虽然功能全, 但体积大、成本高, 属于学校的固定资产, 不适宜提供给学生进行课外实践训练。所以, 一部分学有余力的学生想在课外深入学习以能获得更大的提高, 却往往找不到一款合适的、价格低廉的最小系统板。

本文设计的单片机最小系统的目标是实现模块化、在线编程、和PC机采用USB通信、成本低。其中利用USB总线实现在线编程是其最大特色。通常的单片机最小系统板大多采用标准R S-232串行接口与P C机通信, 实现程序的下载或调试。随着USB通用串行总线的发展, USB产品的应用范围不断扩大, PC机上各种端口正逐渐被U S B端口取代。但目前大多数单片机支持的是R S232标准, 很多单片机的开发软件也是基于RS232标准设计的, 为了使单片机系统能够与只有USB接口的PC机或笔记本电脑通信, 需要设计一种USB-UART转换模块。该转换模块可最大限度的降低单片机系统开发的成本, 既保留了单片机内部提供的串口资源, 也不用对PC机的应用开发软件做改动。本文介绍一种基于南京沁恒公司的CH341为USB/RS-232转换芯片的单片机最小系统设计。

二、单片机最小系统硬件设计

最小系统的设计思想是能提供两种运行模式:下载模式和工作模式。当为下载模式时, 最小系统模块和USB-UART转换模块相连, 无需外接电源, 由USB串口下载程序;当为工作模式时, 最小系统既可与USB-UART串口转换模块相连, 由它提供工作电源;也可单独外接电源, 最小系统的RS232端口可作为单独的串口, 以提高系统的灵活性。最小系统与USB-UART转换模块的连接示意图 (如图1所示) 。

1. 最小系统硬件设计

单片机最小系统包括SST51单片机, 复位电路, 系统时钟电路, 标准TTL-RS232电平转换电路, 地址、数据及控制电路总线接口 (38P I N) , 同时提供+5V电源输出。其电路设计如图2所示。其中SST51单片机选用的是具有IAP功能的SST89E52/54/58/516RD单片机, 其指令系统及引脚排列与MCS-51兼容, 但片内资源和性能指标有很大提升。

2. USB-UART串口转换设计

USB-UART串口转换芯片采用的是CH341, 它是由南京沁恒公司提供的一款USB总线转接芯片, 通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。

在异步串口方式下, C H341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号, 用于将普通的串口设备直接升级到U S B总线。该芯片的特点是USB固件已被封装到了芯片内部, 兼容USB V2.0, 外围元器件只需晶振和电容, 在应用上CH341就和普通的串转并接口芯片一样, 用户不用了解具体USB协议以及USB固件编程。USB-UART串口转换模块可以将程序下载到单片机上, 同时通过USB口为单片机和其它模块提供电源, 该模块被设计成与最小系统板相对独立的模块 (如图3所示) 。

从图中可以看出, 该模块提供了USB接口电路, 包括4根信号线:D+, D-, VCC, GND, 可直接与PC机的USB口相连, 由PC机的USB口提供电源;CH341的TXD和RXD信号分别与SP3232E电平转换芯片的对应引脚相连, 以实现数据的收发;TEN引脚接地, 保证CH341实现数据的发送。

为了使C H341正常工作, 还需要驱动程序的支持, 南京沁恒公司提供了相关的驱动程序:c h341s98.sys, ch341ser.inf, ch341ser.sys, ch341ser.vxd, 并提供了安装程序。当安装完成后, PC机就能够自动识别由CH341来的串口信息。

三、应用举例

由于系统设计时是以模块化结构为宗旨, 在最小系统板上留出了38PIN的总线接口, 所以在进行应用设计时, 只需保证接口引脚和最小系统板的引脚对应即可, 可以将设计重点放到应用系统本身的功能上。本文以交通灯为例来说明最小系统的应用。

1. 交通灯电路设计

本系统设计的交通灯模块要实现双干线路口的交通信号灯的定时变化。设计12个发光二级管, 分别表示东、西、南、北四个方向红、黄、绿灯;设计8个LED数码管, 用于显示各状态的剩余时间;设计东西方向和南北方向紧急按键各一个, 以便于紧急情况的处理。

要实现上述功能, 模块用到的单片机资源应包括定时器、两个外中断及多个并口。定时器用来实现正常的计时;两个外中断接收按键信号以处理紧急事件;P1口用来控制12个发光二极管, 由于东西和南北方向的信号灯是相同的, 故只用了P1口的6个口线;P0口和P2口的低4位分别作为L E D数码管的位选和片选信号, P2口的高4位用来作为译码信号, 送给L E D数码管的驱动芯片74LS245。该应用模块的接口设计如图4所示。

2. 程序下载

SST89E52系列单片机提供了SSTEasy IAP在线下载软件。安装成功后, 打开SSTEasy IAP软件, 将单片机用USB-UART串口转换模块与计算机相连, 选择CPU型号和串口号, 打开“检测MCU选项”, 点击“检测MCU固件版本号及选项”, 当看到单片机的固件信息时, 说明已连接成功。点击“Open File”, 选择要下载到单片机的hex或bin文件, 可在“文件缓冲区”内看到该文件的数据信息, 点击“下载”, 注意此时需要冷启动单片机, 即可将程序下载到单片机。

四、结束语

本文针对高校学生普遍存在单片机设计训练不足的现状, 设计了一种基于USB串行下载的单片机最小系统板, 它采用模块化设计思想, 能用于各种不同的应用系统。该设计可作为课堂教学、单片机课程设计、毕业设计、课外电子实践和电子竞赛训练等的通用最小系统板, 学生可基于该最小系统板开发各种目标程序, 极大减少了单片机系统的开发周期和成本, 对培养学生应用设计能力和创新意识、提高就业竞争力具有重要意义。

摘要:为解决高校学生单片机设计训练少、实验设备昂贵的问题, 设计了一种基于USB总线的单片机最小系统板。介绍了USB总线转接芯片CH341的功能特点, 给出了利用CH341及RS232电平转换芯片实现USB和RS232转换的硬件电路, 详细介绍了单片机最小系统设计思想和硬件电路设计, 并给出了应用实例。该最小系统板可应用于单片机教学的各个环节。

关键词:单片机最小系统,USB总线转接芯片,RS232

参考文献

[1]余善恩, 尚群立.RS232设备到USB设备的升级及USB设备的开发[J].计算机工程, 2007.2, 256-258.

USB总线 篇8

USB通过一种四线电缆、两根电源线 (V-bus/GND) 、两根信号线 (D+/D-) 传递信号,使用+5V电源。采用长短针的方式可以保证热插拔过程中的安全,同时USB规范制定了“电源管理”功能,系统软件可以与主机的能源管理系统结合共同处理各种电源子件,如挂起、唤醒。USB设备应用特有的电源管理特性,可让系统软件控制电源管理并自动识别USB设备。

USB的总线布局技术

USB连接了USB设备和USB主机,USB的物理连接是有层次的星型结构。每个网络集线器都在星型中心,每条线段是点点连接。从主机到集线器或其功能部件,或从集线器到集线器或其功能部件。USB规范规定通过使用Hub扩展可拨接多达127个外设,最多六层,标准USB电缆长度为5 m,通过Hub或中继器可以使外设距离达到30 m (6×5) 。近些年出现一种“USB延长器”技术,通过使用5类线可以将USB延长至100 m,这种技术扩展了USB测量系统的灵活性。

USB数据采集模块设计

USB系列模块是研华公司开发的数据采集模块,包括完整的A/D、D/A、DIO、USB转串口、USB Hub等产品,采用USB2.0标准,并进行加固型工业设计,在各领域有较多的应用。以USB4718为例,其原理图如图1所示。

差分信号通过多路选择开关进入A/D转换器,转换后的数字信号通过USB接口芯片与计算机的USB Host相连。

在提供硬件产品的同时,研华公司提供完整的Windows、WinCE、Linux等操作系统下的驱动。不仅可以使用VC、VB、Delphi等高级语言进行开发,通过驱动接口也可以应用到Labview软件中。

ActiveDAQ Pro是研华公司新推出的图形化测量专用组件,利用研华数据采集卡驱动和ActiveDAQ Pro将复杂的开发过程全部封装起来,给使用者呈现的是极其强大的功能、稳定的性能和简单的应用开发,这也体现了成熟公司产品流程的完善。

图2是利用研华USB4718、设备驱动和ActiveDAQ Pro开发的虚拟万用表的实例。它可以实现万用表的全部功能,包括普通万用表不具备的温度测量、曲线显示、数据记录和通信功能。

EMI分析仪用来对电子产品的EMI(电磁干扰)进行采集与分析。

【USB总线】推荐阅读:

总线数据07-12

485总线07-22

总线平台07-27

总线方式07-28

仪表总线08-06

总线驱动08-13

总线故障08-16

安全总线08-22

ISA总线05-20

1553b总线06-29

上一篇:贴片技术下一篇:营销进化