嵌入式每日一学

  1. 单片机最小系统由那几部分组成?

答:MCU,时钟电路,复位电路,外部晶振,输入输出接口,电源电路

  1. 阻抗匹配的概念及作用?

答:指的是调整电路元件之间的电阻或阻抗,以确保能量的有效传输和最大功率传输。最大功率传输: 阻抗匹配的一个主要目标是确保信号源与负载之间的阻抗匹配这意味着信号源的内部阻抗和负载的输入阻抗应该相等。当阻抗匹配得当时,能量将被有效地传输到负载减小信号反射:拓展带宽:降低噪声:

  1. DCDC和LDO的区别?

答:DC-DC转换器(降压升压器):DC-DC转换器通过将输入电压变换为不同的输出电压来工作。它可以实现电压升高(升压)、电压降低(降压)、电压反转等功能。LDO(低压差稳压器):LDO是一种线性稳压器,它通过可控的电阻来消耗输入电压以实现电压稳定。它不进行电压转换,而是将输入电压调整到接近输出电压的水平。

  1. PCB的常用布线规则有哪些

阻抗匹配: 对于高频或射频电路,确保传输线的阻抗匹配是至关重要的。使用合适的传输线宽度和间距来满足所需的阻抗值。地平面: 使用连续的地平面层,减少信号回流路径的长度,降低信号噪声。避免在地平面上打断。信号线距离: 避免将信号线过于靠近彼此,以减少串扰。通常,高速差分信号线之间的间距应足够大,以减少互电容和互感。信号分层: 在多层PCB中,合理使用不同的信号层和电源层,以降低信号之间的干扰,并提供良好的信号隔离。信号分组: 将相关信号分组在一起,以减少信号线的交叉和串扰。根据信号的功能和频率,将它们分配到不同的信号层上。终端阻抗: 在高速电路中,使用终端电阻来减少信号的反射。这些电阻通常与信号源和负载相连,以匹配传输线的阻抗。电源滤波: 在电源输入处添加滤波电容和电感散热: 合理规划散热路径标签和文档: 在PCB上添加清晰的标签和文档,以便识别组件、信号线和连接,使维护和故障排除更容易。避免锐角与直角,因为锐角容易导致信号反射和电流浓缩。通孔规则:确保通孔的位置和尺寸正确考虑电磁干扰(EMI)问题,使用地层和滤波器来降低辐射和敏感电路的干扰。避免平行走线: 尽量避免将信号线平行走在一起,因为这可能引发电磁耦合和串扰问题。

  1. 解释亚稳态

答:还不够稳定,还能更稳定

  1. 示波器的带宽和采样频率是指什么?

答:示波器的带宽表示它能够测量的信号频率范围。具体来说,带宽是指示波器可以测量并显示的信号频率范围的上限。通常以赫兹(Hz)为单位表示。示波器的带宽决定了它对高频信号的灵敏度和测量精度。例如,如果示波器的带宽为100兆赫兹(MHz),则它可以有效测量和显示频率低于100 MHz的信号。

采样频率是指示波器在每秒内对信号进行采样(采集)的次数。它表示示波器在某一时间段内获取样本的速度。采样频率以赫兹(Hz)为单位表示。示波器的采样频率决定了它对信号波形的细节和快速变化的响应能力。较高的采样频率可以捕获更多的信号细节,但也会占用更多的存储空间和数据传输带宽。

7.利用IIC通信时候,怎么区分起始信号和停止信号?

起始信号:SDA从高电平(1)下降到低电平(0),同时SCL保持高电平。

停止信号:SDA从低电平(0)上升到高电平(1),同时SCL保持高电平。

  1. SPI的四种工作模式?

答:SPI具有四种主要的工作模式,这些模式通过时钟极性(CPOL)和时钟相位(CPHA)两个参数来定义。影响是时钟信号在空闲状态下为低电平(CPOL = 0)还是高电平,但据在时钟的下降沿(第二个边沿)采样还是上升沿采样(第一个边沿)。

  1. 宏定义是在编译的哪个阶段被处理的?

答:宏定义是在预处理阶段被处理的。在预处理阶段,编译器会处理源代码中的宏定义,并根据定义替换源代码中的宏名称为其相应的值。

