一、STM32和51的区别
分享本文,简单分析STM32与51单片机的区别与取舍之处。
单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件,在我们自己的个人电脑中,CPU、RAM、ROM、I/O这些都是单独的芯片,然后这些芯片被安装在一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在了一个芯片上而已。
51单片机
应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。
51单片机特性
51单片机之所以成为经典,成为易上手的单片机主要有以下特点:
从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。
同时在片内RAM区间还特别开辟了一个双重功能的地址区间,使用极为灵活,这一功能无疑给使用者提供了极大的方便。
乘法和除法指令,这给编程也带来了便利。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。
51单片机缺点
- AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担
- 虽然I/O脚使用简单,但高电平时无输出能力,这也是51系列单片机的最大软肋
- 运行速度过慢,特别是双数据指针,如能改进能给编程带来很大的便利
- 51保护能力很差,很容易烧坏芯片
51单片机应用范围
目前在教学场合和对性能要求不高的场合大量被采用,使用最多的器件是8051、80C51。
STM32单片
由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能极其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度。
STM32单片机特性
由STM32简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名,其强大的功能主要表现在:
- 内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法
- 存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器
- 时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振
- 调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口。
STM32使用最多的器件:
STM32F103系列
STM32 L1系列
STM32W系列
51单片机和STM32单片机的区别
51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号就是ATMEL公司的AT89系列。
STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M3为核心生产的32bit系列的单片机,他的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本上接近于计算机的CPU了,适用于手机、路由器等等。
二、STM32芯片的内部架构
STM32芯片主要由内核和片上外设组成,STM32F103采用的是Cortex-M3内核,内核由ARM公司设计。STM32的芯片生产厂商ST,负责在内核之外设计部件并生产整个芯片。这些内核之外的部件被称为核外外设或片上外设,如 GPIO、USART(串口)、I2C、SPI 等。
芯片内核与外设之间通过各种总线连接,其中驱动单元有 4 个,被动单元也有 4 个,具体如上图所示。可以把驱动单元理解成是内核部分,被动单元都理解成外设。
ICode 总线
ICode总线是专门用来取指令的,其中的I表示Instruction(指令),指令的意思。写好的程序编译之后都是一条条指令,存放在 FLASH中,内核通过ICode总线读取这些指令来执行程序。
DCode总线
DCode这条总线是用来取数的,其中的D表示Data(数据)。在写程序的时候,数据有常量和变量两种。常量就是固定不变的,用C语言中的const关键字修饰,放到内部FLASH当中。变量是可变的,不管是全局变量还是局部变量都放在内部的SRAM。
系统System总线
我们通常说的寄存器编程,即读写寄存器都是通过系统总线来完成的,系统总线主要是用来访问外设的寄存器。
DMA总线
DMA总线也主要是用来传输数据,这个数据可以是在某个外设的数据寄存器,可以在SRAM,可以在内部FLASH。
因为数据可以被Dcode总线,也可以被DMA总线访问,为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数。
内部的闪存存储器Flash
内部的闪存存储器即FLASH,编写好的程序就放在这个地方。内核通过ICode总线来取里面的指令。
内部的SRAM
内部的SRAM,是通常所说的内存,程序中的变量、堆栈等的开销都是基于内部SRAM,内核通过DCode总线来访问它。
FSMC
FSMC的英文全称是Flexible static memory controller(灵活的静态的存储器控制器)。通过FSMC可以扩展内存,如外部的SRAM、NAND-FLASH和NORFLASH。但FSMC只能扩展静态的内存,不能是动态的内存,比如就不能用来扩展SDRAM。
AHB
从AHB总线延伸出来的两条APB2和APB1总线是最常见的总线,GPIO、串口、I2C、SPI 这些外设就挂载在这两条总线上。这个是学习STM32的重点,要学会对这些外设编程,去驱动外部的各种设备。
三、三极管电路几种分析方法
三极管有静态和动态两种工作状态。未加信号时三极管的直流工作状态称为静态,此时各极电流称为静态电流,给三极管加入交流信号之后的工作电流称为动态工作电流,这时三极管是交流工作状态,即动态。
一个完整的三极管电路分析有四步:直流电路分析、交流电路分析、元器件和修理识图。
直流电路分析方法
直流工作电压加到三极管各个电极上主要通过两条直流电路:一是三极管集电极与发射极之间的直流电路,二是基极直流电路。
通过这一步分析可以搞清楚直流工作电压是如何加到集电极、基极和发射极上的。如图所示,是放大器直流电路分析示意图。对于一个单级放大器而言,其直流电路分析主要是图中所示的三个部分。
分析三极管直流电路时,由于电路中的电容具有隔直流特性,所以可以将它们看成开路,这样上图所示电路就可以画成如下图所示的直流等效电路,再用这一等效电路进行直流电路分析就相当简洁了。
交流电路分析方法
交流电路分析主要是交流信号的传输路线分析,即信号从哪里输入到放大器中,信号在这级放大器中具体经过了哪些元器件,信号最终从哪里输出。如图所示,是交流信号传输路线分析示意图。
另外还要分析信号在传输过程中受到了哪些处理,如信号在哪个环节放大,在哪个环节受到衰减,哪个环节不放大也不衰减,信号是否受到了补偿等。
上图电路中的信号经过了C1、VT1、C2、VT2和C3,其中C1、C2和C3是耦合电容,对信号没有放大和衰减作用,只是起着将信号传输到下级电路中的耦合作用,VT1和VT2对信号起了放大作用。
元器件作用分析方法
1 元器件特性是电路分析关键
分析电路中元器件的作用时,应依据该元器件的主要特性来进行。例如,耦合电容让交流信号无损耗的通过,而同时隔断直流通路,这一分析的理论根据是电容隔直通交特性。
2 元器件在电路中具体作用
电路中的每个元器件都有它的特定作用,通常一个元器件起一种特定的作用,当然也有一个元器件在电路中起两个作用的。在电路分析中要求搞懂每一个元器件在电路中的具体作用。
3 元器件简化分析方法
对元器件作用的分析可以进行简化,掌握了元器件在电路中的作用后,不必每次对各个元器件都进行详细分析。例如,掌握耦合电容的作用之后,不必对每一个耦合电容都进行分析。如图所示,是耦合电容分析示意图。
修理识图方法
修理识图为检修电路故障服务,这一识图要求在完全搞懂电路工作原理之后进行,否则没有意义。因为故障现象明确,因此故障检修过程中的修理识图可以有针对性的选择电路中的元器件进行,而不需要对电路中的每个元器件都进行故障分析。 whaosoft aiot http://143ai.com
分析时,找出电路中的主要元器件,并分别假设它们出现开路、短路、阻值变大和变小等故障,分析这种故障对直流电路和交流电路的影响,从而推理出可能的故障根源。
修理识图的关键是找出电路中关键测试点:
1 单级放大器关键测试点
如图所示,单级放大器主要是三极管的关键测试点。
三极管的关键测试点用来测量三个电极的直流工作电压,其中集电极是第一测试点,其次是基极,第三是发射极。
2 集成电路关键测试点
集成电路关键测试点最重要的是电源引脚,还有输入信号引脚和输出信号引脚。
三极管基极偏置电路分析方法
三极管基极偏置电路分析最为困难,掌握一些电路分析方法可以方便基极偏置电路的分析。
第一步是在电路中找出三极管的电路符号,如图所示,然后在三极管电路符号中后找出基极,这是分析基极偏置电路的关键一步。
第二步从基极出发,将与基极和电源端相连的所有元器件找出来,如图所示,电路中的RB1,再将基极与地端相连的所有元器件找出来,如电路中的RB2,这些元器件构成基极偏置电路的主体电路。
上述与基极相连的元器件中,要区别哪些元器件可能是偏置电路中的元器件。电阻器有可能构成偏置电路,电容器具有隔直作用而视为开路,所以在分析基极直流偏置电路时,不必考虑电容器。
第三步确定偏置电路中的元器件后,进行基极电流回路的分析,如图所示。基极电流回路是:直流工作电压VCC→偏置电阻RB1→VT1基极→VT1发射极→VT1发射极电阻RE→地端