基于usb协议的pc机与430单片机的通讯系统设计大学毕设论文.doc
ABSTRACT本 科 毕 业 设 计 论 文题目:基于USB协议的PC机与430单片机的通讯系统设计系别: 电气与信息工程系 专业: 电气工程及其自动化 班级: 学号 学生姓名: 指导老师: 2014 年 5 月ABSTRACT摘 要随着计算机技术的发展,尤其是单片机微型机技术领域,单片机的应用越来越广泛。为了在工业控制、数据采集及仪器仪表自动化等领域让其变得简单,我们采用分布式控制系统,而在此系统中,基于USB协议的PC机与单片机通讯系统是相对方便的。设计选用芯片为MSP430F149,它是一种工业级超低功耗的微控制器。之所以有超低功耗是因为其在降低芯片的电源电压及灵活控制运行的时钟方面都有独到之处。USB是计算机与外接设备连接的一种接口,具有连接方便,传输速率及可靠性高,能自动完成设备的检测与设置及无需单独给设备供电的特点。本设计主要介绍了如何使用一台计算机与单片机通过USB接口实现串行通信,在设计中采用单片机MSP430F149,USB转接芯使用CH341T,软件部分PC机采用C语言编程,单片机部分用中断方式完成数据的接受和发送,程序开发采用汇编语言和C语言。关键词:MSP430单片机,USB,PC机,串行通信ABSTRACTWith the development of computer technology,especially in the field of SCM,and it is widely applied.For industrial control,data collection and instrumentation automation and other fields allowed easier,We will use a distributed control system,while in the system,the communication system between SCM and PC based USB is relatively easy.The chip of design is NSP430F149,It is an industrial-grade ultra-low power micro controllers.The reason for this is because it reduces the chip's power supply voltage and flexible control aspects are unique running clock.USB is an interface between a computer and external devices connected,With easy connection,high transmission rate and reliability, can automatically detect and set the device to the device and do not need a separate power supply characteristics.This design mainly introduces how to use a computer and a single-chip micro computer via the 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 of development program.KEY WORDS : MCU、USB、personal computer、 serial communicationI I目录摘 要IABSTRACTIII1绪 论11.1研究现状及发展前景11.2 研究目的及意义11.3方案内容与结论22 通讯原理32.1串行通信32.2 RS232原理42.3. MSP430的串口通讯模块(USART)52.4.USB相关原理62.4.1热插拔62.4.2 USB数据传输72.4.3 USB总线协议82.5.通信协议133 硬件电路设计153.1 USB结构153.2接口电路设计153.2.1 CH341T概述153.2.2 MAX232特性173.2.3 RS-232 电气标准173.2.4接口电路设计184 软件设计214.1 功能描述214.2程序设计214.2.1 上位机(PC机)程序设计214.2.2下位机程序设计235 结 论31致 谢33参考文献3511绪 论1.1研究现状及发展前景工业控制领域,由单片机构成的控制系统很多,但是由于单片机的计算能力有限,难以进行复杂的数据处理,而PC机着重大量高速数据处理技术,控制能力却是有限的。这样使用PC机与单片机组成的分布式系统成为一个比较好的解决方案。同时纵观单片机的发展可以看出,以单片机为核心控制器的产品层出不穷,单片机控制技术已经成为电子设计技术及计算机领域中不可缺少的一部分。随着PC的广泛应用,其外设也越来越多,打印机、鼠标、扫描仪、游戏杆、音箱等。每个外设都需要通过一个接口与PC相连。外设多了,PC的接口自然也就不够用了。在很多特定的应用场合,如工业数据采集等领域,常常用采集板卡来完成工作,而每一个板卡自然会占用一个PC插槽。PC插槽就那么几个,要是采集点多了经常不够用。而且PC外设安装过程中比较麻烦的另一件事情是在加减设备时,必须关掉电源,加减设备完成之后再从新启动机器。对于板卡式的外设就更加麻烦了,您不得不打开机箱,而USB接口支持设备的即插即用和热插拔功能,从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,已经发展为3.1版本,成为当前电脑中的标准扩展接口。当前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。USB用一个4针(USB3.0标准为9针)插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接 127个外设设备,并且不会损失带宽。可以看出USB使用之广泛,同时有着极好的前景。它将是未来重要的PC机工业通讯接口之一,用于工业通信、存储及编程等。因此基于USB协议的单片机系统有着美好的前景。1.2 研究目的及意义 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米 。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决 方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用范围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用范围也将越来越广。本文所介绍的单片机和PC机的USB通信方法,电路简单,兼容性好,可移植性强,故可作为单片机同计算机的USB通信模块广泛应用于工业和电子产品的开发中。因此研究如何实现PC机与单片机通过USB之间的通信具有非常重要的现实意义。1.3方案内容与结论(1)串行通信原理介绍;(2)USB技术原理分析;(3)单片机和PC机通过USB实现串行通信。 本设计主要包含: 1)硬件设计:USB接口电路的设计; 2)软件设计:单片机的通信控制程序, PC机的通信程序。 PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。但是USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用范围也将越来越广。本文所介绍的单片机和PC机的USB通信方法,具有电路简单,兼容性好,可移植性强等特点,故可作为单片机同计算机的USB通信模块广泛应用于工业和电子产品的开发中。通讯原理2 通讯原理 2.1串行通信 1.串行通信分为同步和异步两种方式,在单片机中使用的通信方式为异步方式,而异步通信采用的是异步传送格式。如图下,数据发送和接收都是讲起始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位(低电平),用来表示字符开始。其后为7位或8位的数据编码,第8位通常为奇偶校验位,一共三种:奇校验、偶校验、无校验,可以根据需要选定。最后为停止位(高电平)用来表示字符传送结束。停止位起始位校验位起始位停止位 - 7或8位数据 - 0/10/1 1 0 00/10/10/10/10/10/10/1 1 00/10/12.串行通信的优点与并行通信相比,串行通信有着明显的优势。(1) 串行通信只需要一条通信道,电路简单,成本低,易实现。而并行通信道较多,实现复杂。(2) 串行通信传输速率较快,由于并行通信信道之间干扰较强,而且产生数据传输错误时,需要全部重发,而串行通信在传输错误时只需要重新传输错误位。(3) 串行通信支持数据异步传输。并行通信对数据传输设备和接受设备的同步要求很高,不方便计算机同外围设备的连接。 3.USB接口同RS-232串口的比较(1)USB支持即插即用和热插拔,而RS-232不支持,在设备安装后需要重新启动计算机才可使用。(2)USB接口占用体积小,插拔方便,而RS-232串口需要使用改锥插拔,又在主机箱后,操作不便。(3)USB接口的传输速率较快,可达480Mbps 系统框图2-1: 图2-1 系统框图控制系统由上位机、通讯接口和下位机组成。上位机是工控机,智能终端由单片机MSP430和外围传感器放大电路构成。单片机与PC机之间通信方式为串行异步方式,下位机采用中断方式进行与上位机的数据交换,上位机采用按时查询方式对各串口进行读写操作。单片机MSP430要想与PC 串口连接或者其它带有串口的终端设备连接,接口电路部分通过CH341T与MAX232进行电平和逻辑关系的转换。2.2 RS232原理单片机的串口是TTL电平,在实际应用时,需要将TTL电平转换成RS232电平。RS232C是一种电压型总线标准,可用于设计计算机接口与终端或外设之间的连接,以不同的极性的电压表示逻辑值。-3至-25表示逻辑“1”,+3至+25 表示逻“0”,其电平与TTL和CMOS电平是不同的,所以在通信时必须进行转换。RS232(DB9)引脚图如下图2-2 DB9引脚图其引脚定义: 1:DCD:载波检测。主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。 2:RXD:此引脚用于接收外部设备送来的数据;在你使用Modem时,你会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入。 3:TXD:此引脚将计算机的数据发送给外部设备;在你使用Modem时,你会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。4:DTR:数据终端就绪;当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。 5:GND:信号地;此位不做过多解释。 6:DSR:数据设备就绪;此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。 7:RTS:请求发送;此脚由计算机来控制,用以通知Modem马上传送数据至计算机;否则,Modem将收到的数据暂时放入缓冲区中。 8:CTS: 清除发送;此脚由Modem控制,用以通知计算机将欲传的数据送至Modem。 9:RI: Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定2.3. MSP430的串口通讯模块(USART)由于本设计解决的是串口通讯问题,所以通信的基本原理是利用MSP430的串口通讯模块(USART)来实现单片机和PC机之间的串口通信。1、USART的硬件构成: SP430F149的串行通讯模块(USART)的作用主要是实现对外通信,它可以实现异步通信(UART)和同步通信(SPI)两中通讯功能。图2-2是USART的通讯模块。由图2-2可以看出USART模块分别由波特率部分,接收部分,发送部分,端口IO部分组成。USART接收部分包括接收寄存器,接收移位寄存器以及控制模块组成,它在接收信息的时候产生一些状态信息,并设置相应的中断标志位。USART的发送部分包括发送寄存器,发送移位寄存器以及控制模块组成,它在发送的时候产生一些状态信息,并可以设置发送中断标志位。USART的波特率产生部分主要包括时钟的选择,波特率的产生以及波特率的调整部分组成,它通过设置波特率寄存器和波特率调整寄存器来获得需要的波特率。USART包含一个控制模块,通过控制模块可以选择相应的工作模式,同时设置相应的管脚。对于不同系列的MSP单片机其USART模块可能有一个也可能有两个,而MSP430F149有两个。 图2-3:串行通信模块2.USART的控制寄存器和工作模式USART的控制寄存器是八个寄存器之中的一个,表1-1是其位的格式, 表1-1 PENVPEVSPCHARLISTENSYNCMMSWRSTUSART的控制寄存器有8个有效控制位,通过对这些控制位的设置可以对工作模式,通信协议,校验位等进行选择。用户对USART的所有操作都是通过操作该寄存器的控制位来完成的。下面是各个位的简单功能描述,知道这些控制位的功能,有助于我们在后面进行硬件连接和软件设计.PENV:校验使能位。该位为0不允许校验;为1时,允许校验,且在发送时产生校验位,在接收时希望接收到校验位。在地址位多机模式中地址位包括在校验计算中。PEV:奇偶校验位。为0时,奇校验,为1时进行偶校验。SP:停止位。接收时停止位只有一个。发送时,该位为0,只有一个停止位;该位为1时,有两个停止位。CHAR:字符长度位。该位为0表示发送的数据为7位,该位为1时表示发送的数据为8位。LISTEN:监听使能位。该位为0没有反馈;该位为1,有反馈,发送的数据送到接收器,可以进行自环测试。SYNC:该位为0时,USART为异步通信(UART)模式;该位为1,USART为同步通信(SPI)模式。MM:多机模式选择。当该位为0时,多机模式选择线路空闲多机协议;该位为1时,多机模式选择地址位多机协议。SWRST:软件复位使能位。也叫控制位。该位影响着其他控制位和状态位的状态,在串行口的使用过程中,这一位比较重要。一次正确的USART模块初始化应该是这样的顺序:先在SWRST=1的情况下设置串口;然后设置SWRST=0;最后如果使用中断,则设置相应的中断使能。该位为0时:USART模块被允许。该位为1时:如果该位置位,则USART状态机和操作运行标志位都被初使化成复位状态(URXIFG=URXIE=UTXIE=0,UTXIFG=1);同时所受影响的逻辑位保持在复位状态,直到SWRST位复位。这意味着,当系统复位后,只有对SWRST位复位,USART的功能才能被重新允许;但是接收和发送标志URXE和UTXE不受SWRST控制位的影响。2.4.USB相关原理2.4.1热插拔热插拔最早出现在服务器领域,是为了提高服务器易用性而提出的。在我们平时用的电脑中一般会有USB接口,这种接口能够实现热插拔。如果没有热插拔功能,即使磁盘损坏不会造成数据的丢失,用户仍然需要暂时关闭系统,以便能够对硬盘进行更换。而是用热插拔技术只要简单的打开连接开关或者运转手柄就可以直接取出硬盘,而系统仍然可以不间断的正常运转。实现热插拔有几个方面的支持:总线电气特征,主板BIOS,操作系统和驱动设备,那么我们只要达到以上条件就可以实现热插拔,系统总线支持部分热插拔技术。驱动方面,针对Windows NT,Novell的Netware,SCO UNIX的驱动都把热插拔功能整合了进去,只要选择针对以上操作系统的驱动,实现热插拔的最后一个要素就具备了。在操作系统方面,从Windows95开始就开始支持即插即用,但对于热插拔支持却很有限,直到NT 4.0开始,微软开始注意到NT操作系统将针对服务器领域,而这个领域中热插拔是很关键的一个技术,所以操作系统中就增加了完全的热插拔支持,并且这个特性一直延续到基NT技术的Windows 2000/XP操作系统,因此只要使用NT4.0以上的操作系统,热插拔方面操作系统就提供了完备的支持。2.4.2 USB数据传输主控制器负责主机和USB设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由0个或多个管道组成,它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道,当提出配置请求时,主控制器根据主机软件提供的参数提供服务。USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输及数据块传输。每种传输模式应用到具有相同名字的终端,则具有不同的性质。控制传输类型支持外设与主机之间的控制,状态,配置等信息的传输,为外设与主机之间提供一个控制通道。每种外设都支持控制传输类型,这样主机与外设之间就可以传送配置和命令/状态信息。等时(lsochronous)传输类型(或称同步传输)支持有周期性,有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。该类型无差错校验,故不能保证正确的数据传输,支持计算机电话集成系统(CTI)和音频系统与主机的数据传输。中断传输类型支持像游戏手柄,鼠标和键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但对响应时间敏感,要求马上响应。数据块(Bulk)传输类型支持打印机,扫描仪,数码相机等外设,这些外设与主机间传输的数据量大,USB在满足带宽的情况下才进行该类型的数据传输。USB采用分块带宽分配方案,若外设超过当前带宽分配或潜在的要求,则不能进入该设备。同步和中断传输类型的终端保留带宽,并保证数据按一定的速率传送。集中和控制终端按可用的最佳带宽来传输传输数据。USB的结构框架图: 图2-4 USB结构框架图2.4.3 USB总线协议所有总线操作都可以归结为三种包的传输。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号的包,我们称之为令牌包(Token Packet)。然后在令牌中指定的数据发送者发出一个数据包或者指出它没有数据可以传输。而数据的目的地一般要以一个确认包(Handshake Packet)来作出响应以表明传输是否成功。1域的类型同步域(SYNC field):所有的包都起始于SYNC域,它被用于本地时钟与输入信号的同步,并且在长度上定义为8位。SYNC的最后两位作为一个记号表明PID域(标识域)的开始。标识域(Packet Identifier Field):对于每个包,PID都是紧跟着SYNC的,PID指明了包的类型及其格式。主机和所有的外设都必须对接收到的PID域进行解码。如果出现错误或者解码为未定义的值,那么这个包就会被接收者忽略。如果外设接收到一个PID,它所指明的操作类型或者方向不被支持,外设将不作响应。地址域(Address Field):外设端点都是由地址域指明的,它包括两个子域:外设地址和外设端点。外设必须解读这两个域,其中若有任何一个不匹配,这个令牌就会被忽略。外设地址域(ADDR)指定了外设,它根据PID所说明的令牌的类型,指明了外设是数据包的发送者或接收者。ADDR共6位,因此最多可以有127个地址。一旦外设被复位或上电,外设的地址被缺省为0,这时必须在主机枚举过程中被赋予一个独一的地址。而0地址只能用于缺省值而不能分配作一般的地址。端点域(ENDP)有4位,它使设备可以拥有几个子通道。所有的设备必须支持一个控制端点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,帧起始)四种类型。其中IN、OUT、SETUP的格式如图2-4所示。图2-5 IN、OUT、SETUP数据格式对于OUT和SETUP来说,ADDR和ENDP中所指明的端点将接收到主机发出的数据包,而对IN来说,所指定的端点将输出一个数据包。Token和SOF在三个字节的时间内以一个EOP(End of Packet)结束。如果一个包被解码为Token包但是并没有在3个字节时间内以EOP结束,就会被看作非法包或该包被忽略。对于SOF包,它的格式如图2-5所示。主机以一定的速率(1ms±0.05一次)发送SOF包,SOF不引起任何操作。图2-6 SOF数据格式数据包:包括Data0和Data1两种类型。这两种包的定义是为了支持数据触发同步。数据包包含了PID、DATA和CRC三个域,如图2-6所示。图2-7 DATA数据格式应答包(Handshake Packet):仅包含一个如图2-7所示的PID域。Handshake用来报告数据传输的状态。只有支持流控制的传输类型(控制中断和批传输)才能返回Handshake。图2-8 PID数据格式Handshake包有三种类型:(1)确认包ACK:表明数据接收成功。(2)无效包NAK:指出设备暂时不能传送或接收数据,但无需主机介入,可以解释成设备忙。(3)出错包STALL:指出设备不能传送或接收数据,但需要主机介入才能恢复,NAK和STALL不能由主机发出。特殊包(Special):PID名称为PRE(preamble),用于低速操作的情形 。3. 总线操作的格式 批操作(bulk transaction):批操作包括令牌、数据、应答三个阶段,如图2-8所示。对于输入操作,如果设备不能返回数据,那么必须发出NAK或STALL包;对于输出如果设备不能接收数据,也要返回NAK或STALL。图2-8 批操作流程 图2-9描述了批操作的读写过程以及序列位(sequence bit)和数据包PID的使用。 图2-10批操作读写过程控制操作(control transaction):主要包括两个操作阶段(transaction stage):设置和状态。图2-10给出了设置操作的细节,如果数据没有正确接收,那么设备就会忽略它,而且不返回应答包。图2-11 控制操作流程控制操作的详细描述如图2-11所示,其中我们要注意数据包PID的使用。图2-12控制操作读写过程中断操作(interrupt transaction):中断操作只有输入这一个方向,具体格式与批操作的输入情形如图2-12所示。图2-13中断操作流程同步操作(isochronous transaction): 同步操作不同于其他类型,如图2-13所示,其只包含两个阶段:令牌和数据。因为同步传输不支持重发的能力,所以没有应答阶段。另外它也不支持数据的触发同步与重试。图2-14同步操作流程4.数据触发同步与重试USB提供了保证数据序列同步的机制,这一机制确保了数据传输的准确性。这一同步过程是通过Data0和Data1的PID以及发送者与接收者上的数据触发序列位(data toggle sequence bit)来实现的。接收者的序列位只有当接收到一个正确的数据包时(包括正确的PID)才能被触发。而发送者的序列位只有当接收到确认包ACK时才能被触发。在总线传输的开始,发送者与接收者的序列位必须一致,这是由控制命令来实现的。同步传输方式不支持数据触发同步。图2-14、图2-15、图2-16说明了数据触发同步的基本原理。 图2-15 数据触发与同步一图2-16数据触发与同步二图2-17数据触发与同步三每次总线操作,接收者将发送者的序列位(被译码成数据包PID的一位,即Data0或Data1)与本身的相比较。如果数据不能接收,则必须发送NAK。如果数据可以被接收,并且两者的序列位匹配,则该数据被接收并且发送ACK,同时接收者的序列位被触发。如果数据可以被接收,但两者的序列位不匹配,则接收者只发出ACK而不进行其它操作。对于发送者来说,在接收到NAK时或在规定时间内没有接收到ACK,则将上一次的数据重发。5低速操作Hub具有禁止高速信号进入低速设备的能力,这既防止了电磁干扰的发生,又保护了低速设备。图2-17是一次低速的输入操作,主机发送令牌与应答包并且接收了一个数据包。图2-18 低速方式的输入操作所有下行的低速传输的包,必须先发送一个PRE包。Hub必须解释PRE包,而所有其它的USB设备必须忽略这个包。主机在发送完PRE包后,必须等待至少4位的时间,而在这个期间,Hub完成必要的设置,使之能接收低速的信号。在接收到EOP信号之后,Hub关闭低速设备的端口。上行的操作则没有上述的行为,低速与高速是一样的。 低速操作还有其它的限制:(1)数据包最大限制为8个字节。(2)只支持中断和控制传输方式。6.错误检验与恢复 USB具有检查错误的能力,并且可以根据传输类型的要求进行相应的处理。例如,控制传输的需要很高的数据准确度,因此支持所有错误检验与重试来实现端对端的数据完整传输。而同步传输不允许重试,因此必须具有一定的容错性。USB这种检查错误的能力包括:PID检验、CRC检验、总线时间溢出以及EOP错误检验等等。 2.5.通信协议在PC机与多台单片机通讯中,确定一个明确合理的通讯协议是设计关键,其中包括对数据格式、传送速度、通讯方式、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定。由于已经选择了UART的多机通信模式。为了区别不同的分机,必须为每个分机分配一个唯一的地址,此地址唯一区别各单片机。数据格式采用数据包的形式,一次传输一组数据。数据包格式如表2-1所示:表2-1起始标志位下位机地址操作命令数据长度数据内容和校验结束标志 起始标志位:1 个字节 分机地址: 1 个字节命令/ 数据: 1 个字节 数据长度: 1 个字节 数据内容: n 个字节 和检验: 2 个字节 结束标志位: 1 个字节 数据格式中的地址位表示与PC 机通讯的单片机地址。操作命令则表示此次通讯要完成的操作。在单片机发送上位机接收的时候,协议规定命令FFH 为上报数据, 此时数据包中的数据长度、数据内容、和检验三个域便填充实际发送数据的个数、数据及和校验;命令F0H - F3H 则表示单片机给PC机的反馈信息,此时数据包中的数据长度、数据内容和检验三个域为空,其中当命令为F0H 表示接收成功,F1H 表示接收失败并要求重发,F2H 表示单片机有数据上报要求,F3H 表示单片机无数据上报要求。这些命令域在PC 机发送单片机接收的时候也有相似的协议规定。 293 硬件电路设计3.1 USB结构USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游(Downstream)设备提供电源,对于高速且需要高带宽的外设,USB以全速12Mbps的传输数据;对于低速外设,USB则以1.5Mbps的传输速率来传输数据。USB总线会根据外设情况在两种传输模式中自动地动态转换。USB是基于令牌的总线。类似于令牌环网络或FDDI基于令牌的总线。USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机(Host),集线器(Hub)和功能设备。主机,也称为根,根结或根Hub,它做在主板上或作为适配卡安装在计算机上,主机包含有主控制器和根集线器(Root Hub),控制着USB总线上的数据和控制信息的流动,每个USB系统只能有一个根集线器,它连接在主控制器上。集线器是USB结构中的特定成分,它提供叫做端口(Port)的点将设备连接到USB总线上,同时检测连接在总线上的设备,并为这些设备提供电源管理,负责总线的故障检测和恢复。集线可为总线提供能源,亦可为自身提供能源(从外部得到电源),自身提供能源的设备可插入总线提供能源的集线器中,但总线提供能源的设备不能插入自身提供能源的集线器或支持超过四个的下游端口中,如总线提供能源设备的需要超过100mA电源时,不能同总线提供电源的集线器连接。功能设备通过端口与总线连接。USB同时可做HUB使用。3.2接口电路设计3.2.1 CH341T概述 目前常用的USB转接芯片包括PL2303,CH341T,cP2101,FT232等。在综合考虑了各方面因素后,CH341T成为了本次电路设计的首选芯片。CH341T是南京沁恒电子公司生产的USB总线的转接芯片,通过USB总线提供异步串口,打印口,并口及常用的2线和4线等同步串行端口。其特点有:(1)提供全速USB设备借口,兼容USB20,外围设备只需要晶体和电容;(2)可通过外部的低成本串行EPROM定义厂商ID,产品ID,序列号等;(3)成本低廉,可直接转换原串口外围设备: CH341T引脚图如下:图3-1 CH341T引脚图当CH341T 工作在异步串口模式时,CH341T 提供串口发送使能、串口接收就绪等交互式的速率控制信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。异步串口方式下CH341T 芯片的引脚包括:数据传输引脚、硬件速率控制引脚、工作状态引脚、辅助引脚。数据传输引脚包括:TXD 引脚和RXD 引脚。串口空闲时TXD 和RXD 应该为高电平。硬件速率控制引脚包括:TEN#引脚和RDY#引脚。TEN#是串口发送使能,当其为高电平时,CH341T将暂停从串口发送数据,直到TEN#为低电平才继续发送。RDY#引脚是串口接收就绪,当其为高电平时,说明CH341T 还未准备好接收,暂时不能接收数据,有可能是芯片正在复位、USB 尚未配置或者已经取消配置或者串口接收缓冲区已满等。工作状态引脚包括:TNOW 引脚和ROV#引脚。TNOW 以高电平指示CH341T 正在从串口发送数据,发送完成后为低电平,在半双工串口方式下,TNOW 可以用于指示串口收发切换状态。ROV#以低电平指示CH341T 内置的串口接收缓冲区即将或者已经溢出,后面的数据将有可能被丢弃,正常情况下接收缓冲区不会溢出,所以ROV#应该为高电平。CH341T 内置了独立的收发缓冲区,支持单工、半双工或者全双工异步串行通讯。串行数据包括1 个低电平起始位、5 到9 个数据位、1 或2 个高电平停止位,支持奇校验/偶校验/标志校验空白校验。CH341T 支持常用通讯波特率:50、75、100、110、134.5、150、300、600、900、1200、1800、2400、3600、4800、9600、14400、19200、28800、33600、38400、56000、57600、76800、115200、128000、153600、230400、460800、921600、1500000、2000000 等。串口发送信号的波特率误差小于0.3%,串口接收信号的允许波特率误差不小于2%。3.2.2 MAX232特性MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。其引脚主要有三部分,第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1O