首页 > 其他分享 >串口 RS232 RS485

串口 RS232 RS485

时间:2023-07-05 14:01:03浏览次数:30  
标签:RS RS485 接口 传输 串口 RS232

一、 接口的物理结构

 

 

1. RS232接口:RS 232接口连接器使用DB-25的25芯插头座。一些设备与PC机连接的RS-232接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。

image.png0b393b0618f8e8fa61b05fb8aff4c34.jpg

2. RS485接口:RS 485 没有特定的物理形状,接口是根据工程实际情况采用的。

 

二、接口的电子特性

 

1. RS232采用负逻辑且与地对称:传输级信号接口的信号级值比较高(信号“1”是“-3V”至-15V,“信号”03 ~ 15V ),容易损坏接口电路的芯片,且与 TTL 电平( 0 ~2.0 V )不兼容,因此需要采用电平转换电路与 ttl 电路连接。外,抗干扰能力差。

 

2. RS485采用差分方式正逻辑 :传输差分信号逻辑" 1 "由两条线路之间的电压差表示为+( 2 - 6 ) V ;逻辑" 0 "由这两条线之间的压差代表为-( 2 ) V 。接口信号电平低于 RS — 232 ,因此不易损坏接口电路的芯片,且电平与 TTL 电平兼容,可方便地连接到 TTL 电路。

 

三、传输距离和通讯速率不同

 

1. RS232: RS232 传输距离有限,标准最大传输距离不超20米,通讯速度较快,抗干扰能力弱,只能进行点对点通信,最大传输速率为 20 kb /s。

2. RS485: RS485传输距离可达1500米;通讯速度较慢。最大传输速率为 10 Mbps ,只有在 100 kb /s的传输速率下才能达到最大通信距离,但是抗干扰能力强。

 

四、沟通距离的长短

 

是否支持多点通信

1. RS232 :RS 232 接口只允许一个收发器连接到总线上,不能支持多站收发功能,所以只能点对点通信,不支持多点通信。

2. RS485 :RS485接口允许多达128个收发器连接到总线上。即具有多站通信的能力,使用户可以使用单一的 RS 485 接口轻松建立设备网络。

 

五、交通线路的差异

 

1. RS232:三芯双绞线、三芯屏蔽电缆等可以使用。

2. RS485:双绞线、双芯屏蔽电缆等。可以使用。在低速、短距离、无干扰的场合,可采用普通双绞线。相反,在高速和长时间传输的情况下,专用的RS485电缆(STP-120Ω(用于RS485和CAN)配一对18AWG)必须使用阻抗匹配(一般为120Ω)。在强干扰环境下,应采用铠装双绞线屏蔽电缆(ASTP-120Ω(RS485和CAN)一对18AWG)。

3. RS232功能:RS232是串行端口,电脑机箱后面的9针插座。

串口RS232 RS485最本质的区别 

 

串口通信是指通过串行方式进行数据传输的一种通信协议,RS232和RS485都是串口协议标准。

RS232和RS485最本质的区别在于它们的传输方式、电气接口和传输距离等方面不同。RS232是简单的点对点单向或双向通信协议,主要适用于较短距离(50英尺以内)的数据传输。RS485则是一种多点半双工通信协议,支持多个设备同时连接在同一传输线上进行数据通信,可以实现远距离(多达4000英尺)和高速(最高10Mbps)数据传输。

此外,RS232和RS485的电气接口也不同。RS232使用正/负电平来表示逻辑1和逻辑0,而RS485使用差分信号来实现抗干扰能力更强的数据传输。在实际应用中,RS232通常用于与计算机或单一设备进行简单通信,而RS485则主要用于工业自动化、控制系统和数据采集等需要高速、可靠通信的应用场合。

大家都使用过串口进行设备间通信交互,台式计算机中COM1就是RS232接口,机箱后面的接口可以看到一种9个针脚的接口,但最新的笔记本计算机中已经不提供串口了,不过可以通过USB转换成串口。硬件实物就是我们接触比较多的一种9个针脚的连接器,通过这个硬件要通信就得有接口标准,这样就制定了RS232、RS422、RS485串行通信接口标准,不同的串行通信接口标准是有区别的。recommended standard简称RS。

串口外观(插座带插针)

RS232标准中,字符是串行的比特流传输的,就是一位接着一位的串行传输,比如0x55是可以按照10101010,即先传1再传0这样传输(大端传输)。优点是传输线少,配线简单,传送距离较远。

硬件连接上通常只用到了3根引脚,Tx(发送)、Rx(接收)、Gnd(地),设备A的Tx接设备 B的Rx, 设备A的Rx接设备 B的Tx, 设备A的Gnd接设备 B的Gnd,即“你收我发,你发我收,你我共地”。

