RS-232串行通信与单片机接口简介

发布者:eaff86最新更新时间:2015-11-19 来源: eefocus关键字:RS-232  串行通信  单片机 手机看文章 扫描二维码
随时随地手机看文章
在这一课里,我们一起来学习RS-232C串行通信相关标准及单片机和电脑的RS-232C串行通信接口技术简介,为学习和开发单片机串口通信应用系统打好基础,希望大家在看完这篇文章后对串行通信有初步的认识。


【通信基本概念】

什么是通信?简单地说,不同的系统经由线路相互交换数据,就是通信。通信的主要目的是将数据从一端传送到另一端,达到数据交换的目的。例如,从人与人之间的对话、计算机与设备之间的数据交换到计算机与计算机间的数据传送,乃至于广播或卫星都是通信的一种,一个完整的通信系统包括发送端、接收端、转换数据的接口及传送数据的实际信道。

【通信的种类】

按照通信的形式可以分为两种,其中一种为并行传输的通信,即并行通信(Parallel Communication),另一种则为串行通信(Serisl Communication)。这两种通信方式的区别是,并行通信一次的传输数据量为8位(1个字节);而串行通信则一次只能传输1位,传输1字节数据(8位)数据就需要8次才能传出去,因此,它们两者之间的数据传输速度就相差8倍。看到这里,估计有些朋友会问,既然并行通信的速度是串行通信的8倍,是不是串行通信就不好了?!其实不能这么认为,两种通信方式各有特点,串行通信之所以存活了这么长时间,自然有它的长处。

串行通信一次只传输1位,相对来说,要处理的数据电压只有一个,因此比较不容易漏失数据,通信时候再加上一些校验防范措施后,串行通信的出错就更不容易了,串行通信端口(Serisl Communication Port)在系统控制的范畴中一直占有极其重要的角色,不仅没有因为时代的进步而被淘汰,反而失在规格上愈来愈向其极限挑战,下面我们重点来介绍RS-232C串行通信。


并行通信虽然可以在一次的数据传输中传送8位,但是数据电压在传送的过程中,容易因为线路及干扰因素使得电压准电位发生变化(主要为电压衰减和信号间相互干扰问题),因而使得传输数据发生错误,通信距离越长,问题越明显,因此并行通信主要用于传输距离较短的场合,如电脑主板的并口LPT1,主要和并行打印机通信。


【RS-232串行通信】

一、RS-232C标准介绍

RS-232C是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广泛的标准总线。RS-232C 标准(协议)的全称是EIA-RS-232C 标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,其中RS是Recommended Standard的缩写,代表推赠标准,232是标识符,C代表RS-232的最新一次修改(1969年),在这之前,有过RS-232A、RS-232B标准,它规定连接电缆和机械、电气特性、信号功能及传送过程。现在,计算机上的串行通信端口(RS-232)是标准配置端口,已经得到广泛应用,计算机上一般都有1~2个标准RS-232C串口,即通道COM1和COM2。下图为计算机主板上的两个RS-232通信端口图片及端口属性,我们一般可以从计算机后面查看到本机的通信端口。

 

点此在新窗口浏览图片
 



点此在新窗口浏览图片
计算机的RS-232串行通信接口图片

如左图所示,我们可以从操作系统的设备管理器中查看电脑的通信端口属性,进入计算机的:控制面板 -> 系统 -> 硬件 -> 设备管理器 -> 端口,就可以看到自己电脑通信端口,在图中显示了这台计算机有1个ECP打印机并行通信端口LPT1和2个RS-232串行通信端口COM1和COM2。只要显示的端口名称前面没有黄色的惊叹号的话,就表示这个端口是可以使用的。

     

 

二、RS-232C电气特性

EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了明确规定。

在TXD和RXD引脚上电平定义:逻辑1(MARK) = -3V~-15V
逻辑0(SPACE) = +3~+15V

在RTS、CTS、DSR、DTR 和DCD等控制线上电平定义:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V

