STM32
直播中

英雄孤寂

11年用户 1190经验值
私信 关注
[问答]

UART/USART异步通信特点是什么?

处理器与外部设备通信的方式有哪几种?
UART/USART异步通信特点是什么?
什么是TTL电平、CMOS电平、RS232电平?它们有什么区别呢?

回帖(1)

向婧宇

2021-12-6 10:18:51
处理器与外部设备通信的两种方式:
  


  • 并行通信
    传输原理:数据的各个位同时传输
    优点:速度快
    缺点:占用引脚资源多
  • 串行通信
    传输原理:数据按位顺序传输
    优点:占用引脚资源少
    缺点:速度相对较慢

  串行通信:
按照数据传送方向分为
  


  • 单工
  • 半双工
  • 全双工

  串行通信的通信方式:
  


  • 同步通信
    带时钟同步信号传输
    SPI,IIC通信接口
  • 异步通信
    不带时钟同步信号
    UART(使用异步收发器),单总线

  常见的串行通信接口:
  [tr]通信标准引脚说明通信方式通信方向[/tr]
USART(通用异步收发器)TXD:发送端 、 RXD:接收端、GND:公共地异步通信全双工
单总线(1-wire)DQ:发送/接收端异步通信半双工
SPISCK:同步时钟、MISO:主机输入,从机输出、MOSI:主机输出、从机输入同步通信全双工
I2CSCL:同步时钟、SDA:数据输入/输出端同步通信半双工
   串口应该就是串行通信接口
STM32的串口通信接口:
UART:同步异步收发器
USART:通用同步异步收发器
不过207的手册只找到了USART和I2C接口
    UART/USART异步通信方式引脚连接方式:
  


  • RXD :数据输入引脚。数据接受。
  • TXD :数据发送引脚。数据发送。

      

      

    假如芯片1、2的串口都是TTL电平的,GND要先共地,发送连接到接收。

  电脑上的串口叫DB9,就是下图这样的:

  

  

假如将芯片和PC连接,DB9实际上是进行了一个电平转换,经过电平转换转换成DB9这种9针的接口,STM32的芯片也需要RS232转换器,转成232电平,这样才能连在一起。而不能直接将芯片的TTL直接连到电脑的DB9收发引脚,电平是不兼容的。

  

  

    UART/USART异步通信特点:
  


  • 全双工异步通信
  • 分数波特率发生器系统、提供精确的波特率
  • 可编程的数据字长度(8位或者9位)
  • 可配置的停止位(支持1或者2位停止位)
  • 可配置的使用DMA多缓冲器通信
  • 单独的发送器和接收器使能位
  • 检测标志:接收缓冲器、发送缓冲器空、传输结束标志
  • 多个带标志的中断源。触发中断
  • 其他:校验控制,四个错误检测标志

  串口通信的过程:
接收–>
外部设备一个比特一个比特地传数据到RXD接收引脚,传输速度由波特率决定的,然后传到串行输入移位寄存器,传输完成后,一次性地将数据输入到数据缓存器,然后MCU内核就可以读取这个数据。
发送–>
MCU内核把要发的数据写到输出数据缓冲器,然后这个寄存器会一次把所有数据传给串行输出移位寄存器,然后把数据一位一位地按照定好的波特率传输给外部设备,通过TXD引脚。
  串口异步通信需要定义的参数
起始位
数据位(8或者9位)
奇偶校验位(第9位)
停止位(1,15,2位)
波特率设置
   
  

  


  

  

   
  

  


  

  


  

  


  

  


  

  

    接口和电平标准

    补充
什么是TTL电平、CMOS电平、RS232电平?它们有什么区别呢?一般说来,CMOS电平比TTL电平有着更高的噪声容限。
  1、TTL电平标准(是CPU使用的电平)
  输出 L: <0.8V ; H:>2.4V。
  输入 L: <1.2V ; H:>2.0V
  TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。
  2、CMOS电平标准
  输出 L: <0.1Vcc ; H:>0.9Vcc。
  输入 L: <0.3Vcc ; H:>0.7Vcc.
  由于CMOS电源采用12V,则输入低于3.6V为低电平,噪声容限为1.8V,高于3.5V为高电平,噪声容限高为1.8V。比TTL有更高的噪声容限。
  3、RS232标准
  逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次。
    CAN
CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。
CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN属于现场总线的范畴,它是一种有效支持分布式控制实时控制串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
网络各节点之间的数据通信实时性强
开发周期短
……
  接口
以太 外
USB 外
CAN 外
USART 外 RS232 RS485 RS422
PCI 内
PCIE 内
IDE 内
SPI 内
I2C 内
举报

更多回帖

发帖
×
20
完善资料,
赚取积分