【备战软考(嵌入式系统设计师)】12 - 嵌入式系统总线接口

news2024/11/28 8:39:12

我们嵌入式系统的总线接口可以分为两类,一类是并行接口,另一类是串行接口。

并行通信就是用多个数据线,每条数据线表示一个位来进行传输数据,串行接口就是一根数据线可以来一位一位地传递数据。

从上图也可以看出,并行通信的优点就是传输效率高,缺点就是占用的数据线比较多。而串行通信的优缺点是和并行通信相反的,优点是省数据线,缺点是传输速率较低。

并行通信用的不是很多(跟串行通信相比),我们就记几个总线知道它们是并行的就行:IEEE488,SCSI,MXI。

串行将数据一位一位传输,也就是每一位数据都占一段固定的时间长度。

通信模式上分为三种:单工,半双工,全双工。

单工就是只能是A给B传输数据,而B不能给A传输数据,也就是数据是单向流动的。

半双工就是A和B可以相互发送数据,但是不能同时发送,也就是A给B发的时候B不能给A发,而B给A发的时候A不能给B发,因为数据线就一条,两边同时发会让信号混在一起。

全双工就是A和B在任何时候都可以给对方发送数据,一般是拥有多条数据线的时候才能实现。

通信方式上分为两种:同步和异步。

同步通信对硬件的要求比较高,因为需要双方的时钟信号一致(同频同相),但是传输速率高,因为不需要过多的控制位去控制双方同步。同步通信可以将多个字符聚集成一个字符块,在字符块的开始和结尾加上同步字符,这和异步差不多,区别在于同步通信传输的字符块可以有多个bit,而异步通信则是较少的bit组成一个字符块,可以参考我们之前说过的UART,我们常用的配置是8位数据位,一位停止位,无校验位,也就是说一个字符块只有一个Byte。

异步通信的数据是一帧一帧传输的,每帧数据需要包含起始位,数据位,校验位(不一定要),停止位,因此每次发送数据,实际上发送的内容中只有中间的数据位才是有用的数据,因此跟同步相比,数据传输的速率较低。但是好处就在于对硬件的要求低,我们用软件模拟都行。不需要同步时钟,还是拿UART举例,我们用串口通信的时候只需要通信双方共地,然后连接RX和TX即可对吧,不需要同步时钟。

关于接口我们再介绍一下RS家族(Recommand Standard,推荐标准):

RS-232,由美国电子工业协会提出的一种串行通用接口标准。在这个规定中规定了25条线,但是实际上我们只用九条线,也就是DB-9的插接件。

可能小伙伴一听到这个RS-232就懵逼了,但是实际上我们都见过(应该吧)。

在实验室里还蛮常见的,一些看起来很屌的仪器用的通信接口用的都是这些。

我们就拿上面的图片来简单介绍一下这九根线分别是做什么的。

上图中有标号1、5、6、9,1和5之间大家脑补一下2~4,6和9之间大家脑补一下7和8。

1、CD,载波检测,用于通知是否处于在线状态。

2、RXD,接收数据线。

3、TXD,发送数据线。

4、DTR,数据终端就绪,高电平时表示可以传输数据。

5、SG,接地信号线。

6、DSR,数据设备就绪。

7、RTS,请求发送。

8、CTS,清除允许发送。

9、RI,振铃提醒。

虽然RS-232已经从原本的25条线被砍到9条线了,但是我们可以更极端一点,只连接RXD,TXD和SG(共地)就可以进行最简单的通信了,就跟我们的串口通信一样了。

在RS-232的基础上还有RS-422和RS-485。

RS-422是RS-232的改进版,将原本的RXD和TXD替换成了差分信号,也就是平衡传输。

原本我们用一根TXD(RXD)就用来传输信号了,高电平就是逻辑1,低电平就是逻辑0,但是这种方式很容易受外界干扰使得传输出现误差。