译过程通常分为以下几个阶段:

预处理(Preprocessing)阶段:处理源代码中的预处理指令(如宏定义、条件编译指令等)。预处理器会对源代码进行文本替换、宏展开等操作,并生成一个经过预处理的中间代码。

编译(Compilation)阶段:在这个阶段,经过预处理的代码被编译成汇编代码或中间代码。编译器会进行词法分析、语法分析、语义分析等操作,以验证代码的合法性,并生成中间表示形式。

链接(Linking)阶段:如果程序由多个源文件组成,那么编译后的目标文件需要被链接在一起,生成可执行文件或库。在链接阶段,链接器会解析符号引用,解决跨文件的引用,将多个目标文件合并为一个可执行文件。

  1. static修饰局部变量的作用

保持变量的存储持久性:当static关键字用于局部变量时,它使得该局部变量在函数调用之间保持其值。普通的局部变量在函数调用结束后会被销毁,而static局部变量会一直存在于程序的整个生命周期,直到程序终止。

void counter() {

    static int count = 0; // 使用static修饰的局部变量

    count++;

    printf("Count: %d\n", count);

}

int main() {

    counter(); // 第一次调用

    counter(); // 第二次调用

    return 0;

}

输出为:Count: 1       Count: 2

只初始化一次: static局部变量在首次进入其作用域时被初始化,而不是每次函数调用都被初始化。作用域限制: static局部变量的作用域仅限于包含它的函数。它不能被其他函数或代码块访问。

  1. 关键字extern的作用

答:声明全局变量:当在一个源文件中使用 extern 关键字来声明一个全局变量时,它表示该变量的定义位于其他源文件中。这样可以在当前源文件中使用该全局变量,而不需要重新定义它。 extern int globalVariable;

  1. const 的主要作用是创建常量表明在程序中该值不可被修改。

Define 用来宏定义。

Auto ,regester的作用。

  1. 堆和栈的区别?

答:堆和栈是计算机内存中两种不同的数据存储区域栈(Stack): 栈是一种有限大小的内存区域,用于存储函数调用的局部变量和函数调用的返回地址。它的分配和释放是自动的,遵循"后进先出"(LIFO)的原则,即最后进栈的数据最先出栈。堆(Heap)堆是一种动态分配的内存区域,用于存储程序中需要在运行时动态分配的数据,例如动态分配的对象和数组。 |||  栈: 适合用于存储局部变量、函数调用的上下文信息,以及执行轻量级的数据操作。栈的生存期短,用于保存临时数据。堆: 适合用于存储动态分配的数据结构,如动态数组、对象等,以及需要在不同函数之间共享的数据。堆的生存期长,需要手动管理内存。

  1. 什么是野指针,产生的原因

答:野指针(Dangling Pointer)是指指向已经释放或无效的内存地址的指针。

产生原因:释放后未置空: 最常见的野指针情况是在释放了某块内存后,没有将指针设置为 NULL 或另一个有效的地址。这会导致指针仍然包含之前分配的内存地址,尽管该内存已经被释放。超出作用域:指向已释放的对象:越界访

  1. DRAM,SRAM,FLASH,RAM的区别?

答:都是计算机系统中用于存储数据的不同类型的存储器

###################################

DRAM(Dynamic Random-Access Memory,动态随机访问存储器):

特点: DRAM 是一种易失性存储器,需要定期刷新以保持存储的数据。它通常用于主内存(RAM)。

速度: DRAM 的访问速度相对较慢,因为它需要刷新周期性地刷新存储的数据。

容量: DRAM 的容量通常比较大,用于存储运行中的程序和数据。

##################################

SRAM(Static Random-Access Memory,静态随机访问存储器):

特点: SRAM 也是一种易失性存储器,但不需要刷新操作来保持存储的数据。它通常用于缓存和寄存器。

速度: SRAM 的访问速度非常快,因为它不需要刷新操作。

容量: SRAM 的容量通常比较小,但非常适合需要快速访问的数据。

####################################

FLASH 存储器:

特点: FLASH 存储器是一种非易失性存储器,它可以长时间保存存储的数据,即使断电。它通常用于存储固件、操作系统、文件系统等。

速度: FLASH 存储器的读取速度较快,但写入速度相对较慢。

