精华内容
下载资源
问答
  • 串口通信基本原理

    2021-05-15 12:45:00
    UART异步通信方式特点: 全双工异步通信。 分数波特率发生器系统,提供精确的波特率。 -发送和接受共用的可编程波特率,最高可达4.5Mbits/s 可编程的数据字长度(8位或者9位); 可配置的停止位(支持1或者2位停止位...

    常见的串行通信接口:
    在这里插入图片描述
    UART异步通信方式特点:
    全双工异步通信。
    分数波特率发生器系统,提供精确的波特率。
    -发送和接受共用的可编程波特率,最高可达4.5Mbits/s
    可编程的数据字长度(8位或者9位);
    可配置的停止位(支持1或者2位停止位);
    可配置的使用DMA多缓冲器通信。
    单独的发送器和接收器使能位。
    检测标志:① 接受缓冲器 ②发送缓冲器空 ③传输结束标志
    多个带标志的中断源。触发中断。
    其他:校验控制,四个错误检测标志。

    串口通信过程
    在这里插入图片描述

    STM32串口异步通信需要定义的参数:
    起始位
    数据位(8位或者9位)
    奇偶校验位(第9位)
    停止位(1,15,2位)
    波特率设置

    范例:
    在这里插入图片描述

    Usart框图:在这里插入图片描述

    串口操作相关库函数(省略入口参数):
    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();//清除中断状态标志位

    串口配置的一般步骤
    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);

    展开全文
  • 串口通信基本概念(一)——串行与并行通信,同步与异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,...

    一、串口通信简介

    串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

    串口通信中比较重要的参数包括波特率、数据位、停止位及校验位,通讯双方需要约定一致的数据格式才能正常收发数据。串行通讯可以进一步分为单工、半双工和全双工三种。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。它们的主要区别在于其各自的电平范围不相同。

    二、串行和并行通信

    刚说到串口通信是通过接口进行串行通讯。那么什么是串行通讯呢?

    1 串行通信:

    串行通信:计算机与I/O设备之间,同一时刻,只能传输一个bit位的信号。传输数据按顺序依次一bit位接一bit位进行传输,通常数据在一根数据线或一对差分线上传输。

    比如,当传输1字节信息时,并行通讯有8根信号线实现同时传输,假如耗时为1T,而串行是在一根信号线上,把数据排成一行、一位一位传输,需要传8次,因此耗时为8T。因此可总结出二者的特性:

    2 并行通信:

    并行通信是和串行通信相对的数据传输的方式。

    并行通信:计算机与I/O设备之间,通过多条传输线,可以同时传输多个bit位的信号。

    • 并行通讯的效率高,但是成本高、对信号线路要求高,一般应用于快速设备之间近距离传输,譬如CPU 与存储设备、存储器与存储器、主机与打印机等都采用并行通讯。

    • 串行通讯效率较低,但是对信号线路要求低,抗干扰能力强,同时成本也相对较低,一般用于计算机与计算机、计算机与外设之间远距离通讯。

    3 串口通信和串行通信的区别

    串口通信和串行通信的区别在于:串行通信是一种概念,串口通信是一种具体的通信手段。

    串行通信是一种概念,是指一比特一比特的收发数据,相对于并行通信可同时传输多个bit位而言。包括一般的的串口通信、I2C、SPI等等。

    串口通信是外设和计算机间的一种通信手段,是相对于以太网通信等通信手段而言的。

    二者一个是一种概念,一个是一种实际的通信方式。

    三、同步和异步通信

    在设备之间传送数据,不管是同步通信还是异步通信,都是为了保证数据被正确的发送和接收,即发送方和接收方的“同步”。即接收方可以确定什么时候发送方开始或者结束发送数据以及每一个数据单位(例如bit,字符)的开始和结束的位置,这样接收方才能在正确的时间对发送方的数据进行采样,以接收正确的数据,否则接收到的数据就是错误的。

    根据“同步方式”的不同,由此分出两种同步信号得方法:
    (1)同步通信(比特位同步)
    (2)异步通信(字符间同步,字符内比特位异步)

    同步通信会利用一根额外的信号线,其实也就是时钟信号线,它往往是发送设备提供的时钟信号,发送设备和接收设备在发送设备提供的同一时钟频率下完成同步。(实际上,基本所有的并行通信采用同步通信。)

    异步通信没有额外的一根信号线用于同步,接收者和发送者使用各自的时钟信号,接收者根据与发送者按事先约定的规来确定数据发送的开始与结束以及数据单位的持续时间。例如异步串行通信中,一般接收双方会确定一致的停止位,数据位的个数、波特率的大小以及是否采用奇偶校验位。接收方可以根据这些信息推测出准确的数据采样时间以接收正确的数据。如果是同步通信则不需要这些额外的用于同步的数据位(开始位,结束位,奇偶校验位)。

    1 同步通信

    同步通信要求发送和接收双方在进行数据传输时,保持完全的同步,因此,要求发收双方必须使用同频同相的同步时钟信号。只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后在同步时钟的控制下逐位发送/接收。这样,信息传输完全可以确定传输过程中每1位的位置。因此同步通信是一种比特同步通信技术。

    如下图所示:
    在这里插入图片描述

    同步通信是一种连续传送数据的通信方式,一次通信传送一帧数据,每个信息帧用同步字符作为开始,字符间不加标识位。(这里的数据帧比异步通信中的字符帧要大得多,通常含有若干个数据字符)。当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。

    同步通信以数据帧为单位,其格式包括:同步字符+数据+校验字符CRC。

    (a)单同步数据帧结构

    同步字符数据字符1数据字符2数据字符3数据字符nCRC1CRC1

    (b)双同步数据帧结构

    同步字符1同步字符2数据字符1数据字符2数据字符nCRC1CRC1

    没有数据发送时,接收方要时刻做好接收数据的准备。在每组信息(通常称为帧)传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当接收方收到同步字符,并和发送方达到同步后,就可以以固定的节奏一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。同步通信更加适合对速度要求高的传输,对时序的要求很高,当然对硬件要求也更高。

    在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,收发双方用一个时钟进行协调,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符,这样就可以确定传输中每一位的位置。接收数据时,接收方利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。

    2 异步通信

    异步通信是按字符帧传输的,相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,接收方并不知道数据什么时候会到达,因此接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,时间间隔可以是任意的,在一字符帧中的所有比特是连续发送的。

    发送端不需要在发送字符之前和接收端进行协调(不需要先进行比特同步)。接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的字符间同步,字符内比特位异步)

    因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。通信双方需要对采用的信息格式(字符的位数、停止位的位数、有无校验位及校验方式等)和数据的传输速率作相同的约定。接收方是在数据的起始位和停止位的帮助下实现字符传送时的同步。这种传输通常是很小的分组,比如一个字符为一组,为这个组配备起始位和结束位。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在低速的传输中。

    在这里插入图片描述
    异步通信以字符为单位,其格式包括:起始位+数据+奇偶校验位+停止位。
    以起止式异步协议为例,如下图所示
    在这里插入图片描述
      起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以"起始位"开始,以"停止位"结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位低电平起始位(逻辑值0),字符本身由5-8位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。
      如上图中所示,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。
      
    (1)起始位:发送数据时,先发持续一个bit时间的逻辑”0”信号,表示字符传输的开始,接收端可根据起始位使自己的接收时钟与发送方的数据同步。

    (2)数据位:起始位后是数据位,异步传送规定低位在前,高位在后,数据位的位数一般可以是5~8位。

    (3)奇偶校验位:奇偶位紧跟在数据最高位之后,占用一位(也可省去)。加上这一位后,使得逻辑“1”信号的位数得到偶校验或奇校验,以此来校验数据传送的正确性。
      如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。
      由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

    (4)停止位:数据发送完后,再发1位、1.5位、2位的高电平(逻辑”1”信号)代表停止位,表示一帧数据结束,同时为接收下一帧数据做准备。

    (5)空闲位:在没有数据发送时,即下一帧的起始位“0”到来之前,数据线保持默认的“1”状态,即由高电平来填充。

    异步通信字符帧格式总结如下表:

    逻辑信号数据位数
    起始位01位
    数据位0或15~8位
    校验位0或11位或无
    停止位11位,1.5位或2位
    空闲位1任意数量

    :位数的本质含义是信号持续的时间,故可有分数位,如停止位1.5位,1.5是它的长度,即停止位的电平保持1.5个单位时间长度。一个单位时间就是波特率的倒数,例如波特率为9600bps,则一个单位时间长为1/9600s,1.5个停止位,即停止位电平保持1.5/9600s。

    3 同步通信和异步通信比较

    (1)同步通信要求接收端时钟频率和发送端时钟频率一致;异步通信时不要求接收端时钟和发送端时钟同步。

    (2)同步通信数据传输是以字节块(多个字节)传输的;异步通信数据传输是以字符(一个字节)传输的。

    (3)同步通信传输效率高,但复杂、要求高,双方时钟的允许误差较小;异步通信传输效率低,但简单、要求低,双方时钟可允许一定误差。

    (4)同步通信的字节传输是没有间隔的发送端发送连续的比特流;异步通信字节传送的间隔是任意的,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

    同步通信和异步通信的差异总结如下表:

    同步通信异步通信
    传送单位信息帧(由若干字符组成的数据块)字符(由若干bit组成)
    单位格式同步字符+数据+校验字符CRC起始位+数据位+奇偶校验位+停止位
    传送间隔一个数据块(信息帧)内,字符与字符间无间隔相邻两字符之间隔任意长
    时钟信号时序要求高,使用同频同相的时钟线路时序要求较低,使用各自的时钟信号
    优点效率高简单,要求低
    缺点复杂,要求高效率低(传送一个字符,要增加约20%的附加信息位)
    展开全文
  • 关于数据通信一些基本概念的介绍请参考我的另一篇博文:数据通信基本概念_徐大康的博客-CSDN博客 一. 串口的出现与RS232标准 串行接口_百度百科 (baidu.com) 串行接口 - 维基百科,自由的百科全书 (wikipedia.org)...

    关于数据通信一些基本概念的介绍请参考我的另一篇博文:数据通信的基本概念_徐大康的博客-CSDN博客

    一. 串口的出现与RS232标准

    串行接口_百度百科 (baidu.com)

    串行接口 - 维基百科,自由的百科全书 (wikipedia.org)

    RS232接口_百度百科 (baidu.com)

    RS-232 - 维基百科,自由的百科全书 (wikipedia.org)

    1962年,体积较小的个人计算机还没有出现,那时电传打字机和计算机视频终端都需要与调制解调器进行通信,为规范此通信过程,美国电子工业协会(EIA)联合各个厂商发布了EIA-RS-232A标准,其中,RS英文全称是Recommended Standard,是推荐标准的意思;232是标识号;A表示首次发布。

    经过几年的实际应用和改进,1970年,EIA对RS232标准进行了第三次修订,发布了RS-232C标准。其中C表示是第三次修订(第二次修订是B)。

    EIA-RS-232简称232或RS232,目前最新的标准是1997年发布的EIA-RS232F,但RS232C是应用最广泛,最为人所知的232标准,所以一般人们说到RS232,指的都是RS232C

    RS232是一种串行通信标准,被简称为串口,最初它有22根线,采用DB25接插件,支持同步和异步串口,它的物理接口如下图(左)所示:

    串口通信简介——发展历史与基本概念-1

    DB25接口最初被广泛应用于个人计算机,因为其非常流行,人们还喜欢称它为COM口,意为communication口即通信口,在有多个通信口时,人们用COM1,COM2来称呼它们。

    随着技术的发展,设备制造商倾向于体积更小,成本更低的接口,因此,DB25中未使用的和支持同步模式的引脚被去掉了,形成了现在的DB9接口,如上图(右)所示。

    这种DB9接口连接可靠,还带屏蔽,曾作为计算机与外设间的通信接口红极一时,虽然现在个人计算机早已淘汰了这种接口,主要原因还是它太大了,不符合计算机小型化、轻量化的需求,但在对连接可靠性要求更高的工业控制领域,DB9接口仍然被广泛使用着,有时还并不是作为RS232的物理接口,而是作为其它通信协议例如CAN通信的接口。

    所以,发展到现在,RS232C及其对应的物理接口DB9在个人计算机上已经没有应用了,在工业控制板卡上RS232也应用的较少了,且一般也只用到TX、RX 和 GND这三根线而省略其它控制线,但DB9接口还在广泛使用。

    二. RS422的发展

    RS-422_百度百科 (baidu.com)

    EIA-422 - 维基百科,自由的百科全书 (wikipedia.org)

    RS232应用很广泛,但也有其局限性,传输距离短、速度较慢、不支持组网这三个缺点使得RS232C在长距离传输、较大数据量和需要组网的应用环境下变得不再适用。为了解决这一问题,1977年,EIA发布了RS422A标准。

    RS422的全称是“平衡电压数字接口电路的电气特性”,最新版标准是RS422B。

    RS422的比特率可达100kps~10Mbps(取决于数据线长度),最大传输距离可达1200米,也支持一主多从(单个发送端最多10个接收端)的组网方式,这些是RS422相对RS232的主要改进。

    为支持长距离传输,RS422采用差分传输,共五根线,TX+、TX-、RX+、RX- 和 GND,它并没有规定特定的物理接口,但实际使用时一般沿用RS232的DB9接口。

    虽然RS422能轻松连接一个发送端与10个接收端,但这时接收端只能接收而不能反过来发送数据,这相当于一种广播形式的连接,还没有实现多点间可互相收发的通信,所以,RS422标准实际应用的并不多,一般是作为RS232的扩展,等到它的改进版标准RS485推出之后,RS422基本销声匿迹了,成了串口通信历史的一个过客。

    三. RS485的发展与应用

    RS-485_百度百科 (baidu.com)

    EIA-485 - 维基百科,自由的百科全书 (wikipedia.org)

    为弥补RS422无法实现多点互收发通信的不足,1983年,EIA在RS422的基础上制定了RS485A标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上。

    RS485是一个异步半双工的串行通信协议。在硬件构成上,RS422相当于两组RS485,即两个半双工RS485构成了RS422,所以有时RS422又被称为全双工RS485。

    因为是半双工通信,RS485将RS422的五根线缩减为三根,分别是A+、B- 和 GND,+表示差分的正端,-表示差分的负端。

    同RS422一样,RS485也没有规定物理接口。

    RS485标准因为线数少、抗干扰性强、可灵活组网等优点在工业控制领域有着较广泛的应用。

    四. UART及其与RS232、RS422 和 RS485的关系

    UART_百度百科 (baidu.com)

    UART - 维基百科,自由的百科全书 (wikipedia.org)

    TTL电平_百度百科 (baidu.com)

    UART,Universal Asynchronous Receiver/Transmitter,通用异步收发器,是一种通信协议,它规定了数据的开始位、停止位、校验位等数据如何组织的规则。

    RS232、RS422 和 RS485这些标准只规定了通信的电气规则,像RS485规定二进制0的电平是+1.5 ~ +6V,二进制1的电平是-6 ~ -1.5V,它们并没有指定用什么方式组织数据。理论上,用除UART协议外的协议来组织发送数据,再通过RS232等接口规定的电平标准来完成数据收发是可行的,但一般没人这么干,因为UART足够简单且能满足要求了,所以上述三种标准采用UART协议组织数据已成为了一种事实标准,这一点我们从UART名字中的通用两字就可以看出端倪。

    因为UART都是由CPU、MCU等控制器或专用芯片产生的,所以UART的原始电平一般为TTL电平即低电平0V、高电平3.3V或5V。所以,单独说UART指的就是TTL电平的异步串行通信协议。它有三根线,TX、RX 和 GND,没有规定物理接口,一般直接用几根插针或者几个圆孔作为接口。

    因为TTL电平传输距离非常短,所以UART总是需要转换成其它电平标准,而向RS232、RS485 和 USB这三种转换是最多的。大名鼎鼎的MAXIM(美信)就起家于一个TTL电平转±15V的RS232电平的一个芯片——MAX232。同样著名的还有该公司的MAX485,该芯片的功能是将TTL电平转为RS485电平。UART转USB的需求也非常庞大,最著名的芯片是FTDI公司的FT232RL,国产的CH340G也不错。下图展示了一块使用FT232芯片的UART转micro-USB的板卡。

    串口通信简介——发展历史与基本概念-2

    五. 串口概念的总结

    从串口的发展历史我们知道,串口的说法最初指的是最流行的串行通信标准RS232。又因为RS422 和 RS485是在RS232基础上发展而来的,所以串口也可以指代它们。而UART是这几个标准均采用UART通讯协议,所以串口也包含了UART。

    总结一下,串口指的就是RS232、RS422、RS485 和 UART 这几种通信标准/协议。因为RS422基本很少见到了,所以我们日常说的串口,指的就是RS232、RS485 和 UART这三种。它们的一些特征如下表所示:

    串口类别RS232RS485UART
    通信类别异步串行通信异步串行通信异步串行通信
    通信协议UARTUARTUART
    物理接口DB9未规定未规定
    半/全双工全双工半双工全双工
    信号线数量标准9根,一般使用时简化为3根,
    Tx,Rx,GND
    3根
    A+,B-,GND
    3根
    Tx,Rx,GND
    逻辑电平RS232电平
    逻辑1:-15V ~ -5V
    逻辑0:+3V ~ +15V
    RS485电平
    逻辑1:+2V ~ +6V
    逻辑0:-6V ~ -2V
    TTL电平
    逻辑1:+2.4V ~ +5V
    逻辑0:0V ~ +0.5V
    传输距离较短,<15米较长,<1200米最短,<5米
    传输速度较慢,与距离有关,
    一般<20kbps
    较快,与距离有关
    一般100kbps~10Mbps
    较慢,与距离有关
    一般采用固定速度,
    如9600bps、115200bps等
    最快一般不超过921600bps
    应用场景工业上PCB板间通信,
    应用越来越少
    工业上PCB板间通信,
    相对RS232应用多一些
    主要用作调试接口,
    通过UART转USB后与电脑通信

    串口是一种习惯性的叫法,它并不特指哪一种具体的标准/协议,一般我们在描述的时候会说RS232串口、RS485串口、UART串口,以此来说明我们说的到底是哪一种串口。

    三种串口可以通过专用芯片实现互转也可以转为USB连接电脑,在电脑侧安装好对应的驱动,再借助各种串口调试工具即可实现在电脑上收发串口数据,甚至能看到波形。这是一种常用的代码调试手段。目前市面上已经有了多种串口转USB的工具,其中一种如下图所示:

    串口通信简介——发展历史与基本概念-3

    六. 参考书目

    1.《串行通信接口规范与标准》 [美] Louis E. Frenzel Jr 编著,林赐 翻译(第25章,第26章,第28章)

    2.《串行通信技术 面向嵌入式系统开发》 周云波 编著(第一章)

    展开全文
  • 什么是计算机通信计算机通信基本原理并行与串行通信方式异步通信和同步通信 什么是计算机通信 计算机通信是指计算机个计算机之间或计算机与终端之间进行信息传递的方式。 通信中有并行和串行两种方式。在单片机系统...

    什么是计算机通信

    计算机通信是指计算机个计算机之间或计算机与终端之间进行信息传递的方式。

    通信中有并行和串行两种方式。在单片机系统以及现代单片机测控系统中,信息的交换采用串行通信方式。

    计算机通信基本原理

    计算机通信的基本原理是将电信号转换为逻辑信号,其转换方式是将高低电平表示为二进制数中的1和0, 再通过不同的二进制序列来表示所有的信息。

    并行与串行通信方式

    并行通信串行通信
    并行通信通常是将数据字节的各位用多余数据线同时进行传输。如下图1所示,在8位数据总线通信系统,一次送8位数据(1个字节),将需要8根数据线。这是方式仅适合短距离数据传输,如比较老式的打印机就是通过并口方式与计算机连接。并行通信控制简单、传输速度快。由于传输线较多,长距离传送是成本高而且收发的各位同时接收存在困难。串行通信是使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机、计算机之间、计算机与外设之间的远距离通信。如下图2
    并行通信特点:并行通信控制简单、传输速度快。由于传输线较多,长距离传送是成本高而且收发的各位同时接收存在困难。串行通信特点:传输线少,长距离传送时成本低,但数据传送控制比并行通信复杂。

    请添加图片描述
    图1(并行通信方式)
    请添加图片描述
    图2(串行通信方式)

    异步通信和同步通信

    串行通信又可分为异步通信和同步通信

    1、异步通信
    发送与接收设备使用各自的时钟控制数据发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
    请添加图片描述
    异步通信是一种常用的通信方式(效率较低)异步通信在发送字符时,发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束地方加上标志位,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
    异步通信字符信息由4部分组成:起始位、数据位、奇偶校验位和停止位
    请添加图片描述

    校验位的概念:

    1. 校验位的作用是用于校验数据的正确性
    2. 校验位可有可无
    3. 校验位用于判断传输每一个字节过程中‘1’的个数,如果‘1’的个数是是偶数,是偶校验;如果‘1’的个数是奇数,则是奇校验。
    4. 校验位用来判断数据有没有错误,不能修正错误。

    异步通信还有一个概念:波特率
    波特率(bandrate),指的是串口通信的速率,也就是串口通信每秒可以传输多少个二进制位。
    如:每秒可以传输9600个二进制位,则波特率位9600。
    常用波特率有:300、600、1200、2400、9600、19200、38400、43000、56000、57600、115200
    单片机常选择9600,高速选择115200

    异步通信的特点:不要求收发时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2-3位,用于起始位。校验位和停止位,各帧之间还有间隔,因此传输效率不高。

    在单片机与计算机之间通信时,通常采用异步串行通信方式。

    2、同步通信
    信息发送设备与接收设备需要时钟同步,两者间除数据线连接,还需要额外的时钟线连接。一般需要发送方发送数据时同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏。
    请添加图片描述

    串行通信的方式

    1. 单工,数据传输仅沿着一个方向,不能反向传输
      请添加图片描述

    2. 半双工,数据可以沿着两个方向,但需要分时进行
      请添加图片描述

    3. 全双工,数据可以同时进行双向传输
      请添加图片描述

    展开全文
  • 串口通信串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信协议是指规定了数据包的内容,内容包含了起始位...
  • 数据通信基本方式根据数据的传输方式可以分为串行通信与并行通信两种。 串行通信又根据数据的同步方式,分为异步传送和同步传送两种方式。或者根据数据的传输方向与时间关系,分为单工通信、半双工通信及全双工...
  • STM32串口通信入门介绍
  • 3)设置串口 使其能中断 3)时钟 4)创建工程 二、代码 1)打开生成代码 2)加入存放字符的数组 uint8_t a[]="Hello world!\n"; 3)加入回转函数 void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { ...
  • STM32串口通信基本原理

    千次阅读 多人点赞 2021-05-22 18:41:36
    通信方式 并行通信 传输原理:数据各个位同时传输 优点:速度快(一个引脚传输一个位) 缺点:占用引脚资源多 串行通信 传输原理:数据按位顺序传输 优点:占用引脚资源少(一个引脚都可以) 缺点:速度相对较慢 ...
  • 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信中比较...
  • 串行通信可以分为两种类型:同步通信、异步通信.1. 异步通信的特点及信息帧格式:以起止式异步协议为例,下图显示的是起止式一帧数据的格式:图1起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,...
  • 1, 485通讯与串口通讯区别跟串口通信一样的。在串口上加个485转换器好了。 可以用现成的spcomm控件等对于软件来说,485通信和串口通信是一回事,都是操作串口。这两者只是硬件上的区别而已,跟软件没关系的。所谓的...
  • 串行通信得通信方式 同步通信带时钟同步信号传输,SPI IIC 异步通信:不带时钟同步信号 UART 通用同步收发器,单总线 STM32得串口通信接口 UART 通用异步收发器 USART 通用同步异步收发器 大容量STM32F10X 芯片...
  • 串口通信编程

    2021-07-18 20:23:45
    串口通信学习笔记
  • STM32实战-串口通信方式汇总

    千次阅读 2021-09-26 17:41:18
    STM32实战-串口通信方式汇总1.串口基本概念2.串口发送3.串口接收4.接收一帧数据5.串口进阶应用 1.串口基本概念 1.1.串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据...
  • 单片机串口通信实验报告总结

    千次阅读 2021-05-25 08:04:48
    一 、实验名称串口通信实验二、实验目的及要求1.掌握波特率设置及串口结构。2. 掌握串口方式一编程。三、实验主要仪器设备PC机实验原理串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,...
  • UART串口通信

    2021-11-10 15:35:21
    串行接口简称“串口”,即采用串行通信方式的接口。 串行通信将数据字节分成一位一位的形式,在一条数据线上逐个传送。 串行通信的特点:通信线路简单,但传输速度较慢。 因此,串行接口广泛应用于对数据传输速度...
  • 什么是串行通信串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。...
  • 指导老师签字: 日期: 网络编程与实践实验报告 实验内容:串口通信编程 学号:S201502189 姓名:职荣豪 日期:2015-9-28 一、 实验要求 使用VS2010编写基于对话框的MFC应用程序,两个窗口分别使用两个串口,使得这...
  • 串口通信,接收并解析数据的方式(点击链接阅读原文)
  • 1.串口通信:指外设和计算机之间,通过数据信号线,地线等,按位进行传输数据的一种通讯方式 串口通讯是一种接口标准,它规定了电器标准,没有规定接口插件电缆以及使用的协议 2.串口通讯的数据格式 一个字符一...
  • 串口通信详解

    2021-10-09 13:23:56
    串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。...
  • 串行通信是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通信的速度比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。 典型的串口通信使用3根线...
  • 串口通信协议

    2021-07-22 00:17:56
    串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位...
  • 串口通信的原理串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现...
  • 串行通信
  • 串行通信有两种基本通信方式,异步通信和同步通信。 异步通信不需要传输时钟信号,通信双方的时钟是各自独立的,但双方必须是相同的通信速率和数据格式,即相同的通信协议。其帧格式一般为:起始位+数据位
  • Uart异步串口通信

    千次阅读 2021-02-10 11:38:35
    1. 什么是UART? (1)UART,通用异步收发器。相比于USART,UART收发是以字符为单位,没有CLK同步时钟。 (2)UART最主要的是三根... } 参考资料 [1] 基于STM32之UART串口通信协议(三)接收 [2] UART串口通信协议原理
  • 机器的通信方式有两种,分别是并行通信与串行通信。 并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,697
精华内容 53,078
关键字:

串行通信基本通信方式