以上规定说明了RS-232C 标准对逻辑电平的定义。对于数据(信息码):逻辑“1”的传输的电平为-3V~-15V,逻辑“0”传输的电平为+3V~+15V;对于控制信号;接通状态(ON)即信号有效的电平为+3V~+15V,断开状态(OFF)即信号无效的电平为-3V~-15V,也就是当传输电平的绝对值大于3V 时,电路可以有效地检查出来;而介于-3~+3V之间的电压即处于模糊区电位,此部分电压将使得计算机无法准确判断传输信号的意义,可能会得到0,也可能会得到1,如此得到的结果是不可信的,在通信时候体现的是会出现大量误码,造成通信失败。因此,实际工作时,应保证传输的电平在±(3~15)V 之间。

三、RS-232C机械连接器及引脚定义

目前,大部分计算机的RS-232C通信接口都使用了DB9连接器,如上面图中所示,主板的接口连接器有9根针输出(RS-232公头),也有些比较旧的计算机使用DB25连接器输出,下面我们来介绍DB9和DB25输出接口的引脚定义。

 

RS-232C串口引脚定义表
9针RS-232串口(DB9)
 
.
25针RS-232串口(DB25)
引脚
简写
功能说明
引脚
简写
功能说明
1
CD
载波侦测(Carrier Detect)
8
CD
载波侦测(Carrier Detect)
2
RXD
接收数据(Receive)
3
RXD
接收数据(Receive)
3
TXD
发送数据(Transmit)
2
TXD
发送数据(Transmit)
4
DTR
数据终端准备(Data Terminal Ready)
20
DTR
数据终端准备(Data Terminal Ready)
5
GND
地线(Ground)
7
GND
地线(Ground)
6
DSR
数据准备好(Data Set Ready)
6
DSR
数据准备好(Data Set Ready)
7
RTS
请求发送(Request To Send)
4
RTS
请求发送(Request To Send)
8
CTS
清除发送(Clear To Send)
5
CTS
清除发送(Clear To Send)
9
RI
振铃指示(Ring Indicator)
22
RI
振铃指示(Ring Indicator)

 

四、RS-232C的通信距离和速度

RS-232规定最大的负载电容为2500pF,这个电容限制了传输距离和传输速率,由于RS-232C的发送器和接收器之间具有公共信号地(GND),属于非平衡电压型传输电路,不使用差分信号传输,因此不具备抗共模干扰的能力,共模噪声会耦合到信号中,在不使用调制解调器(MODEM)时,RS-232能够可靠进行数据传输的最大通信距离为15米,对于RS232远程通信,必须通过调制解调器进行远程通信连接。[page]

现在个人计算机所提供的串行端口的传输速度一般都可以达到115200bps甚至更高,标准串口能够提供的传输速度主要有以下波特率:1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等,在仪器仪表或工业控制场合,9600bps是最常见的传输速度,在传输距离较近时,使用最高传输速度也是可以的。传输距离与传输速度的关系成反比,适当地降低传输速度,可以延长RS-232的传输距离,提高通信的稳定性。

五、RS-232电平转换芯片及电路

RS-232C 规定的逻辑电平与一般微处理器、单片机的逻辑电平是不同的,例如:RS-232的逻辑“1”是以-3~-15V来表示的,而单片机的逻辑“1”是以+5V来表示的,两者完全不同。因此,单片机系统要和电脑的RS-232接口进行通信,就必须把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平,或者把计算机的RS-232C电平转换成单片机的TTL电平,通信时候必须对两种电平进行转换。实现这种转换的方法可以使用分立元件,也可以使用专用RS-232电平转换芯片。目前较为广泛地使用专用电平转换芯片,如MC1488、MC1489、MAX232等电平转换芯片来实现EIA到TTL电平的转换。下面来介绍MAXIM公司的单电源电平转换芯片MAX232及接口电路。

如下面图中所示,MAX232是单电源双RS-232发送/接收芯片,采用单一 +5V电源供电,外接只需4个电容,便可以构成标准的RS-232通信接口,硬件接口简单,所以被广泛采用, 其主要特性如下:

