零散知识合集

嵌入式操作系统的引导加载方式

image-20210401223148900

引导加载程序(BootLoader)的概念和功能

BootLoader是底层软件的一部分,嵌入式系统上电复位后首先运行引导加载程序。它负责系统的上电自检、硬件初始化、建立存储空间映射、配置系统参数、建立上层软件的运行环境,并加载和启动操作系统。系统加电后,CPU执行的第一条指令就是BootLoader程序中的第一条指令,这条指令一般会存储在某种类型的固态存储设备上
BootLoader依赖于具体的硬件结构,一般而言支持不同的硬件结构的程序有不同的版本
复杂的BootLoader程序还支持简单的用户命令交互、设置操作系统启动参数、Flash ROM编程下载、读写内存、系统自检、硬件调试等监控程序(monitor)功能
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/115426286

嵌入式系统的软件结构

  1. 简单的轮询结构
    在低端嵌入式系统中,处理器的处理能力低,存储容量小,系统功能简单,通常只实现一些简单的控制操作。这种嵌入式系统不需要操作系统支持,应用软件直接在裸机上运行
    特点
    程序结构简单,便于编程
    由于没有中断机制,因而不会出现程序随机切换带来的潜在问题
    只适用于系统的任务量少,任务简单且实时性要求不高的场景

  2. 带中断的轮询结构
    也被称为中断驱动结构或前后台结构
    特点
    与简单的轮询结构相比,中断驱动结构提高了系统对紧急事件的响应速度,可并发处理不同的异步事件
    在一些小型的简单嵌入式系统中应用广泛
    由于中断的引入使得系统软件复杂度明显提高

  3. 监控式操作系统+应用软件的结构
    减少开发时间,降低系统的复杂性,保障软件质量
    如车载导航设备的应用软件
    特点
    与应用软件直接在裸机上运行的简单轮询结构相比,引入操作系统增加了系统开销
    嵌入式操作系统结构允许多个任务在一个CPU上并发运行
    降低了用户开发嵌入式软件的复杂度,并有效保证系统的实时性和可维护性

  4. 通用嵌入式操作系统+应用软件的结构
    嵌入式系统软件通常可分为硬件抽象层(驱动层)、操作系统层和中间件层
    中间件软件是指除了操作系统内核、设备驱动程序和应用软件之外的系统软件
    中间件是具有标准程序接口和协议的通用服务
    选择嵌入式系统软件结构的一个基本原则是:选择可以满足响应时间需求的最简单的结构
    ————————————————

                         版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/115426286

嵌入式系统使用的存储器分类

  1. 按照其存取特性分
    随机存取存储器(RAM)
    只读存储器(ROM)
  2. 按照存储信息的不同分
    程序存储器
    数据存储器
  3. 按照所处物理位置分
    片内存储器(芯片内置的存储器)
    片外存储器(外部扩展的存储器)

外部存储设备

嵌入式系统中把片内存储器及片外存储器简称为主存储器或主存;把外部存储设备简称为辅助存储器

嵌入式系统主存种类

  1. 半导体存储器
  • RAM
    SRAM-静态随机存取存储器
    DRAM-动态随机存取存储器
  • ROM
    MROM-掩膜型只读存储器
    PROM-一次可编程只读存储器
    EPROM-紫外线可擦除可编程只读存储器
    E2PROM-电可擦除可编程只读存储器
    Flash ROM-闪速存储器(NOR与NAND两类)
  1. 新型存储器
    FRAM-铁电随机存取存储器
    MRAM-磁性随机存取存储器

RAM

有两种形式,分别为静态和动态,均为易失性存储器,现在多数嵌入式处理器内嵌的数据存储器都采用SRAM,而外部扩展的存储器多采用DRAM及其改进型
DRAM开发的新品种主要如下:
DDR SDRAM,
新的内存标准之一,双边沿触发传送数据,把数据传输速率提高了一倍
可预读取2位数据
DDR2
把DDR的数据传输速率提高了两倍
可预读取4位数据
DDR3
把DDR2的数据传输速率提高了两倍
可预读取8位数据
DDR4
把DDR3的数据传输速率提高了两倍
一种使用Single-ended Signaling信号,其传输速率为1.6~3.2GB/s
另一种基于差分信号技术,其传输速率将可以达到6.4GB/s

