单片机小白学步(16) 单片机/计算机系统概述:模块化思想
易有所感触;后来需要设计实际系统时,有需要回来再看看这篇就好了。
1、自顶向下,逐步求精;逻辑设计与物理实现分离;自底向上
当要设计一个比较复杂的系统时,常常会先画框图,每个框表示一个抽象的功能模块。通过框图可以设计这些模块之间的逻辑关系,然后再细化去设计每个模块。而这样一个模块可能也比较复杂,这时又会将其拆分为更小的模块。这样一步一步的拆分模块,直到最后技术细节实现。这就是自顶向下的设计方法,将一个复杂问题进行分解,逐步求精。而框图的设计则是模块之间的逻辑设计,逻辑设计与每个模块的具体物理实现可以完全分离。
和自顶向下的设计方法相比,还有一种恰恰相反的思路:自底向上。先设计出一些核心模块,然后再逐步进行扩展和完善。完全的自底向上的方法只适合设计小型的系统。在实际应用中,往往是结合这两种方法进行设计。
2、模块独立,减小耦合度
模块化设计中很重要的一个思想是模块独立,减小模块之间的耦合度。也就是说,每个模块负责完成自己的功能,不同的模块之间关联要尽可能小,以免互相影响。
想给电脑换一个更大的硬盘时,一般不用考虑内存等其他模块会不会受到影响,要不然实在是太麻烦了。因为电脑的模块化设计非常规范,模块之间的关联很小。
减小耦合度这种看似简单的问题,实际上在设计的时候却相当麻烦,为了减小耦合度,需要使用很多技术来完成,后面会在实际操作中进行介绍。
3、模块标准化,可代换
有同学觉得自己的电脑反应太慢,网上一查,原来电脑慢很大可能是因为机械硬盘的速度太慢。相比硬盘,CPU和内存要快很多,所以就如木桶效应,电脑被最慢的硬盘给拖慢了速度。于是就给电脑换上了固态硬盘,顿时速度快了很多。
固态硬盘和机械硬盘的内部结构是完全不一样的。机械硬盘是依靠磁性盘片存储数据的,读写时需要机械结构带动盘片转动,机械转动速度不能太快(2.5寸机械硬盘以7200转每分钟的速度旋转,盘片边缘的速度能达到86km/h),太快了盘片可能会直接破裂,或者发热量巨大,所以读写速度远远没有电子器件快。而固态硬盘使用的就是电子芯片来实现数据存储,所以速度非常快。
两种硬盘虽然原理和性能差距都很大,但是却能很轻松的安装在同一台电脑上,只要保证一些参数匹配,例如都是2.5寸的。这是因为现有的不同硬盘设计的都是标准化的,硬盘的尺寸、接口等都有标准规范,所以能很轻松的代换。
4、模块通用性,适用于多种产品
几年以前的手机等数码产品,不同品牌、不同设备分别由不同的人和公司设计,充电的接口各不相同,充电器也都是每个数码产品专门配备一套,出门旅行带的数码产品一多,仅仅是大大小小的各种充电器就够让人烦了。而且充电器坏了只能重新买配套的充电器。这样的设计浪费了很多资源,也给人们的生活带来了很大的不便。
而近几年,MP3、MP4、手机等数码产品的充电器接口慢慢被统一起来,很多设备都可以使用通用的USB充电头和数据线进行充电。对于用户来说方便多了;对于设备制造商来说,也不是很有必要单独设计充电器,直接用标准充电器就可以了;还节约了资源,例如有些数码设备充电器是可以选配的,有充电器就不用再进行购买了。通用的充电头和手机充电接口设计,使得一个充电器可以用于多种产品。
通用性和前面一点标准化,两者其实都可以理解成,设计一个模块或系统,都要遵循一定的标准化规范。一个标准化的模块,可以应用于不同的系统(通用充电器给多种设备充电);而符合统一标准的多个同类模块,可以用于同一个系统(机械硬盘和固态硬盘都能装进电脑)。
模块化设计的优缺点
前面通过举例,已经明确的体现了模块化设计的很多优点,这里对其特点进行一个总结。
1、便于分工合作
对于一个实际产品,很多时候不是一个人开发的,而是很多人共同开发。这里的原因有很多,可能是因为时间比较紧,例如公司之间的竞争,谁最先开发并发布新的产品,就最有可能抢占市场;可能是因为系统太庞大,一个人一辈子也做不完,例如操作系统的代码量往往能达到几百万行;分工合作还会提高整体效率,前面已经说过了。
多个人开发同一个系统,模块化开发是最好的选择。一些人专注于一个领域,例如安卓程序、平面设计、服务器等,每个人负责开发和他的专注领域匹配的小模块,而另外一些知识面比较广、经验丰富的人,负责模块之间的逻辑组合,最后将整个系统整合到一起。这个过程也可能会有分层,系统分成大的模块,再拆分成小的模块,逐层分解并实现。
2、提高开发效率
一方面,分工合作的方式能提高效率;另一方面,运用已
单片机系统概述模块化思 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)