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++语言动态创建对象

    焦头烂额的考试月终于过去了,终于有时间能停下来思考记录一下这一个月学过的东西,首先先总结一下,在自己仿写魂斗罗游戏时遇见的问题之一,人物在移动的时候如何去判断什么时候掉入水中显示水中画面,什么时候敌人 ...

  2. maven 打包成 .jar 文件执行:没有主清单属性错误

    报错原因是pom.xml配置文件中没有指定main入口信息,在pom.xml文件中添加如下代码: <build> <plugins> <plugin> <gr ...

  3. Hibernate持久化,生命周期

    一 .生命周期   1.1  . 说明 持久化类就是我们所说的实体类,实体类(持久化类)对象是有状态的. 为什么实体类对象会有状态? 答:由于HIbernate框架是一个先映射,后操作的框架.所谓的状 ...

  4. Java安装和环境配置

    Java安装和环境配置 从事Java开发第一关就是安装JAVA环境. 我们要安装JDK, 全称Java开发全套. 其中包含了JRE(运行时环境), 如果你打游戏的时候可能会提示你缺少JRE. 我们要做 ...

  5. Datatable批量导入到表

    封装批量提交数据到表,用于数据同步作业 private string GetSelectFieldNames(DataTable dataTable, string tableName = " ...

  6. Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...

  7. GoAccess 视图化access.log 日志

    1.安装GoAccess 工具可以直接使用 apt-get install goaccess 2.使用goaccess命令将日志生成html文件 goaccess 日志路径 -o 输出HTML的路径 ...

  8. Vue的学习笔记

    以下文章皆为观看慕课网https://www.imooc.com/learn/796中“河畔一角”老师的讲解做的笔记,仅供参考. 一.Vue特点 Vue是MVVM的框架,也就是模型视图->视图模 ...

  9. Java 之 IO 异常的处理【了解】

    一.JDK7 前的处理 前面的 Demo 中,一直把异常抛出,而在实际中并不能这样处理,建议使用 try...catch...finally 代码块,处理异常部分. 格式: try{ 可能会产出异常的 ...

  10. TR-FS00会计科目创建GL_ACCT_MASTER_SAVE

    https://blog.csdn.net/z_x_xing_/article/details/90514715 GL_ACCT_MASTER_SAVE   创建总账科目 前台事务代码:FS00 函数 ...