差分信号则是使用两根线来传输信号,逻辑1就是其中一根数据线是+5V(举个例子,这边可以看成是+nV),另一根数据线是-5V,则两根数据线的电压差就是10V,这表示逻辑1。逻辑0则是两根数据线都是0V(也是举个例子,实际上两根数据线的电压差相差不多即可)。这样使用差分信号,那么就算干扰,也是两根数据线一起受到干扰,它们之间的电压差不会有很明显的改变,也就是传输更加可靠了。并且因为是全双工的,因此传输线路有两条,每条需要两根差分信号线,所以在极简的状态下只需要4根数据线即可(RXD-,RXD+,TXD-,TXD+)。

RS-485是建立在RS-422的基础上的,它们的差别首先是差分电压不一样,RS-485的差分信号的电压差更大,这意味着出现误差的概率进一步减小,因此RS-285的传输距离也就比RS-422更远了。并且RS-285是半双工的,因此所需的数据线只需要两条。

最后简单总结一下RS家族。

RS-232,一对一,全双工,传输距离小。

RS-422,一对多,全双工,使用差分信号。最多连接10个设备。

RS-485,多对多,半双工,使用差分信号。最多连接32个设备。

我们来看个选择题。我们知道RS-422和RS-485都是使用的差分信号,差分信号每条通道是两根差分信号线,因此RS-422最少是4根线,而RS-485最少只要2根线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1668524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

理解JavaScript递归

什么是递归 程序调用自身的编程技巧称为递归(recursion) 递归的基本思想是将一个复杂的问题分解成更小、更易于管理的子问题,这些子问题与原始问题相似,但规模更小。 递归的要素 基本情况(Base Case)&…

【linux】linux工具使用

这一章完全可以和前两篇文件归类在一起,可以选择放一起看哦 http://t.csdnimg.cn/aNaAg http://t.csdnimg.cn/gkJx7 拖更好久了,抱歉,让我偷了会懒 1. 自动化构建工具 make , makefile make 是一个命令,makefile 是一个文件&…

【RAG 论文】FiD:一种将 retrieved docs 合并输入给 LM 的方法

论文: Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering ⭐⭐⭐⭐ EACL 2021, Facebook AI Research 论文速读 在 RAG 中,如何将检索出的 passages 做聚合并输入到生成模型是一个问题,本文提出了一…

VMware虚拟机故障:“显示指定的文件不是虚拟磁盘“,处理办法

一、故障现象 由于虚拟机宕机,强制重新启动虚拟机后显示错误,没有办法启动虚拟机。 虚拟机有快照,执行快照还原,结果也不行,反复操作,在虚拟机文件目录出现很多莫名文件 二、故障原因 根据故障提示&#…

浅谈@Controller注解和其他四大注解的区别

