串行通信简介

2023-05-16

一、串行通信与并行通信

计算机与外界的数据交换称为通信,通信分为并行通信和串行通信两种基本方式。

并行通信

串行通信

并行通信:并行通信指各个数据位同时进行传送的数据通信方式,因此有多少个数据位,就需要多少根数据线。并行数据的特点是传送速度快、效率高,但成本高,通常只适合30m距离内的数据传送。

串行通信:串行通信指各个数据按传送位顺序进行传输,最少只需要两个传输线即可完成。其传输速度慢、效率低,但传输距离远,而且可以使用现有的通信通道(如电话线、各种网络等),在集散控制系统等远距离通信中使用很广。

二、串行通信分类—异步通信和同步通信

串行通信按照串行数据的时钟控制方式分为异步通信同步通信

1.异步通信

在异步通信中,数据通常以字符(或字节)为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,两个时钟源彼此独立,互不同步。

发送端和接收端依靠什么来协调数据的发送和接收呢?也就是说,接收端怎么会知道发送端何时开始发送和何时发送结束呢?这个是由字符帧格式规定的。平时,发送线为高电平(逻辑1),每当接收端检测到传输线上发送过来低电平逻辑0(字符帧的起始位)时,就知道发送端已经开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息已发送完毕。

在异步通信中,字符帧格式和波特率是两个重要指标,由用户根据实际情况选定。如下是异步通信的字符帧格式。

 (1)字符帧

字符帧格式也称为数据帧,由起始位数据位奇偶校验位停止位4部分构成。

起始位:位于字符帧开头,只占1位,始终为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。

数据位:紧跟起始位之后,用户根据情况可以取5位、6位、7位和8位,低位在前高位在后。若所传数据位ASCII字符,则常取7位。

奇偶校验位:位于数据位之后,仅占1位,用于表征串行通信中采用奇校验位还是偶校验,由用户根据需要决定。

停止位:位于字符帧末尾,为逻辑高电平1,通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符做准备。

(2)波特率

波特率的定义为每秒钟传送二进制数码的位数(又称为比特数),单位是b/s。波特率是串行通信的重要指标,用于表征数据传输的速度。波特率越高,数据传输速度越快,和字符的实际传输速率不同。字符的实际传输速率是指每秒内所传字符帧的帧数,和字符帧格式有关。每位数据的传输时间定义为波特率的倒数。波特率还与信道的频带有关。波特率越高,信道频带越宽。所以,波特率也是衡量信道频宽的重要指标。通常,异步通信的波特率为50~9600b/s。波特率不同于发送时钟和接收时钟,常是时钟频率的1/16或1/64。

异步通信的优点是不需要传送同步脉冲,字符帧长度也不受限制,故所需设备简单。缺点是字符帧中因包含起始位和停止位而降低了有效数据的传输速度。

2.同步通信

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。此处的信息帧和异步通信中的字符帧不同,通常含有若干个数据字符,如下图所示。

 他们均由同步字符数据字符校验字符CRC三部分组成。

同步字符:同步字符位于帧结构开头,用于确认数据字符的开始(接收端不断对传输线采样,并把采样到的字符和双方约定的同步字符比较,只有比较成功后才会把后面接收到的字符加以存储)。

数据字符:数据字符在同步字符之后,个数不受限制,由所需传输的数据块长度决定。

校验字符CRC:校验字符有1~2个,位于帧结构末尾,用于接收端对接收到的数据字符的正确性进行校验。

同步通信的数据传输速率较高,通常可达56Mb/s或更高。同步通信的缺点是要求发送时钟和接收时钟保持严格同步,故发送时钟除应和发送波特率保持一致外,还要求把它同时传送到接收端去。

三、串行通信的制式—半双工和全双工

在串行通信中,数据是在两个站之间传输的。按照数据传输方向,串行通信可分为半双工全双工两种制式。

1. 半双工制式

 在半双工制式下,A站和B站之间只有一个通信回路,故数据或者由A站发送被B站接收,或者由B站发送被A站接收。因此,A、B两站之间只需要一条信号线和一条接地线。

2. 全双工制式

在全双工制式下,A、B两站间有两个独立的通信回路,两站都可以同时发送和接收数据。因此,全双工方式下A、B两站之间至少需要三条传输线:一条用于发送,一条用于接收,一条用于信号地。