ROM

MROM
MROM是基于掩膜工艺技术的只读存储器,主要用于不可升级的成熟产品存储程序或不变的参数等信息
PROM
PROM是一次可编程只读存储器,只能一次编程,一旦编程完毕则无法修改
EPROM
EPROM是紫外线可擦除可编程只读存储器,擦除编程次数十万次以内,编程速度慢,擦除时间长
E2PROM
E2PROM是电可擦除可编程只读存储器,可以在线改写和擦除信息,无需紫外线照射
Flash ROM
特点是擦除和编程速度快,得名闪速存储器,简称闪存
NOR Flash ROM
NOR Flash颠覆了原先由EPROM和E2PROM一统天下的局面
NOR Flash ROM是以字节为单位随机存取。这样,应用程序可以直接在Flash ROM中执行,不必再把程序代码预先读入到RAM中
与NAND Flash ROM相比,NOR Flash ROM的接口简单,可以直接连接到处理器的外围总线上(而NAND Flash ROM必须配置专用的NAND Flash ROM控制器或采用通常的I/O接口才能使用)。但是NOR Flash ROM写入和擦除速度较慢,影响了它的性能。
NAND Flash ROM
NAND Flash结构,单元电路尺寸几乎只是NOR器件的一半
NAND Flash ROM以页(行)为单位随机存取
对比NOR Flash ROM,NAND Flash在容量、使用寿命和成本方面有较大优势。但是它的读出速度稍慢,编程较为复杂,因此大多作为数据存储器使用。
嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等均采用NAND Flash ROM

FRAM

FRAM的铁电晶体的稳定性极高,它既具有只读存储器非易失性的特点,又具有随机存储器可快速随机读写的特点,而且速度快、功耗低,
目前不仅被应用到嵌入式微处理器内部以取代SRAM和Flash存储器,而且在其他嵌入式应用领域的应用越来越广泛

MRAM

MRAM是一种非易失性(或非挥发性)的磁性随机存储器,具有SRAM的高速存取能力以及DRAM的高集成度,而且基本上可以无限次地重复写入

存储器主要性能指标

1、容量
存储器容量是指每一个存储芯片或模块能够存储的二进制位数。
存储器容量以存储1位二进制位为最小单位(b),容量单位有字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)、拍字节(PB)、艾字节(EB)、泽字节(ZB)、尧字节(YB)
对于内存容量来说,这些容量单位之间的相互关系均以210倍表示
对于外存容量来说,这些容量单位之间的相互关系均以103倍表示
内存储器有多大容量取决于存储单元的个数和存储器各单元的位数。
内存容量=单元总数 x 数据位数 / 单元
单元个数与存储器的地址线有密切关系,因此存储芯片的容量完全取决于存储器芯片的地址线条数和数据线的位数。
假设单元个数为L,数据线位(条)数用N表示,地址线条数用M表示,容量用V表示
V=L x N=2M x N
2、存取时间
存取时间是从CPU给出有效的存储器地址开始到存储器读出数据(或者是把数据写入存储器)所需要的时间
存储器芯片的工作速度通常用存取时间来衡量。由于现在的存储器都较快,内存的存取时间通常以ns为单位
3、宽度
存储器的带宽指每秒可传输(读出/写入)的最大数据总量,存储器带宽与存储器总线频率有关,也与数据位数(宽度)和每个总线周期的传输次数有关。
并行总线的存储器带宽
带宽=总线频率 x 数据宽度 / 8 x 传输次数 / 总线周期 (B/s)
串行总线的存储器带宽
串行总线按位顺序传输,其带宽的计算公式如下,通常串行总线以10位为一个数据帧(含一字节数据)
带宽=总线频率 x 1 / 10 (B/s)

片内存储器