我们常用的编码格式是异步启停格式,数据帧格式如下列表所示。起始位固定为1个比特,而停止位可以是1、1.5或者2比特,可以自由配置但发送方与接收方要一样点的。D/P/S常见的设置为8/N/1,表示为数据为8比特,没有奇(ODD)偶(EVEN)校验位,1个停止比特位。

起始位(低位) 数据位D 校验位P 停止位S(高位)
1bit 8位 无校验NONE 1bit

硬件准备好了,就需要按照标准进行,在软件设置中涉及参数包括波特率、奇偶校验、停止位。其他的参数就不展开介绍了。

(1) 波特率:每秒传输比特位个数,典型值为2400/9600/19200/115200等,一般情况下接收和发送设备都要设置为相同的波特率。一个字节Byte是8比特位,可以换算每秒传输的字节数。

(2) 奇偶校验:用于验证数据的正确性,一般是无校验。若设置为奇校验,要求数据位和校验位中“1”的个数为奇数,即数据位中“1”的个数是偶数,则校验位设置位“1”。若设置为偶校验,要求数据位和校验位中“1”的个数为偶数。接收设备可以通过奇偶校验位来判断数据在传输中是否发生错误。 “1”的个数错误,则一定发生错误传输,如果奇偶校验正确,则没有错误或者发生偶数个错误。

(3) 停止位:每个字节最后发送停止位,用来协助接收信息的设备同步,必须加上帧头(起始位,0)和帧尾(停止位,1),即加上同步信号。

标签:RS,RS485,接口,传输,串口,RS232
From: https://www.cnblogs.com/ioriwellings/p/17528328.html

相关文章

  • 推荐使用集串口,SSH远程登录和FTP传输三合一工具MobaXterm
    在以前的资料里,串口和SSH远程登使用SecureCRT,window与ubuntu数据传输使用filezilla,窗口切换来切换去,麻烦也眼花缭乱。有没有一个工具搞定串口、SSH和FTP?有!它就是MobaXterm。是不是特别高效呢?MobaXterm是一个全功能的终端软件。除了支持SSH连接还能支持FTP、串口等协议。其拥有以下......
  • 串口接受不了消息,乱码问题
    收不了消息(一)发送消息,代码所写应该为接受后发送,但是并没有出现intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();uint8_tbyte;uint8_tlen;uint8_tbuf[32]="";while(1){ if(HAL_UART_Receive(&h......
  • 如果串口驱动有问题,怎么调
    有很多人问我,为什么不录串口驱动?实际上串口裸板很简单,但是串口驱动还是挺复杂的;另外基本上所有芯片的内核源码中基本上都会有串口驱动。所以我认为对于串口,我们只要会APP编程即可,不需要去写它的驱动程序。现在有2个问题:1.怎么写串口APP?2.如果串口驱动有问题,怎么调?第1个问题挺简单,百......
  • STM32/GD32串口接收不定长数据
    RYMCU嵌入式开源https://rymcu.com编者注:单片机串口接收不定长数据时,必须面对的一个问题为:怎么判断这一包数据接收完成了呢?常见的方法主要有以下两种:1.在接收数据时启动一个定时器,在指定时间间隔内没有接收到新数据,认为数据接收完成;2.在数据中加入帧......
  • 串口接收不定长数据的实现
    使用串口进行数据的收发在嵌入式产品中是很常用的一种通信方式,因为串口的简单使用,很容易就被选为产品中数据交互的通信手段。基于串口进行开发的功能有很多,比如同类/不同类产品之间的通信,RS485通信,RS232通信方式,实现串口命令行终端用于调试等等的。虽然应用的场景有所不同,但是都会......
  • 【雕爷学编程】Arduino动手做(142)---GY-25串口倾斜度模块
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(140)---MAX3232串口转换板
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 3.串口printf调试输出
    在stm32中先配置使能一个uart串口,保存自动生成uart的.h.c文件接着在头文件中包含stdio.h再在c文件中添加重定向:GCC和keil等不同编译器调用printf时候是不同的可以定义一个宏保证他们的兼容性,即使printf函数重定向 #ifdef__GNUC__//选择gcc编译时才会定......
  • usb串口移植aarch64
    目标环境:arm架构,openEuler23.03 内核5.10.0开发环境:x86架构,centos7.4系统,内核3.10.0遇到的问题问题1minicom无法编译执行尝试方案1:从官网上找了源码包,并根据虚拟机中的依赖关系,下载了可能的依赖文件,导入服务器(无外网)  根据yum源找到库网址:http://repo.openeuler.org......
  • esp32运行边界路由与nRF52833作为rcp通过串口通讯组建边界路由步骤
    1、首先搭建esp32开发环境,按照官方指导说明,我这里是建立在linux运行环境下的  Linux和macOS平台工具链的标准设置-ESP32-C6-—ESP-IDF编程指南latest文档(espressif.com)   espressif/esp-idfatv5.2-dev(github.com)   去官网下载最新版的esp-id......