基于CH341A的计算机与单片机通信技术研究.docx_第1页
基于CH341A的计算机与单片机通信技术研究.docx_第2页
基于CH341A的计算机与单片机通信技术研究.docx_第3页
基于CH341A的计算机与单片机通信技术研究.docx_第4页
基于CH341A的计算机与单片机通信技术研究.docx_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

清华大学2012届毕业设计说明书毕业设计说明书基于CH341A的计算机与单片机通信技术研究 学生姓名: 学号: 学 院: 专 业: 指导教师: 2012 年 6月基于CH341A的计算机与单片机通信技术研究摘要通用串行总线USB是PC体系中的一套全新的工业标准。通用串行总线(Universal Serial Bus,USB)凭借其价格低廉、使用简单、协议灵活、接口标准化和易于端口扩展等优点,迅速占领了计算机外设接口领域的统治地位,它的应用已非常广泛。本课题的主要研究内容是:掌握USB通信协议及器件工作方式、利用AT89C51单片机控制CH341A接口芯片及周边电路、设计接口电路,最终通过USB接口实现单片机与计算机之间的串行通信。本课题使用的USB接口芯片是南京沁恒电子公司的CH341A,所使用的驱动是用南京沁恒电子公司提供的驱动程序,完全保证了软硬件的可靠性、兼容性。关键词: USB接口,CH341A,串行通信,AT89C51Research Based on the CH341A the Computer Communicate with the MicrocontrollerAbstractThe Universal Serial Bus (USB) is specified to be an industry standard extension to the PC architecture. For the advantages of low cost,easy to use,protocol flexible,interface standardization and port easy to expand,USB (Universal Serial Bus) occupies the Predominant Position in the region of computer peripheral interface. It has become increasingly widespread in application.The main content of our task is:Study the specification of USB and master the way of how USB device works; use singlechip AT89C51 to handle CH341A and other chips; design the interface circuit and firmware, and finally realize Serial communication between the USB interface and the host operated on Windows though the USB cable.The USB controller we select is CH341A that is produced by Nanjing Qin constant company and the driver we installed is offered by Nanjing Qin constant company. So both the software and the hardware of the project is reliable and has good compatibility.Key words: USB interface ,CH341A,Serial communication,AT89C51目 录1 绪论11.1课题研究背景11.2本论文工作及组织结构22 系统相关技术概论42.1 串口通信的基本知识42.2 USB接口技术概述112.3“自顶向下”的设计方法133 CH341A及USB转串口功能介绍153.1 CH341A概述153.2 CH341A异步串口特点153.3 CH341A功能配置163.4 CH341A异步串口时的引脚说明163.5 CH341A作为异步串口使用174 系统硬件设计194.1系统的结构与原理194.2 系统各模块设计204.3 硬件驱动程序安装245 系统软件设计255.1 系统软件整体设计思想255.2各功能模块软件程序256 总结32附录A 系统总原理图34附录B 程序流程图35附录C 程序清单38参考文献42致谢44第I页 共I页1 绪论1.1课题研究背景伴随着信息技术、数字技术和网络技术的发展,计算机、嵌入式系统等数字设备被广泛应用到生产、生活的各个领域,可以说无所不在1。在很多情况下,这些相对独立的系统之间要进行诸如工作状态状态、环境数据、控制信息等的传递,就是我们通常所说的通信。而串口通信具有连接简单,成本低,开发容易的优点,并且现有的微控制器一般都带有串行通讯的接口,因此,在实性要求不是很高,数据量不是很大的情况下,利用串口通信完成多机通讯成为了较为普遍的选择。当设备需要通过串口与上位机进行信息的交换时,就必须进行接口转换2。另一方面,随着计算机硬件的飞速发展以及USB设备的迅速普及,USB接口已逐渐取代了串口和并口在计算机上的位置。这是由于USB接口有非常大的优势:传输速度快,目前最普及的USB2.0的最大传输速度达到了480Mbps3。一个USB接口在理论上可支持127个装置,极大的方便了计算机与外设的连接。USB还有一个最为显著的优点,那就是支持热插拔,在开机的情况下,你也可以安全地断开或连接USB设备4,真正达到即插即用的目的。正是这些优势,使得USB接口在计算机上迅速普及并挤占了并口和串口的位置。在工业场合中,考虑到易用性和成本因素,不可能为每个串口配置一台电脑实现串口到USB的转换。这种情况下,USB只能应用在没有PC的领域中,这也正是目前USB的一个弱点。解决这一根本问题的办法就是在嵌入式系统中集成USB主机功能,使之能够和USB设备通信。本课题采用CH341A构建单片机与计算机之间的USB通讯电路。这种芯片的优点是数据接收和发送的协议转换工作全部由芯片独立完成,无需干预,也不用编写芯片的固件。CH341A是南京沁恒公司生产的USB总线转接芯片。当CH341A工作在异步串口模式时,CH341A提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。利用USB接口作为该系统的通信接口,安装灵活、传输速度快、可靠性高、易于扩展;利用PC机完成数据分析与数据处理。CH341A作为一种新型的、功能强大的USB接口转换芯片,可以工作在多种模式,且接线简单、控制方便、使用灵活可满足用户的多种需求。(由于CH341A屏蔽了USB接13的底层协议,可以方便地在嵌入式系统中增加USB接13,无需电平转换器件,在驱动程序的控制下直接与PC机通讯。极大地方便了用户,缩短开发周期、减少研发费用)通用串行总线(USB)是一种应用前景非常广阔的新型串行接口总线。它具有使用方便、易于扩展和传输速率高的特点,广泛应用于各种中低速计算机外设及数字设备中,并在不断发展完善之中。基于USB总线的数据传输方法有着其他方式所没有的高速与方便,因此有着很高的实际应用价值。1.2本论文工作及组织结构1.2.1主要的研究工作在充分调研和查阅大量资料之后,论文采用CH341A构建单片机与计算机之间的USB通讯电路。USB与串口的连接采用南京沁恒电子公司生产的USB转串口芯片CH341A来实现。具体而言本文主要做了以下工作:1)通过检索国内外相关资料,了解计算机与单片机通信技术及接口电路;2).了解研究基于CH341A的计算机与单片机通信的实际意义;3).研究CH341A的工作原理、结构、特性及功能;4).设计方案,使能根据任务要求完成简单的通讯及对单片机的控制;5).硬件设计,完成各部分功能电路设计;6).编制、优化系统软件程序和流程图,采用模块化结构,编写各部分程序;7).各部分电路仿真,然后再对整个系统试验,看系统能否比较理想的完成指定任务;8).完成基于CH341A的计算机与单片机的通讯接口设计及相互间通讯研究。1.2.2论文的组织结构论文章节安排如下:第一章主要分析了课题研究的背景及意义,并介绍了论文的主要研究工作和组织结构。第二章介绍了系统相关技术,包括串口通信的原理与应用、USB通讯技术的原理与应用、USB与串口转换芯片的相关知识等知识。第三章介绍了CH341A的工作原理、结构、特性及功能及USB转串口功能。第四章从整体上对本课题设计阐述,论述系统组成、工作原理、硬件架构介绍,确定了本课题的实现方式。第五章阐述了系统软件整体设计思想,并进行各功能模块软件程序设计。第六章对全文的研究工作进行了总结。2 系统相关技术概论2.1 串口通信的基本知识2.1.1 并行通信与串行通信微机的信息交换有两种方式进行:串行通信方式和并行通信方式。(一)串行通信所谓“串行通信”是指计算机和外设之间使用一条信号线(另外需要地线,可能还需要控制线),数据在一根信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度5。如图2.1所示。这种通信方式使用的信号线少,在远距离通信中可以极大地节约通信成本,当然,其传输速度比并行传输要慢。D0 D1 D2 D3 D4 D5 D6 D7T图2.1串行传输示意图由于只是在接口与外设之间按串行方式传输,而在CPU与接口之间要按并行方式传输,所以,在串行接口中,必须要有“发送移位寄存器”(并串)和“接收移位寄存器”(串并)。典型的串行接口结构如2.2所示。在数据的输出过程中,CPU首先把要输出的数据并行地送入“数据输出寄存器”中,然后由“数据输出寄存器”送入“发送移位寄存器”,最后由“发送移位寄存器”把数据1位1位地发送给外设。“发送移位寄存器”的输出速度由“发送时钟”确定6。在数据的输入过程中,数据被1位1位地从外设送入接口的“接收移位寄存器”中,当“接收移位寄存器”中接收完1个字符后,“接收移位寄存器”把数据送入“数据输入寄存器”。CPU从“数据输入寄存器”中读取刚刚接收到的字符(D0-D7同时被CPU读至累加器中)。“接收时钟”的频率决定了“接收移位寄存器”的移位速度。能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,165507。状态寄存器控制寄存器数据寄存器输入串行输入并行输出并行输入串行输出数据输出寄存器CS数据总线收发联络信号逻辑地址译码控制串行输入串行输出中断请求写信号读信号串入并处移位寄存器并入串出移位寄存器发送时钟接收时钟图2.2串口内部结构图串行通信的设备是最古老的沟通机制之一。从IBM个人电脑和兼容式电脑的时代开始,几乎所有的计算机都配有一个或多个串行端口和一个并行端口。顾名思义,一个串行端口发送和接收串行数据,一次一位数据。相反,一个并行端口一次发送和接收8位数据,使用8个单独的电线。尽管相对较慢的传输速度远低于并行端口,串行端口通信依然因为它简单的设备和高的成本效益而是一个受欢迎的连接选项。虽然今天的消费产品中在串行连接的地方使用USB连接,但还有很多的设备使用串行端口作为与外部世界的唯一连接。一个串行设备一次发送和接收一位数据,有些设备因为在同一时间发送和接收数据,被称为全双工设备。其他可以在任何时间发送或接收被称为单双工。开始传输时,设备先发送一个起始位,其次是数据位。该数据位可以是五、六、七或8位,基于商定而定。两个发送方和接收器必须设置为相同的数据通信比特或正确的比特率。数据位被发送完后,就会发送一个停止位。一个停止位可以是一位,一个半位,或两位。波特率是数据从一个设备到另一个的传输速度,波特率通常以每秒的位数(bps)来计量。为了检测数据已被正确发送,一个可选的校验位可以同数据位在一起。一个校验位可以是以下内容:奇数,偶数,mark,space或无(空的奇偶位标志几乎总是被使用)。使用校验位提供了一个基本的机制,以检测已发送数据损坏,但不保证检查数据本身的错误。然而,校验位可用于改善完整性数据传送。(二)并行通信在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传送,这种传输被称为并行通信,如图2.3所示。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。计算机或PLC各种内部总线就是以并行方式传送数据的。发送端接收端11001101图2.3 并行通信(1)各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。(2)微机系统中最基本的信息交换方式。(3)并行传递的信息不要求固定的格式。(4)并行接口的数据传输率比串行接口快8倍,标准并口的数据传输率理论值为1Mbps(兆比特/秒)。(5)并行传输的数据宽度可以是1128位,甚至更宽,但是有多少数据位就需要多少根数据线,因此传输的成本较高。(6)并行通信抗干扰能力差。(7)在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内个插件板之间的数据传输都是并行的。(8)以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据。(9)适合于外部设备与微机之间进行近距离、大量和快速的信息交换。(10)并行数据传输只适用于近距离的通信,通常传输距离小于30米。2.1.2串行通信工作模式如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工8。电话线就是二线全双工信道。 由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。(一)半双工方式若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图2.4所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。 甲乙发收发收半双工图2.4 半双工通信示意图当计算机主机用串行接口连接显示终端时,在半双工方式中,输入过程和输出过程使用同一通路。有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况。目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚。在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向。(二)全双工方式当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图2.5所示。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号(可能还需要控制线和状态线,以及地线)。发送器接收器接收器发送器全双工甲乙图2.5 全双工通信示意图2.1.3异步传输和同步传输串行通讯又分为同步通讯、异步通讯两种方式。串行传输中,数据是一位一位按照到达的顺序依次传输的,每位数据的发送和接收都需要时钟来控制。发送端通过发送时钟确定数据位的开始和结束,接收端需要在适当的时间间隔对数据流进行采样来正确的识别数据。接收端和发送端必须保持步调一致,否则数据传输就会出现差错。为了解决以上问题,串行传输可采用以下两种方法:异步传输和同步传输。(一)异步传输通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0,以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示,占用 12 位宽度。一个字符占用 58位,具体取决于数据所采用的字符集。例如,电报码字符为 5 位、ASCII码字符为 7 位、汉字码则为8 位。此外,还要附加 1 位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单的差错控制。发送端与接收端除了采用相同的数据格式(字符的位数、停止位的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。典型的速率有:9600 b/s、19.2kb/s、56kb/s等。异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。例如,计算机与Modem之间的通信就是采用这种方式。它的缺点是通信开销大,每传输一个字符都要额外附加23位,通信效率比较低。例如,在使用Modem上网时,普遍感觉速度很慢,除了传输速率低之外,与通信开销大、通信效率低也密切相关。(二)同步传输通常,同步传输是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),以便对数据块进行差错控制。所谓同步传输是指数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。和异步传输相比,数据传输单位的加长容易引起时钟漂移。为了保证接收端能够正确地区分数据流中的每个数据位,收发双主必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。由于异步通讯易于控制,简单实用,因此本论文设计采用异步通讯方式。2.1.4 异步串口通讯方式UART UART是一种串行通信方式,数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信分为两种类型:同步通信方式和异步通信方式。文中采用的是异步通信方式,其数据格式如图2.6所示,每帧数据由开始位、数据位、奇偶校验位和停止位四部分依次组成。图2.6 异步通信方式异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑“1”状态;当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个电平就是起始位。起始位通过通信线传给接收设备,当接收设备检测到逻辑低电平后,就开始准备接收数据位。根据需要数据位可以是5位、6位、7位或8位数据,发送时首先发送低位,即低位在前高位在后。奇偶校验位为可编程位,用来表明串行数据是采用奇校验还是偶校验。在字符帧中,奇偶校验位排在数据位的后面,只占1位。若不作校验使用时,此位用来表示本帧信号的性质是地址或数据,1表示传送的为地址帧,0表示传送的为数据帧。停止位为高电平1信号,位于字符帧的末尾,接收端收到此信息表示一帧信息的结束,停止位可以是1位、1位半或2位,而且必须用1电平表示。2.1.5 波特率的设置 要实现单片机与PC 机的串行通信,双方的波特率必须一致.PC 机串行通信的波特率参数通常为一些标准的参数,可直接使用.因此实现MCS-51 单片机和PC机的串行通信时,选择MCS51 单片机串行通信的波特率至关重要.波特率根据串行口的工作方式不同而不同:(1) 方式0波特率串行口方式0的波特率由振荡器的频率所确定:方式0 波特率=振荡器频率/12(2) 方式2波特率串行口方式2 的波特率由振荡器的频率和SMOD(PCON.7)所确定:SMOD 为0 时,波特率等于振荡器频率的六十四分之一;SMOD 为1时,波特率等于振荡器的三十二分之一。(3) 方式1和方式3的波特率串行口方式1和方式3的波特率由定时器T1或T2(8051等单片机)的溢出率和SMOD所确定。T1 和T2是可编程的,可以选的波特率范围比较大,因此串串行口方式1 和方式3 是最常用的方式。当定时器T1 作为串行口的波特率发生器时,串行口方式1 和方式3 的波特率由下式确定:方式1 和方式3 波特率=2SMOD*(T1 溢出率)/32SMOD 为0 时,波特率竽T1 溢出三十分之一;SMOD 为1 时,波特率等于T1的六十四分之一。定时器T1作为时,应禁止T1中断。通常T1工作于定时方式(C/T=0),计数脉冲为振荡器的十二分频信号。也可以选择外部T1(P3.5)上输入脉冲作为T1计数信号(C/T=1)。T1的溢出率又和它的工作方式有关,一般选方式2 定时,此时波特率的计算公式为:方式1和方式3 波特率=2SMOD*Fosc/32*12(256-(TH1)表2.1 常用波特率波特率(b/s)Fosc(mhz)SMODC/T模式初值19.2K11.0592102FDH960011.0592002FDH480011.0592002FAH240011.0592002F4H120011.0592002E8H注:定时器T1作波特率发生器,所以在程序设计时要注意到禁止T1中断2.2 USB接口技术概述2.2.1 USB接口的概念与特点USB即通用串行总线(Universal Serial Bus9)的简称,是计算机与外围设备进行连接的接口技术。最初由ComPaq、Intel、NEC、Microsoft等公司共同提出,其目的就是为了简化PC机和外部设备的连接过程,从而更容易实现PC机接口的扩展。USB端口支持多个外设的连接,它采用“菊花瓣”式的连接方式把所有的外设连接起来,最多可连接的127个外设10。USB发展到目前为止共经历了3代: 1.0/1.1版本,速度12Mbps;2.0版本,速度480Mbps;目前的USB3.0版本,速度达到了5Gbps。另外,USB OTG(on-the-Go)11技术的出现使得USB可以脱离主机进行设备间点对点的数据传输,使的USB技术有了更为广泛的应用领域和广阔前景。USB接口技术具有以下几条较为明显的优点:1.支持热插拔和即插即用:USB不需要用户手动配置I/O地址或者中断请求,实现了自动配置。用户随时可以连接或断开USB设备而不会损坏PC机和USB设备。2.兼容性好:USB规范具有非常好的向下兼容性,对现在常用的操作系统有良好衔接。3.灵活性高:USB规范支持4种传输类型:块传输、同步传输、中断传输和控制传输;4种传输速率 :1.5Mbps低速传输、12Mbps全速传输、480Mbps高速传输、5GbPs超高速传输,使其适合多种外部设备的需要12。4.可靠性强:在协议中使用了出错处理/差错恢复机制;USB在硬件设计上的优势使其消除了可能引起数据错误的大多数噪声。5.应用广:利用底层协议,提高了总线利用率;可以提供多种传输速度;可以对多个设备同时操作,可以连接多达127个物理设备;可以在设备和主机间传输多个数据流13。6.成本低:USB的功能强大,但是组件和电缆很便宜,这同时也促进了USB外设的快速发展。2.2.2 USB的电源和机械、电气特性1.USB电源USB设备可使用外部电源供电,也可以使用总线供电14。下面我们看一下USB的电源管理和电源分配。电源管理:主机和USB系统软件共同完成电源事件的处理,它具有和USB系统独立的电源管理系统。同时,USB外设也具有电源管理能力,以应答系统软件的电源操作申请。电源分配:根据供电方式的不同,可将USB设备分成总线供电和自己供电两种USB设备。而根据电流量不同,又可将USB设备分为高功率和低功率两种设备。2.机械特性、电气特性 电气特性:USB外设使用差分接收器来接收数据,全速和低速设备来说,D-和D+线上的共模电压范围为+0.8到+2.5V;而在高速传输时,该范围仅为-50mv到-500mv。USB主机采用差分驱动器来发送数据,对低速设备,通常使用“束缚型低速电缆”来进行连接,并且不需要数据线双绞和外层屏蔽;全速和高速USB设备在连接时需要有外层屏蔽或者数据双绞的电缆,其共模阻抗应为30(1士30%)欧,差分特征阻抗应为90(1士15%)欧。PC主机会不断的以一定的间隔查询根集线器,方便了解USB设备连接的状态。机械特性:USB总线传输用一根4线电缆来完成。其中两根线为差动数据信号线,另外两根线用来提供USB外设工作的电源和地。2.2.3 USB接口芯片 USB是连接具有USB接口的多种外部设备和计算机进行通信的串行总线。目前市场上有很多具有USB接口功能芯片,主要有3大类。 第1类是需要外接微处理器的USB芯片。例如松下的USBN9602/USBN9603、朗讯的USB820/825、Philips公司PDIUSBDll等。这类芯片价格便宜,方便用户使用熟悉的微处理器进行系统开发,缺点是需要底层驱动的开发,而且会受到选择的微控制器的限制。第2类USB芯片集成了微处理器。例如Cypress公司的基于8051的EZ-USB系列,基于PIC的16C7X5系列等,其优点是开发者熟悉这些通用微控制器的结构,易于开发。缺点是需要单独开发系统,成本较高,也需要编写底层驱动程序。这种芯片的价格比较高,芯片的选择范围小。第3类是USB桥接芯片。例如Silicon公司的的USB转UART桥接芯片CPZIOZ系列,南京沁恒公司的USB桥接芯片CH341A等15,此类芯片的优点是价格便宜、开发简单。CH341A就是这样一款USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。关于CH341A的USB转异步串口的功能和方法下面我们还要做详细的介绍。综上所述,第一类和第二类芯片都需要自己开发底层驱动程序,为应用系统的开发增加了大量的工作。采用第三类芯片桥接芯片进行USB接口开发避免了底层驱动程序的开发,利用虚拟串口技术,USB接口在用户端以串口的形式存在,用户可以使用串口控件进行USB接口的开发。这种方式适合对传输速率要求不是很高的应用设备。比较三种方式的优劣,可以看出第三种方式是扩展USB接口最为简单的方法。本文就是利用南京沁恒公司生产的芯片CH341A完成的串口到USB的转换。2.3“自顶向下”的设计方法 经典的电子电路设计的基本思路是首先选择标准的集成电路,然后“自底向上”地构建出一个完整的系统16。这种设计方法一般来说要求设计者对硬件电路非常了解,但是在设计中很容易出现一些这样那样的问题,而且出现的问题是在硬件电路实现前很难发现。当设计的电路出现了错误时,往往需要重新修改硬件的设计,开发周期长,效率较低。高层次的设计采用了“自顶向下”的设计方法17。这种设计方法要求,首先从系统设计入手,明确系统的功能,在顶层进行系统功能框图的划分并进行结构设计。在方框图一级进行仿真并纠错,用硬件描述语言把高层次的系统行为进行描述,在系统一级进行验证,然后使用优化综合工具生成具体门电路的网表。其对应的物理实现级可以是专用集成电路也可以是印刷电路板。由于这种方法设计的主要仿真和调试过程都是在高层次上进行的,不仅有利于早期发现设计上的结构错误,避免了时间上的浪费,而且也减少了工作量,提高了设计的成功率18。3 CH341A及USB转串口功能介绍3.1 CH341A概述CH341A是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口19。功能框图如图3.1所示。在打印口模式下,CH341A准备了兼容Windows操作系统和USB规范的USB打印口,可以通过该模式把普通的并口打印机升级到USB打印机。在并口模式下,CH341A具备MEM方式或EPP方式的8位并行接口,可以再没有单片机的环境下,直接完成数据的输入输出。在异步串口模式下,CH341A准备了串口发送使能、串口接收就绪等控制信号以及常用的MODEM联络信号,该模式可以实现计算机异步串口的扩展,或者用来升级普通的串口设备到USB设备。另外,加强的CH341A芯片还具备了一些常用的同步串口,如4线接口(CS线、SCK/CLK线、MISO/SDI/DIN线、MOSI/SDOUT线)和2线接口(SCL线、SDA线)等。计算机或着其他USB主机CH341转接芯片异步串口RS232/RS485/RS422转换并口打印机为USB打印机MEM并口和EPP并口常用4线和2线同步串口图3.1 CH341功能框图3.2 CH341A异步串口特点由于本文只涉及到CH341A的异步串口功能的使用,所以本文仅介绍异步串口的特点及使用。其他功能,比如打印口、并口、同步串口等不作介绍。感兴趣的读者可以自己登陆南京沁恒公司的网站下载相关资料。CH341A异步串口特点如下:1.CH341A可以仿真标准串口,此功能用来升级原来的串口外围设备,或者通过USB接口为计算机增加额外的串行通讯接口。2.芯片内置收发缓冲区,提供硬件全双工串行接口,通讯波特率在50bps-2Mbps之间。3.该仿真串口支持5到8个数据位的串行传输,支持奇偶校验。4.仿真串口与计算机操作系统下的串口应用程序完全兼容,不用对程序进行任何修改就可以正常使用。5.带有MODEM联络信号和串口接收就绪、串口发送使能等传输控制信号。3.3 CH341A功能配置要实现串行通讯的功能,必须要对CH341A芯片做相应的设置,CH341A规定以SCL和SDA两个引脚的状态组合来配置芯片实现不同的功能。使用时,有“直接组合配置”和“外部芯片配置”两种方式供用户选择。“直接组合配置”就是以SCL引脚和SDA引脚的连接组合来配置CH341A的功能,如表3.1所示。这种方法简单方便,只能使用默认的产品ID和厂商ID等信息。表3.1 CH341A功能配置说明SCL和SDA的引脚状态芯片功能默认的产品IDSDA悬空,SCL悬空USB转异步串口,仿真计算机串口5523HSDA接地点平,SCL悬空USB转EPP/MEM并口及同步串口5512HSDA与SCL直接相连转换并口打印机到标准USB打印机5548H“外部芯片配置”需要外接串行EEPROM配置芯片,该芯片通过SCL和SDA与CH341A连接,EEPROM芯片内部存储了定义芯片功能、产品ID、厂商ID等的信息。这种配置方式的好处是可以灵活地定义芯片的功能和USB产品的各种信息。3.4 CH341A异步串口时的引脚说明CH341系列芯片共有CH341A、CH341T、CH341H三种不同的型号,其中CH341A和CH341T均可通过相关的配置用来实现USB转串口的功能。需要注意的是,同一芯片的同一个引脚在芯片完成不同的功能时,定义可能不同。表3.2列出了CH341A和CH341T在作为异步串口使用时各引脚的功能定义。表3.2 CH341异步串口引脚引脚号引脚名称类型引脚说明341A341T53TXD输出串行数据输出64RXD输入串行数据输入,内置上拉电阻2719TEN#输入串口发送使能,低电平有效,内置上拉电阻2517RDY#输出串口接收就绪,低电平有效2618TNO#输出串口发送正在进行的状态指示,高电平有效42ROV#三态输出串口接收缓冲区溢出,低电平有效15无CTS#输入MODEM联络输入信号,清除发送,低有效16无DSR#输入MODEM联络输入信号,数据装置就绪,低有效17无RI#输入MODEM联络输入信号,振铃指示,低有效18无DCD#输入MODEM联络输入信号,载波检测,低有效20无DTR#三态输出MODEM联络输出信号,数据终端就绪,低有效21无RTS#三态输出MODEM联络输出信号,请求发送,低有效19无OUT#三态输出自定义通用输出信号,低电平有效75INT#输入自定义中断请求,上升沿有效,内置上拉电阻8无IN3输入自定义通用输入信号,建议悬空不用3无IN7输入自定义通用输入信号,建议悬空不用2214SLP#三态输出睡眠状态输出信号,低电平有效3.5 CH341A作为异步串口使用CH341A扩展串口的电路如图3.2所示,Jl是USB端口,其中D+和D-为信号线,用来传递数据。C2和C3使用独石或高频瓷片电容,C3用于CH341A内部电源节点的退耦,容量一般在47pF到0.02uF之间,C2用于外部电源退耦,容量一般选 0.1uF。晶体X1及电容C4和C5用来和内部电路配合产生时钟信号。X1的频率是12MHz,C4和C5一般选用容量为15PF30PF的独石或高频瓷片电容。图3.2 CH341转UART口接线图需要注意的是,为了减少各种干扰,在设计PCB时应注意以下方面:退耦电容C2和C3应尽量靠近CH341A的引脚;D+和D-信号线应该贴近并平行布线,尽量在两信号线的两侧提供地线或者敷铜;X1和X0引脚上连接的相关信号线尽可能短;在相关元器件周边环绕地线或者敷铜以减少高频干扰。4 系统硬件设计4.1系统的结构与原理4.1.1系统的组成与功能基于CH341A的单片机与计算机通信系统主要由两部分组成,其中一部分负责控制器和上位机地联结,实现了USB总线和串口的转换功能,主要由USB芯片和少量的外围器件组成,本文选用南京沁恒公司生产的芯片CH341A来实现USB接口到串口的转换。另一部分是由AT89C51单片机为核心的控制模块。该系统采用上位机与下位机相结合的控制结构, 其中, 上位机以个人计算机为控制核心, 而下位机则围绕单片机来构建控制电路。该系统不仅可以充分发挥它们自身的优势, 相互协调地工作, 而且还能独立地完成各自的工作。在工作的过程中, 上位机通过通信总线发送命令到下位机, 以保证下位机能够准确及时地采集数据; 而下位机也可以利用通信总线反馈自身的各种状态信号, 以便上位机进行实时处理。通信接口模块显示模块单片机控制模块(下位机端)PC机(上位机端)图4.1 系统总体框图4.1.2系统的工作原理1.方案论证 方案一:有关USB控制芯片很多但主要有两个来源,一个是Cypress Semiconductor,另一个是Scanlogic。我们可以选择市面比较通用的Cypress Encore控制器芯片CY4C63743,此芯片电路设计起来比较容易。但此芯片需要固件支持20。En指令相对简单,可以使用汇编语言编译器来实现,但固件编程相对繁琐,而且CY4C63743结和了单片机与USB数据传输的功能相对开发需要了解内部的时续与中断控制21,类似于嵌入了USB功能的单片机。在开发时要投入新的仿真软件,还要学习相关的通信协议,这需要更多的时间和精力。方案二:用南京沁恒公司的CH341A芯片,需要外接微控制器,电路稍微麻烦一点,但是我的设计只需要用到USB设备模式一块,而我们可以让CH341A工作在内置固件下,我们减轻了单片机方面的固件编写负担,只需按要求让单片机将要发送的数据传给单片机控制模块CH341A即可,CH341A自行与PC进行数据交换,这同样节省了对复杂协议的学习时间22。CH341A相应的可以使用USB上的5V电源,同样使用USB电源,输出给单片机3.3V电压,甚至可以更低。由此可见方案二更有效。4.2 系统各模块设计4.2.1 控制模块AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容23。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如下图所示:图4.2 AT89C51单片机引脚图AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位24。它与CH341A的连线见图3.2,其中引脚RXD、TXD分别与CH341的引脚TXD、RXD相连。4.2.2 显示模块为了验证实现串口通信,可以通过PC机发出信号,然后经过转换模块接到AT89C51单片机上,最后通过数码管显示。显示模块选用LED数码管加CD4511组成。如下图所示:图4.3 显示电路CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器25。引脚排列如图4.4所示。图4.4 CD4511引脚图其中A B C D为BCD码输入,A为最低位。LT为灯测试端,加高电平时显示器正常显示,加低电平时显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段消隐,正常显示时,BI端应加高电平。另外CD4511有拒绝伪码的特点,当输入数据超越十进制数9(1001)时,显示字形也自行消隐26。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是七段输出,可驱动共阴极LED数码管。4.2.3 USB接口模块为了使用方便, 系统采用了USB接口来设计上位机与下位机之间通信电路。CH341A 是一个USB总线转接芯片, 通过USB总线可以提供异步串口。在Windows操作系统下, 可以利用CH341A的驱动程序来直接仿真标准串口。该仿真串口与大部分串口应用程序完全兼容, 通常在使用时,往往不需要修改任何的程序。因此在系统中,上位机与下位机之间的通信电路如图4.5所示,其中P1是USB 接口,实现与PC机的通信; RSTI引脚与VCC之间跨接容量为1F的电容,与GND之间接4.7k下拉电阻,可以使CH341A在电源上电期间减少外界干扰并可靠复位。ACT#引脚外接上拉限流电阻的绿色发光二极管LED1,用于指示USB设备配置状态。TEN#引脚为串口发送使能控制端,低电平有效,直接与 GND连接。VCC与GND之间连接带限流电阻的红色发光二极管LED2,用于指示CH341A的电源状态。SDA和SCL引脚均悬空,用于对CH341A芯片通过直接组合配置为USB转异步串口工作方式,仿真计算机串口。RXD、TXD引脚则实现AT89C51的通信。图4.5 USB通信接口电路图USB模块CH341A是一个USB总线的通用设备接口芯片,用户无需编写驱动程序,内置有USB通讯中的底层协议。具有8位数据总线(D0D7)、地址输入(A0)、读(RD#)、 写(WR#)、片选控制线(CS#)以及中断输出(INT#),可以方便地挂接到单片机的数据总线上。当A0为低电平时选择数据端口,单片机通过8位并口对CH34

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论