APP下载

51单片机与上位PC机的串行通信技术

2015-01-29山西国营大众机械厂军用加固外设研究所

电子世界 2015年15期
关键词:波特率寄存器上位

山西国营大众机械厂军用加固外设研究所 张 岩

51单片机与上位PC机的串行通信技术

山西国营大众机械厂军用加固外设研究所 张 岩

近几年来,单片机用它自身较高的性价比越来越多的在智能式仪表和工业过程控制中得到广泛好评和应用。但是因为单片机本身的资源有限,其中一些复杂过程和功能中很多的控制就很难满足要求,必须将单片机的数据上传到上一级计算机进行处理。所以实现上位机(PC机)和下位机(单片机)之间的数据传输具有极其重要的意义。

上位机;单片机;串口通信;MAX232

1 串行接口的概念

串行通信是通过同一信号线将数据按照一定的顺序传送的方式。因为他的通路可以只有一条,发送和接收信息不可以同时进行,所以只恩呢该采用分时间段采用线路的方法,例如:A在发送信息,而B只能接收信息。这种串行通信的工作方式称为半双工通信方式。如果工作中有两条通路,发送和接收信息遍可以同时进行了。例如:A发送信息的同时,B也可以同时发送信息。这种工作方式便可以称作双工通信方式。除了以上两种还有一种单工通信,他只可以单方向的传送信息。这种工作方式在实际工作中极为少见。

2 串行通信的传输方向

单片机的串行通信的工作方式有三种,单工、半双工、双工配置。单工是指数据传输每次只恩呢该按照一个方向传输。半双工是数据可以按两个方向传输,但是需要分时间进行。全双工时指可以同时双向传输数据。是两个单向配置,要求两端都具备独立完成和发送接收能力的通信设备。

图1为串行通信的数据传送方式。

图1 串行通信传送方式

3 单片机的串口

89C51单片机不仅具一个串行接口,同时还拥有4个8位并行接口。此串行接口属于全双工通信接口,它具有可以编程性。在使用过程中,该接口能够同时发送和接收串行数据。它可以起到同步移位寄存器作用,同时也可以当作异步接收和发送器来进行异步通信。其帧格式有8位、10位、或11位,并能设置各种波特率,给使用带来了很大的灵活性。

89C51单片机系统通过串口可以实现点对点的单机通信和89C51与多个系统主机之间的多机通信。

3.1 单片机串行口的结构

89C51的外部通信功能是通过RXD(P3.0,串行数据接收端)和TXD(P3.1,串行据发送端)口实现的。该单片机的内部结构如图2所示。在该简化示意图中可以看出,89C51单片机中有两个独立的发送、接收缓冲寄存器——SBUF(Serial Data Buffer),99H地址可以被这两个寄存器共同使用,接收和发送数据能同时进行。其中:接收缓冲器只能用于读取数据,不能写入数据;而发送寄存器只能用于写入数据,不能读取数据。

图2 单片机串口的内部结构

CPU主动发送的特性可以保证串行数据接收与发送的同步性。用定时器T1作为89C51串行通信的波特率发生器,串行接受或发送的一位脉冲是由T1溢出率2分频或不分频后又经16分频所得,其移位的速率即是波特率。

从图中可以看出:第一个字节的内容在被接收缓冲寄存器SBUF读出之前,第二个字节即开始被接收新的内容(将串行数据输入至移位寄存器)这就形成了接收器的双缓冲结构。然而,如果出现前一个字节尚未被读取时第二个字节已经接收完毕的状况,则前一个字节的内容会被丢弃。

寄存器即可以读写串行口的发送,又可以读写接收。缓冲寄存器SBUF装载并由TXD引脚向外发送一帧数据的过程,即是发写命令,当发送结束后,这时会发送中断标志位TI被置为1。

接收位REN置为1的前提是,满足串行口接收终端标志位RI被置为0,此时将会有数据以一帧的形式被移位寄存器接收,并将这一帧数据装载到接收SBUF中,此时接收终端标志位将会把RI置为1。当发送SBUF命令时,接收缓冲器(SBUF)将会取出信息,89C51会通过内部总线将该数据发送至CPU。一般情况不用双缓冲器结构来保持最大传送速率。

