1969年,美国电子工业协会将RS-232定为串行通信接口的电器标准,该标准定义了数据终端设备DTE(Date Teriminal Equipment)与数据通信设备DCE(Data Communication Equipment)指甲按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,适合于数据传输在0~20000bits范围内的通信。有应用广泛;连接距离长(15m);实现简单,双向连接,只需要三条导线等特点。

标准的RS_232接口有25根信号线,其中有4跟数据线,11根控制线,3根定时线和7根备用线。使用25根信号线中的9根就可以实现RS_232通信。

1.DCD(Data Carrier Detection):数据载波检出,有效表示Modem已经接通了通信链路,即本地Modem收到了通信链路另一端的远程Modem送来的载波信号,终端可以准备好接收数据。(数据载波监测)

2.RxD(Received Data):接收数据,终端通过信号线从Modem接收数据。(接收数据)

3.TxD(Transmitted Data):发送数据,终端通过此信号线将数据发送给Modem。(发送数据)

4.DTR(Data Terminal Ready):数据终端就绪,当其有效时,说明数据终端可用。(数据终端准备)

5.SG(Signal Ground):信号地。

6.DSR(Date Set Ready):数据装置就绪,当状态为有效时,表明Modem(Modulator:中文调制器,是一种在发送端通过调制将数字信号转化为模拟信号,而在接收端通过调解再将模拟信号转换为数字信号的设备)处于可以使用的状态。(数据设备准备好)

7. RTS(Request To Send):请求发送,即当终端需要发送数据时,使该信号有效,同Modem请求发送,用于控制Modem是否进入发送状态。(请求发送)

8.CTS(Clear To Send)意思为允许发送,这个信号是对RTS信号的响应。当Modem已经准备好接收终端发过来的数据时,使该信号有效,通知终端开始发送数据。(清除发送)

9.RI(Ringing):振铃指示,当本地Modem收到交换台发送的振铃呼叫信号时,使该信号有效,通知终端已被呼叫。(振铃提示)

Tips:地线有两根,分别是信号地SG(Signal Ground)和保护地PE(Protection Ground),信号地是所有信号的参考电平,保护地用于连接设备外壳或者地表。

常见的RS_232串行接口连接器有两种:25针的DB-25,9针的DB-9。最常用的连接方法是三线连接法:即地(信号地),接收数据和发送数据三角相连。

电气特性:对于数据传输线RxD和TxD,逻辑“1”对应的电平是-15~3V, 逻辑“0”对应的电平是+3~+15V;对于RTS,CTS,DSR,DTR,DCD等信号线,信号有效时对应信号线上为正电平+3~+15V,反之则是-15V~-3V。

由于RS-232电气特定规定的电平不符合通常电路中所使用的TTL或CMOS电平(TTL电平:阀值电压是<0.2V为输出低电平;>3.4V为输出高电平;CMOS电平:逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限)因此接入电路之前需要对其进行转换。最常用是使用没新公司的MAX232。MAX232可以将串口设备需要发送的TTL/CMOS逻辑电平转换为RS-232逻辑电平,同时也可以将要接收的RS-232逻辑电平转换为TTL/CMOS电平。MAX232典型连接方法:10和11管脚是TTL/CMOS电平输入,对应14管脚和7管脚的RS-232电平输出。12和9管脚是TTL/CMOS电平输出,对应13和8管脚的RS-232电平输入。

通信时序:在串行通信时,常用”波特率“来描述数据的传输速率。所谓“波特率”就是每秒钟传送的二进制位数,通常称为传输速率。在异步串行通信中,传送一个字符,包括12位,其传输速率为1200bit/s,每秒所能传送的字符数(字符速率)是100个。1200bit/s意义是每秒传输1200位数据,包括字符位和其他必须的位:如奇偶校验位,起始位,停止位。其中,字符数据的位数可以被设置为5~8位,奇偶校验位可以去除,也可以设置为奇检验或者偶校验;停止位可以设置为1位,1.5位或者2位(指的是停止位有1,1.5,2个单位时间三种长度)。

