好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式系统的知识体系.docx

9页
  • 卖家[上传人]:大米
  • 文档编号:426572146
  • 上传时间:2022-12-26
  • 文档格式:DOCX
  • 文档大小:31.80KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1 嵌入式系统的知识体系嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业控制、现代农业、家用电器、汽车电子、测控系统、数据采集等),计算机应用的延伸(MP3、、通信、 网络、计算机外围设备等)从这些应用可以看出,要完成一个以MCU为核心的嵌入式系 统应用产品设计,需要硬件、软件及行业领域相关知识硬件主要有MCU的硬件最小系统、 输入/输出外围电路、人机接口设计软件设计有固化软件的设计,也可能含PC机软件的设 计行业知识需要通过协作、交流与总结获得概括地说,学习以MCU为核心的嵌入式系统,需要以下软硬件基础知识与实践训练:① 硬件最小系统(电源、晶振、复位、写入调试接口);② 通用I/O (开关量输入/输出,涉及各种二值量检测与控制);③ 模/数转换(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等)④ 数/模转换(对模拟量设备利用数字进行控制);⑤ 通信(串行通信接口 SCI、串行外设接口 SPI、集成电路互联总线I2C、CAN、USB、嵌 入式以太网、 ZigBee 技术等);⑥ 显示(LED、LCD等);⑦ 控制(控制各种设备,包括PWM等控制技术);⑧ 数据处理(图形、图像、语音、视频等的处理或识别);⑨ 各种具体应用。

      万变不离其宗,任何应用都可以归入这几类而应用中的硬件设计、软件设计、测试等 都必须遵循嵌入式软件工程的方法、原理与基本原则所以,嵌入式软件工程也是嵌入式系 统知识体系的有机组成部分,只不过它融于具体项目的开发过程之中以上实践训练涉及硬件基础、软件基础及相关领域知识计算机语言、操作系统、开发 环境等均是达到这些目的的工具有些初学者,容易把工具的使用与所要达到的真正目的相 混淆例如,有的学习者学了很长时间的嵌入式操作系统移植,而不进行实际嵌入式系统产 品的开发,到最后也做不好一个嵌入式系统小产品,偏离了学习目标,甚至放弃嵌入式系统 领域这就是进入了嵌入式系统学习误区,下面对此作一些分析2 嵌入式系统的学习误区关于嵌入式系统的学习方法,因学习经历、学习环境、学习目的、已有的知识基础等不 同,可能在学习顺序、内容选择、实践方式等方面有所不同但是,应该明确哪些是必备的 基础知识,哪些应该先学,哪些应该后学;哪些必须通过实践才能获得;哪些是与具体芯片 无关的通用知识,哪些是与具体芯片或开发环境相关的知识由于微处理器与微控制器种类繁多,也可能由于不同公司、机构出于自身的利益,给出 一些误导性宣传,特别是我国嵌入式微控制器制造技术落后,使得人们对微控制器的发展, 在认识与理解上存在差异,导致一些初学者进入嵌入式系统的学习误区,浪费了宝贵的学习 时间。

      下面分析可能存在的几个误区2.1 操作系统的困惑如果说,学习嵌入式系统不是为了开发其应用产品,那就没有具体目标,诸如学习方法 这样的问题也就不必谈了实际上,这正是许多人想学,又不知从何开始学习的关键问题所 在,不知道自己学习的具体目标于是,看了一些培训广告,看了书店中种类繁多的嵌入式 系统书籍,或上网以“嵌入式系统”为关键词进行查询,就参加培训或看书,开始“学习起 来”对于有计算机阅历的人,往往选择一个嵌入式操作系统就开始学习了这有点像“瞎 子摸大象”,只了解其一个侧面这样如何能对嵌入式产品的开发过程有全面了解呢?针对 许多初学者选择“xxx嵌入式操作系统+xxx处理器”的嵌入式系统入门学习模式,笔者认 为是不合适的笔者的建议是:首先把嵌入式系统软件与硬件基础打好了,再根据实际需要, 选择一种实时操作系统(RTOS)进行学习实践要记住:RTOS是开发某些类嵌入式产品 的辅助工具,是手段,不是目的;许多类嵌入式产品,并不需要RTOS所以,一开始就学 习RTOS,并不符合“由浅入深、循序渐进”的学习规律RTOS本身由于种类繁多,实际使用何种RTOS,一般需要由工作单位确定基础阶段 主要学习RTOS的基本原理与RTOS上的软件开发方法,而不是学习如何设计RTOS。

      以开 发实际嵌入式产品为目标的学习者,不要把过多的精力花在设计或移植RTOS上面正如很 多人使用Windows操作系统,而设计Windows操作系统的只有Microsoft许多人“研究” Linux,但不使用它,浪费了时间人的精力是有限的,学习必须有所选择2.2 硬件与软件的困惑以MCU为核心的嵌入式技术的知识体系必须通过具体的MCU来体现、实践但是, 选择任何型号的MCU,其芯片相关的知识只占知识体系的20%左右,80%左右是通用的软 件硬件及相关知识 80%的通用知识,必须通过具体实践才能获得,所以学习嵌入式技术一 般要选择一个系列的 MCU系统含有硬件与软件两大部分,它们之间的关系如何?有些学者,仅从电子的角度认识嵌入式系统认为“嵌入式系维MCU硬件系统+小程 序”这些学者大多具有良好的电子技术基础知识实际情况是,早期MCU内部RAM小, 程序存储器外接,需要外扩各种I/O,没有像USB、嵌入式以太网等这样较复杂的接口因 此,程序占总设计量比例小于50%,使人们认为嵌入式系统(单片机)是“电子系统”,以 硬件为主,程序为辅但是,随着MCU制造技术的发展,不仅MCU内部RAM越来越大, Flash 进入 MCU 内部改变了传统的嵌入式系统开发与调试方式,固件程序可以更方便地调 试与升级,许多情况下与开发PC机程序的方便程度相差无几,只不过开发环境与运行 环境不是同一载体而已。

      这使得嵌入式系统的软件硬件设计方法发生了根本变化有些学者,仅从软件开发角度认识嵌入式系统,甚至仅从嵌入式操作系统认识嵌入式系 统这些学者大多具有良好的计算机软件开发基础知识,认为硬件是生产厂商的事他们没 有认识到,嵌入式系统产品的软件与硬件均是需要开发者设计的笔者常常接到一些关于嵌 入式产品稳定性的咨询,发现大多数是由于软件开发者对底层硬件的基本原理不理解特别 是有些功能软件开发者,过分依赖于底层硬件的驱动软件,自己对底层驱动原理知之甚少 实际上,一些功能软件开发者,名义上在做嵌入式软件,其实仅仅是使用嵌入式编辑、编译 环境而已,本质与开发通用PC机软件没有两样而底层硬件驱动软件的开发,若不全面考 虑高层功能软件对底层硬件的可能调用,也会使封装或参数设计得不合理或不完备,导致高 层功能软件调用困难可以看出,若把嵌入式系统的开发孤立地分为硬件设计、底层硬件驱 动软件设计、高层功能软件设计,那么一旦出现问题,就可能难以定位实际上,嵌入式系 统设计是一个软件、硬件协同设计工程,不能像通用计算机那样,软件、硬件完全分开来看, 而要在一个大的框架内协调工作学习嵌入式系统是以软件为主还是以硬件为主,或者如何选择切入点,如何在软件与硬 件之间取得平衡?对于这个困惑的建议是:要想成为一名真正的嵌入式系统设计师,在初学 阶段,必须打好嵌入式系统的硬件与软件基础。

      以下是从事嵌入式系统设计二十多年的美国 学者John Catsoulis在《Designing Embedded Hardware》一书中关于这个问题的总结:嵌入 式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软 件;同样,没有对软件的理解也不可能设计好嵌入式硬件2.3 片面认识嵌入式系统嵌入式系统产品种类繁多,应用领域各异在第 1 部分中,把嵌入式系统的应用范围粗 略分为电子系统的智能化与计算机应用的延伸两大类从初学者角度,可能存在分别从这两 个角度片面认识嵌入式系统的问题因此,一些从电子系统智能化角度认识嵌入式系统的学 习者,可能会忽视编程结构、编程规范、软件工程的要求、操作系统等知识的积累另一些 从计算机应用的延伸角度认识嵌入式系统的学习者,可能会把通用计算机学习过程中的概念 与方法生搬硬套到嵌入式系统的实践中,忽视嵌入式系统与通用计算机的差异实际上,在嵌入式系统学习与实践的初始阶段,应该充分了解嵌入式系统的特点,根据 自身的已有知识结构,制定适合自身情况的学习计划目标应该是打好嵌入式系统的硬件与 软件基础,通过实践,为成为良好的嵌入式系统设计师建立起基本知识结构。

      学习过程中, 具体应用系统可为实践载体,但不能拘泥于具体系统,应该有一定的抽象与归纳例如,初 学者开发实际控制系统时没有使用实时操作系统,但不要认为实时操作系统不需要学习又 例如,初学者可以一个带有实时操作系统的样例为蓝本进行学习,但不要认为任何嵌入式系 统都需要实时操作系统,甚至为一个十分简明的实际系统加上不必要的实时操作系统因此, 片面认识嵌入式系统,可能导致学习困惑应该根据实际项目需要,锻炼自己分析实际问题、 解决问题的能力这是一个长期的学习与实践过程,不能期望通过短期培训完成整体知识体 系的建立,应该重视自身实践,全面地理解嵌入式系统的知识体系2.4 入门芯片选择的困惑嵌入式系统的大部分初学者需要选择一个微控制器(MCU )进行入门级学习,面对众 多厂家生产的微控制器系列,往往不知如何是好首先是关于位数问题,目前主要有8位、16位和32位MCU不同位数的MCU各有 应用领域,这一点与通用微机有很大不同例如做一个遥控器,不需要使用32位MCU,否 则MCU芯片价格就已经超过遥控器价格需求对于首次接触嵌入式系统的学习者,可以根 据自己的知识基础选择入门芯片的位数建议大多数初学者选择8位MCU作为快速入门芯 片,了解一些汇编与底层硬件知识,之后再选16位或32位芯片进行学习实践。

      关于芯片选择的另一个误区是认为有“主流芯片”存在,嵌入式系统也可以形成芯片垄 断这完全是一种误解,是套用通用计算机系统的思维模式,而忽视了嵌入式系统应用的多 样性关于学习芯片选择还有一个误区,即误认为选择工作频率高的芯片进行入门学习,更先 进实际上,工作频率高可能给初学者带来不少困难实际嵌入式系统设计不是追求芯片位数、工作频率、操作系统等因素,而是追求稳定可 靠、维护、升级、功耗、价格等指标初学者选择入门芯片,是通过某一MCU作为蓝本, 获得嵌入式系统知识体系的通用基础其基本原则是:入门时间较短、硬件成本较低,知识 要素较多,学习难度较低3 基础阶段的学习建议基于以上讨论,下面对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议:① 嵌入式系统软件硬件密切相关,一定要打好软硬件基础其实,只要找到正确的方法, 加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统② 选择一个芯片及硬件评估板(入门芯片最好简单一点,例如8位MCU)、选择一本好书 (最好有规范的例子)、找一位好老师(最好是有经验且热心的)硬件评估板的价格一定要在 1000 元以下,不要太贵,最好能有自己动手的空间。

      不花一分硬件钱想要学好嵌入式系 统不实际,因为这是实践性很强的学科好书,可以让人少走弯路,不被误导好老师也可 以是做过一些实际项目的学长(一定要找做过几个成功项目的学长或老师做指导,否则经验 不足也可能误导),有教师指导,学习进程会加快(人工智能学科里有个术语叫无教师指导 学习模式与有教师指导学习模式,无教师指导学习模式比有教师指导学习模式复杂许多)③ 许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了只要深入理解 MCU 的硬件 最小系统,对I/O 口、串行通信、键盘、LED、LCD、SPI、I2C、PWM、A/D (包括一些传 感器)、D/A等逐个实验理解,逐步实践,再通过动手做一个实际的小系统,底层硬件基础 就有了各个硬件模块驱动程序的编写是嵌入式系统的必备基础学习嵌入式系统的初期, 这个过程是必须的④ 至于嵌入式实时操作系统RTOS, —定不要一开始就学,这样会走很多弯路,也会使你 对嵌入式系统感到畏惧等你软件硬件基础打好了,再学习就感到容易理解实际上,许多。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.