1、片内Cache
嵌入式微处理器内部集成了几KB到几百KB,有的达到几MB的Cache,有的嵌入式微处理器内部有片内一级Cache,还有二级Cache
借助内部Cache,系统减少了访问外部存储器的次数,提高了系统运行效率,在性能高的嵌入式处理器中都会集成内部Cache
2、片内Flash ROM
大部分嵌入式微控制器内部集成有一定容量的Flash ROM作为程序存储器,从几KB到几MB不等
有了内置Flash,嵌入式系统就可以以最小系统形式(无需外接程序存储器)应用到各个领域,充分体现了嵌入式系统的专用性和嵌入性
3、片内Flash SRAM
嵌入式微处理器内部集成了几KB到几MB不等的SRAM作为数据存储器,用来临时存放系统运行过程中的数据、 变量、中间结果等
由于SRAM是易失性存储器,因此系统复位后要对SRAM进行初始化操作
4、片内E2PROM
相当一部分嵌入式微控制器内部还配置了几KB到几MB不等的E2PROM作为长期保存重要数据的存储器
因为是非易失性存储器,掉电后信息保持不变,因此常用于存放系统的设置和配置信息以及希望长期保存且很少改写的一些数据
5、片内FRAM
目前已有部分嵌入式微控制器内部集成了FRAM,由于它具有RAM和ROM的全部特点,因此既可当作RAM用,又可当做ROM用,是当前嵌入式微控制器内部的主要存储器之一

片外存储器

1、片外程序存储器
NOR Flash ROM
主要有Intel的E28F系列、AMD的AM29系列、SST的SST39系列、SPANSION的S29系列
NAND Flash ROM
主要有三星的K9系列、现代的HY27系列、ST的NAND系列、东芝的TC58系列
2、片外数据存储器
嵌入式系统使用的外部数据存储器有SDRAM、DDR系列等。早期的ARM芯片仅支持SDRAM ,新型的ARM芯片如Cortex-A系列还支持DDR系列存储器
现代公司生产的DDR存储器命名规则为HYXZmnjk
HY为现代标识
X为存储器类型
5和57表示SDRAM,5D表示DDR
Z为电压级别
U表示2.5V,V表示3.3V,空白表示5V
m表示总容量
对于SDRAM,64和65表示64MB,26和28表示128MB,56和52表示256MB
对于DDR,28表示128MB,56表示256MB,12表示512MB
n表示数据宽度
16表示16位位宽,32表示32位位宽
j表示逻辑BANK数
1表示2个BANK,2表示4个BANK,3表示8个BANK,实际上是选择BANK的输入引脚个数
k表示电气接口
0表示LVTLL,1表示SSTL,2表示SSTL_2
考点12 外部辅助设备
常见类型的闪存卡
SD卡、CF卡、SM卡、XD卡、MMC、记忆棒
U盘
全称USB闪存盘,英文名为USB Flash disk。是一种使用USB接口的无需物理驱动的移动存储产品,通过USB接口与系统连接,实现即插即用
微硬盘
最早由IBM公司开发,其最初的容量为340MB和512MB,现在有1GB、16GB、60GB、240GB等等
特点
超大容量
使用寿命长
带有缓存
无需外置电源
高速传输
接口多样,兼容性好
高防振性
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/114915353

嵌入式最小硬件系统的组成

提供嵌入式处理器运行必备条件的硬件电路与嵌入式处理器共同构成了嵌入式最小硬件系统,而大多数基于ARM处理器核的处理器芯片都有调试接口

image-20210316093406916

嵌入式处理器的结构类型的4种分类方式

  • 按指令集划分
    CISC(复杂指令集结构)和RISC(简单指令集结构)

  • 按存储机制划分
    冯洛伊曼结构和哈佛结构
    在这里插入图片描述

  • 按指字长划分
    8位,16位,32位,64位

  • 按不同内核划分
    51,AVR,PIC,MSP430,PowerPC,MC68K,ColdFire和ARM
    ————————————————

                          版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/113921738

