​【迅为电子】RK3568驱动指南|第十七篇 串口-第198章 串口通信接口类型

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。


【公众号】迅为电子

【粉丝群】258811263(加群获取驱动文档+例程)

【视频观看】嵌入式学习之Linux驱动(第十七篇 串口_全新升级)_基于RK3568

【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板


第198章 串口通信接口类型

198.1 串口通信接口类型

在上个章节中,UART只规定了收发的时序,即“先发起始位,再发数据位,校验位,最后发停止位”,只规定了高低电平,但是并没有规定高电平指的是多少伏,低电平指的是多少伏。

串口一般的接口电平有TTL,RS232,RS485,RS422,并且每种接口通常需要相应的电平转换芯片。直接使用处理器引出的串口接口时,通常是TTL电平。然而,处理器的不同型号或供应商可能存在电平差异,这意味着在某些情况下不能直接连接设备。因此,为了确保正常通信,必须进行适当的电平转换。一般的串口接口电平对比如下表所示:

UART电平分类

传输距离

电平范围特点

TTL

板间通信,几米,视电平特性而定

(Transistor-Transistor Logic)电平标准,这是基于晶体管的电平标准,其中0表示低电平,1表示高电平,低电平一般是0V,高电平可以是3.3V,5V,2.5V或1.8V,具体值取决于设备的电源电压。

RS-232

约50米

(Recommended Standard 232)电平标准。这种电平标准中,-12V表示低电平,12V表示高电平,RS232通常用于较长距离的通信和增加抗干扰能力。

RS-422

RS-485

最大传输距离约1219米

采用差分信号进行数据传输(四根线),俩线间的电压差为+2V到+6V表示逻辑1,俩线之间的电压差为-2V到-6V表示逻辑0,能够有效地减少噪声信号干扰,延长通信距离

接下来我们详细学习下RS232接口和RS485接口。

198.2 RS232接口

RS232协议是由美国电子工业协会在1970年制定的串行通信标准。该标准统一了串口通信的连接器和引脚定义,如下图所示,并明确规定了每个连接器引脚的电平标准。

 

198.2.1 DB9引脚说明

DB9是一种常见的串口连接器,通常用于RS-232串口通信和其他串行通信应用。它包含9个引脚,每个引脚都有特定的功能。下面是DB9连接器的引脚说明:

  • Pin 1 - DCD (Data Carrier Detect):数据载波检测。指示远程设备是否准备好进行通信。
  • Pin 2 - RXD (Receive Data):接收数据。从远程设备接收数据流。
  • Pin 3 - TXD (Transmit Data):发送数据。向远程设备发送数据流。
  • Pin 4 - DTR (Data Terminal Ready):数据终端就绪。指示数据终端设备(如计算机)准备好进行通信。
  • Pin 5 - GND (Ground):地线。电气接地,用于电路的参考和屏蔽。
  • Pin 6 - DSR (Data Set Ready):数据集准备好。指示远程设备准备好接收和发送数据。
  • Pin 7 - RTS (Request to Send):请求发送。发送方使用此信号请求开始发送数据。
  • Pin 8 - CTS (Clear to Send):清除发送。接收方使用此信号表示准备好接收数据。
  • Pin 9 - RI (Ring Indicator):铃信号指示器。指示远程设备发送了铃响信号。

需要注意的是,RS232本质上也是串口协议,与我们之前讲解的其他串口协议相同。它规定了串口的物理接口和电平特性,因此在硬件层面有所不同,但在软件编程和串口通信的实现上并无区别!

另外,请注意不要将RS232接口与VGA接口混淆,它们是完全不同的接口标准。

VGA接口如下图所示:

 

而RS232接口如下图所示: 

198.2.2 电平特性

