专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

嵌入式系统架构(2)

作者:刘文芎   来源:本站原创   点击数:  更新时间:2010年06月08日   【字体:

      嵌入式系统,应该是后PC时代的重要特征。其概念,一句话就是:软件加硬件的系统。当我们在为电脑的超强分析和处理能力惊叹不已的时候,在本质上具备这种能力,但价格低廉且具有很强针对性的嵌入式系统,已慢慢渗透到我们的日常生活当中了。因为价格低廉,所以这种系统,可以大量生产,到处都可以存在。因为有很强的针对性,所以这种系统总是以不同的表现形式、不同的功能出现。但嵌入式系统,也有一些共同点,比如都有核心处理单元、都有存储单元,更重要的是都需要电才能工作。

        核心处理器

        嵌入式系统的核心处理器真的很多很多,估计超过1000多种,最常见的是ARM系列,ARM7、ARM9、ARM11、Cortex-A8等。当刚刚接触ARM7的时候,觉得ARM9是很高档的了,根本不敢去想ARM11会是一个什么样的高度。于是拼命地去熟悉ARM7的系统架构,寄存器设置,汇编指令,觉得很复杂。但还是要下决心要搞懂细节,因为觉得懂得越多,使用此款处理器就可以越灵活,越有信心。现在ARM9使用还没回过神来的时候,立刻就用上了ARM11  8级流水线的CPU,只是觉得ARM11处理速度快了一些,但其它的区别还是一无所知。其实慢慢也明白了,我们是在搞嵌入式系统开发,而不是搞CPU研发,有些技术细节是不一定要很清楚的。只要知道这一款处理器的基本架构,知道到哪里查找此处理器的相关资料就足够了。一般CPU提供商,都会提供初始化代码、启动代码和编译器的对应编译选项,我们就放心编译使用吧。

            存储设备

            嵌入式系统的存储设备也很多,有ROM、SRAM、SDRAM、DDR、NandFlash、NorFlash等。通常一个复杂的嵌入式设备可以同时具备几种类型的存储设备,如一个系统同时具备SRAM、DDR、NorFlash、NandFlash,不像个人电脑都只要内存条(DDR)就够了。不同的存储设备,虽然都是为了存取数据,但操作起来完全不一样。有些很简单 如SRAM  送地址取数据就行了,有些比较复杂 如DDR 既要行列地址分开送,还要不断地发送刷新命令。才能取到正确的数据,有些更复杂 如 NandFlash 发送的是Fash内部的块地址、页地址,读取时要一页一页读取,而擦除的时候却是一个块一个块地擦。且出厂的时候是允许存在坏块的现象,读取数据的时候,可能会出现bit(位)错误,需要ECC校验纠正过来。以前我一直想不明白,为什么嵌入式系统有这么多五花八门的存储设备。难道是像手机电池那样,因为没有统一的标准,而导致的。其实各种各样的存储设备出现,一切都是为了容量和价格的平衡。简单方便的存储设备当然好用,但bit(位)价格不菲,而复杂不是很稳定的存储设备,容量大价格便宜。嵌入式系统特点就是产量大、价格低廉、功能对应,如果能用便宜代替高价的实现同样效果,技术上复杂一点又何妨。同一个设备,挂接不同的存储设备,也是为了价格、速度、容量的平衡。对于老板来说,可能是繁琐了一点,但便宜能赚钱,就是好方案。

 

            芯片内部的设备

            嵌入式系统,有个显著的特点,就是高集成度。通常芯片内部,除了有处理器外,还有集成了很多设备,如LCD控制器、USB控制器、RTC、SPI、IIC等,如果一些高级一点的嵌入式芯片,内部可能还集成了3D加速、JPEG解码 等。这些设备一般都是通过内部总线连接起来,并通过对应的寄存器进行控制。所以我们要使用芯片内部的某个设备,其实也不是很复杂。一般是先找到芯片内部的电源控制寄存器(或设备使能寄存器)打开该设备的电源(使能该设备),然后找到该设备的相关寄存器,复位设备,使能相应的功能,就可以使用了。

 

关闭窗口

相关文章