数字通信的传输技术

  1. 调制与解调技术
    信息传输时,利用信源信号去调整(改变)载波的某个参数(幅度、频率或相位),这个过程称为调制;
    经过调制后的载波携带着被传输的信号在信道中进行长距离传输;到达目的地时,接收方再把载波所携带的信号检 测出来恢复为原始信号的形式,这个过程称为解调。

  2. 多路复用技术
    为了提高传输线路的利用率,降低通信成本,一般总是让多路信号同时共用一条传输线进行传输;分为如下两种:
    时分多路复用(TDM),技术中各通信终端(如电话机)以事先规定的顺序轮流使 用同一传输线路进行信号(或数据)传输。
    频分多路复用(FDM),它将每个 信源发送的信号调制在不同频率的载波上, 通过多路复用器将它们复合成为一个信号,然后在 同一传输线路上进行传输。
    波分多路复用(WDM),它是频分多路复用技术的一种。

  3. 交换技术
    电路交换的特点是:在通话的全部时间内用户始终占用端到端的传输信道。
    电话交换机采用的是电路交换技术。即通话前经过拨号接通双方的线路(建立一条物理通路),通话后再释放(拆线)。
    分组交换的特点是:电路交换的使用效率太低,解决的方法是采用分组交换(也称包交换)。它的优点是大大提高传输线路的利用率;同时也存在缺点,产生额外开销。
    ————————————————

                         版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/113697776

文本的类型

  1. 根据是否具有排版格式分类
  • 简单文本
    几乎不包含任何其他的格式信息和结构信息,也称为纯文本,文件扩展名是.txt;
  • 丰富格式文本
    需要对纯文本进行必要的加工,也称为富文本,文件扩展名包括:.doc、.html和.pdf。
  1. 根据文本内容的组织方式分类
  • 线性文本
    文本中的内容组织是线性(顺序)的,如简单文本。

  • 超文本
    采用网状结构来组织信息,文本中的各个部分按照其内容的逻辑关系相互链接,如WWW网页是最为常见的超文本
    ————————————————

                          版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/113697776

嵌入式处理芯片4种产品类型

  1. 微处理器
    根据CPU的字长,微处理器产品分为4位、8位、16位、32位和64位 ,产品主要有PowerPC、MC68000、MIPS、AMD、x86。

  2. 数字信号处理器
    DSP是一种专用于数字信号处理的微处理器,它对通用处理器的逻辑结构和指令系统进行了优化设计,使之能更好地满足高速数字信号处理的要求。
    在这里插入图片描述

  3. 微控制器(单片机)
    微控制器实际上是一种将若干个功能模块集成在单个芯片中的小型计算机。
    它们的工作频率不高,存储容量较小,功耗很低;
    MCU按其使用的处理器内核的位数,也经历了1位、4位、8位、16位以及32位的发展阶段。
    早先的4位主要用于家用电器的控制单元,8位和16位用于一般的控制领域,近年来32位MCU迅速发展。
    MCU品种多,应用广泛,约占有嵌入式系统70%的市场。

  4. 片上系统(SoC)
    半导体加工工艺已经进入到深亚微米时代,能够把计算机或其他一些电子系统的全部电路都集成在单个芯片上,这种芯片就是所谓的片上系统。
    因此片上系统是集成电路加工工艺进入到深亚微米时代的产物 。
    目前,大多数高端嵌入式系统均采用 SoC(片上系统),例如:智能手机。
    说明:将嵌入式系统的几乎全部功能都集成在一块芯片中,单个芯片就能实现数据的采集、转换、存储、处理和输入/输出等多种功能。

嵌入式系统常用的I/O接口

  1. 通用串行总线式接口
    USB2.0/USB3.0、IEEE 1394、以太网接口
  2. 异步串行接口
    RS-232-C、RS-485
  3. 视频信号接口
    VGA接口(视频图形排列接口)、DVI接口(数字视频接口)、HDMI接口(高清晰度多媒体接口)
  4. 工业总线接口
    CAN接口(控制器局域网接口)、1553B接口、LIN接口(局域互联网接口)
  5. 无线接口
    IrDR接口(红外线接口)、Bluetooth接口(蓝牙接口)、ZigBee接口、WiFi接口

存储器的分类

  1. 易失性存储器
    即掉电后信息丢失
    SRAM(静态随机存取存储器)、DRAM(动态随机存取存储器)
  2. 非易失性存储器
    E2PROM(电可擦可编程只读存储器)、Falsh ROM、磁盘和光盘存储器
    说明:非易失性存储器有多种类型。以前使用较多的是Mask ROM和E2PROM,目前使用较多是闪存,即Falsh Memory。
    Mask ROM是基于掩膜工艺技术的只读存储器,一旦生产出来信息不可改变,主要用于不可升级的成熟产品存储程序或不变的参数等信息;
    Falsh Memory是一种长寿命的非易失性存储器,是近些年应用最广的只读存储器

