初步了解相关概念
1.什么是单片机 (嵌入式系统的核心硬件)?
单片机,也称为单片微控制器,是一种集成电路芯片。它是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
假设你有一个智能的玩具车,这个玩具车能够自己避开障碍物。那么,单片机就是这个玩具车的大脑,它会读取传感器的信息(比如有没有碰到墙壁),然后根据这些信息控制马达的转动,让玩具车转向。
2.嵌入式中的通信协议 是什么?
嵌入式系统中的通信协议是用于实现设备之间数据传输和通信的规则和标准,这些协议确保不同设备能够相互理解并交换信息。
常见的嵌入式设备通信协议包括串行通信协议(如UART、SPI、I2C)、网络通信协议(如TCP/IP、UDP)以及专为嵌入式系统设计的协议(如CAN总线协议)等。在选择通信协议时,需要考虑设备之间的连接方式、数据传输速度、距离以及可靠性等因素。
△单片机就像是一个小电脑,负责处理和控制信息;而嵌入式通信协议则是设备之间交流信息的规则。它们一起工作,让嵌入式系统能够更智能、更高效地运行。
3.Linux是什么?嵌入式 Linux又是什么?
Linux是一种开源的操作系统内核,具有开源、多用户、多任务、稳定性和安全性高等特点。其开源性意味着其源代码对公众可用,用户可以自由地修改、复制和传播,这使得Linux具有高度的灵活性和定制性。同时,Linux支持多用户和多任务,允许多个用户同时登录并在同一台机器上运行多个应用程序。
而嵌入式Linux是指对标准Linux经过小型化裁剪处理后,能够在嵌入式计算机系统上运行的一种操作系统。它适用于特定嵌入式应用场合,具有购买费用低、技术支持广泛、代码开放、有许多应用软件支持等优势。正在开发的嵌入式系统中,有近50%的项目选择Linux作为嵌入式操作系统。
4.FreeRTOS是什么?
FreeRTOS是一款轻量级的开源实时操作系统(Real Time Operating System),有助于嵌入式开发中更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。
△嵌入式Linux就像是为嵌入式设备定制的操作系统,功能强大且资源丰富;而FreeRTOS则更像是一个高效的管家,帮助嵌入式设备协调和管理多个任务。它们都是嵌入式开发中的重要工具,让设备变得更智能、更高效。
数字电路入门
1.在嵌入式系统中,二进制数的主要优势是什么?
- 技术实现简单:嵌入式系统通常由逻辑电路组成,这些电路只有两种状态,即接通与断开。这两种状态可以很方便地用二进制的“1”和“0”来表示,以简化电路设计和实现,降低硬件成本。
- 运算规则简便:二进制只有两个数码,即0和1,简便的算术运算和逻辑运算有利于提高嵌入式系统的运算速度和效率。
- 抗干扰能力强:由于每位二进制数据只有高低两个状态,即使受到一定程度的干扰,也能较为可靠地分辨出其高低状态。这种特性使得嵌入式系统在恶劣环境下也能保持较高的数据可靠性和稳定性。
- 易于转换:二进制与其他进制(如十进制、十六进制等)之间可以方便地进行转换,这有利于嵌入式系统与其他系统进行数据交换和通信。
2.嵌入式中常用的编码方式有哪些?
-
BCD码:用4位二进制码来表示1位十进制数称为二-十进制编码(Binary-Coded Decimal)
- 8421码:有权码,码值从高到低依次为8,4,2,1
范围从0001-1001,依次表示十进制的0~9。其余6个为非法码 - 余3码:无权码,由8421码加3得到
0011-1100表示十进制数0~9 - 2421码:有权码,4个码元对应的权从高到低依次为2,4,2,1
- 循环码(格雷码/反射码)
- 8421码:有权码,码值从高到低依次为8,4,2,1
-
ASCII编码(美国信息交换标准代码):一种用于信息交换的字符编码标准。它用7位二进制数表示一个字符,共可以表示128个不同字符(十进制数、英文字母、专用符号)。ASCII编码在嵌入式系统中常用于文本处理和通信协议。
-
Unicode编码:一种用于处理全球范围内各种语言字符的编码方案。它支持几乎所有的字符,包括各种符号和特殊字符。特别是需要处理多语言字符的场景下,Unicode编码被广泛使用。UTF-8和UTF-16是Unicode编码的两种常用实现方式。
ASCII编码和Unicode编码的主要区别
- 字符范围:ASCII编码主要用于表示英文字符,其字符集范围相对较小。而Unicode编码则支持全球范围内的字符,几乎涵盖了所有语言的字符集。
- 编码长度:ASCII编码使用固定的7位或8位编码,每个字符占用1个字节。而Unicode使用不同的编码方案,如UTF-8、UTF-16、UTF-32等,其中UTF-8编码使用变长编码,可以根据字符的不同范围使用1到4个字节表示字符。因此,Unicode编码通常需要更多的存储空间。
- 兼容性:ASCII编码是Unicode编码的一个子集,即ASCII编码的字符在Unicode编码中有相同的编码。这意味着ASCII文本在Unicode环境中可以无缝使用。
在嵌入式系统中,选择使用Unicode编码而不是ASCII编码的情况:
- 多语言支持:当嵌入式系统需要支持多种语言时,ASCII编码显然无法满足需求,因为它只能表示英文字符。而Unicode编码则可以轻松应对多语言环境下的文本处理,支持多种语言和字符集的混合使用。
- 全球化应用:对于面向全球市场的嵌入式系统,使用Unicode编码可以确保系统在各种语言环境下都能正常显示和处理文本,避免出现乱码或字符缺失的问题。
△需要注意的是,虽然Unicode编码具有诸多优势,但在嵌入式系统中使用时也需要考虑其可能带来的性能开销和存储空间占用问题。因此,在选择编码方式时,需要根据具体的应用需求和系统资源情况进行权衡和选择。
3.数字逻辑门电路有哪些?
-
与门(AND Gate)
F=A·B=AB 有0则0
-
或门(OR Gate)
F=A+B 有1则1
- 非门(NOT Gate)
F=Ā
非门在数字逻辑电路中起到了反转信号逻辑状态的作用,接收一个输入信号,并产生一个与输入信号逻辑状态相反的输出信号。
-
复合逻辑门电路
-
a.与非
F= A B ‾ \overline{ AB} AB
先与后非 有0则1 全1出0
-
b.或非
F= A + B ‾ \overline{ A+B} A+B
先或后非 有1则0 全0出1
-
c.与或非
F= A B + C D ‾ \overline{ AB+CD} AB+CD
先与后或再非
-
d.异或
F=A B ‾ \overline{ B} B+ A ‾ \overline{ A} AB=A⊕B
同0异1
-
e.同或
F=AB+ A ‾ \overline{ A} A• B ‾ \overline{ B} B=A⊙B
同1异0
-
模拟电路基础
-
电阻:电阻是导体对电流的阻碍作用,大小与导体的材料、长度、横截面积以及温度等因素有关,在电路中起着限流、分压、将电能转化为内能等作用。电阻的单位是欧姆(Ω)。
-
电容:电容是一种能够储存电荷的元件,它由两块导体中间夹一层绝缘介质构成。在电路中起到阻抗、滤波、延时、耦合、旁路的作用。基本单位为法拉(F),但更常用的是微法(μF)和皮法(pF)等较小的单位。1F=106μF=1012pF
电容的工作原理
电容器的工作原理基于电荷的储存与释放以及电场的变化。当电容器两端施加电压时,电源的正电荷推动电子流向电容器的一个极板,同时负电荷聚集在另一个极板上。这样,两个极板上分别积累了等量的正负电荷,形成了电场。绝缘介质阻止了电荷在极板之间的直接流动,但允许电场通过,从而在绝缘介质中产生了一种“储存”电荷的效果。
一旦电容器充电完成,即使移除电源,电容器两极板上积聚的电荷也不会立即消失,因为它们之间的电场仍然在维持电荷的分离状态。这就是电容器的储能特性。当需要释放这些储存的电荷时,可以将电容器的两极板连接到一个电路中,电荷通过电路流动,释放出电能。 -
电感:电感则是导线内通过交流电流时,在导线的内部及其周围产生交变磁通的元件。主要用来阻止交流电路中电流的变化,具有滤波、振荡、延迟、陷波等作用。
电感 与电容 在电路中的功能有何不同?
电感就像电路中的“能量储存库”。当电流流过电感时,它会建立起一个磁场,这个磁场就像是储存了电能一样。当电流突然改变方向或大小,电感就会释放出这些储存的能量,帮助维持电流的稳定。所以,电感在电路中起到的作用是限制电流的变化,让电流更平稳地流动。
而电容器的功能更像是电路中的“能量中转站”。它能够在电路中储存电荷,并在需要时释放出来。当电路中的电压发生变化时,电容器会吸收或释放电荷,从而帮助稳定电压。所以,电容器在电路中起到的作用是隔断直流、储存电能和调整电路特性。 -
二极管:二极管是一种具有两个电极的半导体器件,具有单向导电性,即只允许电流在一个方向上通过。
- 作为整流元件,利用单向导电性将方向交替变化的交流电变换成单一方向的脉动直流电。
- 作为开关元件,在正向电压作用下电阻很小,处于导通状态,相当于接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同断开的开关。利用这一特性,二极管可以组成各种逻辑电路。
- 作为限幅元件,利用其正向压降基本保持不变的特性,在电路中限制信号幅度在一定范围内。
-
三极管:也称为晶体管,是一种具有三个电极的半导体器件。通常用作放大器或开关。它可以放大微弱的信号,或者作为无触点开关来控制电流的通断。
**模数转换(ADC)与数模转换(DAC)**是什么?在单片机中是如何应用的?
*模数转换(ADC)(analog-digital conversion)是指将模拟信号转换为数字信号的过程。*在单片机中,ADC技术的应用主要体现在实现模拟量的数字化采集。单片机内部通常集成了ADC模块,通过配置相应的寄存器,可以将外部的模拟信号输入到ADC的输入端口。ADC模块会对这些模拟信号进行采样、量化、编码等处理,最终将其转换为数字信号,并将结果保存在特定的寄存器中。单片机通过读取这些寄存器的值,就可以获取到模拟量的数字化表示,从而进行后续的处理和控制。
*数模转换(DAC)则是将数字信号转换为模拟信号的过程。*在单片机中,DAC的应用主要体现在将数字数据转换为模拟信号输出。单片机DAC通常由一个数字输入端、一个工作电源端和一个模拟输出端组成。当单片机需要输出模拟信号时,它会将相应的数字数据发送到DAC的数字输入端。DAC会对这些数字数据进行解码和重构,最终输出一个与输入数字数据相对应的模拟信号。这个模拟信号可以用于驱动外部设备或进行其他模拟处理任务。
在单片机中,ADC和DAC的应用是相辅相成的。ADC将模拟信号转换为数字信号,使得单片机能够处理和控制这些信号;而DAC则将单片机的数字输出转换为模拟信号,以驱动外部设备或进行其他模拟操作。通过ADC和DAC的配合使用,单片机可以实现更复杂的信号处理和控制功能,满足各种应用需求。
拟处理任务。
在单片机中,ADC和DAC的应用是相辅相成的。ADC将模拟信号转换为数字信号,使得单片机能够处理和控制这些信号;而DAC则将单片机的数字输出转换为模拟信号,以驱动外部设备或进行其他模拟操作。通过ADC和DAC的配合使用,单片机可以实现更复杂的信号处理和控制功能,满足各种应用需求。