四、常见串行通信接口

通信标准引脚说明通信方式通信方向

UART

(通用异步收发器)

TXD:发送端

RXD:接收端

GND:公共地

异步通信全双工

单总线

(1-wire)

DQ:发送/接收端异步通信半双工
SPI

SCK:同步时钟

MISO:主机输入,从机输出

MOMI:主机输出,从机输入

同步通信全双工
I2C

SCL:同步时钟

SDA:数据输入/输出端

同步输出半双工

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串行通信简介 的相关文章

  • springboot项目多环境配置(详细步骤)

    说明 xff1a 使用springboot实现项目多环境配置 xff01 目录 一 application properties多环境配置二 application yaml多环境配置 一 application properties多环境
  • 二叉树递归遍历(C语言实现)

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • n&(1<<i)用法

    1 lt lt i 是将1左移i位 xff0c 即第i位为1 xff0c 其余位为0 xff1b 例如1 lt lt 2 则0001 gt 0100 n amp 1 lt lt i 是将左移i位的1与n进行按位与 xff0c 即为保留n的第
  • C++如何将数字常量转换为字符串

    头文件 xff1a include lt string gt 功能 xff1a 将数字常量转换为字符串 参数 xff1a value 返回值 xff1a 转换好的字符串 定义于头文件 std string to string int val
  • 动态数组(C语言)

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式)

    STM32使用串口空闲中断接收不定长数据帧 USART IT IDLE使用 xff08 不使用DMA方式 xff09 前言串口空闲中断介绍清中断方法串口中断处理函数串口中断用到的全局变量定义串口初始化 xff08 使能接收中断 空闲中断 x
  • C语言编程规范

    一 头文件编程规范 三大原则 设计层面 xff1a 1 头文件中适合放置接口声明 xff0c 不适合放实现 2 头文件职责单一 3 头文件应向稳定的方向包含 八项规则 编码层面 xff1a 1 只能通过包含头文件的方式使用其他模块提供的接口
  • struct2数据传输格式错误

    n incompatible version 1 1 14 of the APR based Apache Tomcat Native library is installed while Tomcat requires version 1
  • 简单自定义协议的封包和解包

    简单自定义协议的封包和解包 一 通信协议1 百度百科的解释2 过于简单的通信协议引发的问题3 通信协议常见内容1 帧头2 设备地址 类型3 命令 指令4 命令类型 功能码5 数据长度6 数据7 帧尾8 校验码 4 通信协议代码实现 xff0
  • 如何计算C语言中结构体的大小:结构体内存对齐

    结构体的对齐规则 xff1a 1 第一个成员在与结构体变量偏移量为0的地址处 2 其他成员变量要对齐到某个数字 xff08 对齐数 xff09 的整数倍的地址处 xff08 对齐数 61 编译器默认的一个对齐数 与 该成员大小的较小值 xf
  • C语言实现大小端转换

    C语言实现大小端转换 xff1a 大端模式 xff1a 数据的高字节保存在内存的低地址中 xff0c 而数据的低字节保存在内存的高地址中 数字999 换算成补码就是 xff1a 0000 0011 1110 0111 xff0c 大端存储模
  • Flask全局拦截器&局部拦截器

    拦截器 在开发网站时 xff0c 不同路由下有可能需要做一些重复的判断 例如购物网站中管理员想要获取所有订单的信息 xff0c 需要首先判断管理员是否登录 xff0c 如果没有登录肯定是没有权限的 同理 xff0c 管理员的其他操作同样需要
  • C struct 简单实现 class

    以车为对象 xff0c 用C来写C 43 43 的class车 在C中没有类 xff0c 所以用struct来代替 xff0c 而class中对应的类对象函数就用函数指针来代替 span class token keyword typede
  • 2019年全国大学生电子设计竞赛综合测评题解析

    2019年全国大学生电子设计竞赛综合测评题解析 题目如下 xff0c 设计制作电路产生下列四路信号 xff1a 1 频率为19kHz 21kHz连续可调的方波脉冲信号 xff0c 幅度不小于3 2V xff1b 2 与方波同频率的正弦波信号
  • char转string

    在平常做算法题的时候 xff0c 经常会碰到遍历字符串 xff0c 然后将在将目前遍历的子串与已经遍历过的进行其他操作时 xff0c 我们需要将子串由char类型转换为string类型 以下是几种简单的方法 1 使用赋值 61 includ
  • 进程和线程、单线程、多线程和多进程

    欢迎学习交流 xff01 xff01 xff01 持续更新中 文章目录 进程和线程理论知识二者区别 单线程和多线程多线程和多进程 进程和线程 由于理论概念难以理解 xff0c 我在查资料的过程中经常能看到这样一个形象的比喻 xff1a 进程
  • Linux下TCP、UDP、UDP广播通信代码及运行

    一 网络环境配置 网络通信方式可选择一台主机里的两个虚拟机 xff0c 也可以两台主机里的两个虚拟机 xff0c 本文采用方式二 主机一IP地址为192 168 1 109 主机二IP地址为192 168 1 24 必须使两台主机在一个网段
  • 8086/8088CPU内部结构,引脚图,物理地址与逻辑地址

    文章目录 第2章 80X86微处理器的工作原理2 1 80x86处理器2 2 8086 8088微处理器2 2 1 8086 8088微处理器的内部结构2 2 2 8086 8088微处理器的寄存器 2 3 8086 8088微处理器总线功
  • 《强化学习周刊》第11期:强化学习应用之模拟到真实

    No 11 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一 xff0c 它在模拟到真实领域中的应用研究进展与成果也引发了众多关注 为帮助研究与工程人员了解该领域的相关进展和资讯