嵌入式系统中的处理器分类

  1. 中央处理器(CPU)
    负责运行系统软件和应用软件的主处理器
  2. 协处理器
    DSP(数字信号处理器)、图形处理器、通信处理器

MFI认证

在这里插入图片描述

PSAM卡

智能卡,内嵌芯片的塑料卡
ID卡:只记录一个卡号
在这里插入图片描述
在这里插入图片描述

挂载

挂载(mounting)是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
一般来说,当计算机关机时,每个已挂载存储都将经历一次卸载,以确保所有排队的数据被写入,并保证介质上文件系统结构的完整性。
在linux操作系统中,
挂载是一个非常重要的功能,使用非常频繁。
它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。
(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)
需要理解的是,
linux操作系统将所有的设备都看作文件,
它将整个计算机的资源都整合成一个大的文件目录。
我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,
然后通过访问这个目录来访问存储设备。

桥接模式

校园网下桥接无法上网原理分析&如何破解

gcc编译器,加-D选项,编译时添加宏定义

想要输入相同的命令

#  要再次运行相同的命令   只需要输入!!
!! 
# #  以root用户运行最后运行的命令 
sudo !! 
!!会运行最近使用的命令。要运行最近运行的以“foo”开头命令:
!foo 
#  以root用户运行上一次以“service”开头的命令 
sudo !service 
!$用于运行带上最后一个参数的命令:
#  编辑 nginx.conf 
sudo vi /etc/nginx/nginx.conf 
#  测试 nginx.conf 
/sbin/nginx -t -c /etc/nginx/nginx.conf 
#  测试完 "/sbin/nginx -t -c /etc/nginx/nginx.conf"你可以用vi再次编辑这个文件了 
sudo vi !$ 

chmod +x *

make -C M选项

modules:
$(MAKE) -C ( K E R N E L D I R ) M = (KERNELDIR) M= (KERNELDIR)M=(PWD) modules

这句是Makefile的规则:这里的$(MAKE)就相当于make,-C 选项的作用是指将当前工作目录转移到你所指定的位置。“M=”选项的作用是,当用户需要以某个内核为基础编译一个外部模块的话,需要在make modules 命令中加入“M=dir”,程序会自动到你所指定的dir目录中查找模块源码,将其编译,生成KO文件。

Linux之进程阻塞为什么不占用cpu资源

Boa服务器返回 502 Bad Gateway .The CGI was not CGI/1.1 compliant. 错误,解决方案

在这里插入图片描述

引导加载程序的执行过程

启动过程可以是单阶段,也可是多阶段,后者提供更复杂的功能和更好的可移植性。但是大多数是两阶段执行过程

  1. 第一阶段
    关闭中断
    处理器内部的基本寄存器设置、系统基本参数设置、时钟初始化
    存储器初始化,包括存储器控制器的设置、存储器自检、初始化Cache和存储器管理部件、关闭看门狗定时器
    初始化相关的硬件设备
    第一阶段的功能完成后,程序将跳转到第二阶段的C程序入口点继续执行

  2. 第二阶段
    进一步完成系统初始化任务,包括处理器初始化、板级初始化、中断初始化等
    初始化本阶段要使用到的硬件设备
    如果在RAM中运行操作系统内核,则需将内核代码和根文件系统映像从ROM存储器复制到RAM存储器,为内核执行提供合适的上下文环境
    向操作系统内核传递启动参数
    调用内核代码
    ————————————————

                         版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/115426286