主要特点:
1、符合所有的RS-232C技术规范
2、只要单一 +5V电源供电
3、片载电荷泵,具有升压、电压极性反转能力,能够产生 +10V 和 -10V电压V+、V-
4、低功耗,典型供电电流5mA
5、内部集成2个RS-232C驱动器
6、内部集成2个RS-232C接收器

 

MAX232CPE 引脚结构
点此在新窗口浏览图片
MAX232芯片实物图片
 

点此在新窗口浏览图片
MAX232芯片引脚排列

     

 

单片机和计算机RS-232接口电路如下图所示,图中的C1、C2、C3、C4是电荷泵升压及电压反转部分电路,产生V+、V-电源供EIA电平转换使用,C5是VCC对地去耦电容,其值为0.1UF,电容C1~C5安装时必须尽量靠近MAX232芯片引脚,以提高抗干扰能力。

 

采用MAX232CPE 芯片的PC机与MCS-51单片机串行通信接口电路
 
点此在新窗口浏览图片

 

     

 

下图是一个采用分立元件构成的简易RS-232串行通信接口电路,使用三极管进行电平转换,能够由于简单的通信,对于通信稳定性要求较高的应用,不建议使用分立元件,分立元件电路的稳定性,误码率较高,不能完全满足RS-232C的全部技术指标。优点是成本低廉,网上也可以看到部分网站产品使用分立元件构成。

 

采用分立元件的简易RS-232C通信接口电路
 
点此在新窗口浏览图片

 

     

 

通过对前面的学习,我们对RS-232C串行通信标准已经有了初步的了解,同时也掌握了单电源双RS-232发送/接收芯片MAX232CPE的应用。有了这些基础,我们开发单片机和电脑RS232串口通信系统的接口设计也就简单了。只要给我们单片机实验板增加RS232电平转换电路,即可实现与计算机的串行通信


关键字:RS-232  串行通信  单片机 引用地址:RS-232串行通信与单片机接口简介

上一篇:单片机中晶振的选用相关介绍
下一篇:MSP430重启/频繁重启/跑飞 原因分析

推荐阅读最新更新时间:2024-03-16 14:40