容量: FLASH 存储器的容量可以很大,适合长期存储大量数据。

#####################################

RAM(随机访问存储器):

特点: RAM 是一个通用术语,可以用来指代任何随机访问的存储器,包括DRAM、SRAM等。它用于临时存储计算机程序和数据,以便 CPU 快速访问。

速度: RAM 的速度通常比硬盘等非随机访问存储器快得多。

容量: RAM 的容量可以根据需要进行扩展,通常用于存储计算机的工作集。

  1. mallo和new的区别?

malloc 是一个C标准库函数,用于分配一块指定大小的内存,并返回指向该内存的指针。new 是C++中的操作符,用于分配并构造一个或多个对象。

  1. STM32中断怎么进入到中断服务函数?

答:如下if (EXTI_GetITStatus(EXTI_Line0) != RESET) {

        // 处理中断事件

        // ...如果外部中断线0处于挂起状态(即触发了中断事件),则执行条件语句块中的代码。

        // 清除中断标志

        EXTI_ClearITPendingBit(EXTI_Line0);

17.讲一下stm32的时钟系统

答:时钟源: STM32微控制器通常具有多个时钟源,包括内部振荡器(内部RC振荡器和内部晶体振荡器)和外部晶体振荡器。外部晶体通常用于需要高精度时钟的应用,而内部振荡器适用于低成本和低功耗应用。时钟树,PLL(Phase-Locked Loop): PLL是一种用于生成高精度时钟的技术,它通常用于将外部时钟源或内部振荡器的频率倍增到所需的频率。STM32微控制器通常具有一个或多个PLL,用于调整时钟频率。

  1. GPIO的几种工作模式?

iic使用的模拟IIC引脚必须接入上拉电阻,所以SDA和SCL一般配置为开漏输出。

  1. C语言中局部变量和全局变量分别存放在哪里

答:局部变量通常存储在栈中,它们的生存期与函数的执行周期相关。全局变量存储在数据区中,它们在程序整个运行期间存在

  1. 数组指针和指针数组有什么区别?

数组指针(Pointer to an Array):数组指针是一个指针,它指向一个数组。可以将数组指针视为一个指向数组的指针,它可以用来访问数组中的元素。

数组指针的声明方式是:type (*ptr)[size],其中 type 是数组元素的类型,ptr 是指向数组的指针,size 是数组的大小。通过数组指针,可以访问数组中的元素,例如:ptr[0] 或 (*ptr)[i]。指针数组是一个数组,其中的每个元素都是一个指针。它表示一个包含指针的数组,每个指针可以指向不同的对象。指针数组的声明方式是:type *ptr[size],其中 type 是指针指向的对象类型,ptr 是指向指针的数组,size 是数组的大小。指针数组用于存储多个指针,每个指针可以指向不同的对象。

20.大面积的铺铜是为了更好的让多层板中的地(GND)连接,减少因为GND的回路过长引起的各点GND电位的差异,并且减少信号线的辐射,降低EMI;

铺铜如果不选择连接的网络编号的话 就没有任何意义了;所以一般情况下要选择连接在板子上的GND;

三极管起开关作用时,其工作在截止区,工作在截止区由于几乎没电流通过,所以是断电状态,当工作在饱和区时由于三极管压降很小,相当于电路接通。

三、电路中的旁路和去耦

如下图中,直流电源Power给芯片IC供电,在电路中并入了两个电容。

1、旁路

如果Power受到了干扰,一般是频率比较高的干扰信号,可能使IC不能正常工作。在靠近Power处并联一个电容C1,因为电容对直流开路,对交流呈低阻态。

频率较高的干扰信号通过C1回流到地,本来会经过IC的干扰信号通过电容抄近路流到了GND。这里的C1就是旁路电容的作用。

2、去耦

由于集成电路的工作频率一般比较高,IC启动瞬间或者切换工作频率时,会在供电导线上产生较大的电流波动,这种干扰信号直接反馈到Power会使其产生波动。在靠近IC的VCC供电端口并联一个电容C2,因为电容有储能作用,可以给IC提供瞬时电流,减弱IC电流波动干扰对Power的影响。这里的C2起到了去耦电容的作用。

对一个特定电容,当信号频率低于其自谐振频率时呈容性,当信号频率高于其自谐振频率时呈感性。当用0.1uF和0.01uF的两个电容并联时,相当于拓宽了滤波频率范围。

CH340:

RS485电路,所用MAX13487:

RS485通信属于串口通信中的半双工通信,RS485具有支持多节点(32个节点)、传输距离远(最大1219m)、接收灵敏度高(200mV电压)、连接简单(在构成通信网络时,仅需要一对双绞线作传输线)、能抑制共模干扰(差分传输)、成本低廉等特点,最高的传输速率可达10Mbps。在多站、远距离通信等多种工控环境中获得了广泛应用。

电路中电容的常用功能:滤波、去耦、旁路

三极管在电路设计做开关电源时中的作用:

学过模电大家知道,NPN三极管,高电平导通。当TX高电平,三极管导通,RE和DE引脚接地,进入接收模式。当TX低电平,三极管截止,RE和DE引脚接高电平,进入发送模式。

三极管:

小电流控制大电流;

在实际电路设计过程中,我们都希望输入信号与输出信号相位相同,怎样才能实现呢?

直流耦合与交流耦合;

如果需要传递直流信号或维持直流偏置,使用直流耦合是合适的。如果需要去除信号中的直流分量或仅传递交流信号,那么使用交流耦合更为合适。

CAN通信:

CAN收发器芯片TJA1050、TJA1042、SIT1050T

CAN收发器TJA1050----电路图

继电器电路设计:

NPN 三极管:NPN 三极管是一种常用的双极型三极管,通常用于放大和开关电路。在一个NPN三极管的典型应用中,当基极(B)与发射极(E)之间施加正电压(高电平),它将允许电流从集电极(C)流向发射极,进而激活继电器或其他电路。因此,如果继电器的触发是由一个NPN三极管控制的,那么当NPN三极管的基极输入为高电平时,继电器将被触发。

PNP 三极管:PNP 三极管也是一种常用的双极型三极管,但它的工作原理与NPN相反。在一个PNP三极管的典型应用中,当基极(B)与发射极(E)之间施加负电压(低电平),它将允许电流从发射极(E)流向集电极(C),进而激活继电器或其他电路。因此,如果继电器的触发是由一个PNP三极管控制的,那么当PNP三极管的基极输入为低电平时,继电器将被触发。

晶振貌似都用的直插式的,没有人贴片

隔离电源与非隔离电源:

非隔离电源是一种电源设计,输出端与输入端之间没有电气隔离。在非隔离电源中,输出端与输入端共享相同的地(地点或地线),因此它们之间存在直接的电气连接。这意味着如果在输出端发生故障或短路,可能会将输入端的问题传递到其他部分,因此非隔离电源通常需要更多的安全保护和额外的设计考虑

隔离电源是一种电源设计,输出端与输入端之间存在电气隔离,通常使用变压器或光耦等组件来实现。在隔离电源中,输出端和输入端之间没有直接的电气联系,这意味着输出端可以与输入端完全隔离,提供更高的电气安全性和隔离性。

5V电压源:

RS232简介

RS232是一种比较老的标准,传输距离比较短,数据传输速率也比较低。一般在电脑、调试仪器、交换机等设备中使用,是异步串口协议。RS232通常使用DB9或DB25的连接器,并需要进行奇偶校验。RS232的标准发送电平为-12V到12V之间,但实际上很少达到这个范围。

RS485电路,所用MAX13487:

RS485通信属于串口通信中的半双工通信,RS485具有支持多节点(32个节点)、传输距离远(最大1219m)、接收灵敏度高(200mV电压)、连接简单(在构成通信网络时,仅需要一对双绞线作传输线)、能抑制共模干扰(差分传输)、成本低廉等特点,最高的传输速率可达10Mbps。在多站、远距离通信等多种工控环境中获得了广泛应用。

电路中电容的常用功能:滤波、去耦、旁路

三极管在电路设计做开关电源时中的作用:

学过模电大家知道,NPN三极管,高电平导通。当TX高电平,三极管导通,RE和DE引脚接地,进入接收模式。当TX低电平,三极管截止,RE和DE引脚接高电平,进入发送模式。

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值