RS232(Recommended Standard 232)是一种串行通信接口标准,定义了数据通信设备之间的电气特性和信号传输规范。以下是RS232的主要电平特性:

  • RS232接收-发送端的电信号是相对于公共地线(GND)的电压信号。在RS232标准中,电压差值在+3V至+15V之间被定义为逻辑“0”,而在-3V至-15V之间则表示逻辑“1”。电压差值在-3V至+3V之间的情况未定义。通常,实际应用中希望电压差的绝对值在5V至15V之间,以确保可靠的信号传输。在数据发送时,发送端驱动器输出+5V至+15V的正电压信号表示逻辑“0”,而-5V至-15V的负电压信号表示逻辑“1”。在数据接收时,只要检测到大于3V的电信号,即视为有效信号。
  • RS232接口在发送和接收时具有相对较高的电流能力,可以处理相对较大的电流负载,这使得它适合于长距离通信和连接外部设备。
  • RS232信号具有较高的抗干扰能力,能够在工业环境中稳定运行,不易受到电磁干扰的影响。
  • RS232包括发送线(Tx)、接收线(Rx)、地线(Ground)、数据终端就绪(DTR)、数据就绪(DSR)、请求发送(RTS)、清除发送(CTS)、环路信号检测(DSR)等信号线。
  • RS232支持各种波特率,通常从低速率到较高速率,最高可以达到数百千位每秒(kbps)。

总体而言,RS232的电平特性使其适用于需要可靠数据传输和抗干扰能力的应用场景,例如计算机串口通信、控制系统和各种工业设备之间的通信连接。在迅为的iTOP-RK3568开发板上,调试串口使用了MAX3232芯片将TTL电平转换成232电平,调试串口的原理图如下图所示:

 

198.3 RS485接口

接下来我们学习一下RS485接口。

RS485标准是由电信行业协会(Telecommunications Industry Association, TIA)和电子工业联盟(Electronic Industries Alliance, EIA)共同制定的。该标准的主要目的是解决长距离通信需求(最长达1200米)以及提供优秀的抗干扰性能。

RS485具有以下主要特点和优势:

  • 长距离通信能力:RS485能够在理想条件下实现长达1200米的通信距离,适用于需要远距离数据传输的场合。
  • 抗干扰能力强:由于采用差分信号传输方式,RS485能有效抵御电磁干扰(EMI)和射频干扰(RFI),保证数据传输的稳定性和可靠性。
  • 多站能力:RS485支持多个设备(最多32个)在同一条总线上进行通信,每个设备可以独立地发送和接收数据,从而实现灵活的网络组网。
  • 应用广泛:RS485广泛应用于工业自动化控制系统、建筑自动化、智能家居系统、电力系统监控等领域,满足对长距离、高速和可靠通信的要求。

RS485因其长距离通信能力、优异的抗干扰性能和多站能力,成为许多工业和商业应用中首选的串行通信接口标准。在迅为的iTOP-RK3568开发板上,485接口如下图所示:

 

 

198.3.1 电平特性

RS485的电平特性如下:

  • 差分信号传输:RS485使用差分信号进行数据传输,即数据信号是相对于两条信号线(通常标记为A和B线)之间的电压差来表示的。这种差分信号传输方式使得RS485具有良好的抗干扰能力和长距离传输能力。
  • 电压范围:逻辑“ 1”以两线间的电压差为+(2~6)V表示;逻辑“ 0”以两线间的电压差为-(2~6)V 表示。接口信号电平比 RS232 降低了,不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。
  • 电流能力:RS485发送器具有较强的驱动能力,能够推动较长的通信线路和多个接收器。
  • 接收器能够处理较大的输入电流,以确保信号的可靠接收。
  • 电气特性:RS485支持多个设备(最多32个)在同一条总线上进行通信。支持长达1200米的通信距离,在特定情况下甚至可以更长。

总体而言,RS485的电平特性使其非常适合于工业环境中的长距离和高抗干扰要求的数据通信应用。在迅为的iTOP-RK3568开发板上使用SIT3485E芯片将TTL电平转换为485电平,原理图如下图所示: 