Echo手表采用SiLabs Giant Gecko MCU
-Magellan在首款长效可更换电池供电并与智能手机兼容的运动手表中选择EFM32 Giant Gecko作为开发平台- 中国,北京 - 2014年1月7日 - 高性能模拟与混合信号IC领导厂商Silicon Labs(芯科实验室有限公司, NASDAQ: SLAB)今天宣布,为汽车、健身、户外和移动导航提供创新GPS设备的领导厂商Magellan选择Silicon Labs的EFM32™ Giant Gecko微控制器(MCU)作为Magellan Echo智能运动手表的节能型处理平台。荣获“CES 2014创新设计与工程奖”的Echo是首款具有“开放性”平台的智能运动手表,这帮助了应用程序开发者,使用户在手腕就可以看到和控
[物联网]
STM8单片机启动流程彻底探究--基于IAR开发环境
初学STM8会发现,STM8官方的固件库并没有提供一个.s文件的启动代码,那么她是如何启动然后跳转到main函数执行的呢 首先,我们根据ARM的只是可以推测,STM8也是通过复位向量来启动的,假设流程在复位响亮中完成的,应该首先去复位向量表中间去找,看复位向量又要看存储器映射,一环扣一环 STM8使用的是统一编址技术,以下是存储器编址图 我们可以看到,最大取指空间是0XFFFFFF,也就是说,是16M,这是因为PC的特性决定的 在程序内部,它是将16M分为了256个节(sector),每个节的大小为64K,64*256= 16384K=16M,由图我们可以看到,在SECTOR0区间里面似乎还有些玄妙,之后的就是普通
[单片机]
STM8<font color='red'>单片机</font>启动流程彻底探究--基于IAR开发环境
Bridgetek提供MCU,HMI和I / O扩展硬件在 嵌入式系统设计
2017年6月21日- Bridgetek再一次于非常受欢迎的CleO 智能显示平台上推出新产品,目的在帮助创客社群和专业的工程师。CleOIO-Shield是一个输入/输出扩充板,与CleO35 3.5英寸和CleO50 5英寸TFT屏兼容,可直接连接到NerO系统控制模块。它为CleO系统提供更强的接口能力 - 涵盖模拟,数字,I2C,SPI和UART。该扩充板提供附加的I / O功能可以通过CleO的Arduino Uno接口,和MikroBus接头或通用格罗夫(Grove-Universal) 4针连接器适当连接。新的扩充板(尺寸为70mm x 53mm x 21mm)将多种模块功能集合在一块扩充板上,提供工程师各种不同的
[单片机]
Bridgetek提供<font color='red'>MCU</font>,HMI和I / O扩展硬件在 嵌入式系统设计
交换指令(5条)举例——mcs51单片机汇编语言
交换 指令 (5条) 这5条指令的功能是把累加器A中的内容与源操作数所指的数据相互交换。 XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换 XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换 XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换 XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换 SWAP A ;(A3-0)←→(A7-4)累加器中的内容高低半字节互换
[单片机]
教你学单片机 2:用机器的视角思考
你准备写第一个单片机程序了,在此之前我假设你已经会使用编译器,也会下载程序了。 P.S. 因为这些工作确实很简单,在网上找份教程看看就会了。 一般刚开始学一种单片机的时候,写的第一个程序都是 点亮第一个LED 。这个程序很经典,它代表你已经成功学会操控单片机的IO端口,学51单片机亦是如此。代码如下(我使用ATMEL 公司的AT89S52): #include reg52.h sbit LED = P1^0 ; void Delay(unsigned int t) { unsigned int i,j ; for(i=t;i 0;i--) for(j=100;j 0;j--); }
[单片机]
AVR单片机中ATmega8的AD转换探究
AD采集最好要满足的条件:采样频率不小于被采集信号最高频率的两倍,则采样输出信号就可以无失真的重新啊还原输入信号,通常的实际应用中,采样频率为采集最高频率的5-10倍。 AD芯片的数据输出方式有串行和并行两种方式,对于AVR单片机来说A/D芯片和AVR单片机接口是需要考虑的一些问题: (1)模拟信号输入的连接:单端输入时,VIN+引脚直接与信号输入连接,VIN-接地。差分输入时,单端输入正信号,VIN+引脚直接与信号连接,VIN-引脚接地。单端输入负信号,VIN-引脚与信号连接,VIN+引脚接地。 (2)数据输入线与系统总线的连接:有可控制的三态输出门时候可以直接和系统总线连接,没有输出门的时候要通过I/O口进行连接。 (3)启动
[单片机]
单片机C51编程规范
1单片机C51编程规范- 前言   为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。 2 单片机C51编程规范-范围   本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对C51编程语言和keil编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。 3 单片机C51编程规范-总则 l 格式清晰 l 注释简明扼要 l 命名规范易懂 l 函数模块化 l 程序易读易维护 l 功能准确实现 l 代码空间效率和时间效率高 l 适度的可扩展性 4 单片机C51编程规范-数据类型定义 编程时统一采用下述新类型名的方式定义数据类型。 建立一个datatype.h
[单片机]
80C51单片机中断的编程使用方法介绍
1、单片机中断: 找了一张 80C51 单片机的图如下: 其中,在 P3.2、P3.3 的位置,即 12 ,13 引脚处,标有 INT0 和 INT1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 P3.2、P3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。 2、中断寄存器: (1)、IE (Interrupt Enable):中断允许控制寄存器 EA (IE.7):EA=0 时,所有中断禁止(即不允许中断) EA=1 时,各中断的产生由个别的允许位决定 ET2 (IE.5):定时器 2 溢出中断允许(8052 用,博主用的 STC89C54RD+ 也有) ES
[单片机]
80C51<font color='red'>单片机</font>中断的编程使用方法介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved