其实,一直以来,嵌入式都是一个比较复杂的技术概念,目前国内外关于嵌入式系统尚无严格、统一的定义。
根据美国IEEE的定义,嵌入式系统是用于控制、监视或辅助操作机器和设备的装置。
目前,大家广泛地定义就是:除了桌面的PC机之外,其他的具有控制、操作功能的设备就是嵌入式。
那么,51单片机算不算是嵌入式呢?
这个问题之前折腾了我好长一段时间,还跟别人争执过。
但是,你看上面的定义,51单片机就属于嵌入式。
嵌入式系统一般有嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件四个部分组成。
其中嵌入式微处理器的体系结构可以采用冯 -诺依曼体系结构或者哈佛体系结构,指令系统可以选用精简指令集系统(RISC)和复杂指令集系统(CISC)。冯-诺依曼与哈佛的体系最大的不同就是在于,前者其程序和数据共用一个存储空间,而后者是将程序和数据存储在不同的存储空间中。而关于指令系统,CISC更加专注于高性能但同时也需要高功耗,而后者(RISC)则专注于小尺寸低功耗的领域。
所以,一般嵌入式系统用的都是RISC。
为什么?
因为嵌入式设备自出生以来,本来就是用在某一领域的,它既继承了计算机特有的一些功能,又裁剪了除此之外大部分不需要用到的功能。可以说,相对计算机,嵌入式设备只针对于某一方面,而计算机是针对于全局而言。
再来说说目前嵌入式微处理器的主要系列,有ARM7、ARM9、ARM10、ARM11、ARM Cortex等。
当然,在ARM7之前还有其他ARM系列的,但是由于市场上目前主流的是ARM7及ARM7以后的,所以前面的我们就不说了。
ARM7 ,32位核,采用的是三级流水线和冯-诺依曼体系结构,ARMv3或ARMV4架构;一般来说跑操作系统比较吃力;ARM9,ARMv4或ARMv5架构,五级流水线,哈佛体系;由于结构不同,ARM7的执行效率低于ARM9。
此外,ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。ARM9一般是有MMU的,ARM9940T只有MPU ,但不是一个完整的MMU。
这一条很重要,MMU单元是大型操作系统必需的硬件支持,如LINUX;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。
再来说一下ARM10,为什么会有ARM10而没有听说过ARM8呢?
其实,都是有的;只是,ARM8与ARM7没有发生本质上的区别,ARM10相比于ARM9也是,所以,很少提及。
这里再说一下ARM9E,虽然它也是属于ARM9系列的,但与ARM还是有了很大的区别,就是ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。
接下来就是ARM11了,ARMv6架构,8/9级流水线,以32位的成本提供64位处理器性能。为多媒体应用的开发和推广打下了坚实的基础。
那么有没有ARM12,ARM13呢?
没有了。
因为后面ARM公司(ARM既是一门技术的泛称,也同时代指一家公司)由于ARMv-6开始之后,引进了许多突破性的新技术,存储器系统增加了很多崭新的特性,如单指令多数据流(SIMD)指令;所以,ARM公司进一步扩展了其CPU的设计,推出了ARMv-7体系结构处理器。而且,在ARMv7版本中,内核结构首次从单一的款式变成了三种。
1.ARMv7-A:支持大型嵌入式操作系统,追求其高性能,使其越来越接近于一台计算机。其产品包含了高端的手机,手持仪器,电子钱包和金融事务处理机等;
2.ARMv7-R:主要追求的是带有实时应用的嵌入式系统,典型的应用在于大型发电机的控制器,机器人手臂控制器等;
3.ARMv7-M:其用于深度嵌入的单片机或MCU风格的系统中;追求低成本,低功耗,极速中断反应以及高处理效率,例如STM32中的ARM Cortex M3就属于这一类。
那么,Cortex-M3跑得了系统吗?
答案是可以的,但是跑不了Linux这类大型的,但是对于 C/OS-Ⅱ和FreeRTOS还是绰绰有余的。
以上就是我对于嵌入式的一些了解,希望对你们有所帮助。