精华内容
下载资源
问答
  • UART通信协议

    2020-09-11 15:54:41
    学习篇ARM-UART通信协议 1.基本概念 百度百科:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)  UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在...

    学习篇ARM-UART通信协议

    1.基本概念

    百度百科:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)
      UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

    总结:UART, 串行异步收发器
       串行通信/并行通信
       异步通信/同步通信
       单工/半双工/全双工

    串行数据通信接口标准
       RS-232、RS-422、RS-485
    TTL电平(用于计算机内部)
       逻辑0: 低电平 <0.7v
       逻辑1: 高电平 >2.4v
    RS-232:
       电气特性 (EIA(RS232)电平)
       逻辑0 +3~+15v
       逻辑1 -3~-15v
       机械特性
       传输距离 <10m
       只能做1对1通信
    RS-485:工业现场
       传输时使用差分信号
       传输距离可以超过1000m
       可以做1对多通信

    2.数据传输协议

    空闲状态为高电平
    发送时首先是一个起始位(一个周期的低电平)
    发送数据时从LSB开始发送(UART相反)
    每帧中数据位的个数为5-8bit(可变)
    发送可能存在的1bit奇偶校验位
    发送1-2bit的停止位(高电平)(可变)

    波特率 bps (bit per second)(可变)

    3.电路原理

    ARM与外部设备进行uart通信,借助于芯片中集成的uart control模块
    在这里插入图片描述

    4.寄存器设置

    引脚寄存器设置
    GPIODALTFN0  0XC001D020
    [29:28]   01  将GPIOD14管脚设置为功能1

    配置:8n1 115200 non-fifo polling
    ULCON0     0XC00A1000
    [1:0]    11   8bit(数据位位数选择)
    [2]    0   1bit停止位(停止位的数量)
    [5:3]   000   无校验(奇偶校验模式)
    [6]    0   正常模式

    UCON0     0XC00A1004
    [1:0]   01   接收数据时采用轮询模式接收(接收数据方式中断、DMA)
    [3:2]   01    发送数据时采用轮询模式发送
    [5]    0    正常模式

    UTRSTAT0   0XC00A1010
    [0]   0/1   接收缓冲区空/非空(接收之前检测是否为空)
    [1]   0/1   发送缓存区非空/空

    UTXH0 0XC00A1020
    [7:0]      将要发送的字节数据写入其中(发送数据中转寄存器)

    URXH0 0XC00A1024
    [7:0]      读取接收到的数据

    时钟源第一次分频寄存器,三种选择
    UART0CLKGEN0L  0XC00A9004
    [4:2]    001    选择PLL1作为UART的时钟源
         PLL1=800MHz
    [12:5]          时钟分频系数
                取值为15
        分频后 800M/(15+1) = 50MHz
    UART0CLKENB     0XC00A9000
    [2]     0/1     禁止/使能时钟(时钟使能寄存器

    波特率设置寄存器,第二次时钟分频
    UBRDIV0 0XC00A1028
                  26
    UFRACVAL0 0XC00A102C
                  2 //0.13*16

    公式:
    50000000/(115200*16) - 1
    =27.13-1
    =26.13

    展开全文
  • Uart通信协议

    2017-08-30 10:08:14
    UART使用的是 异步,串行通信。  串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。  异步通信以一...

    第一部分:

    UART使用的是 异步,串行通信。
        串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。
        异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。 
        数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
        数据通信格式如下图:


    其中各位的意义如下:
        起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
        数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输
        校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)
        停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
        空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

        注:异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)

    展开全文
  • uart协议_UART通信协议

    2020-11-27 07:51:22
    UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工的发送和接收。嵌入式里面说的串口也是指的UART,在嵌入式领域可以说是应用非常广泛,在主机与辅助设备直接进行通信,比如使用PC通过UART...

    UART基本概念

    通用异步收发器(Universal Asynchronous Receiver/Transmitter), 通常称作UARTUART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工的发送和接收。

    嵌入式里面说的串口也是指的UART,在嵌入式领域可以说是应用非常广泛,在主机与辅助设备直接进行通信,比如使用PC通过UART给主机设备发消息,或者接收主机log等。

    c432d91687c4213724b892b5cd529407.png

    UART通信协议

    UART工作原理是将传输数据的每个字符一位接一位地在UART总线上传输。

    起始位:先发出一个逻辑”0”的信号,表示数据传输的开始。

    数据位:紧接着起始位之后。 可以是5~8位逻辑0或1 ,构成一个字符。通常采用ASCII码。从最低位开始传送,靠波特率进行定位。

    奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。奇偶校验位可有可无。

    停止位:它是一次传输的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

    波特率:是控制数据传输速率的,表示每秒钟传送的位数。常用的波特率115200 9600等。

    空闲位: 处于逻辑1状态, 表示当前总线处于空闲状态,没有数据传送。

    86c48504065b81a56b2af79ca3218065.png

    UART的数据发送和接收

    发送时,数据被写入发送FIFO。如果UART 被使能,则会按照预先设置好的参数(波特率、数据位、停止位、校验位等)开始发送数据,一直到发送FIFO 中没有数据。所以在发送数据时要先判断发送FIFO是否为空,只有为空的情况下,才能往FIFO里面写。

    接收数据时,UART的接收器会将接收的数据一位一位的移位到接收FIFO中,我们读接收FIFO既可以读到接收到的数据。

    UART的物理引脚

    UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。

    • VCC:供电pin,一般是3.3v
    • GND:接地pin,一般也可不接,但是如果rx接收的数据有问题,就要接上这个pin
    • RX:接收数据pin
    • TX:发送数据pin
    02fec4314be411504431c2dbeba8665b.png

    当我们使用putty、SecureCRT等串口工具接收串口数据时出现异常,可能是在终端设置了流控,将流控关闭即可。

    展开全文
  •                ...还记得以前打印机、鼠标和调制解调...这些设备可能正在使用UART协议与您的计算机进行通信。尽管USB几乎完全取代了那些旧的电缆和连接器,但是UART绝不会...

         

                    

    还记得以前打印机、鼠标和调制解调器都会带有那些笨拙的连接器的粗电缆的时代吗?从字面上来解读,就是必须拧入您的计算机的那些?这些设备可能正在使用UART协议与您的计算机进行通信。尽管USB几乎完全取代了那些旧的电缆和连接器,但是UART绝不会是一个过时的东西。您会发现许多DIY电子项目中仍然使用UART将GPS模块、蓝牙模块和RFID读卡器模块连接到Raspberry Pi、Arduino或者其他微控制器。

    UART代表通用异步接收器/发送器。它不是像SPI和I2C这样的通信协议,而是微控制器中的物理电路或独立的IC。UART的主要目的是发送和接收串行数据。

    关于UART最好的一点是其仅使用两条线在设备之间传输数据。UART的原理很容易理解,但是如果您还没有阅读本系列的第一部分,那么SPI通信协议的基础知识可能会是一个不错的起点。

    UART通信导论

    在UART通信中,两个UART直接相互通信。发送UART将来自控制设备(如CPU)的并行数据转换为串行形式,以串行方式将其发送到接收UART,然后由接收UART将串行数据转换回并行数据以用于接收设备。只需要两条线即可在两个UART之间传输数据。数据从发送UART的Tx引脚流到接收UART的Rx引脚:

    UART异步传输数据意味着没有时钟信号使发送UART的输出位与接收UART采样位同步。发送UART取代了时钟信号,将开始位和停止位添加到正在传输的数据包中。这些位定义了数据包的开始和结束,因此接收UART知道何时开始读取这些位。

    当接收UART检测到起始位时,它将开始以称为波特率的特定频率读取输入位。波特率是数据传输速度的度量,以每秒的比特位(bps)表示。两个UART必须以大约相同的波特率工作。在位的时序变得太远之前,发送和接收UART之间的波特率只能相差约10%。

    另外,还必须将两个UART配置为发送和接收相同的数据包结构。

     

    使用的信号线

    2

    最大传输速度

    最高可达15200波特的速度,通常速度为9600波特

    同步/异步

    异步

    串行/并行

    串行

    最大主设备数

    1

    最大从设备数

    1

     

     

    UART是如何工作的?

    将要发送数据的UART从数据总线接收数据。数据总线用于通过其他设备(例如CPU、内存或微控制器)将数据发送到UART。数据以并行形式从数据总线传输到发送UART。发送UART从数据总线获取并行数据后,它将添加起始位、奇偶校验位和停止位,以创建数据包。接着,数据包在Tx引脚上逐位串行输出。接收UART在其Rx引脚上逐位读取数据包。然后,接收UART将数据转换回并行形式,并删除起始位、奇偶校验位和停止位。最后,接收UART将数据包并行传输到接收端的数据总线:

                   

                 

    UART传输的数据被组织成数据包,每个数据包包含1个起始位、5到9个数据位(取决于UART)、1个可选奇偶校验位,以及1个或2个停止位

     

     

    起始位

    UART数据传输线通常在不传输数据时保持在高电压电平。为了开始数据的传输,发送UART在一个时钟周期内将传输线从高电平拉低到低电平。当接收UART检测到高电压到低电压的转换时,它开始以波特率的频率读取数据帧中的位。

    数据帧

    数据帧包含正在传输的实际数据。如果使用奇偶校验位,则数据帧的长度可以是5位,最多可达8位。如果不使用奇偶校验位,则数据帧的长度可以为9位。在大多数情况下,数据首先以最低有效位发送

    奇偶校验位

    奇偶校验描述一个数的性质,分为偶数或奇数。奇偶校验位是接收UART判断在传输期间是否有任何数据更改的一种方式。可以通过电磁辐射、不匹配的波特率或长距离数据传输来更改位。在接收UART读取数据帧后,它将对值为1的位数进行计数,并检查其总数是偶数还是奇数。如果奇偶校验位为0(偶校验),则数据帧中的1位应总计为偶数。如果奇偶校验位为1(奇校验),则数据帧中的1位应总计为奇数。当奇偶校验位与数据匹配时,UART知道传输没有错误。但是,如果奇偶校验位为0,且总数为奇数;或者如果奇偶校验位为1,且总数为偶数,则UART知道数据帧中的位已经更改。

    停止位

    为了向数据包的结尾发出信号,发送UART在至少两个位的持续时间内将数据传输线从低电压驱动到高电压。

     

    UART传输的步骤:

    1. 发送UART从数据总线并行接收数据:

               

    1. 发送UART将起始位、奇偶校验位和停止位添加到数据帧:

    1. 整个包从发送UART串行发送到接收UART。接收UART以预先配置的波特率对数据线进行采样:

       

     

    1. 接收UART丢弃数据帧中的起始位、奇偶校验位和停止位:

      

    1. 接收UART将串行数据转换回并行数据,并将其传输到接收端的数据总线:

      

     

    UART的优缺点

    没有哪种通信协议是完美的,但是UART非常擅长于它们的工作。以下是一些优缺点,可帮助您确定它们是否符合您的项目需求:

    优点

    • 仅使用两根传输线

    • 无需时钟信号

    • 具有奇偶校验位以允许进行错误检查

    • 只要双方都设置好数据包的结构,即可改变其数据包结构

    • 有完整的文档且是可广泛使用的方法

    缺点

    • 数据帧的大小最大为9位

    • 不支持多个从属系统或多个主系统

    • 每个UART的波特率必须在彼此的10%之内

    继续阅读本系列的第3部分“I2C通信协议基础”,了解电子设备进行通信的另一种方式。或者,如果您还没有阅读第1部分,请查看SPI通信协议的基础知识。

     

    系列回顾:

    收藏 | 电子通信协议之SPI通信协议篇

    参考原文:http://www.circuitbasics.com/basics-uart-communication/

    扫描上图二维码可直达课程页面,马上试听

    往期精彩:

    获取验证通关密语,就在本周日开班的验证V2课程

    30w+还送股送房?60+IC企业2019薪资全面攀升!

    UVM RAL模型:用法和应用

    我们准备做第二期线下培训,依旧认真且严肃

    如果你突然被裁员了,你的Plan B是什么?

    [彩虹糖带你入门UVM]

    理解UVM-1.2到IEEE1800.2的变化,掌握这3点就够

    展开全文
  • 使用逻辑分析进行UART通信协议分析

    千次阅读 2017-05-13 09:20:13
    使用逻辑分析进行UART通信协议分析本实验过程使用下列软硬件工具实现: 硬件设备:逻辑分析仪 软件:Saleae Logic1.2.14,NuMicro ISP ProgrammingTool 效果目标 通过逻辑分析仪抓取uart通信过程中的信号,对其协议...
  • Part1:UART 串口通信协议 通用异步收发器,相对的还有一个同步收发器usart 通过时钟控制数据传输,但是不常用; 1,物理层: ttl电平逻辑1的范围是2.4~5v ttl电平逻辑0的范围是0~0.5v RS-232电平逻辑1范围是-15~-...
  • 这些设备可能正在使用UART协议与您的计算机进行通信。尽管USB几乎完全取代了那些旧的电缆和连接器,但是UART绝不会是一个过时的东西。您会发现许多DIY电子项目中仍然使用UART将GPS模块、蓝牙模块和RFID读卡器模块...
  • USB默认松与果HID通信协议。 、UART:切换成博雅串口通信模式 USB:切换成松与果HID通信协议UART:切换成二代证SAM模块通信模式:
  • 一种软件模式,用于使用UART通信协议从微控制器和某种形式的个人计算机(PC,笔记本电脑或类似产品)传输数据。 致谢 该模式摘自Michael J. Pont的《时间触发的嵌入式系统的模式》一书。 流程图
  • 二,UART通信协议 (1)UART传输速度   UART作为异步串行通信接口,也就是说,它的数据传输不需要时钟,只要两条信号线分别进行数据收发。收发双方只需要约定好数据传输的速度和帧格式,就能保证数据收发的准确性...
  • 海凌科语音模块通讯协议
  • 有一点要注意的是,它提供了数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行...
  • 前言:上一篇文章中说到了UART的数据帧格式以及它的几种工作模式,在实际应用场合中,UART协议大多通过集成在MCU模块中的硬件逻辑来实现。为了更好的理解UART,在这里写篇文章用软件模拟串口通信,加深印象。 模拟前...
  • UART协议简介 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。 UART协议中涉及到的引线有2根,分别是TX和RX。TX用于芯片...
  • 这是一个用VHDL语言写的UART的程序,已经在FPGA板子验证通过。实现了uart通信
  • SPI IIC UART通信协议简单说明

    千次阅读 2016-11-17 11:01:52
    通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。 一、IIC协议: 2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,300
精华内容 520
关键字:

uart通信协议