串口协议总结

一、串口概述

1.定义
串口通信是一种设备间非常常用的串行接口,以比特位的形式发送或接收数据,电子工程师经常使用这种方式来调试数据。
在这里插入图片描述
在这里插入图片描述
只需要3根引脚(TXD、RXD、GND)进行通信,称之为零modem模式。

在这里插入图片描述
在这里插入图片描述

帧格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

硬件流控

在这里插入图片描述
如果使能了硬件流控,在三线串口通信模式增加两根控制线,一根叫 CTS(Clear To Send 为输入信号,一根叫 RTS(Require To Send 为输出信号)。一个是接收控制,一个是发送控制。
  从硬件连接原理图中我们可以看到,如果从 USART 1 向 USART 2 发送的话,USART 1 的 TX 和 USART 2 的 RX 相连,USART 1 的 CTS 和 USART 2 的 RTS 相连,数据的方向是从 TX 到 RX,从串口1到串口2,流控是从 RTS 到 CTS 也就是从串口2到串口1。
RTS(Require To Send,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。
CTS(Clear To Send,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。
4.2 软件流控
**由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过xon/xoff来实现软件流控制。**常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出xoff字符(十进制的19或十六进制的0x13或control-s,设备编程说明书应该有详细阐述),发送端收到 xoff字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出xon字符(十进制的17或十六进制的0x11或control-q),发送端收到xon字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。

应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。

RS-232详解

RS-232是美国电子工业联盟制定的串行数据通信接口标准,原始编号全称是EIA-RS-232(简称RS232),它被广泛用于DCE(Data Communication Equipment ) 和 DTE(Data Terminal Equipment) 之间的连接。DCE可以理解为数据通信端,比如modem设备;DTE可以理解为数据终端,比如电脑。最早的台式电脑都会保留9针的232接口,用于串口通信,目前基本被USB接口取代。现在RS232接口常用于仪器仪表设备,PLC以及嵌入式领域当作调试口来使用。
在这里插入图片描述

接口定义

下图是公头9针RS232接口详细定义:

引脚编号 引脚定义 传输方向 说明
1 DCD-Data Carrier Detect ⬅ 载波检测通知给DTE
2 RXD-Receive Data ⬅ 接收数据
3 TXD-Transmit Data ➡ 发送数据
4 DTR-Data Terminal Ready ➡ DTE告诉DCE准备就绪
5 GND – –
6 DSR-Data Set Ready ⬅ DCE告诉DTE准备就绪
7 RTS-Request to Send ➡ 请求发送-DTE向DCE大宋数据请求
8 CTS-Clear to Send ⬅ 清除发送-DCE通知DTE可以传数据
9 RI-Ring Indicator ⬅ 振铃指示-DCE通知DTE有振铃信号

在这里插入图片描述
在这里插入图片描述
电平及时序
RS232采用负逻辑电平,定义如下:
在这里插入图片描述

RS-485详解

智能仪表随着80年代初单片机技术的成熟而发展起来,世界仪表市场基本被智能仪表所垄断,这归结于企业信息化的需要,而企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS-232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,随后出现的RS-485解决了这个问题。
RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485。
注:
TIA:TELECOMMUNICATIONS INDUSTRIES ASSOCIATION 美国通讯工业协会是专门制定通讯配线及架构的标准组织。
EIA:ELECTRONIC INDUSTRIES ASSOCIATION 美国电子工业协会是专门制定有关界面电气特性的组织。
ANSI:AMERICAN NATIONAL STANDARDS INSTITUTE 美国国家标准学会

RS-485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得连接本地网络以及多支路通信链路的配置成为可能。
RS-485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线式拓扑结构,在同一总线上最多可以挂接32个节点。
在RS-485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

在这里插入图片描述

二、信号电平

RS-485能够进行远距离传输主要得益于使用差分信号进行传输,当有噪声干扰时仍可以使用线路上两者差值进行判断,使传输数据不受噪声干扰。
在这里插入图片描述

RS-485差分线路包括以下2个信号:
A:非反向(non-inverting)信号
B:反向(inverting)信号
也可能会有第3个信号,为了平衡线路正常动作要求所有平衡线路上有一个共同参考点,称为SC或者G。该信号可以限制接收端收到的共模信号,收发器会以此信号作为基准值来测量AB线路上的电压。RS-485标准中提到:
若是MARK (逻辑1),线路A信号电压比线路B高。
若是SPACE(逻辑0),线路B信号电压比线路A高。

根据RS-485标准,当485总线差分电压大于+200mV时,485收发器输出高电平;当485总线差分电压小于-200mV时,485收发器输出低电平;当485总线上的电压在-200mV~+200mV时,485收发器可能输出高电平也可能输出低电平,但一般总处于一种电平状态,若485收发器的输出低电平,这对于UART通信来说是一个起始位,此时通信会不正常。

在开发使用到的芯片为SP3485,引脚详细描述如下:

在这里插入图片描述

[词汇]
Inverting [ɪnˈvɜːtɪŋ] 反转
Non-inverting [ˈnəʊn ɪnˈvɜːtɪŋ] ,非反转

该芯片真值表如下:

在这里插入图片描述

为了不引起分歧,一种常用的命名方式是:
TX+ / RX+ 或D+/U+来代替A(信号1时为高电平)
TX- / RX- 或D-/U-来代替B(信号0时为低电平)
下图列出在RS-485利用“异步开始-停止”方式发送一个字符(0xD3,最低比特先发送)时,U+端子及U−端子上的电压变化。
在这里插入图片描述

常见问题
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来,而忽略了信号地(信号地是各种物理量信号源零电位的公共基准地线)的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患。
原因1是共模干扰:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了,但容易忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7到+12V,只有满足上述条件,整个网络才能正常工作;当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
原因2是EMI的问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。

解决方案
为避免信号反射,当线缆长度很长时数据传输线必须有终点,并且分支长度尽可能的短。正确的终端需要终端电阻RT匹配,其值为传输线的特性阻抗Z0。RS-485标准建议线缆的Z0=120Ω。线缆干线通常终端匹配120Ω的电阻,线缆的末尾处各一个。
在这里插入图片描述

三、调试工具

3.1 工具参数
在这里插入图片描述

.供电:USB 5V
.传输距离:最大1200米(9600bps条件下)
.芯片方案:CH340
.通讯协议:纯硬件设备,不受协议限制
.波特率:最高921600bps,配套互传支持更高波特率
.防护:TVS瞬态抑制防护,静电ESD保护,浪涌防护,AB信号线短接及与电源短接保护(短接不烧)
.温度范围:-40℃-80℃
.对外提供5V电源,有保险丝限流

3.2 引脚说明

在这里插入图片描述

五、参考代码

1.发送函数
//模式控制
#define RS485_TX_EN PGout(8) //485模式控制:0,接收;1,发送.

void RS485_Send_Data(uint8_t *pbuf,uint32_t len)
{
uint32_t i;

RS485_TX_EN=1;								//设置为发送模式
delay_ms(1);
for(i=0; i<len; i++)							//循环发送数据
{
	USART_SendData(USART2,pbuf[i]); 				//发送数据
	while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);	
}	 
delay_ms(1);	
RS485_TX_EN=0;								//设置为接收模式	
delay_ms(1);		

}

2.中断服务函数
void USART2_IRQHandler(void)
{
uint8_t d;

if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)	//接收到数据
{	 
	d =USART_ReceiveData(USART2);					 	

	USART1_WriteBytes(&d,1);
	
	USART_ClearITPendingBit(USART2, USART_IT_RXNE);		
}  											 

}

六、Modbus[拓展]
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
在这里插入图片描述

Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。
大多数Modbus设备通信通过串口EIA-485物理层进行。

七、差分信号与共模信号[拓展]
1.背景
(一)概述
差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相反。在这两根线上传输的信号就是差分信号,也称差模信号。
差分信号又称差模信号,是相对共模信号而言的。
共模信号是信号线对地的电压,差模信号是信号线之间的电压。放大电路是一个双口网络,每个端口有两个端子。当两个输入端子的输入信号分别为U1和U2时,两信号的差值称为差模信号,而两信号的算术平均值称为共模信号。
在这里插入图片描述

(二)为什么要抑制共模信号
  任何信号都可以分解为共模信号(Common mode signal)和差模信号(Differential mode signal)。
共模信号又称为对地感应信号或不对称信号,作用在差分放大器或仪表放大器两个输入端的相同信号,通常是由于线路传导和空间磁场干扰产生的,不携带有效信息,是不希望出现的信号。
主要表现为:
单线传输时,地电位差异引起的共模信号,会叠加在信号上形成共模干扰,造成原始信号失真。
双线传输时,有效信号是差模信号,共模信号是无效信号。如果共模信号被放大很多,会影响到真正需要放大的差模信号。

(三)共模干扰是如何产生的
  实际应用中,温度的变化各种环境噪声的影响都可以视作为共模干扰,共模干扰产生的原因很多。主要原因有以下四点:
电网串入共模干扰电压。
辐射干扰(如雷电,设备电弧,附近电台,大功率辐射源) 在信号线上感应出共模干扰。
接地电压不一样,也就是说地电位差异引入共模干扰。
设备内部电线对电源线的影响。

2.差分信号
(一)特点
从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电压而言的。
在某些系统里,"系统地"被用作电压基准点。当’地’当作电压测量基准时,这种信号规划被称之为单端的。我们使用该术语是因为信号是用单个导体上的电压来表示的。另一方面,一个差分信号作用在两个导体上。信号值是两个导体间的电压差。尽管不是非常必要,这两个电压的平均值还是会经常保持一致。
可以想象,这两个导体上被同时加入的一个相等的电压,也就是所谓共模信号,对一个差分放大系统来说是没有作用的,也就是说,尽管一个差分放大器的输入有效信号幅度只需要几毫伏,但它却可以对一个高达几伏特的共模信号无动于衷。
这个指标叫做差分放大器的共模抑制比(CMRR),一般的运算放大器可以达到90db以上,高精度运放甚至达到120db。因为干扰信号一般是以共模信号的形式存在,所以差分信号的应用极大地提高了放大器系统的信噪比。

(二)优点
抗干扰能力强,因为两根差分走线之间的耦合很好,当外界存在噪声干扰时,几乎是同时被耦合到两条线上,而接收端关心的只是两信号的差值,所以外界的共模噪声可以被完全抵消。
能有效抑制EMI(Electromagnetic Interference,电磁干扰),同样的道理,由于两根信号的极性相反,他们对外辐射的电磁场可以相互抵消,耦合的越紧密,泄放到外界的电磁能量越少。
时序定位精确,由于差分信号的开关变化是位于两个信号的交点,而不像普通单端信号依靠高低两个阈值电压判断,因而受工艺,温度的影响小,能降低时序上的误差,同时也更适合于低幅度信号的电路。

(三)缺点
若电路板的面积非常紧张,单端信号可以只有一根信号线,地线走地平面,而差分信号一定要走两根等长、等宽、紧密靠近、且在同一层面的线。这样的情况常常发生在芯片的管脚间距很小,以至于只能穿过一根走线的情况下。

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值