新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PL2303单片机串口转USB口实现串行通信

PL2303单片机串口转USB口实现串行通信

作者:时间:2016-10-15来源:网络收藏

引言
随着科学技术的快速发展,的应用已经渗入到了生产、生活的方方面面,其应用范围越来越广泛,应用前景越来越好。基于的开发应用在目前创新技术发展中一支独秀,非常受广大科技爱好者、在校大学生以及科技开发工作者的青睐。多功能、超强型的在市场上也层出不穷,为单片机的开发应用提供了很好的基础。目前,在单片机的应用系统设计中,接口的使用越来越多,简化了单片机系统与外部系统进行信息交换的接口电路,提高了信息交换的可靠性及交换速度。目前市场上提供的各类型单片机品种中,有些型号的单片机在其内部集成有接口部件,但大部分的单片机不含有接口电路。对芯片内部不含有USB串行接口的单片机,进行USB接口设计时,要通过外围接口芯片来实现USB串行接口,这样的接口芯片,目前市场上已经有很多种了。本文仅就采用单片机本身的串口通过外围芯片来实现串口转USB接口进行介绍。

1 USB接口的实现
USB(Universal Serial Bus)是一种通用的串行总线技术,它是通过PCI总线和PC的内部系统数据线连接,实现数据的传送,具有即插即用功能,支持热插拔,两个设备之间线缆长度可达5 m。
USB接口线有4条,其中两条为电源线和地线(Vbus与GND),另外两条是以差分形式传递信息的信号线(D+和D-),从而实现主机系统与USB设备之间的数据。含有USB接口的主机与含有USB接口的设备之间数据流的示意图如图1所示。

本文引用地址:http://www.eepw.com.cn/article/201610/307663.htm

a.jpg


USB总线技术是基于分组交换方式的总线通信。它首先把数据分成若干块,然后在每块数据前添加上同步信号、包标识,后面再添加上CRC校验码,形成USB数据包。USB通信总线使用差分输出驱动器来控制数据信号在USB电缆上的传送,即通过控制D+和D-线从空闲状态到相反的逻辑电平,实现原端口的数据包发送,数据包发送完以后,信号线(D+)和(D-)上的输出驱动器均处于高阻状态。

2 单片机串口转USB接口的电路
无论哪一款的单片机,其芯片上都有串行通信引脚TXD和RXD,利用这两个引脚,通过某种接口芯片来实现串口转USB口的电路。本文采用Prolific公司推出的串口转USB接口的转换芯片来实现单片机的串口转USB接口的电路。接口电路的设计如图2所示。

b.jpg


在图2中,的TXD引脚和RXD引脚分别与单片机的P3.0(RXD)引脚和P3.1(TXD)引脚相连,这样就完成了单片机的串口与USB口的转换。单片机从串口发送出去的数据信息通过PL2303芯片转换为USB数据流,再通过USB口的连接器传送给主机设备。可以看出PL2303与单片机的连接非常简单,只需两根信号线就可以。

3 单片机串口软件设计
串口转USB口串行通信方式采用异步半双工通信方式,即通信双方发送和接收信息是分时段交替进行的,双方不能同时进行收发操作。通信的数据格式为每帧10位,其中1位起始位,8位数据位,1位停止位。一帧数据的格式如图3所示。数据的发送是低位在先,高位在后。

c.jpg


在串行通信中,收发双方对发送和接收数据的速率要有约定,即设定波特率。通过软件可以对单片机串口设置为4种工作方式,即方式0、方式1、方式2、方式3。其中方式0和方式2的波特率是固定不变的,方式1和方式3的波特率是可以调整的。波特率由单片机内部的定时器T1的溢出率来决定,用定时器T1作为串行通信波特率发生器时,典型的使用方法是使T1工作在自动重装的8位定时方式,即定时器的工作方式2,这时定时器T1的溢出率取决于TH1中的初值。而单片机的串行通信方式采用方式1,即数据发送是10位帧格式。串行通信方式1的波特率的计算如下:
方式1波特率=(2SMOD/32)x T1溢出率 (1)
T1溢出率=fOSC/[12×(256-TH1)] (2)
上式中,SMOD是单片机芯片内部的电源控制寄存器PCON中的D7位,可取值为0或1;fOSC是表示单片机外接的晶体振荡器的频率。
在实际应用中,数据传送的波特率最好选择标称值,又由于TH1的初值是整数,为了减小波特率计算误差,单片机外接的晶振频率尽量选用11.059 2 MHz,这样串行通信方式1的波特率与TH1的初值的对应关系基本上是一个确定值,如表1所列。

d.jpg


根据表1,如果串行通信的波特率选用9 600,则装入单片机定时器1的TH1中的初值就是FDH,通过下面的程序完成初始化:
e.jpg
f.jpg

4 PL2303的驱动
PL2303是Prolmc公司生产的一种高度集成的RS232-USB接口转换器,可提供一个RS232全双工异步串行通信装置与USB功能接口便利连接的解决方案。该器件内置USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的UART,只需外接几个电容就可实现USB信号与RS232信号的转换,能够方便地嵌入到手持设备中。该器件作为USB/RS232双向转换器,一方面从主机接收USB数据,并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据,转换为USB数据格式传送回主机。这些工作全部由器件自动完成,开发者无需考虑固件设计。
PL2303的驱动可在大多数操作系统上模拟成传统的COM端口,并允许基于COM端口应用方便地转换为USB接口应用,实现通信,其数据传输的波特率可高达6 Mbps。通过利用USB块传输模式,利用庞大的数据缓冲器和自动流量控制,PL2303能够实现更高的数据吞吐量,比传统的UART(通用异步收发器)端口要快。
前面介绍了单片机与PL2303的接口电路,通过PL2303的桥接,将单片机的串口转成了USB口。当单片机系统与PC主机系统通过USB通信线连接起来后,PC机将这个USB接口看成是一个COM口(RS232全双工异步串行通信接口),此时,PC机要装入PL2303的驱动程序,这个驱动程序就是将该USB口模拟成为一个COM口,USB转串口线的端口号可能是COM4,也可能是COM5,此端口号是电脑系统自动分派的,不是每台电脑都一样。在没有必要的情况下,请不要去修改它,使用时只需记住这个端口号就可以了。在使用此端口的软件中,都务必按此端口来选择,如STC—ISP下载软件、串口调试软件等。PL2303的驱动程序可以从官方网站下载。

结语
本文介绍的单片机串口转USB口的接口电路已经通过实际的电路板实现,在实际的应用中效果很好,通信的可靠性很高,特别适合笔记本电脑与单片机系统之间的通信。有些笔记本电脑的操作系统是Win7操作系统,此时要注意在官方网站上下载Win7操作系统的PL2303驱动.PART.RAR。在使用中感觉到的不足之处是PL2303芯片在做电路时,外接的电阻、电容等器件比较多,画电路板比较麻烦。



关键词: PL2303 单片机 USB 通信

评论


相关推荐

技术专区

关闭