3 设备驱动程序的概念
1、设备驱动程序的概念
设备驱动程序的概念
从功能方面看,设备驱动程序(是指直接与硬件相互作用并控制硬件的软件)
从驱动程序调用者角度出发,驱动程序是对硬件操作的抽象,方便实现高层软件对硬件的访问
不同的系统,驱动程序的概念有所不同,但是驱动程序的基本特性大致可以概括为
只能被高层软件调用而无法自行运行
对上层软件屏蔽硬件细节,对下层硬件直接进行操作
设备驱动程序的功能
设备初始化
初始化操作在系统上电或复位时初始化硬件
设备打开(激活)和关闭
打开设备操作使设备处于工作状态
设备读取和写入(即数据收发)
设备读取操作指从设备接收数据并提交给高层软件,设备写入操作则把数据发送给设备,数据收发可以采用查询、中断或DMA方式
设备状态查询和设备控制操作
在设备使用过程中,可能需要査询设备的当前工作状态,并根据操作需求对设备进行控制
2、设备驱动程序的实现方式
小型的嵌入式操作系统如uC/OS-II只包括操作系统内核,包括设备驱动程序,且编写设备驱动程序无统一框架
大型嵌入式操作系统如WinCE、Linux、VxWorks等中,定义了统一的设备驱动程序框架,VxWorks除了通过标准驱动程 序接口访问硬件外,允许应用程序绕过操作系统直接访问硬件
Linux等类Unix操作系统还会把I/O设备抽象成设备文件
很多操作系统不允许运行在用户态的应用程序直接访问物理端口,因而要求驱动程序必须在内核态(内核模式)运行,用户的应用程序必须通过驱动程序才能访问硬件
3、VxWorks的I/O系统与设备驱动程序
VxWorks操作系统由高性能实时内核Wind、文件系统、I/O系统、网络协议栈和板级支持包组成
BSP、网络驱动程序和驱动程序等构成硬件抽象层
设备驱动程序包括如下三个部分
在这里插入图片描述

————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/qq_43636199/article/details/115426286

CAN总线

1 CAN总线简介

1.1 CAN是什么?

CAN总线,全称为Controller Area Network,即控制器局域网,CAN 总线最初是由德国电气商博世公司开发,其最初动机就是为了解决现代汽车中庞大的电子控制系统之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。

在这里插入图片描述

1.2 CAN总线特点

多主方式:可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。

系统柔软性:由于CAN总线的设计允许节点自主决定何时发送数据,这使得系统能够灵活地适应不同的通信需求和条件。

速度快,距离远:CAN总线支持较高的数据传输速率,并且可以在较长的距离上稳定传输数据,这得益于其高效的通信协议和抗干扰能力。

具有错误检测、错误通知和错误恢复功能:CAN总线使用循环冗余校验(CRC)等机制来检测数据在传输过程中是否出现错误。当检测到错误时,节点会发送错误帧,以通知网络上的其他节点。在检测到错误后,系统可以采取相应的措施,如重传数据,以确保数据的正确传输。

故障封闭功能:CAN总线能够将故障节点隔离,防止故障扩散到整个网络,从而保证系统的稳定性。

连接节点多:CAN总线理论上可以支持多达110个节点,这使得它非常适合大规模的网络通信。

2 CAN总线物理结构

2.1 CAN总线原理

CAN 控制器根据两根线(CAN_H、CAN_L)上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。显性电平为逻辑 0,隐性电平为逻辑 1。发送方通过使总线电平发生变化,将消息发送给接收方。

在这里插入图片描述

1)CAN总线硬件电路一般包括

微控制器(如51单片机):负责处理数据和控制通信。
CAN控制器(如SJA1000):负责CAN协议的实现和数据帧的生成。
CAN收发器(如PCA82C250):将CAN控制器的数字信号转换为适合在CAN总线上传输的电信号。
2)一些现代微控制器,如STM32系列,已经将CAN控制器集成到芯片内部,因此只需要外加一个CAN收发器,如SN65HVD230,来完成信号的转换。

3)CAN总线由两条线组成:CAN_H(高电平)和CAN_L(低电平),它们通过差分信号传输数据,以提高抗干扰能力,通常使用带屏蔽的双绞线来减少电磁干扰。

2.2 CAN总线和I2C

CAN总线和I2C(Inter-Integrated Circuit)总线都是用于设备间通信的串行通信总线协议,但两者有以下不同点:

用途不同:CAN总线通常用于工业控制、汽车网络等高可靠性应用,而I2C通常用于低速控制和数据传输。
速率不同:CAN总线速率可以高达1 Mbps,而I2C总线通常在400 Kbps以下。
线路不同:CAN总线使用双绞线,I2C总线则可以使用双线、三线和四线架构,其中最常见的是双线架构。
地址机制不同:CAN总线使用11位或29位标准帧标识符来识别设备,而I2C总线使用7位或10位设备地址来寻址。
工作方式不同:CAN总线是多主机环境下的异步通信协议,而I2C总线通常在单主机环境下的同步通信协议。
总的来说,虽然CAN总线和I2C总线都是串行通信协议,但它们的应用场景和特点有所不同。

