目录
串口简介
串行通讯制式
UART
2.1 简介
2.2 电平标准
TTL
RS232
RS485
2.3、电平转换(重点讲解RS232-TTL)
USB转TTL
USB转RS232
USB转RS485
RS232、RS485互转
RS-232、TTL互转
2.4 串口通讯协议(RS232/TTL)
参考资料
串口简介
请参考百度百科:串行接口_百度百科
首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。
串口:串口是一个泛称,UART、COM、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。也就是大家在自己电脑上的设备管理器上的COM3等接口
UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。也就是大家在嵌入式开发中常常听到的串口(UART)
同步串行接口(英文:Synchronous Serial Interface,SSI)是一种常用的工业用通信接口。
USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块、USB转TTL模块等)
由于在嵌入式系统中串口通常指UART接口,所以下面介绍时将两个概念进行了等同。
串行通讯制式
- 单工,数据只能沿一个方向传输,不能实现反向传输。
- 半双工,数据可以沿两个方向传输,但需要分时进行。
- 全双工,数据可以同时进行。
UART
2.1 简介
请参考百度百科:UART_百度百科
异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。
通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART 发送器、UART 接收器组成,硬件上两线,一收一发;
2.2 电平标准
-
TTL
双极性晶体管,流控型器件
输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。
TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。
CMOS电路可以直接驱动TTL电路,但是TTL不能直接驱动CMOS电路。因此市面上很多“USB转TTL”模块,实际上也可以称为“USB转TTL电平的串口”模块。TTL与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法。
我们进行串口通信的时候从单片机直接出来的基本是都是TTL 电平。
TTL信号抗干扰能力差,数据在传输过程中容易出错。
硬件连接:
TTL电平:全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)
-
RS232
是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。
RS-232电平:全双工(逻辑1:-15V–5V 逻辑0:+3V–+15V),与TTL使用的协议是相同的。
在最初的应用中,RS-232 串口标准常用于计算机、路由与调制调解器(MODEN,俗称 “猫”)之间的通讯,在这种通讯系统中,设备被分为数据终端设备 DTE(计算机、路由)和数据通讯设备 DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。
在旧式的台式计算机中一般会有 RS-232 标准的 COM 口(也称 DB9 接口),见图 26-3。
其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号使用 RS-232 标准调制。在各种应用场合下, DB9 接口中的公头及母头的各个引脚的标准信号线接法见图 26-4。
图 26-5 是计算机端的 DB9 公头标准接法,由于两个通讯设备之间的收发信号(RXD 与 TXD)应交叉相连,所以调制调解器端的 DB9 母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用“直通型”的串口线连接起来即可,见图 26-6。
串口线中的 RTS、CTS、DSR、DTR 及 DCD 信号,使用逻辑 1 表示信号有效,逻辑0表示信号无效。例如,当计算机端控制 DTR 信号线表示为逻辑 1 时,它是为了告知远端的调制调解器,本机已准备好接收数据, 0 则表示还没准备就绪。
在目前的其它工业控制使用的串口通讯中,一般只使用 RXD、TXD 以及 GND 三条信号线,直接传输数据信号。而 RTS、CTS、DSR、DTR 及 DCD 信号都被裁剪掉了,如果您在前面被这些信号弄得晕头转向,那就直接忽略它们吧。
-
RS485
非常推荐大家看一下这篇文章:RS485串口通讯深入理解及与RS232的区别:
整理完整了,RS485串口通讯最详细讲解 (qq.com)https://mp.weixin.qq.com/s/WJCWpWjG0nuM_uJwIuQAmA*******************************************************************************************
-200mv、+200ms是限电压、终接电阻120Ω(与双绞线的电阻特性有关,与长度无关)、偏置电阻A线上拉,B线下拉(上下拉电阻大约为1KΩ)。接地隔离
RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。485采用两线制,两根数据线是缠绕在一起的
RS-485:半双工、(逻辑0:+2V–+6V 逻辑1: -6V—2V)这里的电平指AB两线间的电压差。
硬件连接
接线方式为总线式拓扑结构,同一总线上可以同时存在多个节点。采用差分信号(使用两根线上的电压差比较)进行数据传输,两根线间的电压差为+2v到+6v表示逻辑“1”,两根线间的电压差为-2v到-6v表示逻辑“0”。需要电平转换芯片做电平转换,把TTL信号转换为差分信号。软件编程基于串口,但是不能同时发送和接收。
- 通信速度快,数据最高传输速率为10Mbps
- 抗干扰能力强
- 通信距离远
- 可实现多节点组网
- 接口电平电压低,不易损坏接口电路芯片
2.3、电平转换(重点讲解RS232-TTL)
由于电脑自带转换器,已经将TTL电平转换成USB接口输出,所以当需要获取电脑或者进行与电脑串口通信时,需要将USB接口转换成其他相应的接口形式:
-
USB转TTL
稳定主控芯片主要有:CP2102芯片、PL2303芯片
可以作为32的程序下载器——ISP下载方式
-
USB转RS232
-
USB转RS485
由上图可以看出起作用的也只有A和B两条线。
-
RS232、RS485互转
-
RS-232、TTL互转
虽然电脑大多数是通过USB接口转化成其他电平方式,但是有自带的RS232接口的。而且在单片机与其他单片机连接是也需要RS232与TTL电平的转化。
早期MC1488,75188等芯片可实现TTL转232;MC1489,75189等芯片可实现232转TTL。
现在较多使用MAX232/MAX202/HIN232等芯片,可实现TTL(0~5V)和RS232(3V~15V或-3V~-15V之间)
- 分立元件实现RS232电平与TTL电平转换
首先TTL电平TXD发送数据时,发送低电平0,Q3导通,PCRXD由空闲时的1(低电平:-3V~-15V)变为0(高电平:3V~15V);发送高电平1,Q3截止,由于PCRXD内部高阻,而PCTXD平时是-3V~-15V,通过D1和R7将PCRXD拉低至-3V~-15V,此时计算机接收到电平1。
PC(232)发送单片机(TTL)接收,PCTXD为1(低电平:-3V~-15V),Q4截至,单片机端的RXD被R9拉到5V高电平1;当PCTXD为0(高电平:3V~15V),Q4导通,RXD被Q4拉低到低电平。
- MAX232实现RS232电平与TTL电平转换
C1/C2/C3/C4及V+/V-是电源变换电路部分,实际应用中器件对电源噪声很敏感,因此VCC必须加 去耦电容C5(0.1uf非极性瓷片电容),C1/C2/C3/C4为1.0uf/16V的点解电容。电容尽量靠近MAX232芯片,以提高干扰能力。
5、【STM32】串口(USART)通讯 (一文搞懂寄存器操作、端口复用和中断优先级(NVIC)配置)_追逐者-桥的博客-CSDN博客【STM32】串口(USART)通讯 (一文搞懂寄存器操作、端口复用和中断优先级(NVIC)配置)建议收藏加关注,单片机的深度解读尽在此。https://blog.csdn.net/ARM_qiao/article/details/125185352
2.4 串口通讯协议(RS232/TTL)
串口通讯协议由很多种,这里只针对最传统的串口协议进行介绍(RS232),有关于其他的串口协议如Modbus(多用于485电平标准)、I2C、SPI等通信协议会在另外的博客进行shuo'miong
- 物理层连接(RS232)
没有时钟线只有两条数据线,分别是RX(接收)TX(发送),位宽为1Bit,一位一位的接收。
- 协议层(通讯协议)
- 串口数据的发送与接收是基于帧结构的,即一帧一帧的发送与接收数据。每一帧除了中间包含 8bit 有效数据外,还在每一帧的开头都必须有一个起始位,且固定为 0;在每一帧的结束时也必须有一个停止位,且固定为 1,即最基本的帧结构(不包括校验等)有10bit。在不发送或者不接收数据的情况下,rx 和 tx 处于空闲状态,此时 rx 和 tx 线都保持高电平,如果有数据帧传输时,首先会有一个起始位,然后是 8bit 的数据位,接着有 1bit的停止位,然后 rx 和 tx 继续进入空闲状态,然后等待下一次的数据传输。不包括校验位时为一个最基本的 RS232 帧结构。
- 波特率:在信息传输通道中,携带数据信息的信号单元叫码元(因为串口是 1bit 进行传输的,所以其码元就是代表一个二进制数),每秒钟通过信号传输的码元数称为码元的传输速率,简称波特率,常用符号“Baud”表示,其单位为“波特每秒(Bps)”。串口常见的波特率有 4800、9600、115200 等,我们选用 9600 的波特率进行串口章节的讲解。
- 比特率:每秒钟通信信道传输的信息量称为位传输速率,简称比特率,其单位为 “每秒比特数(bps)”。比特率可由波特率计算得出,公式为:比特率=波特率 * 单个调制状态对应的二进制位数。如果使用的是 9600 的波特率,其串口的比特率为:9600Bps * 1bit= 9600bps。
- 由计算得串口发送或者接收 1bit 数据的时间为一个波特,即 1/9600 秒,如果用50MHz(周期为 20ns)的系统时钟来计数,需要计数的个数为 cnt = (1s * 10^9)ns / 9600bit)ns / 20ns ≈ 5208 个系统时钟周期,即每个 bit 数据之间的间隔要在 50MHz 的时钟频率下计数 5208 次。
- 上位机通过串口发 8bit 数据时,会自动在发 8 位有效数据前发一个波特时间的起始位,也会自动在发完 8 位有效数据后发一个停止位。同理,串口助手接收上位机发送的数据前,必须检测到一个波特时间的起始位才能开始接收数据,接收完 8bit 的数据后,再接收一个波特时间的停止位。
- 数据校验位
循环冗余(RCR)校验:是通过某种数学运算实现有效信息与校验位之间的循环检验,常用于对磁盘的信息传输、存储区的完整性校验。纠错能力强,广泛用于同步通讯中。
参考资料
串口通信协议简介—学习笔记_越吃越胖的黄的博客-CSDN博客_串口协议
嵌入式中的通讯协议——UART、I2C、SPI、DMA_Healer19的博客-CSDN博客_dma协议
【4.0】通信协议,I2C,SPI,CAN,USB,DMA_夜色稠的博客-CSDN博客
【通信协议】UART、RS232、RS485、I2C、SPI、CAN_XXX_UUU_XXX的博客-CSDN博客_uart通信距离
串口通信协议简介_C晨海的博客-CSDN博客_串口通讯协议
UART_百度百科
串口通信协议_百度百科文章来源:https://www.toymoban.com/news/detail-785513.html
串口、COM口、UART口,TTL、RS-232、RS-485这么多接口,怎么区分-简易百科文章来源地址https://www.toymoban.com/news/detail-785513.html
到了这里,关于1、串口(UART/COM/TTL/RS232/RS485)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!