基于CH341A的计算机与单片机通信技术研究.docx
- 文档编号:7925656
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:39
- 大小:457.52KB
基于CH341A的计算机与单片机通信技术研究.docx
《基于CH341A的计算机与单片机通信技术研究.docx》由会员分享,可在线阅读,更多相关《基于CH341A的计算机与单片机通信技术研究.docx(39页珍藏版)》请在冰豆网上搜索。
基于CH341A的计算机与单片机通信技术研究
毕业设计说明书
基于CH341A的计算机与单片机
通信技术研究
学生姓名:
学号:
学院:
专业:
指导教师:
2012年6月
基于CH341A的计算机与单片机通信技术研究
摘要
通用串行总线USB是PC体系中的一套全新的工业标准。
通用串行总线(UniversalSerialBus,USB)凭借其价格低廉、使用简单、协议灵活、接口标准化和易于端口扩展等优点,迅速占领了计算机外设接口领域的统治地位,它的应用已非常广泛。
本课题的主要研究内容是:
掌握USB通信协议及器件工作方式、利用AT89C51单片机控制CH341A接口芯片及周边电路、设计接口电路,最终通过USB接口实现单片机与计算机之间的串行通信。
本课题使用的USB接口芯片是南京沁恒电子公司的CH341A,所使用的驱动是用南京沁恒电子公司提供的驱动程序,完全保证了软硬件的可靠性、兼容性。
关键词:
USB接口,CH341A,串行通信,AT89C51
ResearchBasedontheCH341AtheComputerCommunicate
withtheMicrocontroller
Abstract
TheUniversalSerialBus(USB)isspecifiedtobeanindustrystandardextensiontothePCarchitecture.Fortheadvantagesoflowcost,easytouse,protocolflexible,interfacestandardizationandporteasytoexpand,USB(UniversalSerialBus)occupiesthePredominantPositionintheregionofcomputerperipheralinterface.Ithasbecomeincreasinglywidespreadinapplication.
Themaincontentofourtaskis:
StudythespecificationofUSBandmasterthewayofhowUSBdeviceworks;usesinglechipAT89C51tohandleCH341Aandotherchips;designtheinterfacecircuitandfirmware,andfinallyrealizeSerialcommunicationbetweentheUSBinterfaceandthehostoperatedonWindowsthoughtheUSBcable.
TheUSBcontrollerweselectisCH341AthatisproducedbyNanjingQinconstantcompanyandthedriverweinstalledisofferedbyNanjingQinconstantcompany.Soboththesoftwareandthehardwareoftheprojectisreliableandhasgoodcompatibility.
Keywords:
USBinterface,CH341A,Serialcommunication,AT89C51
目录
1绪论1
1.1课题研究背景1
1.2本论文工作及组织结构2
2系统相关技术概论4
2.1串口通信的基本知识4
2.2USB接口技术概述11
2.3“自顶向下”的设计方法13
3CH341A及USB转串口功能介绍15
3.1CH341A概述15
3.2CH341A异步串口特点15
3.3CH341A功能配置16
3.4CH341A异步串口时的引脚说明16
3.5CH341A作为异步串口使用17
4系统硬件设计19
4.1系统的结构与原理19
4.2系统各模块设计20
4.3硬件驱动程序安装24
5系统软件设计25
5.1系统软件整体设计思想25
5.2各功能模块软件程序25
6总结32
附录A系统总原理图34
附录B程序流程图35
附录C程序清单38
参考文献42
致谢44
1绪论
1.1课题研究背景
伴随着信息技术、数字技术和网络技术的发展,计算机、嵌入式系统等数字设备被广泛应用到生产、生活的各个领域,可以说无所不在[1]。
在很多情况下,这些相对独立的系统之间要进行诸如工作状态状态、环境数据、控制信息等的传递,就是我们通常所说的通信。
而串口通信具有连接简单,成本低,开发容易的优点,并且现有的微控制器一般都带有串行通讯的接口,因此,在实性要求不是很高,数据量不是很大的情况下,利用串口通信完成多机通讯成为了较为普遍的选择。
当设备需要通过串口与上位机进行信息的交换时,就必须进行接口转换[2]。
另一方面,随着计算机硬件的飞速发展以及USB设备的迅速普及,USB接口已逐渐取代了串口和并口在计算机上的位置。
这是由于USB接口有非常大的优势:
①传输速度快,目前最普及的USB2.0的最大传输速度达到了480Mbps[3]。
②一个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所示。
这种通信方式使用的信号线少,在远距离通信中可以极大地节约通信成本,当然,其传输速度比并行传输要慢。
图2.1串行传输示意图
由于只是在接口与外设之间按串行方式传输,而在CPU与接口之间要按并行方式传输,所以,在串行接口中,必须要有“发送移位寄存器”(并~串)和“接收移位寄存器”(串~并)。
典型的串行接口结构如2.2所示。
在数据的输出过程中,CPU首先把要输出的数据并行地送入“数据输出寄存器”中,然后由“数据输出寄存器”送入“发送移位寄存器”,最后由“发送移位寄存器”把数据1位1位地发送给外设。
“发送移位寄存器”的输出速度由“发送时钟”确定[6]。
在数据的输入过程中,数据被1位1位地从外设送入接口的“接收移位寄存器”中,当“接收移位寄存器”中接收完1个字符后,“接收移位寄存器”把数据送入“数据输入寄存器”。
CPU从“数据输入寄存器”中读取刚刚接收到的字符(D0-D7同时被CPU读至累加器中)。
“接收时钟”的频率决定了“接收移位寄存器”的移位速度。
能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(UART:
UniversalAsynchronousReceiverandTransmitter),典型的芯片有:
Intel8250/8251,16550[7]。
图2.2串口内部结构图
串行通信的设备是最古老的沟通机制之一。
从IBM个人电脑和兼容式电脑的时代开始,几乎所有的计算机都配有一个或多个串行端口和一个并行端口。
顾名思义,一个串行端口发送和接收串行数据,一次一位数据。
相反,一个并行端口一次发送和接收8位数据,使用8个单独的电线。
尽管相对较慢的传输速度远低于并行端口,串行端口通信依然因为它简单的设备和高的成本效益而是一个受欢迎的连接选项。
虽然今天的消费产品中在串行连接的地方使用USB连接,但还有很多的设备使用串行端口作为与外部世界的唯一连接。
一个串行设备一次发送和接收一位数据,有些设备因为在同一时间发送和接收数据,被称为全双工设备。
其他可以在任何时间发送或接收被称为单双工。
开始传输时,设备先发送一个起始位,其次是数据位。
该数据位可以是五、六、七或8位,基于商定而定。
两个发送方和接收器必须设置为相同的数据通信比特或正确的比特率。
数据位被发送完后,就会发送一个停止位。
一个停止位可以是一位,一个半位,或两位。
波特率是数据从一个设备到另一个的传输速度,波特率通常以每秒的位数(bps)来计量。
为了检测数据已被正确发送,一个可选的校验位可以同数据位在一起。
一个校验位可以是以下内容:
奇数,偶数,mark,space或无(空的奇偶位标志几乎总是被使用)。
使用校验位提供了一个基本的机制,以检测已发送数据损坏,但不保证检查数据本身的错误。
然而,校验位可用于改善完整性数据传送。
(二)并行通信
在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。
如果一组数据的各数据位在多条线上同时被传送,这种传输被称为并行通信,如图2.3所示。
并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。
并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。
计算机或PLC各种内部总线就是以并行方式传送数据的。
图2.3并行通信
(1)各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。
(2)微机系统中最基本的信息交换方式。
(3)并行传递的信息不要求固定的格式。
(4)并行接口的数据传输率比串行接口快8倍,标准并口的数据传输率理论值为1Mbps(兆比特/秒)。
(5)并行传输的数据宽度可以是1~128位,甚至更宽,但是有多少数据位就需要多少根数据线,因此传输的成本较高。
(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,以高电平表示,占用1~2位宽度。
一个字符占用5~8位,具体取决于数据所采用的字符集。
例如,电报码字符为5位、ASCII码字符为7位、汉字码则为8位。
此外,还要附加1位奇偶校验位,可以选择奇校验或偶校验方式对该字符实施简单的差错控制。
发送端与接收端除了采用相同的数据格式(字符的位数、停止位的位数、有无校验位及校验方式等)外,还应当采用相同的传输速率。
典型的速率有:
9600b/s、19.2kb/s、56kb/s等。
异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。
例如,计算机与Modem之间的通信就是采用这种方式。
它的缺点是通信开销大,每传输一个字符都要额外附加2~3位,通信效率比较低。
例如,在使用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机的串行通信时,选择MCS—51单片机串行通信的波特率至关重要.波特率根据串行口的工作方式不同而不同:
(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溢出率)/32
SMOD为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)
SMOD
C/T
模式
初值
19.2K
11.0592
1
0
2
FDH
9600
11.0592
0
0
2
FDH
4800
11.0592
0
0
2
FAH
2400
11.0592
0
0
2
F4H
1200
11.0592
0
0
2
E8H
注:
定时器T1作波特率发生器,所以在程序设计时要注意到禁止T1中断
2.2USB接口技术概述
2.2.1USB接口的概念与特点
USB即通用串行总线(UniversalSerialBus[9])的简称,是计算机与外围设备进行连接的接口技术。
最初由ComPaq、Intel、NEC、Microsoft等公司共同提出,其目的就是为了简化PC机和外部设备的连接过程,从而更容易实现PC机接口的扩展。
USB端口支持多个外设的连接,它采用“菊花瓣”式的连接方式把所有的外设连接起来,最多可连接的127个外设[10]。
USB发展到目前为止共经历了3代:
1.0/1.1版本,速度12Mbps;2.0版本,速度480Mbps;目前的USB3.0版本,速度达到了5Gbps。
另外,USBOTG(on-the-Go)[11]技术的出现使得USB可以脱离主机进行设备间点对点的数据传输,使的USB技术有了更为广泛的应用领域和广阔前景。
USB接口技术具有以下几条较为明显的优点:
1.支持热插拔和即插即用:
USB不需要用户手动配置I/O地址或者中断请求,实现了自动配置。
用户随时可以连接或断开USB设备而不会损坏PC机和USB设备。
2.兼容性好:
USB规范具有非常好的向下兼容性,对现在常用的操作系统有良好衔接。
3.灵活性高:
USB规范支持4种传输类型:
块传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CH341A 计算机 单片机 通信 技术研究