单片机的发展相当的迅速,现在各个厂商们也在速度、内存、功能上此起彼伏,竞争激烈,同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM…国内的宏晶STC单片机也是可圈可点。最为初学者首先要搞清楚他们之间的区别,掌握avr单片机选型技巧,才能够更好的设计产品。
一:avr单片机和STM32区别-STM32单片机介绍
由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成 本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表 现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫 赫有名…其强大的功能主要表现在:
特性:
1.内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周期乘法和硬件除法
2.存储器:片上集成32-512KB的Flash存储器。6-64KB的SRAM存储器
3.时钟、复位和电源管理:2.0-3.6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD)。4-16MHz的晶 振。内嵌出厂前调校的8MHz RC振荡电路。内部40 kHz的RC振荡电路。用于CPU时钟的PLL。带校准用于RTC的32kHz的晶振
4、调试模式:串行调试(SWD)和JTAG接口。最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口
使用最多的器件:stm32F103系列、STM32 L1系列、stm32W系列
二:avr单片机和STM32区别-avr单片机介绍
avr单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。 avr单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短 指令执行时间为250~125ns。avr单片机能成为最近仍是比较火热的单片机,主要的特点:
特点:
1. avr系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在avr中,没有像51系列的数据指针DPTR,而是由X(由 R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且 还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而avr却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些 都比51系列出色些
指令是让单片机执行某种操作的命令。在单片机内部,指令按一定的顺序以二进制码的形式存放于程序存储器中。二进制码是计算机能够直接执行的机器码(或称目标码)。为了书写、输入和显示方便,人们通常将机器码写成十六进制形式。如二进制码00000100B可以表示为04H。04H所对应的指令的意义是累加器A的内容加1。若写成INCA,则要清楚得多,这就是该指令的符号表示,称为符号指令。
2. avr的专用寄存器集中在00~3F地址区间,无需像pic那样得先进行选存储体的过程,使用起来比pic方便。avr的片内RAM的地址区间为 0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄 存器的功能。当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为avr的4倍),编程时就不会有这种感觉。
3. avr的I/O脚类似pic,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。这点虽不如pic,但比51系列还是要优秀的…
缺点:
1. 是没有位操作,都是以字节形式来控制和判断相关寄存器位的
2. C语言与51的C语言在写法上存在很大的差异,这让从开始学习51单片机的朋友很不习惯
3. 通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。
使用最多的器件:ATUC64L3U、ATxmega64A1U、AT90S8515
每种MCU都有自身的优点与缺点,与其它8-bit MCU相比,avr 8-bit MCU最大的特点是:
● 哈佛结构,具备1MIPS / MHz的高速运行处理能力;
● 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象;
● 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发;
● 作输出时与pic的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力;
● 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;
● 大部分avr片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分avr除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。
● 性价比高。
例子很多,也就不再一一讲了,总之,机械类的懂点电绝对有帮助,如果真能具体到学点PLC或单片机相关应用会更好,机械类的公司还是以机械为主,电气辅助(虽然电气工资很高),如风电,汽车,轧钢,造纸,矿山设备,工程机械类公司,这些公司的技术一把手大多是机械出身,但是电也会懂一些,否则很难在重大方案上做出决定。