Tips:奇/偶校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。
  如果是采用奇校验,在传送每一个字节的时候另外附加一位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则这个校验位就是“0”,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中“1”的个数,如果是奇数,表示传送正确,否则表示传送错误。
  同理偶校验的过程和奇校验的过程一样,只是检测数据中“1”的个数为偶数。
  如0100101偶校验码就是10100101
  推理偶校验: 当实际数据中“1”的个数为偶数的时候,这个校验位就是“0”,否则这个校验位就是“1”,这样就可以保证传送数据满足偶校验的要求。在接收方收到数据时,将按照偶校验的要求检测数据中“1”的个数,如果是偶数个“1”,表示传送正确,否则表示传送错误。

Rs232奇偶校验校的都是“1”的个数 。

串行总线在空闲的时候保持逻辑“1”状态(即串行连接线上的电平为-3~+15V),当需要传送一个字符时,首先会发送一个逻辑为”0“的起始位,表示开始发送数据;之后,就逐个发送数据位,奇偶校验位和停止位(逻辑为”1“)。

RS-232串口通信简介的更多相关文章

  1. android 串口开发第二篇:利用jni实现android和串口通信

    一:串口通信简介 由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以 ...

  2. winform SerialPort串口通信问题

    一.串口通信简介串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串 ...

  3. [转]C#串口通信 SerialPort类

    本文转自:https://blog.csdn.net/weixin_41415541/article/details/80921956 因为公司项目需要将USB扫码枪改为串口扫码枪,串口扫码的好处在于 ...

  4. 创建C#串口通信程序详解

    在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports.这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信.我们将使用标准 ...

  5. C#串口通信程序详解

    C#串口通信程序详解 摘要:创建C#串口通信程序需要注意什么呢?创建C#串口通信程序的步骤是什么?那么本文就向你详细介绍创建C#串口通信程序集体的内容. 在.NET平台下创建C#串口通信程序,.NET ...

  6. (三)stm32之串口通信DMA传输完成中断

    一.DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量.在硬件系统中,主要由CPU(内核).外设.内存(SRAM).总线等结构组成,数据经常要在内存和外设之间,外设和外 ...

  7. 51单片机GPIO口模拟串口通信

    51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于:   分类: 深入C语言(20) 作者同 ...

  8. 【Delphi】基于状态机的串口通信

    通信协议 串行通信接口(如RS232.RS485等)作为计算机与单片机交互数据的主要接口,广泛用于各类仪器仪表.工业监测及自动控制领域中. 通信协议是需要通信的双方所达成的一种约定,它对包括数据格式. ...

  9. PC和FPGA间的串口通信实现

    应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现   概述   本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制. ...

随机推荐

  1. 数据结构-单链表-类定义C++

    原理可访问https://www.cnblogs.com/yang901112/p/11674333.html 头文件 #ifndef RLIST_H #define RLIST_H #include ...

  2. beego入门笔记

    Beego Learn Note 示例环境在Deepin系统下. deepin 15.9.3 ├── Beego : 1.11.2 ├── GoVersion : go1.12.4 ├── GOOS ...

  3. service mc_start.sh does not support chkconfig

    在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig 添加下面两句到 #!/b ...

  4. Consul基本使用

    原文: Consul基本使用 date: 2019-05-13 17:01:37 前言 官网介绍Consul是一个分布式服务网格(Service Mesh)解决方案... 而我目前的理解是提供了分布式 ...

  5. 用.net4中的DynamicObject实现简单AOP

    public class DynamicWrapper : DynamicObject { private readonly object source; public DynamicWrapper( ...

  6. Eclipse下使用Maven创建项目出现的archetype错误,记,转

    记自:http://blog.csdn.net/ZhuboSun/article/details/50099635 [1]出现的错误提示: Unable to create project from ...

  7. The version of SOS does not match the version of CLR you are debugging

    分析dump文件时,由于客户生产环境与分析dump文件的环境不一致,常常会出现下面的错误 The version of SOS does not match the version of CLR yo ...

  8. Java 之 字节输入流 [InputStream]

    一.字节输入流 java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中. 它定义了字节输入流的基本共性功能方法. 共性方法: public void c ...

  9. weblogic jdbc 相关概念介绍

    weblogic jdbc 是什么? 如何配置? 常见问题? 如何监控?

  10. centos7 配置yum源

    简单粗暴方法: 1.首先在本机上测试 ping www.baidu.com 是否通,不通的话配置网卡ip.dns等. 2.进入yum路径下: cd /etc/yum.repos.d/ 3.下载repo ...