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

2024-05-13 03:44

本文主要是介绍【备战软考(嵌入式系统设计师)】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根线。

这篇关于【备战软考(嵌入式系统设计师)】12 - 嵌入式系统总线接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984596

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接