3 CAN的电气属性

CAN总线的电平信号是差分信号,它使用两条线(CAN_H和CAN_L)来传输数据。差分信号的一个主要优点是它对外部电磁干扰具有较好的抗干扰能力。

在这里插入图片描述

如果CAN控制器发送逻辑1时,CAN收发器使CAN_H和CAN_L都为2.5V,这时,两条线上的电压差为0V。总线上称为隐性电平。
如果CAN控制器发送逻辑0时,CAN收发器使CAN_H为3.5V,CAN_L为1.5V,这时,两条线上的电压差为2V。总线上称为显性电平。
多个节点同时开始发送时,会涉及到总线仲裁。

4 CAN帧的种类

4.1 CAN帧的种类

CAN(Controller Area Network)协议定义了几种不同类型的数据帧,以下是CAN帧的基本种类:

帧类型帧说明
数据帧用于发送单元向接收单元传送数据的帧。
遥控帧用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧当CAN节点检测到错误时发送,用于通知网络上的其他节点存在错误。(硬件自动完成)
过载帧当CAN节点无法在当前的波特率下处理接收到的数据时发送。(硬件自动完成)
帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧(硬件自动完成)

4.2 数据帧

数据帧由7个段组成,分别为:帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束。

  • 帧起始 :表示数据帧开始的段。
  • 仲裁段:表示该帧优先级的段。
  • 控制段:表示数据的字节数及保留位的段。
  • 数据段:表示数据的内容的段,可发送 0~8 个字节的数据。
  • CRC 段:检查帧的传输错误的段。
  • ACK 段:表示确认正常接收的段。
  • 帧结束:表示数据帧结束的段。

数据帧的发送过程:

  • 当总线空闲时,发送节点开始发送帧起始位。
  • 接着发送仲裁段和控制段。
  • 如果DLC不为零,则发送数据段。
  • 然后发送CRC段,用于错误检测。
  • 如果接收节点正确接收了帧,它会在ACK段将ACK槽置为显性,表示确认。
  • 最后,发送节点发送帧结束位,完成数据帧的发送。

仲裁段

仲裁段分为标准格式(11位)以及扩展格式(29位)。
在这里插入图片描述

  • ID位,标准格式的标识符长度的是11位,扩展格式的标识符长度的是29位,仲裁段中的ID号用于标识帧的唯一性并决定其在总线上的优先级。ID号越小,帧的优先级越高,
  • RTR位,用于表明此帧是数据帧还是远程帧。
  • IDE位,用于表明此帧是标准帧还是扩展帧。
  • ID位,扩展格式的标识符长度加起来是29位;
  • RTR位,用于表明此帧是数 据帧还是远程帧。

控制段
紧跟在仲裁段之后,为CAN网络中的节点提供关于即将传输数据的重要信息。以下是控制段的详细说明:

  • DLC(数据长度代码):控制段中的DLC字段是一个4位的字段,用于指示数据段中字节的数量。
  • RTR(远程传输请求位):在数据帧中,RTR位是显性的(逻辑"0"),表示这是一个包含实际数据的帧。而在遥控帧中,RTR位是隐性的(逻辑"1"),表示这是一个请求数据的帧。
  • IDE(标识符扩展位):仅在扩展格式的帧中存在,用于指示接下来的仲裁段是标准格式(11位ID)还是扩展格式(29位ID)。
    在这里插入图片描述

4.3 遥控帧
CAN总线的遥控帧(Remote Frame),实际上是一种请求数据的帧。当一个节点需要从另一个节点请求数据时,它会发送一个遥控帧,这个帧只包含仲裁段和控制段,不包含数据段。
在这里插入图片描述

遥控帧组成

发送节点通过发送遥控帧来请求具有特定ID的数据。当接收节点识别到与其ID匹配的遥控帧时,它会响应并发送一个数据帧,其中包含请求的数据。这种方式的好处是,只需要一帧的时间就能完成一次双向交互,提高了通信的效率 。遥控帧组成如下:

  • 帧起始(SOF):表示帧开始的段。
  • 仲裁段:包含标识符(ID)和远程发送请求位(RTR),RTR位为隐性(1),表明这是一个遥控帧。
  • 控制段:包含数据长度代码(DLC),但在遥控帧中,DLC的值通常设置为0,因为遥控帧不包含数据段。
  • CRC段:用于检查帧传输过程中的错误。
  • ACK段:用于确认帧已被正常接收。
  • 帧结束:表示遥控帧结束的段。

