RS-232协议和RS-485协议
RS232
RS232是一种异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现 。RS232最经常使用的连接方式是三根线:一条发送线、一条接收线及一条地线。
电平信号:逻辑1(MARK)=-3V~-15V,逻辑0(SPACE)=+3~+15V
传输距离:RS-232-C标准规定,驱动器同意有2500pF的电容负载,通信距离将受此电容限制,比如,採用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离能够添加。传输距离短的还有一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰(两条传输线上的信号同一时候变大或变小)等问题,因此一般用于20m以内的通信。
RS232不能实现多机通信。
原因:RS232为全双工的通信方式,一般的连接方式都为TTL电平<--电平转换芯片-->RS232电平,线路空暇时发送和接收的TTL电平都是高电平,电平转换芯片之后得到的RS232电平总是低。如今假设A为主机,B和C为从机,那么A想给B发送信号的时候没有问题,由于A的TXD线连接在B和C的RXD线上面,此时B和C的RXD线都是正常的处于等待接收(空暇)的状态,可是假设B假设收到信号想给A回复的时候,B的TXD与C的TXD线都同A的RXD线连接在一起的,B此时处于发送数据的状态(B即想控制自己的TXD线高低电平之间变化),然而C此时处于空暇状态(C想保证自己的TXD线为低电平不变),这个时候B和C的TXD线之间就出现了通信冲突。所以RS232能够实现点对点的通信方式,但这样的方式不能实现组网的功能。
传输速率:RS232的传输速率较慢,可以达到1Mbps的已经比較少。
RS485
RS485一般採用两线制传输:A、B两条传输线。
电平信号:-2V~-6V表示“0”,+2V~+6V表示“1”,电压为A-B的电压。
传输距离:一般1Km以内都没有问题。理论上,通信速率在100Kpbs及下面时,RS485的最长传输距离可达1200米,但在实际应用中传输的距离也因芯片及电缆的传输特性而所差异。在传输过程中能够採用添加中继的方法对信号进行放大,最多能够加八个中继,也就是说理论上RS485的最大传输距离能够达到9.6公里。假设真须要长距离传输,能够採用光纤为传播介质,收发两端各加一个光电转换器,多模光纤的传输距离是5~10公里,而採用单模光纤可达50公里的传播距离。
RS485能够实现多机通信。
原因:RS485为半双工通信方式,即分时实现收和发。总线空暇的状态下须要保证状态为逻辑1,也就是A-B的电压符合逻辑1的电平值。如果此时1为主机,2和3为从机,数据线的连接方式为1,2,3的A连接在一起,1,2,3的B也连接在一起,不存在RS232连接方式的问题。
补充:
同步传输是一种以数据块为传输单位的传输数据方式,该方式下数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。每一个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的開始和结束,一般还要附加一个校验序列,以便对数据块进行差错控制。
异步传输(Asynchronous Transmission): 异步传输将比特分成小组进行传送,小组能够是8位的1个字符或更长。发送方能够在不论什么时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的样例是计算机键盘与主机的通信。
同步异步的差别主要就在于收发两方的时钟是否同步。
波特率计算:假设设置波特率为115200,数据位为8bit,起始位为1bit,结束位为1bit,校验位为1bit;
那1s钟不间断可传送的字符(1bit起始位+8bit数据位+1bit校验位+1bit结束位,共11bit)为115200/11=10472;10472/1024结果约为10.227所以速率约为10kB/ps。
RS-232协议和RS-485协议的更多相关文章
- [Twisted] Protocols协议和Protocol Factories 协议工厂
Protocols 描述了如何异步处理网络事件.Twisted维护了许多协议的实现,如HTTP,Telent,DNS,IMAP.Portocols实现了IProtocol接口, IProtocol包含 ...
- C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官方 ...
- OSI协议和TCP/IP协议笔记
1.OSI协议: 第7层应用层:OSI中的最高层.是用户与网络的接口.该层通过应用程序来完成网络用户的应用需求,如文件传输.收发电子邮件等.在此常见的协议有:HTTP,HTTPS,FTP,TELNET ...
- java基础55 UDP通讯协议和TCP通讯协议
本文知识点(目录): 1.概述 2.UDP通讯协议 3.TCPP通讯协议 1.概述 1.在java中网络通讯作为Socket(插座)通讯,要求两台都必须安装socket. 2.不同的 ...
- python 读写西门子PLC 包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 nu ...
- java android 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC
本文将使用一个gitHub开源的组件技术来读写西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 gi ...
- 使用 C# 实现 CJ-T188 水表协议和 DL-T645 电表协议的解析与编码
一.协议的定义 要对某种协议进行编解码操作,就必须知道协议的基本定义,首先我们来看一下 CJ/T188 的数据帧定义(协议定义),了解请求数据与响应数据的基本结构. 1.1 CJ/T188 水表通讯协 ...
- 各种非标232,485协议,自定义协议转modbus协议模块定制开发,各种流量计协议转modbus,
工业现场经常会碰到通过485或者232采集各类仪表数据,但是很多早期的仪表和设备不支持标准modbus协议,而是采用自定义的协议,这些协议数据由plc或者dcs系统来实现采集,不仅费时麻烦,而且不方便 ...
- Bytom BIP-32协议和BIP-44协议
我们知道HD(分层确定性)钱包,基于 BIP-32:多币种和多帐户钱包,基于 BIP-44:最近比原社区的钱包开发者对比原的BIP-32和BIP-44协议有疑问,所以我今天就专门整理了一下该协议的内容 ...
- TCP协议和UDP协议基础介绍
TCP协议和UDP协议区别 标签(空格分隔): TCP,udp TCP的三次握手 TCP被称为可靠的数据传输协议,主要是通过许多机制来实现的其中最主要的就是三次握手的功能,当然,TCP传送数据的机制非 ...
随机推荐
- VS2015配置Andriod开发环境
原文:VS2015配置Andriod开发环境 折腾了好久终于配置OK了,分享给大家! 第一步: http://xamarin.com/download下载XamarinInstaller 第二步: 运 ...
- 深入理解计算机系统之旅(四)处理器(CPU)的体系结构
1.前言 处理器是很复杂的系统,它不是一蹴而就的,它是经过不断的升级.更新.设计之后的产物,而且如今还在保持着不断的更新. 处理器仅仅能运行一系列的指令,每条指令都仅仅是运行某个简单的操作,比方数字相 ...
- IOS设计模式学习(11)中介者
1 前言 面向对象的设计鼓励把行为分散到不同对象中.这种分散可能导致对象之间的相互关联.在最糟糕的情况下,所有对象都彼此了解并相互操作.但是增加的相互关联又减少了获得的益处.增加的关联似的对象很难或不 ...
- 希尔排序java
希尔排序简述 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率.(希尔排序先将部分数据进行排序,相当于已经部分排好序) ...
- C++ 版本的split_string
vector<string> split_string(const string &in, char del, bool skip_empty) { vector<strin ...
- redis入门(转)
Redis介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表.哈希.集合和有序集合5种.支持在服务器端计算集合 ...
- AIX 7.1 install python
周围环境AIX7.1 设备python-2.6.2 因为互联网是非常多的安装文档.而且也没有细挑的版本号.因为我觉得python2.6 可能相对保守一些,至少之前用到的版本号是这个.所以此处依旧 ...
- 开源NetWorkSocket通讯组件
开源NetWorkSocket通讯组件 前言 在<化茧成蝶,开源NetWorkSocket通讯组件>发表之后,收到大家很多个star,在此感谢!更可贵的是,一些网友提出了许多好建议,经 ...
- 第十三章——表和索引分区(1)——使用Range Left进行表分区
原文:第十三章--表和索引分区(1)--使用Range Left进行表分区 前言: 如果数据表的数据持续增长,并且表中的数据量已经达到数十亿甚至更多,数据的查询和操作将非常困难,面对非常庞大的表,几时 ...
- 在java代码中获取JVM参数(转)
近日关注性能调优,关注JMX,发现java.lang.management.*之强大.同时查阅了资料,整合一版关于JVM参数获取的note,仅供参考: MemoryMXBean memorymbean ...