3.2 单片机串行通信的工作方式

根据实际需要,89C51串行口通常有4种不同的工作方式可以设置,其中帧格式有8位、10位和11位。这四种不同的工作方式为:

3.2.1 工作方式0

方式0时,同步移位寄存器的输入与输出均是通过串行口来实现的,方便并行输入或输出口的扩展。外接部件的同步数据信号是由RXD(P3.0)引脚来进行输入或输出,并通过TXD(P3.1)引脚输出同步移位脉冲。工作时无起始位,奇偶校验位既停止位,接收和发送均占用8位数据位,通常情况下为低位排在前面,高位排在后面。一般用于扩展I/O口,该方式的波特率为固定值fosc/12。

3.2.2 工作方式1

方式1是波特率可调的10位数据的异步通信方式。引脚TXD是用来发送数据,数据的接收引脚是RXD,其中1位起始位,1位停止位,8位数据位。在接收时,停止位进入SCON的RB8,该方式的传送波特率可以调节。

当REN被设置成1,允许接收数据,RXD引脚脉冲会被接收器进行采样。RXD的电平会发生跳变,当RXD电平为负时起始位有效。此时移位寄存器开始装载数据,剩余的帧信息将按顺序被接受。由于数据是从最右一位一位开始移入,控制电路最后移位的条件是,最先接收的数据位移至寄存器的最里边时,即左边。当RI被置为0,且接收到的停止位为1时,这时一帧数据会被SBUF接受寄存器完全装载,第9位停止位由进入RB8,RI的值变为1,同时向CPU发送中断命令信号。

3.2.3 工作方式2和方式3

方式2和方式3的功能相同,区别在于方式3的波特率可调。方式2串口工作方式波特率是固定的11位数据的异步通信方式。同样引脚TXD是用来发送数据,数据的接收引脚是RXD。11位数据中有1位起始位,1位停止位,9位数据位。方式2有其特定的波特率,其频率通常被固定在晶振的1/32或1/64。方式3的波特率可根据定时器的溢出率来调整。

(1)方式2和方式3输入

在接收数据时,输入移位寄存器从右边开始逐个读取数据,控制电路最后移位的条件是,最左边的数据变为起始位的0时。当RI被置为0,且接收到的停止位为1时,接收缓冲器SBUF,RB8将存储接收到的数据,随后RI置为1,通过内部总线将中断信号发送至CPU。反之,如果完成该步骤,则会丢失信息,且RI依旧为0,继续查找RXD端的负电平。

(2)方式2和方式3输出

当输出开始时,TXD端会接收到来自起始位的0。接着,该引脚会接收到移位寄存器的输出位(D0)。每接收到一个移位电平,就会使输出移位寄存器内的全部信息右移一位,并由TXD端输出。

在第一次移位时,输出移位寄存器的第9位上则会被装载为停止位“1”,之后的所有移位,每次会在左边添加一个0。因输出与输入正好相反,从左向右移,当停止位被1输出时,会检测到左侧的位都是0,电路发觉到这一状态后,控制电路则最后一次移位,并将TI修改为1,向CPU发出中断命令信号。

4 结论

单片机与上位机的串行通信在现场控制中有着很多的应用,单片机作为数据采集端,将采集到的数据传给上位机,由上位机进行处理。本系统利用了AT89C51和MAX232芯片,可以实现的功能如下:

(1)通过键盘输入数据;

(2)在四位数码管上显示要求显示的数据;

(3)单片机和上位机实现串行通信。

[1]郭天祥.单片机,十天征服你[M/CD].哈尔滨:哈尔滨工程大学,2007,7.

[2]张振荣,晋明武,王毅平.MCS-51单片机原理及实用技术[M].北京:人民邮电出版社,2000,8.

[3]张迎新,雷道振,陈胜,等.单片微型计算机原理.应用接口技术[M].北京:国防工业出版社,2004.1.

猜你喜欢

波特率寄存器上位
CAN 总线波特率自适应程序设计
Lite寄存器模型的设计与实现
特斯拉 风云之老阿姨上位
基于FPGA的异步串行通信波特率容错设计
分簇结构向量寄存器分配策略研究*
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
C*Core芯片SCI串口波特率容限优化
高速数模转换器AD9779/AD9788的应用