硬件电路设计
5 串行口通信技术
在设计单片机与PC机程序时,PC机串口和单片机串行口的设置是至关重要的一个环节,所以在软件设计前必须对串行口的通信技术作系统的研究。本章节是为软件设计服务的。
串行数据通信指数据是一位一位顺序传送的通信方式,它的突出优点是只需一对传送线(利用电话线就可作为传送线),这样就大大降低了传送成本,特别适用于远距离通信;其缺点是传送速度较低。
串行通信的主要特点:
?串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。 ?串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,
?成本低但送速度慢。串行通讯的距离可以从几米到几千米。
?根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
第21页 (共41页)
PC机与MCS-51单片机的串口通信
如图5-1所示。
发送 器甲
接收器乙 (a) 单工方式
发送器
发送器
(b) 半双工方式
数据流
发送器
发送器
(C) 全双工方式
图5-1 串行通信传输方式
接收器 接收器系统设计时采用半双工方式通信,这主要是为了尽量避免红外通信存在发射与接收之间的相互干扰。
5.1 单片机串行口通信技术
MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但
第22页 (共41页)
接收器 接收器 串行口通信技术
接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。
MCS-51单片机串行口寄存器结构如图5-3所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。
此外,从图5-3中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。
图5-3 MCS-51串行口寄存器结构
1、波特率的设置
要实现单片机与PC机的串行通信,双方的波特率必须一致.PC机串行通信的波特率参数通常为一些标准的参数,可直接使用.因此实现MCS--51单片机和PC机的串行通信时,选择MCS—51单片机串行通信的波特率至关重要.
波特率根据串行口的工作方式不同而不同: (1)方式0波特率
串行口方式0的波特率由振荡器的频率所确定:
方式0波特率=振荡器频率/12 (2) 方式2波特率
串行口方式2的波特率由振荡器的频率和SMOD(PCON.7)所确定:
SMOD为0时,波特率等于振荡器频率的六十四分之一;SMOD为1时,波特率
第23页 (共41页)
PC机与MCS-51单片机的串口通信
等于振荡器的三十二分之一。
(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))]
表4-1 常用波特率 波特率(b/s) 19.2K 9600 4800 2400 1200 Fosc(mhz) 11.0592 11.0592 11.0592 11.0592 11.0592 SMOD 1 0 0 0 0
注:定时器T1作波特率发生器,所以在程序设计时要注意到禁止T1中断 2、串行通信控制寄存器SCON
C/T 0 0 0 0 0 模式 2 2 2 2 2 初值 FDH FDH FAH F4H E8H SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:
第24页 (共41页)
串行口通信技术
表4-2 SCON寄存器结构 SCON D7 SM0 位地址
3、电源管理寄存器PCON
9FH D6 SM1 9EH D5 SM2 8DH D4 REN 9CH D3 TB8 9BH D2 RB8 9AH D1 TI 99H D0 RI 98H PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:
表4-3 PCON电源管理寄存器结构 PCON 位符号
D7 SMOD D6 - D5 - D4 - D3 GF1 D2 GF0 D1 PD D0 IDL 在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。
4、中断允许寄存器IE
中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。
表4-4 IE中断允许控制寄存器结构 位符号 位地址
EA AFH - AEH - ADH ES ACH ET1 ABH EX1 AAH ET0 A9H EX0 A8H 5.2PC机串口通信技术
PC机串行通信接口设计是整个PC机部分的重点,在本章节中将详细分析串口的设计问题。
1. 通信芯片的选择
由于RS-232C的逻辑电平兼容,因此为了TTL器件连接,必须进行电平转换。MC1488和MC1489是RC-232C通信接口常用的集成电路转换芯片,但他们是两个独立的驱动器和发送芯片,而且MC1488驱动器还需要外接正负电源,很不方便。目
第25页 (共41页)