由于单片机具有体积小、价格低廉、适应性强的特点,一般在工业控制系统中,各种数据的采集和执行机构的控制都是由单片机来完成。而单片机的计算能力有限,难以进行复杂的数据处理。在功能比较复杂的自动控制系统中,通常以工控机为上位机,单片机为下位机,由单片机完成数据的采集及对设备的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。在分布式控制系统中大多采用单片机作为下位机来进行数据采集和现场控制,在这些应用中,单片机只是直接面对被控对象底层,而对采集到的数据进行进一步的分析和处理工作,则是由功能强大的PC机来完成的。
因此,PC机和单片机之间就有着大量的数据交换。在绝大多数PC机的标准配置中,都有一个到多个RS 232串口,因为RS 232串口担负着PC机和单片机之间大量的数据交换的重任。单片机89C52用于自动控制及数据传输,并通过RS 232接口向上位机进行数据通信。
1 RS 232串口通信
1.1 RS 232C标准
RS 232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS 232的最新一次修改。在这之前,有RS 232B,RS 232A,它规定连接电缆和机械、电气特性、信号功能及传送过程。
1.2 RS 232的接口引脚定义
由于RS 232C并未定义连接器的物理特性,因此,出现了DB-25,DB-15和DB-9各种类型的连接器,其引脚定义也各不相同。常用的连接器接口图如图1所示,DB9的引脚功能见表1。
图1 DB9的引脚图
RS 232C标准接口有25条线,分别为4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:
(1)状态线
数据准备就绪(Data Set Ready,DSR):有效时(ON)状态,表明数据通信设备可以使用。
数据终端就绪(Data Terminal Ready,DTR):有效时(ON)状态,表明数据终端设备可以使用。
这两个信号有时连到电源上,上电就立即有效。
这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信由下面的控制信号决定。
(2)联络线
请求发送(Request to Send,RTS):DTE准备向DCE发送数据,DTE使该信号有效(ON状态),通知DCE要发送数据给DCE了。
允许发送(Clear to Send,CTS):对RTS的响应信号。当DCE已准备好接收DTE传来的数据时,使该信号有效,通知DTE开始发送数据。
RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。
(3)数据线
发送数据(Transmitted Data,TXD):DTE发送数据到DCE。
接收数据(Received Data,RXD):DCE发送数据到DTE。
(4)地线
有两根线SG,PG:信号地和保护地信号线。
(5)其余
载波检测(Carrier Detection,CD):用来表示DCE已接通通信链路,告知DTE准备接收数据。
振铃指示(Ringlng,RI):当DCE收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知DTE,已被呼叫。
通常的应用系统中,往往是在CPU和I/O设备之间传送信息,两者都是DTE,上位机和单片机89C52之间的通信,双方都能发送和接收,他们的连接只需要使用三根线即可,即RXD,TXD和GND,这种连接方式,即两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应接地即可。连接方式如图2所示。
图2 上位机和单片机之间串口连接图
1.3 波特率的概念
串行通信中,每秒传送的数据位称为波特率。如数据传送的波持率为1200波特,采用N.8.1帧格式(10位),则每秒传送字节为120个,而字节中每一位传送时间即为波特率的倒数:T=1/1 200=0.833 ms。同样,如数据传送的波特率为1 9 200波特,则字节中每一位传送时间T=1/19 200=0.052 ms。根据数据传送的波特率即字节中每一位的传送时间,便可用普通I/O口来模拟实现串行通信的时序。
1.4 RS 232C的电气特性
(1)逻辑电平
在TXD和RXD上:
逻辑1(MARK):-3~-15 V;
逻辑0(SPACE):+3~+15 V。
在RTS,CTS,DSR,DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压):+3~+15 V;
信号无效(断开,OFF状态,负电压):-3~-15 V。
由以上定义可以看出,信号无效的电平低于-3 V,也就是当传输电平的绝对值大于3 V时,电路可以有效地检查出来,介于-3~+3 V之间的电压无意义,低于-1 5 V或高于+15 V的电压也认为无意义,因此,实际工作时,应保证电平的绝对值在3~15 V之间。当计算机和TTL电平的设备通信时,如上位机和单片机通信时,需要使用RS 232/TTL电平转换器件,常用的有MAX232。
1.5 RS 232与单片机之间的接口电路MAX232
由于RS 232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换。MAX232由单一的+5 V电源供电,只需配5个高精度10μF/50 V的钽电容即可完成电平转换,转换后的串行信号TXD,RXD直接与上位机的串口连接。MAX232芯片的内部结构基本可分三个部分:
第一部分是电荷泵电路。由1,2,3,4,5,6脚和4只电容构成。功能是产生+12 V和-1 2 V两个电源,提供给RS 232串口电平的需要。
第二部分是数据转换通道。由7,8,9,10,11,12,13,14脚构成两个数据通道。其中13脚(R1in)、12脚(R1out)、11脚(T1in)、14脚(T1out)为第一数据通道。8脚(R2in)、9脚(R2out)、10脚(T2in)、7脚(T2out)为第二数据通道。TTL/COMS数据从T1in,T2in输入转换成RS 232数据从T1out,T2out送到电脑DB9插头;DB9插头的RS 232数据从R1in,R2in输入转换成TTL/COMS数据后从R1out,R2out输出。
第三部分是供电。1 5脚GND、16脚VCC(+5 V)。
图3 RS 232与MAX232的连接图
1.6 RS 232的不足之处
(1)传输距离有限,实际最大传输距离只有50 m。
(2)传输速率较低,在异步传输时,速率最大为19 200 b。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
1.7 消除干扰噪声的主要方法
针对以上所述RS 232易产生共模干扰的问题,常用的解决方法主要是采用光隔离器,光隔离器穿过一个隔离的屏障来传输信号。一个光隔离器由一个光敏电阻耦合的发光二极管构成。流过发光二极管的电流使得它以可见光或者红外线的方式释放能量。这些能量将这个光敏电阻打开,导致在这个电阻的发射极和集电极之间的低阻抗。这个发光二极管的基极可以留着没有连接。从基极到发射极加入一个电阻可以导致更快的开关速度,但是输出电流更低。
2 结语
RS 232串口通信是PC机和单片机之间信息传递的枢纽,一切数据和指令的传输必须由RS 232串口来完成。针对RS 232存在的不足之处加以改进之后,RS 232使得PC机和单片机之间能高效地通信,采用电平转换芯片MAX232实现TTL逻辑电平和RS 232电平之间的相互转换,转换之后的串行信号TXD,RXD直接与PC机的串口连接,如此连接,既可体现出单片机的灵活控制功能,又可发挥出PC机强大的计算和显示功能,有利于对现场信号的实时采集、处理和监控,确保了良好的人机界面的交互性。