RS-232串口通信简介
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串口通信简介的更多相关文章
- android 串口开发第二篇:利用jni实现android和串口通信
一:串口通信简介 由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以 ...
- winform SerialPort串口通信问题
一.串口通信简介串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路,我们称为串 ...
- [转]C#串口通信 SerialPort类
本文转自:https://blog.csdn.net/weixin_41415541/article/details/80921956 因为公司项目需要将USB扫码枪改为串口扫码枪,串口扫码的好处在于 ...
- 创建C#串口通信程序详解
在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports.这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信.我们将使用标准 ...
- C#串口通信程序详解
C#串口通信程序详解 摘要:创建C#串口通信程序需要注意什么呢?创建C#串口通信程序的步骤是什么?那么本文就向你详细介绍创建C#串口通信程序集体的内容. 在.NET平台下创建C#串口通信程序,.NET ...
- (三)stm32之串口通信DMA传输完成中断
一.DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量.在硬件系统中,主要由CPU(内核).外设.内存(SRAM).总线等结构组成,数据经常要在内存和外设之间,外设和外 ...
- 51单片机GPIO口模拟串口通信
51单片机GPIO口模拟串口通信 标签: bytetimer终端存储 2011-08-03 11:06 6387人阅读 评论(2) 收藏 举报 本文章已收录于: 分类: 深入C语言(20) 作者同 ...
- 【Delphi】基于状态机的串口通信
通信协议 串行通信接口(如RS232.RS485等)作为计算机与单片机交互数据的主要接口,广泛用于各类仪器仪表.工业监测及自动控制领域中. 通信协议是需要通信的双方所达成的一种约定,它对包括数据格式. ...
- PC和FPGA间的串口通信实现
应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现 概述 本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制. ...
随机推荐
- 数据结构-单链表-类定义C++
原理可访问https://www.cnblogs.com/yang901112/p/11674333.html 头文件 #ifndef RLIST_H #define RLIST_H #include ...
- beego入门笔记
Beego Learn Note 示例环境在Deepin系统下. deepin 15.9.3 ├── Beego : 1.11.2 ├── GoVersion : go1.12.4 ├── GOOS ...
- service mc_start.sh does not support chkconfig
在构建docker镜像时,编写Dockerfile构建镜像时,配置自启动脚本报错,service mc_start.sh does not support chkconfig 添加下面两句到 #!/b ...
- Consul基本使用
原文: Consul基本使用 date: 2019-05-13 17:01:37 前言 官网介绍Consul是一个分布式服务网格(Service Mesh)解决方案... 而我目前的理解是提供了分布式 ...
- 用.net4中的DynamicObject实现简单AOP
public class DynamicWrapper : DynamicObject { private readonly object source; public DynamicWrapper( ...
- Eclipse下使用Maven创建项目出现的archetype错误,记,转
记自:http://blog.csdn.net/ZhuboSun/article/details/50099635 [1]出现的错误提示: Unable to create project from ...
- 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 ...
- Java 之 字节输入流 [InputStream]
一.字节输入流 java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中. 它定义了字节输入流的基本共性功能方法. 共性方法: public void c ...
- weblogic jdbc 相关概念介绍
weblogic jdbc 是什么? 如何配置? 常见问题? 如何监控?
- centos7 配置yum源
简单粗暴方法: 1.首先在本机上测试 ping www.baidu.com 是否通,不通的话配置网卡ip.dns等. 2.进入yum路径下: cd /etc/yum.repos.d/ 3.下载repo ...