数据帧与遥控帧的区别:

数据帧和遥控帧在格式上非常相似,但遥控帧缺少数据段。
数据帧的RTR位为显性(0),表示传输的是数据;而遥控帧的RTR位为隐性(1),表示传输的是请求 5。

遥控帧的应用场景:

遥控帧在需要周期性地从某个节点获取数据时非常有用,例如在汽车或工业自动化系统中,中控机可能需要定时获取传感器的实时数据。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/qq_41921826/article/details/140364752

x86和x64

  1. x86和x64
    1.1 x86和x64简述
    x86和x64都属于处理器平台的系统架构术语。值得注意的是,因为x64架构是由x86架构扩展而来,所以有时x64也被称为x86_64。
    简单来说,x86是32位的CPU,x64是64位的CPU。

1.2 x86和x64的区别
2者的主要区别有以下几个方面,
1、指令集架构不同,x86基于32位指令集,而x64基于64位指令集;
2、内存地址空间不同,由于x86 一次性可处理32的数据,而x64一次性可处理64位的数据,由此导致了2者在内存寻址空间上的差异。CPU最大只能处理4GB的内存,而x64 CPU可以访问更大的内存空间;
3、软件兼容性差异,大部分基于x86架构的软件在x64上可以正常运行,但是少数需要与硬件相关联的应用程序可能无法在x64上运行或需要专门的补丁来支持;
4、驱动程序兼容性差,旧的硬件设备可能只有针对x86系统的驱动程序,导致x64无法使用;
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/Chaolei3/article/details/134012755

三、ARM架构与X86架构、X64架构之间的区别?
ARM架构、X86架构和X64架构是三种不同的计算机处理器架构,它们在设计和特性上有一些区别。

ARM架构 X86架构 X64架构

ARM架构:

ARM架构是一种基于RISC原则设计的处理器架构,最初由英国公司ARM Holdings开发。
ARM处理器通常用于低功耗和高效能的应用,特别适用于移动设备、嵌入式系统和物联网设备等场景。
ARM架构支持32位和64位版本,具有高度的可定制性和灵活性,因此广泛应用于多样化的应用领域。
一些主要的ARM处理器系列包括ARM Cortex-A、Cortex-R和Cortex-M系列。
X86架构:

X86架构最初由Intel推出,后来也被其他处理器制造商采用,如AMD。
最早的X86处理器是16位的,后来演变为32位,如Intel的80386(386)处理器。
X86架构在计算机历史上扮演了重要角色,广泛用于PC(个人计算机)和服务器等领域。
X86架构的主要特点是兼容性和成熟的软件生态系统,适用于通用计算需求。
X64架构(也称为x86-64、AMD64或Intel 64):

X64架构是X86架构的64位扩展,最初由AMD推出,后来被Intel和其他制造商采用。
X64架构保留了32位X86架构的兼容性,同时提供更大的内存寻址能力和更高的性能。
64位X64架构的处理器可以处理更大的内存地址空间,支持超过4GB的内存。
主要的64位X64处理器有AMD的Opteron系列和Ryzen系列,以及Intel的Xeon系列和Core i系列。
区别总结:

ARM架构适用于低功耗、高效能的移动设备和嵌入式系统,支持32位和64位版本,具有高度的灵活性。
X86架构是通用计算领域的主流架构,支持32位和一些64位版本,具有成熟的软件生态系统。
X64架构是X86架构的64位扩展,提供更大的内存寻址能力和性能,用于服务器和通用计算需求。

什么是空间复杂度与时间复杂度

算法复杂度分为两种,一种是时间效率,又称时间复杂度,主要衡量算法的运行速度。另一种是空间效率,称空间复杂度,衡量算法所需要的额外空间。

空间复杂度

空间复杂度是对一个算法运行过程中临时占用储存空间大小的量度。一般使用大O渐近表示法表示。

时间复杂度

算法中基本操作的执行次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值