随机推荐

  • 【基于GCC】STM32的printf函数重定向

    重定向c库函数printf到串口 添加 write函数 在keil借助的是fputc函数 xff0c 而gcc用fputc就不行了 xff0c 需要用 write函数 xff0c 函数原型如下 xff1a int write span cl
  • VSCode使用Clangd

    前言 在使用微软的C C 43 43 插件时 xff0c 遇到较大项目时 xff0c 代码提示速度非常的慢 xff0c 这时可以使用clangd 1 系统安装clangd 版本选择 xff1a Linux github仓库 https gi
  • 常用通信时序之UART、IIC、SPI(基于STM32)

    常用通信时序 xff08 UART IIC SPI xff0c RS232 RS485 xff09 及协议 xff08 Modbus xff09 通讯时序1 UART2 IIC3 SPI4 RS3235 RS485 通信协议1 Modbus
  • 如何使用SVN查看具体某行代码的提交人、合并分支或者拉取新分支

    1 如何在SVN上查看具体某一行代码的提交人 xff1a 首先选中该文件 xff0c 然后点击 追溯 xff0c 如上图可以选择该文件对应的版本区间 默认不需要设置 如果需要查询该文件在某个特定版本区间的修改人 xff0c 则可以在上面设定
  • 针对lenovo R7000平台的Ubuntu 18.04双硬盘双系统搭建

    双固态双系统安装 分区及启动挂载点 双固态需要把EFI启动项放在同一个硬盘中即在ubuntu分区时应将efi分区建立在和win10同一硬盘中 xff0c 选择启动挂载点时选择该efi分区或者直接不建立efi分区 xff0c 直接挂载在win
  • 如何使用ublox ZED-F9P 配置基准站、移动站+差分电台实现RTK定位

    格林恩德F9P RTK模块 xff0c 集成高精度板卡 ZED F9P 可同时接收GPS 北斗 xff0c GALILEO GLONASS 卫星系统的L1 L2频点 xff0c 结合高精度天线一体化设计 xff0c 体积小 xff0c 重量
  • 北斗卫星导航有哪些频段

    北斗系统是全球第一个提供三频信号服务的卫星导航系统 xff0c GPS使用的是双频信号 xff0c 这是北斗的后发优势 使用双频信号可以减弱电离层延迟的影响 xff0c 而使用三频信号可以构建更复杂模型消除电离层延迟的高阶误差 同时 xff
  • 北斗短报文介绍

    1 什么是北斗短报文通信 xff1f 北斗系统的短报文通信 xff0c 是指北斗地面终端和北斗卫星 北斗地面监控总站之间能够直接通过卫星信号进行双向的信息传递 xff0c 通信以短报文 xff08 类似手机短信 xff09 为传输基本单位
  • 什么是星基增强系统SBAS

    SBAS xff1a 英文全称Satellite Based Augmentation System xff0c 中文意思是广域差分增强系统 xff0c 如果不知道这是什么意思 xff0c 那么说星基增强系统相信大家都知道 广域差分增强系统
  • GNSS PPP和PPK区别

    01 PPP PPP全称Precise Point Positioning xff0c 译为精密单点定位 xff0c 属于单点定位也叫绝对定位 xff0c 精密单点定位是指利用载波相位观测值以及由IGS等组织提供的高精度的卫星星历及卫星钟差
  • 三轴加速度计计算俯仰角、横滚角、偏航角

    pitch是俯仰角 xff0c 是 点头 xff0c xff08 在固定翼飞机中则由升降舵舵机控制 xff09 yaw是偏航角 xff0c 是 摇头 xff0c xff08 在固定翼飞机中则由方向舵舵机控制 xff09 roll是旋转角 x
  • 如何使用UBLOX ZED-F9P +4G获取千寻差分,实现厘米级定位同时回传到IP服务器

    格林恩德F9P 4G RTK模块 xff0c 集成高精度板卡ZED F9P以及4G模组 xff0c 可同时接收GPS xff0c 北斗 xff0c GALILEO GLONASS卫星系统的L1 L2频点 xff0c 结合高精度天线一体化设计
  • 小型RTK/LITE RTK/Mini RTK CR202(9P+4G+imu) 惯导 实现高精度厘米级定位,输出组合导航位置,定位数据回传服务器

    格林恩德 CR202 是一款小巧 迷你的RTK设备 xff0c 集成高精度板卡 ZED F9P 与4G EC20通信模组 xff0c 内置惯性导航IMU三轴加速度计 三轴陀螺仪 CAN收发器 xff0c 支持多种差分链路包括4G 电台 支持
  • 常用CORS账号设置方法(千寻CORS、中国移动CORS、六分CORS、北斗CORS、迅腾CORS)

    1 千寻CORS账号设置方法 2 中国移动CORS账号设置方法 3 六分CORS账号设置方法 4 北斗CORS账号设置方法 5 讯腾CORS账号设置方法 格林恩德专注GPS北斗高精度定位 北斗短报文通信与无线传输应用产品的开发与市场拓展
  • NTRIPClient_1.7 工具使用方法分享

    1 打开NTRIPClient 1 7软件 2 选择串口和波特率 xff0c 正确的与板卡或者模块连接 点击编辑 xff0c 进入串口配置界面 选择正确的端口和波特率 3 输入正确的差分账号 输入千寻差分账号地址 端口 用户名 账号密码 4
  • 导航卫星的时间系统

    1 GPS时间系统 xff08 GPST xff09 GPS系统是测时测距系统 时间在 GPS测量中是一个基本的观测量 卫星的信号 xff0c 卫星的运动 xff0c 卫星的坐标都与时间密切相关 对时间的要求既要稳定又要连续 为此 xff0
  • JT808协议介绍 --- 格林恩德 CR202 RTK 高精度车载定位器协议解读

    部标808又称为JT808 xff0c JT808标准的全称是 道路运输车辆卫星定位系统终端通讯协议及数据格式 808协议适用于GPS定位车载终端和监控平台之间的通信 当前市面上 xff0c 普通车辆监测设备所安装的GPS定位器 xff0c
  • C++析构函数调用顺序

    文章目录 析构函数工作过程 1 执行析构函数的函数体 2 如果该类中拥有类对象成员 xff0c 且类对象有析构函数 xff0c 则以类对象成员声明次序的相反顺序调用其析构函数 xff0c 销毁类对象成员 3 按原来构造顺序的相反顶序向上依次
  • TCP通信C++实现小例子

    TCP通信C 43 43 实现案例 https www bilibili com video BV1Dt411p74c t 61 1746 61 61 全部来自以上视频 xff0c 纯属搬运 xff0c 小可爱有问题可以举手提问哈 61 6
  • 串行通信简介

    一 串行通信与并行通信 计算机与外界的数据交换称为通信 xff0c 通信分为并行通信和串行通信两种基本方式 并行通信 串行通信 并行通信 xff1a 并行通信指各个数据位同时进行传送的数据通信方式 xff0c 因此有多少个数据位 xff0c