单片机和芯片有何不同之处?
21ic 2024-06-21

单片机是电子专业的朋友都接触过的设备,可以说单片机是新手、老手都会玩的利器。为增进大家对单片机的认识,本文将对单片机和芯片的区别以及单片机的执行速度予以介绍。如果你对单片机具有兴趣,不妨继续往下阅读哦。


一、单片机和芯片的区别

近年来,市场对单片机的需求较为旺盛,单片机已经广泛应用于各个领域,如消费、汽车、家电、工业等等,人们也经常会听到关于芯片、单片机的讨论,那么单片机究竟是什么?芯片和单片机有区别吗?为什么单片机要用C语言编程呢?

那么单片机和芯片又有什么区别呢?芯片是半导体元件产品的统称,大多数芯片都不可以写入程式,功能相对单一。而单片机可以写入简单的程序,用起来非常方便,芯片没有单片机的功能完善,这就是二者的区别。

至于单片机为什么还要用C语言编程,这就要从单片机编程的特点说起。单片机的数据空间和程序空间都是有限的,因此在编程时最好保持程序的短小精悍。同时,因为乘法和除法会很占用时间,拖慢单片机的速度,因此在编程时应该尽可能避免乘法和除法,使用加、减、移位运算,简单来说,就是在进行单片机编程时,需要精打细算,而高级语言的代码体积过于臃肿,不适用于单片机工作。

其实,开发单片机多使用C语言最重要的原因,还是因为目前最适合单片机开发的语言过于复杂晦涩,并且不同的单片机汇编指令也不同,不能直接把程序从单片机上直接移植到另一种单片机上,如果每次都使用最适合的那种语言来编程,那么工程量巨大,不如使用精简且执行效率高的C语言重写程序。因此目前C语言才是单片机开发编程中最常使用的编程语言。

如今,单片机已经应用到了人们生活中的各个领域,只要用上了单片机,产品就获得了“智能”的前缀,在各行各业都往智能化、数字化转型的当下,单片机的发展潜力极为巨大。


二、单片机执行速度与什么有关

单片机的执行速度与什么有关呢,当然对于初学者来说,第一时间想到的是晶振,没错,晶振算一个,但准确的来说应该是单片机的时钟源(再具体一点就是单片机的系统时钟)。单片机的时钟源来说有分为内部时钟和外部时钟,外部时钟源一般指的就是晶振了;内部时钟对于比较老的单片机是没有的(比如51单片机)。还有一点需要注意的是现在许多高级一点的单片机都会涉及到倍频和分频,n倍频即把单片机的时钟源乘以n作为单片机的系统时钟;分频与倍频恰好相反。

第二点,应该是执行一条指令需要多少个时钟周期,对于老一点的51单片机执行一条指令需要12个时钟周期,但现在大多数单片机执行一条指令仅需1个时钟周期(STC的 1 T 单片机),这样速度一下子就提高12倍。

第三点,就是常说的几位机,最初接触的51大多为8位机,而后来随着技术的发展有了16位机(飞思卡尔、AVR等)、32位机(stm32)。我们都知道所有的指令最后执行的都是一连串的2进制数,对于8位机一次可以执行8位,而16位机可以执行16位,32位机可以执行32位,这样32位的明显比8位的快。

最后一点也是比较难理解的一点,就是单片机的内部结构,正常情况下一条执行完成需要经过取指令、解密寻址、执行指令三个步骤,比较老的单片机在执行这三个步骤时需要按照执行顺序依次执行,而高级的单片机(stm32)具有三级流水线,通俗的理解就是可以同时执行三个步骤,这样也大大的增加了单片机的执行速度。

特别注意的是:所有的速度并不是成线性关系的,即在相同条件下,不是32位机的执行速度就是8位机的4倍,更不是具有三级流水线的单片机的执行速度是普通单片机的3倍。具体原因与其内部设计的局限性有关系,这里我也不太清楚,不做太多介绍了。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • C语言
  • 编程
  • 软件开发
  • 程序
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告