1. 单片机原理的单片机
单片机早期的含义为单片微型计算机SCM,简称单片机。
工作原理分为如下几步:
取指令。从内存储器取出指令送到指令寄存器。
分析指令。对指令寄存器中存放的指令进行分析,由译码器对操作码进行译码,将指令的操作码转换成相应的控制电信号,并由地址码确定操作数的地址。
执行指令。它是由操作控制线路发出的完成该操作所需的一系列控制信息,完成指令所需要的操作。
为执行下一条指令做准备。形成下一条指令的地址,指令计数器(PC)指向存放下一条指令的地址,最后控制单元将执行结果写入内存。
2. Atmel单片机
Atmel一共有三个系列的单片机AT89 AT90 AT91.
AT89是以51内核为标准的单片机。它是改进型的51单片机。比如说标准的8051单片机没有20pin封装的芯片。但是AT89C2051 AT89C4051都是20pin封装的单片机。它主要是把原51单片机的P0口和P2口省略了,然后再改进了一些功能。可以认为它们是精简型51单片机,比较适合初学者学习。AT89有许多型号。比如AT89C51 AT89S51 AT89C52 AT89S52 AT89S8252(后面几款其实是8052单片机,但是和8051的指令系统兼容的,只是增加了一些功能而已,也可以认为是51系列的单片机)。对于AT89系列单片机都是FLASH型单片机,烧录次数至少在1000次以上(数据手册提供,实际估计要在4000以上了)只要芯片上带有“s”字样的单片机都可以支持ISP(在线烧录)。
AT90系列单片机主要对应的是AVR单片机(这是Atmel的最主要的单片机了)。AVR分成三档。Attiny系列,AT90系列,ATmega系列。分别对应AVR中的低档,中档和高档单片机。现在有的AT90系列单片机已经转型给了Attiny系列和ATmega系列了。所有的AVR单片机都支持ISP。而且AVR单片机是一款RISC(精简指令)型单片机。51单片机是CISC(集中指令)型单片机。AVR单片机的功能远远强于51.
AT91系列单片机主要对应的是高端的32位ARM单片机。一般采用ARM7内核,ARM是现在嵌入式系统32位里的主流单片机。
3. arm单片机和avr、51有什么区别
ARM、DSP、FPGA的技术特点和区别
ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
DSP(digitalsingnalprocessor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
FPGA是英文FieldProgrammableGateArray(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
区别是什么?:ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,而DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。FPGA可以用VHDL或verilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。
新手在学习时,最好能有51单片机的基础.这样今后学起别的片子来会快很多.推荐你们用铁牛单片机实验板F1版
4. 现在比较主流的32位单片机学哪个好
便携仪器、工控、小家电等电子产品用STM32还是比较多的,32位单片机基本都是基于ARM-CORTEX内核,重要是了解其架构和外设怎么用,至于编程无非就是C或者C++。所以我建议你先找个STM32F1系列的单片机来学,学完之后以后就算是用其他家的单片机(比如TI\ATMEL)也很容易上手的。另外,熟悉后再移植下FreeRTOS,跑一下系统,在复杂的应用场合单片机跑系统是大势所趋。
5. AVR单片机怎样进行32位运算
AVR3232位RISC处理器内核是专门针对同时要求高性能和低功耗的现代化应用而开发的,可在每个时钟周期内处理更多的工作,因此能够以更低的时钟频率、非常低的功耗,达到相同的吞吐量。
AVR32单片机是ATMEL公司在2006年继AVR之后推出的,由ATMEL公司独立研发,它也不同于其它32位的ARM。AVR是1997年由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术,共同研发出RISC精简指令集的高速8位单片机。
6. 英飞凌的32位单片机用什么开发环境
支持 TriCore 的开发环境有:Tasking, HighTec.
免费版的开发环境 HighTec 可以从以下地址下载:www.infineon.com/FreeTricoreToolChain
7. atmel 公司推出的单片机芯片有哪些
你还是比较了解atmel 公司的,因为他一共有只三个系列的单片机:
51单片机是AT89系列的;AVR单片机是AT90系列的;还有就是AT91系列单片机,内核用的是ARM,有16位的也有32位的;
优势是相对的,因为他们各有千秋,51适合初学者入门,是学习单片机的基石;AVR又上了一个台阶能让你对单片机内部各个寄存器有更深入的了解;功能最强大的当然是ARM,也最有优势。
但实际中要考虑成本和用途,低端产品用51单片机肯定成本低,所以要比ARM有优势;高端产品ARM最强大
8. ATMEL单片机和STC单片机相比有什么优缺点
AVR是流行大厂,所占市场份额较大,技术领先, 但不和51兼容,价格较贵
STC坚守51体系,有较多的人熟悉掌握,并且增强了许多功能,实际上就是和AVR类似的功能和技术,如PWM 单时钟执行周期AD转换SPI 接口内部RC时钟可外部中断唤醒的掉电模式等同样性能下比AVR便宜不少但STC无更高档的8位单片机,如FLASH达64K以上,RAM达4K单片机,同价位下,AVR单片机的EEPROM容量较小,中低档都为512B STC单片机的EEPROM容量较大,多数都在4K以上,但STC的EEPROM不支持单个字节擦除,只能以512字节为一个扇区擦除STC ISP下载和UART串口合用,方便使用,节省了引脚,但有人说它是伪ISP 实际上8位单片机毕竟有它的局限,因此再追求高速度大容量也赶不上16位和32位微处理器,因此我认为如果不追求高速度高性能,一般应用STC单片机都能满足要求,对于复杂的数据处理和控制还得32位的ARM上场
9. 同一个项目分别用stm32和51单片机会有什么不同
李工的经验,有如下几点不同,希望你供你参考。
1.51是8位单片机,而stm32是32位单片机。时钟方面stm32运行频率更高,性能更好。两种单片机性能差别比较大。
2.片上资源不一样。简单讲stm32单片机外设丰富,比如串口,I2c等。stm32单片机片上flash和RAM更大。以后升级功能,改进功能的空间大。如果考虑以后功能升级,建议考虑stm32.
3.成本上应该是51单片机要便宜一些。
4.stm32单片机开发资料和参考程序比较多,有库函数,应用起来方便。51单片机更多直接操作寄存器,开发不方便。
我是北漂李工,一个北漂8年的程序员。
在项目开发过程中,我们经常会遇到需要单片机选型,所以我们常常会根据项目功能需求来选择合适的单片机品牌和型号。常见的51内核单片机和STM32单片机也会是我们主要考虑的型号。
STM32与51单片机的参数差异 STM32与51单片机软件开发难度差异STM32使用寄存器比51单片机要多很多,其配置比51复杂,而且中断逻辑,时钟配置使能控制等很多概念都是51单片机中所没有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加强大,虽然官方提供了开发固件库和相关开发辅助工具,但很多时候,遇到bug调试难度也加大了很多。
stm32固件库很多实用结构体和指针变量,很多在51单片机开发过程不太注重结构体与指针的使用,那么在STM32开发过程中,就难以理解其固件库的运用逻辑。
STM32与51单片机的性价比差异STM32比51处理速度快,外设功能丰富强大,所以价格普遍比51单片机偏贵,在项目选型过程中,需要根据项目功能需求,选择合适的单片机,如果是51单片机能用,那么考虑项目成本,肯定是不能选择STM32,如果51单片机不能用,即使再便宜,也用不了。
总之, 作为单片机开发工程师,需要能够进行一定的器件选型能力,这个也是必备的专业技能。
搞多了开发,你会发现其实用什么真的不重要,只要你会用就行。单片机好比一个精密机床,你要想加工一件作品,你用任何品牌的机床都可以,关键点是这个机床你会不会用,了解通透程度如何。不同品牌机床操作方法肯定大同小异,不会差别很多,你会用一种,另外一种不用看手册,也能猜出个七八分。机床这样,编程也是这样,给你个51,你应该能控制全世界。
首先如果同一个项目可以用51和STM32同时开发,就不建议使用STM32了,51成本更低。
STM32和51单片机不同点有很多:
1.开发方式不同
51单片机一般是直接操作寄存器,STM32主要操作库函数编程
2.系统资源不同
一般而言STM32资源要比51单片机更多
3.开发环境可能不同
51和STM32一般来讲都可以在Keil下开发,但STM32有更多中选择,可以在Linux下面开发,windows Esplise下开发,甚至直接用VSCode + 插件方式开发。
4.操作系统区别
一般而言,51单片机不支持操作系统,STM32支持各种主流操作系统,STM32开发起来更容易,可以很方便的利用系统实现各种场景下的应用,51单片机由于没有操作系统,开发起来有一定阻碍,甚至有时候必须要做出部分功能的牺牲才能达到整体功能的和谐运行。
5.后期维护方式可能不同
STM32资源足够多,可以写一个bootloader程序来完成之后的系统升级工作,不需要拆机就可以完成固件的升级,而51单片机则不可以。
STM32系列单片机分为CORTEX M0,M1,M4内核,个人觉得STM32F0系列的从性价比,功能上可以完全替代51单片机,而且性能更好。当然也可以使用51,价格更便宜一些,,但是要做功能复杂一些的产品,51系列的单片机是不能满足的,比如驱动RGB 屏,至少要用STM32F429,支持LTDC接口,而且需要外扩内存,支持FMC接口,比如要做数字音频,要支持I2S ,比如要做USB传输,要支持USB ,要移植操作系统,文件系统等等,要看CPU 的资源等等,总之,要根据所做的项目看CPU的资源是否满足要求是非常重要的,这要再设计前期靠考虑周到,否则,项目做到一半发现资源不够,需要重来是很郁闷的事情。
做产品要考虑成本,几毛钱就能搞定的,没必要几块甚至几十块。一般来讲,价格越贵的,资源越多,使用起来越简单,随心所欲。简而言之,价格越低,资源越少的单片机,完成项目的难度越大,需要优化代码和算法。
在stm32之前是8051的天下,silabs的c8051f外设相当的强大。硬件不错,可惜代码不够多。atmel的代码比较多,可惜芯片不够强大。
stm32一出,横扫天下,要硬件有硬件,要软件有软件,价格便宜量又足,连低端产品都用他。
电动自行车控制器都用它,无刷电机都用它。
stm32是史上最广泛使用的单片机。
只要资源够用,都可以,20年前我用8051,现在用stm32。stm32方便些,可以在线调试。我现在开发东西复杂一点的,用stm32 1系列和4系列。简单一点的用stm8s一块多钱的样子。
我觉得你的问题对比对象不太对,一般能用51的项目用stm8或者avr即可。一般来说stm32比51强太多了,无论是性能和价格都没有可比性。
所以在我看来开发上没有什么太大不同,无非就是开发环境不一样,如果代码规范的话很容易进行互相移植(最近芯片涨价严重,我们公司正在换国产),而所谓的外设(uart iic spi等等)其实没有太大区别。
但是在生产上差别就出来了,主要在于交货能力,一般而言同为一级代理采购物料,st的交货能力要比stc的强(当然最近行情st也不行了,交期干到了9月份)。所以如果你的产品是主力长期货,建议选择交货能力强的。
我就记得51单片机放不了几个变量就超出了。复杂点的程序都很难写。