版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IPC 与单片机通过 USB 接口实现串行通信作者姓名:XX 专业班级:XXXXXXXX 指导教师:XXXXX摘 要基于串口通讯的原理,分析和讨论了计算机与单片机如何通过 USB 接口使用相关的通讯协议实现串行通信的。本设计主要介绍如何使用一台计算机与一台单片机通过 USB 接口实现串行通信。在本设计中单片机采用 AT89C51,USB 转接芯片 CH341;软件设计方面,PC 机采用 C 语言编程,单片机方面用中断方式完成数据的接收和发送,程序开发采用汇编语言和 Keil C 语言。关键字:PC 机,单片机,USB,串行通信IIPC and SCM realizing serial comm
2、unication via a USBAbstract: Based on the principle of serial communication, this paper analyzes and discusses how computer and SCM via a USB communication protocol realized with related serial communication. This design mainly introduces how to use a computer and a single-chip microcomputer via the
3、 USB interface implementation serial communication. In this design microcontroller AT89C51, USB adapter chip CH341; Software design, PC machine adopts the C programming language used interrupt mode, microcontroller finish data sending and receiving, assemble language and Keil C used as the language
4、of development program.Key words: Personal Computer, MCU, USB, Serial communicationIII目 录第 1 章 前 言.11.1 本课题研究的目的和背景 .11.2 本课题研究的主要内容 .1第 2 章 串行通信基础.32.1 串口通信的基本知识 .32.1.1 并行通信与串行通信.32.1.2 串行通信工作模式.52.1.3 异步传输和同步传输.6第 3 章 USB 通信原理简介 .83.1 USB 简介.83.1.1 USB 设备.83.1.2 USB 的优点.93.1.3 传输方式.103.2 USB 的总线协
5、议.113.2.1 总线拓扑结构.113.2.2 USB 的物理层.123.2.3 USB 总线协议.12第 4 章 PC 与单片机通过 USB 的通信设计 .214.1 设计方案选择 .214.1.1 PC 机同单片机通信存在的问题.214.1.2 USB 接口同 RS-232(DB-9)串口的比较 .214.1.3 USB 转接芯片的选择.224.2 硬件设计 .234.2.1 硬件电路设计.234.2.2 硬件驱动程序安装.234.3 通信程序设计 .244.3.1 PC 机与 USB 通信程序设计.244.3.2 单片机通信程序设计.264.4 USB 通信模块调试.27结 论.29致
6、 谢.30参考文献.31成都理工大学 2011 届本科毕业设计(论文)1第 1 章 前 言1.1 本课题研究的目的和背景通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送
7、的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米 。随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在
8、现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用范围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用范围也将越来越广。本文所介绍的单片机和PC机的USB通信方法,电路简单,兼容性好,可移植性强,故可作为单片机同计算机的USB通信模块广泛应用于工业和电子产品的开发中。因此研究如何实现PC机与单片机通过USB之间的通信具有非常重要的现实意义。1.2 本课题研究的主要内容(1)串行通信原理介绍;成都理工大学 201
9、1 届本科毕业设计(论文)2(2)USB技术原理分析;(3)单片机和PC机通过USB实现串行通信设计与实现。本设计主要包含以下两个方面:(1)硬件设计:单片机及外围电路设计;(2)软件设计:单片机的通信控制程序, PC机的通信程序。成都理工大学 2011 届本科毕业设计(论文)3第 2 章 串行通信基础2.1 串口通信的基本知识2.1.1 并行通信与串行通信微机的信息交换有两种方式进行:串行通信方式和并行通信方式。1.串行通信串行通信的设备是最古老的沟通机制之一。从IBM个人电脑和兼容式电脑的时代开始,几乎所有的计算机都配有一个或多个串行端口和一个并行端口。顾名思义,一个串行端口发送和接收串行
10、数据,一次一位数据。相反,一个并行端口一次发送和接收8位数据,使用8个单独的线路。提示:要使串行通信工作,你只需要一根三根线的电缆1根发送,1根用来接收,1根接地。对于并行通信,你需要采用8条导线。尽管相对较慢的传输速度远低于并行端口,串行端口通信依然因为它简单的设备、高的成本效益以及差错可控性强而成为一个受欢迎的连接选项。图2-1显示了使用串行口连接到计算机的设备。图 2-1 一些常见的串行设备,调制解调器,鼠标和路由器虽然今天的消费产品中在串行连接的地方使用 USB 连接,但还有很多的设成都理工大学 2011 届本科毕业设计(论文)4备使用串行端口作为与外部世界的唯一连接。一个串行设备一次
11、发送和接收一位数据,有些设备因为在同一时间发送和接收数据,被称为全双工设备。其他可以在任何时间发送或接收被称为单双工。开始传输时,设备先发送一个起始位,其次是数据位。该数据位可以是五,六,七,或 8 位,基于商定而定。两个发送方和接收器必须设置为相同的数据通信比特或正确的比特率。数据位被发送完后,就会发送一个停止位。一个停止位可以是一位,一个半位,或两位。波特率是数据从一个设备到另一个的传输速度。波特率通常以每秒的位数(bps)来计量。注意:大多数串行设备传输七,八位数据。为了检测数据已被正确发送,一个可选的校验位可以同数据位在一起。一个校验位可以是以下内容:奇数,偶数,mark,space
12、或无(空的奇偶位标志几乎总是被使用) 。使用校验位提供了一个基本的机制,以检测已发送数据损坏,但不保证检查数据本身的错误。然而,校验位可用于改善完整性数据传送。大多数串行端口使用 RS232C 标准,它指定了一个连接器 25 针或 9 针(见图2-2)。大多数系列设备使用 9 针连接器。图 2-2 25 针和 9 针串行接口2.并行通信在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传送,这种传输被称为并行通信,如图 2-3 所示。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故
13、不宜进行远距离通信。计算机或 PLC 各种内部总线就是以并行方式传送数据的。成都理工大学 2011 届本科毕业设计(论文)5图 2-3 并行通信2.1.2 串行通信工作模式串行通信工作模式如果在通信过程的任意时刻,信息只能由一方 A 传到另一方 B,则称为单工。如果在任意时刻,信息既可由 A 传到 B,又能由 B 传 A,但只能由一个方向上的传输存在,称为半双工传输。如果在任意时刻,线路上存在 A 到 B 和 B 到A 的双向信号传输,则称为全双工。电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信
14、号,如回线传输。在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。1.半双工方式若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图 2-4 所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。图 2-4 半双工方式成都理工大学 2011 届本科毕业设计(论文)6当计算机主机用串行接口连接显
15、示终端时,在半双工方式中,输入过程和输出过程使用同一通路。有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况。目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚。在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向。2.全双工方式当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图 2-5所示。在全双工方
16、式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要 2 根数据线传送数据信号(可能还需要控制线和状态线,以及地线) 。图 2-5 全双工2.1.3 异步传输和同步传输串行传输中,数据是一位一位按照到达的顺序依次传输的,每位数据的发送和接收都需要时钟来控制。发送端通过发送时钟确定数据位的开始和结束,接收端需要在适当的时间间隔对数据流进行采样来正确的识别数据。接收端和成都理工大学
17、2011 届本科毕业设计(论文)7发送端必须保持步调一致,否则数据传输就会出现差错。为了解决以上问题,串行传输可采用以下两种方法:异步传输和同步传输。1.异步传输通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0,以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示,占用 12位宽度。一个字符占用 58 位,具体取决于数据所采用的字符集。例如,电报码字符为
18、5 位、ASCII 码字符为 7 位、汉字码则为 8 位。此外,还要附加 1 位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单的差错控制。发送端与接收端除了采用相同的数据格式(字符的位数、停止位的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。典型的速率有:9600 b/s、19.2kb/s、56kb/s 等。异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。例如,计算机与 Modem 之间的通信就是采用这种方式。它的缺点是通信开销大,每传输一个字符都要额外附加 23 位,通信效率比较低。例如,在使用 Modem 上网时,普遍感觉速
19、度很慢,除了传输速率低之外,与通信开销大、通信效率低也密切相关。 2.同步传输通常,同步传输是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如 16 位或 32 位 CRC 校验码),以便对数据块进行差错控制。所谓同步传输是指数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。和异步传输相比,数据传输单位的加长容易引起时钟漂移。为了保证接收端能够正确地区分数据流中的每个数据位,收发双主必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器
20、)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输成都理工大学 2011 届本科毕业设计(论文)8时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。第 3 章 USB 通信原理简介3.1 USB 简介USB(Universal Serial Bus,通用串行总线)是以 Intel 为主,并有Compaq, Microsoft, IBM, DEC, Northern Telecom 以及日本 NEC 等共七家公司共同制定的串行接口标准,19
21、94 年 11 月制定了第一个草案,1996 年 2 月公布了 USB 规范版本 1.0。USB 可把多达 127 个外设同时联到你的系统上,所有的外设通过协议来共享 USB 的带宽,其 12Mbps 的带宽对于键盘,鼠标等低中速外设是完全足够的(注:在 1999 年 2 月发布的 USB 规范版本 2.0 草案中,已建议将 12Mbps 的带宽提升到 120-240Mbps。)。USB 允许外设在主机和其它外设工作时进行连接、配置、使用及移除,即所谓的即插即用(Plug&Play)。同时USB 总线的应用可以清除 PC 上过多的 I/O 端口,而以一个串行通道取代,使 PC与外设之间
22、的连接更容易。3.1.1 USB 设备USB 设备包括 Hub 和功能设备,而功能设备又可以细分为定位设备字符设备等等。为了进一步叙述,我们给出端点(endpoint)和管道(pipe)的概念。端点:每一个USB设备在主机看来就是一个端点的集合,主机只能通过端点与设备进行通讯,以使用设备的功能。每个端点实际上就是一个一定大小的数据缓冲区,这些端点在设备出厂时就已定义好。在USB系统中,每一个端点都有唯一的地址,这是由设备地址和端点号给出的。每个端点都有一定的特性。其中包括:传输方式、总线访问、频率、带宽、端点号、数据包的最大容量等等。端点必须在设备配置后才能生效(端点0除外)。端点0通常为控制
23、端点。用于设备初始化参数等。端点12等一般用作数据端点存放主机与设备间往来的数据。成都理工大学 2011 届本科毕业设计(论文)9管道:一个USB管道是驱动程序的一个数据缓冲区与一个外设端点的连接,它代表了一种在两者之间移动数据的能力。一旦设备被配置,管道就存在了。管道有两种类型,数据流管道(其中的数据没有USB定义的结构)与消息管道(其中的数据必须有USB定义的结构)管道只是一个逻辑上的概念。所有的设备必须支持端点0以作为设备的控制管道。通过控制管道可以获取完全描述USB设备的信息,包括:设备类型、电源管理、配置、端点描述等等只要设备连接到USB上并且上电端点0就可以被访问与之对应的控制管道
24、就存在了。一个 USB 设备可以分为三个层图(如图 3-1 所示)。最底层是总线接口,用来发送与接收包。中间层处理总线接口与不同的端点之间的数据流通。一个端点是数据最终的使用者或提供者,它可以看作数据的源或接收端。最上层就是 USB 设备所提供的功能,比如鼠标或键盘等。 图 3-1 设备层次结构3.1.2 USB 的优点USB通信有如下几个优点:1.USB为所有的USB外设提供了单一的、易于使用的标准的连接类型。这样成都理工大学 2011 届本科毕业设计(论文)10一来就简化了USB外设的设计,同时也简化了用户在判断哪个插头对应哪个插槽时的任务,实现了单一的数据通用接口。2.整个的USB的系统
25、只有一个端口和一个中断,节省了系统资源。3.USB支持热插拔(hot plug)和PNP(Plug-and-Play),也就是说在不关闭PC 的情况下可以安全的插上和断开USB设备,计算机系统动态地检测外设的插拔,并且动态地加载驱动程序。其他普通的外围连接标准,如SCSI设备等必须在关掉主机的情况下才能插拔外围设备。4. USB在设备供电方面提供了灵活性。USB直接连接到Hub或者是连接到Host的设备可以通过USB电缆供电,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合,并且支持节约能源的挂机和唤醒模式。5.USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各
26、种不同类型的外设,USB2.0还支持480Mbps的高速传输速率。6.为了适应各种不同类型外围设备的要求,USB提供了四种不同的数据传输类型:控制传输Bulk数据、传输中断数据传输和同步数据传输。同步数据传输可为音频和视频等实时设备的实时数据传输提供固定带宽。7. USB的端口具有很灵活的扩展性,一个USB端口串接上一个USB Hub就可以扩展为多个USB端口。3.1.3 传输方式USB有四种的传输方式:控制(Control)、同步(isochronous)、中断(interrupt)、大量(bulk)。如果是从硬件开始来设计整个的系统那还要正确选择传输的方式,而作为一个驱动程序的书写者就只需
27、要弄清楚其采用的什么工作方式就行了。通常所有的传输方式下的主动权都在PC边。1.控制(Control)方式传输:控制传输是双向传输,数据量通常较小。USB系统软件用来主要进行查询、配置和给USB设备发送通用的命令。控制传输方式可以包括8、16、32和64字节的数据,这依赖于设备和传输速度。控制传输典型地用在主计算机和USB外设之间的端点(Endpoint)0之间的传输,但是指定供应商的控制传输能用到其它的端点。2.同步(isochronous)方式:传输同步传输提供了确定的带宽和间隔时间成都理工大学 2011 届本科毕业设计(论文)11latency)。它被用于时间严格并具有较强容错性的流数据
28、传输,或者用于要求恒定的数据传输率的即时应用中。例如,执行即时通话的网络电话应用时,使用同步传输模式是很好的选择。同步数据要求确定的带宽值和确定的最大传输次数。对于同步传输来说,即时的数据传递比完美的精度和数据的完整性更重要一些。3.中断(interrupt)方式:传输中断方式传输主要用于定时查询设备是否有中断数据要传输,设备的端点模式器的结构决定了它的查询频率,从1到255ms之间,这种传输方式典型的应用在少量的分散的,不可预测数据的传输。键盘、操纵杆和鼠标就属于这一类型。中断方式传输是单向的并且对于host来说只有输入的方式。4.大量(bulk)传输:主要应用在数据大量传输和接受数据上,同
29、时又没有带宽和间隔时间要求的情况下,要求保证传输。打印机和扫描仪属于这种类型。这种类型的设备适合于传输非常慢和大量被延迟的传输,可以等到所有其它类型的数据的传输完成之后再传输和接收数据。USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长。每个设备每帧只能传输一个同步的传输包。在完成了系统的配置信息和连接之后,USB的host就对不同的传输点和传输方式做一个统筹安排,用来适应整个的USB 的带宽。通常情况下,同步方式和中断方式的传输会占据整个带宽的90%剩下的就安排给控制方式传输数据。成都理工大学 2011 届本科毕业设计(论文)123.2 USB 的总线协议3.2.1
30、总线拓扑结构图 3-2 USB 总线拓扑USB 总线的物理连接是一种分层的菊花链结构,集线器(hub)是每个星形结构的中心。PC 机就是主机和根 Hub,用户可以将外设或附加的 Hub 与之相连。这些附加的 Hub 可以连接另外的外设以及下层 HubUSB。支持最多 5 个 Hub 层以及 127 个外设。图 3-2 描述了 USB 的物理拓扑结构,从中可以看出每一段的连接都是点对点的。3.2.2 USB 的物理层USB的物理接口包括电气特性和机械特性。USB通过一个四线电缆来传输信号与电源,如图3-3所示。 图 3-3 USB 电缆定义 成都理工大学 2011 届本科毕业设计(论文)13其中
31、,D+和D-是一对差模的信号线,而VBus和GND则提供了+5V的电源,它可以给一些设备(包括Hub)供电,但也要有一定的条件限制。USB提供了两种数据传输率:一种是12Mb的高速(fullspeed)模式,另一种是1.5Mb的低速模式。这两种模式可以同时存在于一个USB系统中。而引入低速模式,主要是为了降低要求不高的设备的成本,比如鼠标、键盘等等。USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m;而在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过3m。这主要是由于信号衰减的限制。为了提供信号电压保证,以及与终端负载相匹配,在电缆的每一端都使用了不平衡的终端负
32、载。这种终端负载也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。所有的设备都有上行的接口。上行和下行的接头是不能互换的,这保证了不会有非法的连接出现。插头与插座有 A 和 B 两个系列,系列 A 用于基本固定的外围设备,而系列 B 用于经常拔插的设备,这两个系列是不能互换的 。3.2.3 USB 总线协议所有总线操作都可以归结为三种包的传输。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号的包,我们称之为令牌包(Token Packet)。然后在令牌中指定的数据发送者发出一个数据包或者指出它没有数据可以传输。而数据的目的地一般要
33、以一个确认包(Handshake Packet)来作出响应以表明传输是否成功。1域的类型同步域(SYNC field):所有的包都起始于 SYNC 域,它被用于本地时钟与输入信号的同步,并且在长度上定义为 8 位。SYNC 的最后两位作为一个记号表明PID 域(标识域)的开始。标识域(Packet Identifier Field):对于每个包,PID 都是紧跟着 SYNC的,PID 指明了包的类型及其格式。主机和所有的外设都必须对接收到的 PID域进行解码。如果出现错误或者解码为未定义的值,那么这个包就会被接收者忽略。如果外设接收到一个 PID,它所指明的操作类型或者方向不被支持,外设将不作
34、响应。成都理工大学 2011 届本科毕业设计(论文)14地址域(Address Field):外设端点都是由地址域指明的,它包括两个子域:外设地址和外设端点。外设必须解读这两个域,其中若有任何一个不匹配,这个令牌就会被忽略。外设地址域(ADDR)指定了外设,它根据 PID 所说明的令牌的类型,指明了外设是数据包的发送者或接收者。ADDR 共 6 位,因此最多可以有 127 个地址。一旦外设被复位或上电,外设的地址被缺省为 0,这时必须在主机枚举过程中被赋予一个独一的地址。而 0 地址只能用于缺省值而不能分配作一般的地址。端点域(ENDP)有 4 位,它使设备可以拥有几个子通道。所有的设备必须支
35、持一个控制端点 0(endpoint0)。低速的设备最多支持 2 个端点:0 和一个附加端点。高速设备可以支持最多 16 个端点。帧号域(Frame Number Field):这是一个 11 位的域,指明了目前帧的排号,每过一帧(1ms)这个域的值加 1,到达最大值 XFF 后返回 0。这个域只存在于每帧开始时的 SOF 令牌中。数据域(Data Field):范围是 01023 字节,而且必须是整数个字节。CRC 校验:包括令牌校验和数据校验。2包的类型令牌包(Token Packed): 其中包括:IN(输入)、OUT(输出)、SETUP(设置)和 SOF(Start of Frame,
36、帧起始)四种类型。其中 IN、OUT、SETUP 的格式如图 3-4 所示。图 3-4 IN、OUT、SETUP 数据格式对于OUT和SETUP来说,ADDR和ENDP中所指明的端点将接收到主机发出的数据包,而对IN来说,所指定的端点将输出一个数据包。Token和SOF在三个字节的时间内以一个EOP(End of Packet)结束。如果一个包被解码为Token包但是并没有在3个字节时间内以EOP结束,就会被看作非法成都理工大学 2011 届本科毕业设计(论文)15包或该包被忽略。对于 SOF 包,它的格式如图 3-5 所示。主机以一定的速率(1ms0.05 一次)发送 SOF 包,SOF 不
37、引起任何操作。图 3-5 SOF 数据格式数据包:包括 Data0 和 Data1 两种类型。这两种包的定义是为了支持数据触发同步。数据包包含了 PID、DATA 和 CRC 三个域,如图 3-6 所示。图 3-6 DATA 数据格式应答包(Handshake Packet):仅包含一个如图 3-7 所示的 PID 域。Handshake 用来报告数据传输的状态。只有支持流控制的传输类型(控制中断和批传输)才能返回 Handshake。图 3-7 PID 数据格式Handshake包有三种类型:(1)确认包ACK:表明数据接收成功。(2)无效包NAK:指出设备暂时不能传送或接收数据,但无需主机
38、介入,可以解释成设备忙。(3)出错包STALL:指出设备不能传送或接收数据,但需要主机介入才能恢成都理工大学 2011 届本科毕业设计(论文)16复,NAK和STALL不能由主机发出。特殊包(Special):PID 名称为 PRE(preamble),用于低速操作的情形 。3.总线操作的格式图3-8 批操作流程批操作(bulk transaction):批操作包括令牌、数据、应答三个阶段,如图3-8所示。对于输入操作,如果设备不能返回数据,那么必须发出NAK或STALL包;对于输出如果设备不能接收数据,也要返回NAK或STALL。 图3-9描述了批操作的读写过程以及序列位(sequence
39、bit)和数据包PID的使用。图 3-9 批操作读写过程控制操作(control transaction):主要包括两个操作阶段(transaction 成都理工大学 2011 届本科毕业设计(论文)17stage):设置和状态。图3-10给出了设置操作的细节,如果数据没有正确接收,那么设备就会忽略它,而且不返回应答包。图 3-10 控制操作流程控制操作的详细描述如图 3-11 所示,其中我们要注意数据包 PID 的使用。图 3-11 控制操作读写过程中断操作(interrupt transaction):中断操作只有输入这一个方向,具体格式与批操作的输入情形如图3-12所示。成都理工大学 2
40、011 届本科毕业设计(论文)18图 3-12 中断操作流程同步操作(isochronous transaction): 同步操作不同于其他类型,如图3-13所示,其只包含两个阶段:令牌和数据。因为同步传输不支持重发的能力,所以没有应答阶段。另外它也不支持数据的触发同步与重试。图 3-13 同步操作流程成都理工大学 2011 届本科毕业设计(论文)194.数据触发同步与重试USB 提供了保证数据序列同步的机制,这一机制确保了数据传输的准确性。这一同步过程是通过 Data0 和 Data1 的 PID 以及发送者与接收者上的数据触发序列位(data toggle sequence bit)来实现
41、的。接收者的序列位只有当接收到一个正确的数据包时(包括正确的 PID)才能被触发。而发送者的序列位只有当接收到确认包 ACK 时才能被触发。在总线传输的开始,发送者与接收者的序列位必须一致,这是由控制命令来实现的。同步传输方式不支持数据触发同步。图 3-14、图 3-15、图 3-16 说明了数据触发同步的基本原理。图 3-14 数据触发与同步一图 3-15 数据触发与同步二成都理工大学 2011 届本科毕业设计(论文)20图 3-16 数据触发与同步三每次总线操作,接收者将发送者的序列位(被译码成数据包 PID 的一位,即Data0 或 Data1)与本身的相比较。如果数据不能接收,则必须发
42、送 NAK。如果数据可以被接收,并且两者的序列位匹配,则该数据被接收并且发送 ACK,同时接收者的序列位被触发。如果数据可以被接收,但两者的序列位不匹配,则接收者只发出 ACK 而不进行其它操作。对于发送者来说,在接收到 NAK 时或在规定时间内没有接收到 ACK,则将上一次的数据重发。5低速操作Hub 具有禁止高速信号进入低速设备的能力,这既防止了电磁干扰的发生,又保护了低速设备。图 3-17 是一次低速的输入操作,主机发送令牌与应答包并且接收了一个数据包。成都理工大学 2011 届本科毕业设计(论文)21图 3-17 低速方式的输入操作所有下行的低速传输的包,必须先发送一个PRE包。Hub
43、必须解释PRE包,而所有其它的USB设备必须忽略这个包。主机在发送完PRE包后,必须等待至少4位的时间,而在这个期间,Hub完成必要的设置,使之能接收低速的信号。在接收到EOP信号之后,Hub关闭低速设备的端口。上行的操作则没有上述的行为,低速与高速是一样的。 低速操作还有其它的限制:(1)数据包最大限制为 8 个字节。(2)只支持中断和控制传输方式。6.错误检验与恢复 USB 具有检查错误的能力,并且可以根据传输类型的要求进行相应的处理。例如,控制传输的需要很高的数据准确度,因此支持所有错误检验与重试来实现端对端的数据完整传输。而同步传输不允许重试,因此必须具有一定的容错性。USB 这种检查
44、错误的能力包括:PID 检验、CRC 检验、总线时间溢出以及EOP 错误检验等等。第 4 章 PC 与单片机通过 USB 的通信设计 4.1 设计方案选择由于实际应用中单片机在数据处理能力、人机交互等方面往往不能满足要求, 因而通常用 PC 来弥补单片机的这些不足。例如,在工程应用中,常常由一台PC 机和一台单片机构成主从式计算机测控系统。在这样的系统中, 以单片机为核心的智能测控仪表(从机)作为现场测控设备, 完成数据的采集、处理和控制各种任务, 同时将数据传给 PC 机(主机),PC 机将这些数据加工处理后,进行显示、打印报表等。PC 机也可以将各种控制命令传送给单片机, 干预单片机系统的
45、运行, 从而发挥 PC 机的优势。要实现这样的功能, 就涉及到 PC 机与单片机之间的通信问题。成都理工大学 2011 届本科毕业设计(论文)22现在的计算机提供了各种各样的串口,他们支持不同的通信协议,有着不同的功能。目前计算机提供的串口有 RS-232,RJ45,USB2.0 等。4.1.1 PC 机同单片机通信存在的问题目前,51 单片机同 PC 机的通信在大多数情况下仍然是使用 RS-232(DB-9)串口作为通信接口实现的。而随着 USB 接口技术的成熟和使用的普及,由于USB 接口有着一系列 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步的为 US
46、B 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于 RS-232(DB-9)串口与 PC 机联络的单片机设备的使用范围。4.1.2 USB 接口同 RS-232(DB-9)串口的比较 通过 USB 接口和 RS-232(DB-9)的比较,不难发现:(1)USB 接口支持即插即用和热插拔,而 RS-232(DB-9)串口不支持即插即用和热插拔,设备安装后需重启计算机方可使用。(2)USB 接口的传输速率较快,可达 480Mbps(V2.0),而 RS-232(DB-9)串口的最高速率仅为 19200 波特。(3)
47、USB 接口占用体积较小,插拔方便;而 RS-232(DB-9)串口的的插拔需要使用改锥,且在机箱后操作,比较麻烦。综上可知,USB 接口取代 RS-232(DB-9)串口的趋势不可逆转。另外在本设计中选择使用的单片机是 AT8C951。AT89C51 是一种低功耗、高性能的 8 位单片微型计算机,它采用了 CMOS 工艺和 ATMEL 公司的高密度NVRAM(非易失性随机存储器) 技术, 片内带有一个 4KB 的 FLASH FPROM(可擦除、可编程只读存储器) , 作为 INTEL8051 的换代产品, 其输出引脚和指令系统与MCS-51 完全兼容。由于 AT89C51 单片机具有集成度
48、高、面向控制、系统结构简单、价格便宜等诸多优点, 因而在智能化仪器仪表、数据采集、数据测量等方面有着广泛的应用。成都理工大学 2011 届本科毕业设计(论文)234.1.3 USB 转接芯片的选择目前常用的 USB 转接芯片包括 PL2303,CH341,CP2101,FT232 等。在综合考虑了各方面因素后,CH341 成为了本次电路设计的首选芯片。CH341 是南京沁恒电子公司生产的 USB 总线的转接芯片,通过 USB 总线提供异步串口,打印口,并口及常用的 2 线和 4 线等同步串行端口。其特点有:(1)提供全速 USB 设备借口,兼容 USB2.0,外围设备只需要晶体和电容;(2)可
49、通过外部的低成本串行 EPROM 定义厂商 ID,产品 ID,序列号等;(3)成本低廉,可直接转换原串口外围设备;(4)采用 SOP-28 封装,串口应用还提供小型的 SSOP20 封装。正是由于在 PC 机同单片机通信电路中,USB 转接芯片 CH341 具有以上其他芯片无法比拟的优点,同时价格低廉并且提供中文技术支持,因此它成为了本电路 USB 转接芯片的最优选择。本电路采用的是 SSOP-20 封装的 CH341T,其引脚图如图 4-1 所示。图 4-1 CH341T 引脚图4.2 硬件设计4.2.1 硬件电路设计CH341T提供全速USB设备接口,兼容USB2.0,外围器件只需要电容和
50、晶体,电路如图4-2 所示。成都理工大学 2011 届本科毕业设计(论文)24图 4-2 USB 通信模块电路图其中,电源电压为 5V,USB 接口的差分数据线对与 CH341T 的 UD-和 UD+直接相连。CH341T 提供 TTL 电平,同 AT89C51 直接采用简单的 3 线连接(RXDTXD;TXDRXD;GNDGND) 。在 5V 电源的情况下,V3 口需要外接 0.01uF 的退耦电容。TEN#为串口发送数据使能端,低电平有效。CH341T 必须使用 12Mhz 晶振,否则无法正常工作。为保证单片机能够产生与计算机匹配的波特率,单片机采用 11.0592Mhz 的晶振。4.2.
51、2 硬件驱动程序安装在网站 http:/ 可下载 CH341T 驱动程序 CH341SER.EXE,在确认驱动程序和硬件电路无误后,打开驱动程序。弹出安装对话框后选择 INSTALL,设备将自动安装驱动程序。安装完成后计算机将提示安装成功。将硬件电路通过 USB 接口连接至计算机,计算机自动识别并弹出新硬件安装对话框,选择自动安装,驱动程序即可成功安装至计算机。在计算机设备管理器中,可显示刚刚安装成功的 USB 串口。如图 4-3 所示。成都理工大学 2011 届本科毕业设计(论文)25图 4-3 安装完成后的设备管理器4.3 通信程序设计4.3.1 PC 机与 USB 通信程序设计图 4-4
52、 为计算机与 USB 通信处理流程图。开始USB 设置是否为 TRUE?检查设备是否配置调用 I2cWriteRead();发送数据接收数据结束处理 USB Setup包图 4-4 计算机与 USB 通信处理流程图部分关键代码如下:void main(void)成都理工大学 2011 届本科毕业设计(论文)26 init_port();/*初始化 I/O 口*/ init_timer0();/*设置定时器 0*/ init_special_interrupts();/*设置中断*/ D12_DATA = 0 xfb02;/*定义数据地址*/ D12_COMMAND = 0 xfb03;/*定义
53、命令地址*/ D12_DATA = 0 x7002;/*定义数据地址*/ D12_COMMAND = 0 x7003;/*定义命令地址*/ D12_SetDMA(0 x0);/*不使用 DMA 功能*/ bEPPflags.value = 0;/*初始化 USB 寄存器*/ /*上电复位,USB 总线重新连接指令 */ reconnect_USB(); while(TRUE ) if(bEPPflags.bits.configuration) I2cWriteRead();/*如果设备已配置,调用 I2cWriteRead()*/outportb(port,a); /*发送数据usbserve
54、();/*处理 USB 的 setup 包*/for(j=0;j9;j+) /*接收数据*/ while(!(inportb(port+5)&1); chj=inportb(port); for(j=0;j9;j+) printf(n %dn,chj); getch(); break; 成都理工大学 2011 届本科毕业设计(论文)274.3.2 单片机通信程序设计为实现单片机同 PC 机的简单通信功能,需要通过汇编指令使单片机完成一定的工作来验证 USB 接口通信的畅通。若要使单片机串口能够同 PC 机正常通信,单片机和 USB 接口需要使用相同的通信协议,在设备管理器中,可设置串口
55、破特率为 9600。而在单片机中,通过软件设置串口波特率为 9600,工作方式为方式一,每接收一个 8 位数据,将数据保存并回送至计算机,以此来实现对 USB通信畅通与否的测试。程序流程图如图 4-6 所示。开始设定定时器和 USB 工作方式开中断 等待中断中断产生接收数据关中断回送数据开发送中断等待数据接收完成返回初始状态图 4-6 单片机的程序流程图根据程序流程图,单片机的指令代码如下:ORG DDOOHSTART:MOV TMOD,#20H;定时器 T1 为方式 2MOV TL1,#DFDH;波特率为 9600SETB TR1MOV SCON,#50H;串口工作方式 1,REN=1SET
56、B ESSETB EA;开中断SJMP $;等待中断ORG 0023H;中断入口地址JNB BI,SBR;RI 为 1 时跳至发送,为 0 时说明发送已完成AJMP START;返回初始状态,等待下一次数据接收,实现数据的循环接收成都理工大学 2011 届本科毕业设计(论文)28SBR:AJMP SBR1ORG 0100HSBR1:CLR RIMOV A,ABUF;接收数据MOV B1,AMOV SBUF,A;数据回送JNB T1,$CLR T14.4 USB 通信模块调试USB 通信模块的调试使用串口调试工具(ComTools) ,该工具是一款功能强大的串口调试免费软件。其主要功能如下:(1
57、)支持 COM1COM8 串口的数据发送和接收,可重复发送和接收数据;(2)支持 HEX 格式数据和 ASC 格式数据的串口发送和接收;(3)可自定义数据格式,校验位,可自定义数据传输速率;(4)可自动记录发送和接收的数据并保存。使用串口调试工具可以方便的通过计算机向 USB 串口通信模块发送数据并记录所接收的数据。因此,本次 USB 通信模块的调试使用该串口调试工具完成PC 机同单片机的通信。打开串口调试工具。首先选择串口设置,设置串口为设备管理器中对应的串口(COM1) ,设置波特率为 9600,数据长度为 8 位,停止位为 1 位。在发送文本框中输入 2 字节 16 进制数据,点击发送向
58、串口发送 16 进制 8 位数据。观察接收文本框,可以发现,计算机成功接收到单片机回送的8 位数据。在清空发送文本框后,经过多次的重复操作观察确认,每一次都能正确接收数据。为了进一步测验系统的稳定性,在拔掉 USB 通信模块后重新插入,计算机能够自动识别串口,重新打开串口调试工具后仍然能够正确的发送和接收。因此,该 USB 通信模块的数据准确性和系统的稳定性都得到了验证。通过测试,该 USB 通信模块基本能达到如下设计要求:(1)通过 USB 接口实现串口通信,能够在 USB 接口上完成以往需要使用RS-232(DB9)进行通信的计算机设备的通信;成都理工大学 2011 届本科毕业设计(论文)29(2)支
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职动画设计(动画设计理论)试题及答案
- 2025年中职(应用化工技术)化工环保技术阶段测试试题及答案
- 近八年福建中考化学试题及答案2025
- 养老院老人心理咨询师激励制度
- 养老院志愿者服务管理制度
- 公共交通停车场管理制度
- 2026年手工皮具制作进阶试题集含答案
- 2026年西安高端会计人才选拔试题及答案
- 2026年乡镇检验员笔试重点题库含答案
- 2026年南宁律协面试题库与备考核心要点含答案
- 2025年互联网安全与隐私保护操作手册
- 洁净墙板专项施工方案
- 5g基站施工指导方案
- 浙江省金华市2024-2025学年七年级上学期期末地理试卷(含答案)
- 北京通州产业服务有限公司招聘参考题库及答案1套
- 2026年七台河职业学院单招职业技能笔试模拟试题带答案解析
- 2025至2030中国短弧氙灯行业调研及市场前景预测评估报告
- 2026广东河源市东源县司法局招聘司法协理员9人笔试备考题库及答案解析
- 炎德·英才·名校联考联合体2026届高三年级1月联考英语试卷(含答及解析)+听力音频+听力材料
- 2025年易制毒化学品自查报告
- 科创飞地合作协议书
评论
0/150
提交评论