精华内容
下载资源
问答
  • 串行通信

    千次阅读 2019-09-16 10:32:07
    处理器与外部设备通信一般有两种方式,串行通信和并行通信。 2.并行通信 传输原理:数据各个位同时传输(多倍的串行通信) 优点:传输速度更快 缺点:占用引脚资源多(一般传输几位就需要几个引脚) 3.串行...

    1.通信方式

    处理器与外部设备通信一般有两种方式,串行通信和并行通信。

    2.并行通信

    传输原理:数据各个位同时传输(多倍的串行通信)

    优点:传输速度更快

    缺点:占用引脚资源多(一般传输几位就需要几个引脚)

    3.串行通信

    传输原理:数据逐位顺序传输

    优点:占用引脚资源较少(一般1-2根引脚用于数据传输)

    缺点:数据相对较慢

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

    单工通信:数据只能在一个方向上传输

    半双工通信:

    允许数据在两个方向上传输,但是,在具体时刻,只允许数据在一个方向上传输(可切换方向的单工通信)

    全双工通信:

    允许数据同时在两个方向上传输,要求发送设备和接受设备都有独立的接受和发送能力

     

    串行通信通信方式主要有同步通信和异步通信。

    同步通信:带时钟同步信号传输

    如:SPI、IIC通信接口

    异步通信:不带时钟同步信号

    如:UART、单总线

    展开全文
  • 串行通信原理

    2021-02-19 23:39:52
    一、通信接口的背景知识 ...1、常见的串行通信接口 二、STM32串口通信接口 1、UART异步通信方式引脚 2、UART异步通信方式特点 3、串口通信过程: 4、STM32串口异步通信需要定义的参数: ...

    目录

    一、通信接口的背景知识

    二、STM32串口通信接口

    三、STM32串口常用寄存器和库函数

    四、串口配置一般步骤


    一、通信接口的背景知识

    1、常见的串行通信接口

    二、STM32串口通信接口

    1、UART异步通信方式引脚

    2、UART异步通信方式特点

    3、串口通信过程:

    4、STM32串口异步通信需要定义的参数:

    三、STM32串口常用寄存器和库函数

    1、串口操作相关库函数(省略入口参数):

    void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能
    void USART_Cmd();//使能串口
    void USART_ITConfig();//使能相关中断

    void USART_SendData();//发送数据到串口,DR
    uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据

    FlagStatus USART_GetFlagStatus();//获取状态标志位
    void USART_ClearFlag();//清除状态标志位
    ITStatus USART_GetITStatus();//获取中断状态标志位
    void USART_ClearITPendingBit();//清除中断状态标志位

    2、状态寄存器

    FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);

    3、数据寄存器

    void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
    uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

    4、波特比率寄存器

    void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);

    5、波特率计算方法

    四、串口配置一般步骤

    1、串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();
    2、串口复位:USART_DeInit(); 这一步不是必须的
    3、GPIO端口模式设置:GPIO_Init(); 模式设置为GPIO_Mode_AF_PP
    4、串口参数初始化:USART_Init();
    5、开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)
          NVIC_Init();
          USART_ITConfig();
    6、使能串口:USART_Cmd();
    7、编写中断处理函数:USARTx_IRQHandler();
    8、串口数据收发:
    void USART_SendData();//发送数据到串口,DR
    uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据
    9、串口传输状态获取:
    FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
    void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);

    五、串口通信代码

    Printf支持:

    //加入以下代码,支持printf函数,而不需要选择use MicroLIB	  
    #if 1
    #pragma import(__use_no_semihosting)             
    //标准库需要的支持函数                 
    struct __FILE 
    { int handle; 
    }; 
    
    FILE __stdout;       
    //定义_sys_exit()以避免使用半主机模式    
    _sys_exit(int x) 
    { x = x; } 
    
    //重定义fputc函数 
    int fputc(int ch, FILE *f)
    {      
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
        USART1->DR = (u8) ch;      
       return ch;
    }
    #endif 
    

    程序要求,发送的字符是以回车换行结束(0x0D,0x0A)

     

     

    展开全文
  • 51单片机的串行通信口原理解析 MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送...

      51单片机的串行通信口原理解析

      MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。下面我们分别介绍。

      [1]. 基本概念

      数据通信的传输方式

      常用于数据通信的传输方式有单工、半双工、全双工和多工方式。

      单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。

      半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。

      全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。

      多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。

      串行数据通信两种形式

      异步通信

      在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。

      同步通信

      同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。

      同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。

    878d987b47f3a17070a9051da9fe8f6a.gif

      串行数据通信的传输速率

      串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数—波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。

      [2]. MCS-51的串行口和控制寄存器

      串行口控制寄存器

      MCS-51单片机串行口寄存器结构如图3所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。

      此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。

    298470cbe70ca9fd4530a6b40921763d.gif

      串行通信控制寄存器

      在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:

      表1 SCON寄存器结构

      SCOND7D6D5D4D3D2D1D0

      SM0SM1SM2RENTB8RB8TIRI

      位地址9FH9EH8DH9CH9BH9AH99H98H

      下面我们对各控制位功能介绍如下:

      (1).SM0、SM1:串行口工作方式控制位。

      SM0,SM1 工作方式

      00 方式0

      01 方式1

      10 方式2

      11 方式3

      (2).SM2:多机通信控制位。

      多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。

      工作于方式0时,SM2必须为0。

      (3).REN:允许接收位。

      REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

      (4).TB8:发送接收数据位8。

      在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。

      (5).RB8:接收数据位8。

      在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。

      (6).TI:发送中断标志位。

      可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。

      (7).RI:接收中断标志位。

      可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

      电源管理寄存器PCON

      PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:

      表2 PCON电源管理寄存器结构

      PCOND7D6D5D4D3D2D1D0

      位符号SMOD---GF1GF0PDIDL

      在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。

      中断允许寄存器IE

      中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。

      表3 IE中断允许控制寄存器结构

      位符号EA--ESET1EX1ET0EX0

      位地址AFHAEHADHACHABHAAHA9HA8H

    展开全文
  • 但只能有一个主机(Master),其余为从机(Salve),从设备之间进行通信将传输速率提高到10Mb/s,当传输速率低100kb/s时传输距离延长到1200多米。所以RS422接口支持点对多的双向通信。接收器输入阻抗为4k,所以发送端...

    RS-422

    RS-422接口标准全称是"平衡电压数字接口电路的电气特性"它是由RS-232接口发展而来,它是弥补RS-232之不足而提出的。(请见上一篇文章)它是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

    6b376a02f1f4b2ab124dc8b77dc168f0.png

    RS422接线图

    由于接收器采用高输入阻抗还拥有发送驱动器,因此它比RS232有更强的驱动能力,所以可以在相同传输线上连接多个接收节点,最多可接10个节点。但只能有一个主机(Master),其余为从机(Salve),从设备之间进行通信将传输速率提高到10Mb/s,当传输速率低100kb/s时传输距离延长到1200多米。所以RS422接口支持点对多的双向通信。接收器输入阻抗为4k,所以发送端最大负载能力是10*K+100Ω(终接电阻)。

    当传送距离大于300米后需要在传输电缆的最远端加一终接电阻。在传输距离不足300米时,即短距离传输时可无需终接电阻。


    RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。 RS-422的收与发是分开的所以可以同时收和发,收发互不影响。

    1893b22af430e50a74a130bc87e078e2.png

    接口定义:

    RS-422采用的是4线模式,具体设备的名称与引脚定义由设备定义。下表是RS-422中各信号名称,在实际连线中,需要根据设备定义决定所在的引脚。

    3f34bc9c258c4c5b5de524402631c064.png

    名称 作用

    GND(Signal Ground) 地线

    TXA 发送正

    RXA 接收正

    TXB 发送负

    RXB 接收负

    展开全文
  • 串行通信接口

    2016-10-04 17:57:56
    串行通信 传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢  串行通信按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输 半双工:允许数据在两个方向上传输,...
  • 常见的串行通信接口

    千次阅读 2019-07-19 16:39:30
    串行通信接口 引脚 通信方式 通信方向 UART TXD RXD GND 异步通信 全双工 单总线 DQ:发送/接收 异步通信 半双工 SPI SCK MISO MOSI ...
  • 串行通信的原理

    千次阅读 2018-07-02 09:16:44
    串行通信 -传输原理:数据按位顺序传输。 -优点:占用引脚资源少 -缺点:速度相对较慢  串行通信: 按照数据传送方向,分为:  单工: 数据传输只支持数据在一个方向上传输  半双工: ...
  • STM32串行通信理解

    2020-11-23 17:12:09
    串行通信的通信方式:二、STM32串口通信基础1.STM32的串口通信接口2.UART异步通信方式引脚连接方法:3.UART异步通信方式特点:4.STM32串口通信过程:5.STM32异步通信要定义哪些参数:6.串口通信框图7.串口设置的一般...
  • 并行通信和串行通信 并行通信是指数据的各个位用多条数据线同时进行传输 优点:传输速度快 缺点:占用引脚资源多 串行通信是将数据分成一位一位的形式在一条传输线上逐个传输 优点:通信线路简单,占用引脚资源少 ...
  • 串行通信 数据按位顺序传输 占用引脚资源少 速度相对较慢 2、串行通信: (1)按照数据传输方式分为单工、半双工、全双工 (2)串行通信的通信方式: 同步通信:速度由时钟同步信号决定...
  • 串行通信接口SCI

    2020-12-29 17:21:19
    SCI是串行通信接口。SCI是一个双线的异步串口,具有接受和发送两根信号线的异步串口。 二、SCI模块的特点 ①SCI模块具有两个引脚:发送引脚SCITXD和接收引脚SCIRXD ②SCI模块具有双缓冲接受和发送功能:接收缓冲...
  • STM32 串行通信原理

    2020-12-04 21:40:36
    串行通信 传输原理:数据按位顺序传输。 优点:占用引脚资源少 缺点:速度相对较慢 串行通信: 按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输 半双工:允许数据在两个方向上传输,但是,在...
  • omron串行通信

    2014-01-16 15:25:58
    引脚图——PIC16F882/883/886 (28引脚PDIP、SOIC和SSOP)
  • 串行通信接口小结

    2016-10-11 20:26:07
    处理器与外部设备通信的两种方式: 并行通信 ...串行通信按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输 半双工:允许数据在两个方向上传输,但是,在某一时
  • 串行通信基础 串行通信接口/异步串行通信/UART 常称为“串口”或SCI,在USB未普及之前,是PC机...串行通信的数据以字节为单位,按位的顺序从发送线送出,从微控制器的引脚来看,高电平为逻辑1,低电平为逻辑0 ...
  • (1)通信接口背景知识 并行通信: --传输原理:数据各个位同时传输 --优点:速度快 --缺点:占用引脚资源多 串行通信: --传输原理:数据按位顺序传输 --优点:占用引脚资源少 --缺点:速度相对慢 串行...
  • ESP2866-12(NODE-MCU)与Arduino之间的串行通信以增加模拟引脚的数量为我的主要工作。
  • 2021-04-16 STM32串行通信

    2021-04-16 20:42:24
    STM32串行通信 一. 串行通信接口背景知识 二. STM32F1串口框图 1.1 处理器与外部设备通信的两种方式: 1. 并行通信: 传输原理:数据各个位同时传输; 优点:速度快; 缺点:占用引脚资源多 2. 串行通信: 传输原理...
  • 我们都知道如何使用系统配置的串口初始化函数去使用我们的串口,就是只能使用固定的引脚去进行串行通信,就是下面这种方法, 如果想要使用其他的引脚来进行串行通信,就不可以了。下面教大学如何使用模拟串行...
  •  串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。  在通信...
  • 摘 要:介绍了高性能AVR微控制器AT90S8515的串行通信接口UART的主要性能特点,并给出串行数据通信的程序。 关键词:AT90S8515微控制器 串行接口UART 应用程序0 引 言 美国ATMEL公司推出的90系列单片机是增强...
  •  三菱FX系列PLC自带的编程口是RS-422接口,而PC机的串行通信口则是RS-232C接口,两者之间需要通过SC-09适配电缆才能通信。不同设备上相同类型的通信接口的引脚定义可能存在差异。PC机与三菱FX系列PLC上的通信接口...
  •  串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。  在通信...
  • 1、串行通信 2、常见的4种串行通信标准 3、对74LS164芯片的介绍 74LS164:串行转并行芯片,内部是1个8位的移位寄存器组成,由8个D触发器组成 缺点是:不带锁存寄存器,移位寄存器移位的过程会表现在164的输出...
  • 51单片机的串行通信口原理解析 MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送...
  • 所以当Arduino的引脚0和引脚1用于串行通信功能时,Arduino的引脚0和引脚1是不能做其他用的。你也可以通过Arduino开发环境软件中的串口监视器来与Arduino 控制器进行串口通信,你只需要点击Arduino IDE软件中的“串口...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 825
精华内容 330
关键字:

串行通信引脚