从上面的原理图中我们可以看到RK3568开发板的RS485接口实际上是通过SIT3485E 芯片转接的串口7。我们尝试分析一下SIT3485E这个芯片。

首先我们打开SIT3485E 的数据手册,了解一下这个芯片的相关信息,如下图所示: 

 

由引脚定义图可知,RO引脚为接收器输出端,在原理图上连接到UART7_RX_M1引脚。DI引脚为DI驱动器输入引脚,在原理图上连接到UART7_TX_M1引脚。原理图上的A引脚是接收器同向输入和驱动器同向输出端,原理图上的B引脚是接收器反向输入和驱动器反向输出端,A和B自然就是RS485的查分对了。/RE引脚是接收器输出使能控制引脚,当/RE接低电平时,接收器输出使能,RO输出有效,当/RE接高电平时,接收器输出禁能,RO为高阻态。DE引脚是驱动器输出使能控制引脚,DE接高电平时驱动器输出有效,DE为低电平时输出为高阻态。/RE接高电平且DE接低电平时,器件进入低功耗模式。

官方描述的相对晦涩,简单来说:

/RE为低电平时,RO输出有效。反之RO高阻态,也就是无效。RO接的UART7_RX_M1,UART7_RX_M1是串口的接收引脚。因此,/RE低电平时,串口可以接收数据,反之串口无法接收数据。

DE是高电平时,DI有效,DI接的是UART7_TX_M1,UART7_RX_M1是串口发送引脚,因此,DE是高电平时,DI上的低电平使驱动器 同向端A输出为低电平,驱动器反向端B输出为高电平,串口可以发送数据,反之串口无法发送数据。

/RE和DE有效电平刚好相反,又因为485是半双工,不能同时收发。所以/RE和DE肯定不能同时开启,也就是/RE和DE的电平必须相同。这样/RE开启,就等于DE关闭,所以这两个引脚连在了一起。

这样就很清晰了,如果GPIO0_C6输出低电平,/RE和DE是低电平,/RE是低电平时,串口可以接收数据,DE是低电平时,串口不能发送数据。如果GPIO0_C6输出高电平,/RE和DE是高电平,/RE是高电平时,串口不能接收数据,DE是高电平时,串口可以发送数据。

也就是说,我们需要用GPIO0_C6这个引脚的高低电平来控制RS485是发送还是接收。因此,我们需要编写一个驱动来达到这个目的。迅为提供的源码中默认配置了驱动来控制GPIO0_C6。

198.4 自收发485电路

除了软件控制外,还可以通过硬件实现自动切换,以实现RS485的自动收发功能。软件控制发送和接收存在一定的时间差,为了减少这种时间差,迅为开发板的底板原理图进行了优化,兼容了硬件实现自动收发。具体的修改方式是将R295去掉,并将下图中标记为DNP的元件都进行焊接。

完成硬件修改后,当UART_TX_M1为高电平时,Q17的基极也为高电平,导致Q17导通,/RE和DE为低电平,从而串口处于接收数据模式。相反,当UART_TX_M1为低电平时,Q17的基极为低电平,导致Q17截止,/RE和DE为高电平,串口处于发送数据模式。由于UART_TX_M1在空闲时为高电平,表明串口处于接收数据状态;当UART_TX_M1被拉低时,串口则处于发送数据状态。可能会有人问:既然UART_TX_M1高电平表示接收模式,那发送1时也是高电平。这样芯片会一直处于接收模式,导致1无法发送出去,是吗?这个问题确实很深刻,不过我们可以进一步思考。当转接芯片处于接收模式时,A和B两个引脚会处于高阻态模式。高阻态意味着非常大的电阻,几乎等同于断路。此时,A由上拉电阻拉高,B由下拉电阻拉低。因此,A高、B低表示通信中的1。通过这种“接收模式”,我们巧妙地将“1”发送出去了。这一优化省去了一个RS485收发控制IO,将RS485完全当作串口使用,方便编写驱动。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值