各位大佬光临寒舍,希望各位能赏脸给个三连,谢谢各位大佬了!!! 目录 1.Spring五大注解的使用约定 2.Controller注解的特别之处 3.总结 1.Spring五大注解的使用约定 Spring的五大注解(Controller&#x…

flutter自定义日期选择器按日、按月、自定义开始、结束时间

导入包flutter_datetime_picker: 1.5.0 封装 import package:atui/jade/utils/JadeColors.dart; import package:flutter/cupertino.dart; import package:flutter/material.dart; import package:flutter_datetime_picker/flutter_datetime_picker.dart; import package:flut…

040——移植数据库sqlite3到i.mx6ull

目录 一、下载 二、移植数据库 三、测试sqlite3 一、下载 SQLite Download Page 暂时先下载最新版的试试,我们以前其实在ubuntu上直接使用过 嵌入式数据库sqlite3_常见的嵌入式数据库-CSDN博客 当时我把常用的操作和怎么使用记录下来了 现在把他移植到开发板…

SamFirm Reborn 0.3.6.8三星固件下载器 汉化版

介绍 在三星手机的维护和升级过程中,固件的获取往往成为了一个难题。幸运的是,有一群热爱技术的开发者们,他们开发了各种工具以简化这个过程。今天,我们要介绍的是一款名为SamFirm Reborn 0.3.6.8的三星固件下载器的汉化版。它旨在…

Java8 ConcurrentHashMap 存储、扩容源码阅读

文章目录 1. 概述2. 入门实例3. 属性4. 核心方法4.1 put4.2 initTable4.3 transfer4.4 sizeCtl4.5 sizeCtl bug 1. 概述 ConcurrentHashMap 是线程安全且高效的 HashMap。 HashMap 可以看下我这篇 传送门 。 2. 入门实例 public class MyStudy {public static void main(St…

什么是数据平台——企业构建Data+AI的基础数据底座需要的决策参考

什么是数据平台 标准的解释是这样的 Wikipedia A data platform usually refers to a software platform used for collecting and managing data, and acting as a data delivery point for application and reporting software. 数据平台是指将各类数据进行整合、存储、处…

实现字符串比较函数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i, result;char s1[100], s2[100];//填充数组&#xff1b;printf("请输入数组s1的…

Docker 直接运行一个 Alpine 镜像

由于镜像很小&#xff0c;下载时间往往很短&#xff0c;读者可以直接使用 docker run 指令直接运行一个 Alpine 容器&#xff0c;并指定运行的 Linux 指令&#xff0c;例如&#xff1a; PS C:\Users\yhu> docker run alpine echo 123 Unable to find image alpine:latest lo…

docker八大架构之应用数据分离架构

数据分离架构 什么是数据分离架构&#xff1f; 数据分离架构是指应用服务&#xff08;应用层&#xff09;和数据库服务&#xff08;数据层&#xff09;使用不同的服务器来进行操作&#xff0c;如下边的两个图所示。当访问到应用层后&#xff0c;如果需要获取数据会进行访问另…

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout 文章编号&…

基于STM32的风量控制器的Proteus仿真

文章目录 一、风量控制器1.题目要求2.思路3.仿真图4.仿真程序4.1 程序说明4.2 主函数4.2 OLED显示函数4.3 按键函数 三、总结 一、风量控制器 1.题目要求 设计一个可以风量控制器进行通信的控制板&#xff0c;该控制板由1块OLED显示屏和8个物理按键组成&#xff0c;其中显示屏…

落雪音乐 超好用的桌面端音乐播放器

之前一直都是充某Q音乐的会员&#xff0c;突然不想氪金了&#xff0c;终于找到一个开源的音乐播放器&#xff0c;在此先给落雪无痕大佬跪了 太爱了 简直白嫖怪的福音 话不多说&#xff0c;直接上操作&#xff1a;解压密码&#xff1a;www.1234f.com下载地址&#xff1a;极速云…

B/S模式的web通信(高并发服务器)

这里写目录标题 目标实现的目标 服务器代码&#xff08;采用epoll实现服务器&#xff09;整体框架main函数init_listen_fd函数&#xff08;负责对lfd初始化的那一系列操作&#xff09;epoll_run函数do_accept函数do_read函数内容补充&#xff1a;http中的getline函数 详解do_re…

DE2-115开发板基于verilog和nioⅡ的流水灯实现

目录 一、 内容概要二、 实现2.1 基于Nios II软核的流水灯2.1.1 准备工作2.1.2 工程搭建2.1.3 硬件代码设计Ⅰ 连接IP核Ⅱ 编写代码Ⅲ 各种配置 2.1.4 软件代码设计Ⅰ 环境构建Ⅱ 编写代码 2.1.5 代码下载Ⅰ 硬件下载Ⅱ 软件下载 2.1.6 运行结果 2.2 Verilog流水灯 三、 心得体…

LORA学习笔记2——训练集处理

前言 对于ai训练来说&#xff0c;处理训练集是模型训练的重要环节。训练集的质量对最终模型的质量影响巨大。这里以二次元角色为例&#xff0c;记录下训练集处理的流程和一些心得。 素材准备 素材准备有以下几个需要注意的点&#xff1a; 通常训练二次元角色需要30张以上的…

栈和队列(栈的详解)

目录 栈栈的实现栈的结构栈的初始化栈的销毁入栈出栈获取栈顶元素栈的判空获取栈的数据个数test.c(测试)总结 栈 栈也是线性表&#xff08;在逻辑上是顺序存储&#xff09;的一种&#xff0c;栈只允许其在固定的一端进行插入和删除&#xff0c;栈中的元素遵循后进先出&#xf…