嵌入式系统作业

发布 2020-02-28 10:09:28 阅读 9884

嵌入式系统的应用范围可以粗略分为两大类:电子系统的智能化(工业控制、现代农业、家用电器、汽车电子、测控系统、数据采集等),计算机应用的延伸(***、手机、通信、网络、计算机外围设备等)。从这些应用可以看出,要完成一个以mcu为核心的嵌入式系统应用产品设计,需要硬件、软件及行业领域相关知识。

硬件主要有mcu的硬件最小系统、输入/输出外围电路、人机接口设计。软件设计有固化软件的设计,也可能含pc机软件的设计。行业知识需要通过协作、交流与总结获得。

下面分析可能存在的几个常见问题。

1 操作系统的困惑。

首先把嵌入式系统软件与硬件基础打好了,再根据实际需要,选择一种实时操作系统(rtos)进行学习实践。要记住:rtos是开发某些类嵌入式产品的辅助工具,是手段,不是目的;许多类嵌入式产品,并不需要rtos。

所以,一开始就学习rtos,并不符合“由浅入深、循序渐进”的学习规律。

rtos本身由于种类繁多,实际使用何种rtos,一般需要由工作单位确定。基础阶段主要学习rtos的基本原理与rtos上的软件开发方法,而不是学习如何设计rtos。以开发实际嵌入式产品为目标的学习者,不要把过多的精力花在设计或移植rtos上面。

正如很多人使用windows操作系统,而设计windows操作系统的只有microsoft。许多人“研究”linux,但不使用它,浪费了时间。人的精力是有限的,学习必须有所选择。

2 硬件与软件的困惑。

以mcu为核心的嵌入式技术的知识体系必须通过具体的mcu来体现、实践。但是,选择任何型号的mcu,其芯片相关的知识只占知识体系的20%左右,80%左右是通用的软件硬件及相关知识。80%的通用知识,必须通过具体实践才能获得,所以学习嵌入式技术一般要选择一个系列的mcu。

系统含有硬件与软件两大部分,它们之间的关系如何?

实际上,一些功能软件开发者,名义上在做嵌入式软件,其实仅仅是使用嵌入式编辑、编译环境而已,本质与开发通用pc机软件没有两样。而底层硬件驱动软件的开发,若不全面考虑高层功能软件对底层硬件的可能调用,也会使封装或参数设计得不合理或不完备,导致高层功能软件调用困难。可以看出,若把嵌入式系统的开发孤立地分为硬件设计、底层硬件驱动软件设计、高层功能软件设计,那么一旦出现问题,就可能难以定位。

实际上,嵌入式系统设计是一个软件、硬件协同设计工程,不能像通用计算机那样,软件、硬件完全分开来看,而要在一个大的框架内协调工作。

学习嵌入式系统是以软件为主还是以硬件为主,或者如何选择切入点,如何在软件与硬件之间取得平衡?对于这个困惑的建议是:要想成为一名真正的嵌入式系统设计师,在初学阶段,必须打好嵌入式系统的硬件与软件基础。

以下是从事嵌入式系统设计二十多年的美国学者john catsoulis 在《designing embedded hardware》一书中关于这个问题的总结:嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计好嵌入式硬件。

3 片面认识嵌入式系统。

嵌入式系统产品种类繁多,应用领域各异。实际上,在嵌入式系统学习与实践的初始阶段,应该充分了解嵌入式系统的特点,根据自身的已有知识结构,制定适合自身情况的学习计划。目标应该是打好嵌入式系统的硬件与软件基础,通过实践,为成为良好的嵌入式系统设计师建立起基本知识结构。

学习过程中,具体应用系统可为实践载体,但不能拘泥于具体系统,应该有一定的抽象与归纳。例如,初学者开发实际控制系统时没有使用实时操作系统,但不要认为实时操作系统不需要学习。又例如,初学者可以一个带有实时操作系统的样例为蓝本进行学习,但不要认为任何嵌入式系统都需要实时操作系统,甚至为一个十分简明的实际系统加上不必要的实时操作系统。

因此,片面认识嵌入式系统,可能导致学习困惑。应该根据实际项目需要,锻炼自己分析实际问题、解决问题的能力。这是一个长期的学习与实践过程,不能期望通过短期培训完成整体知识体系的建立,应该重视自身实践,全面地理解嵌入式系统的知识体系。

4 入门芯片选择的困惑。

嵌入式系统的大部分初学者需要选择一个微控制器(mcu)进行入门级学习,面对众多厂家生产的微控制器系列,往往不知如何是好。

首先是关于位数问题,目前主要有8位、16位和32位mcu。不同位数的mcu各有应用领域,这一点与通用微机有很大不同。例如做一个遥控器,不需要使用32位mcu,否则mcu芯片**就已经超过遥控器**需求。

对于首次接触嵌入式系统的学习者,可以根据自己的知识基础选择入门芯片的位数。建议大多数初学者选择8位mcu作为快速入门芯片,了解一些汇编与底层硬件知识,之后再选16位或32位芯片进行学习实践。

关于芯片选择的另一个误区是认为有“主流芯片”存在,嵌入式系统也可以形成芯片垄断。这完全是一种误解,是套用通用计算机系统的思维模式,而忽视了嵌入式系统应用的多样性。

关于学习芯片选择还有一个误区,即误认为选择工作频率高的芯片进行入门学习,更先进。实际上,工作频率高可能给初学者带来不少困难。

实际嵌入式系统设计不是追求芯片位数、工作频率、操作系统等因素,而是追求稳定可靠、维护、升级、功耗、**等指标。初学者选择入门芯片,是通过某一mcu作为蓝本,获得嵌入式系统知识体系的通用基础。其基本原则是:

入门时间较短、硬件成本较低,知识要素较多,学习难度较低。

基于以上讨论,下面对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议:

嵌入式系统软件硬件密切相关,一定要打好软硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统。

选择一个芯片及硬件评估板(入门芯片最好简单一点,例如8位mcu)、选择一本好书(最好有规范的例子)、找一位好老师(最好是有经验且热心的)。硬件评估板的**一定要在1000元以下,不要太贵,最好能有自己动手的空间。不花一分硬件钱想要学好嵌入式系统不实际,因为这是实践性很强的学科。

好书,可以让人少走弯路,不被误导。好老师也可以是做过一些实际项目的学长(一定要找做过几个成功项目的学长或老师做指导,否则经验不足也可能误导),有教师指导,学习进程会加快(人工智能学科里有个术语叫无教师指导学习模式与有教师指导学习模式,无教师指导学习模式比有教师指导学习模式复杂许多)。

许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解mcu的硬件最小系统,对i/o口、串行通信、键盘、led、lcd、spi、i2c、pwm、a/d(包括一些传感器)、d/a等逐个实验理解,逐步实践,再通过动手做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。

学习嵌入式系统的初期,这个过程是必须的。

至于嵌入式实时操作系统rtos,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学习就感到容易理解。实际上,许多嵌入式应用并不需要操作系统。

也可以根据实际项目需要,再学习特定的rtos。不要被一些嵌入式实时操作系统培训班的宣传所误导,而忽视实际嵌入式系统软硬件基础知识的学习。

要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统。前面说过,嵌入式系统是软件与硬件的综合体。因此,要逐步从mcu的最小系统开始,一点一点理解硬件原理及底层硬件驱动编程方法。

要通过规范的例子,理解软件工程封装、可复用等思想。通过规范编程,积累底层构件(component),也就是一个一个模块;但是要封装得比较好,可复用。

注重实验与实践。这里说的实验主要指通过重复来验证他人的工作,目的是学习基础知识,这个过程一定要经历。实践是自己设计,有具体的“产品”目标。

如果花500元左右,自己做一个具有一定功能的小产品,且能稳定运行1年以上,就可以说接近入门了。

关于入门芯片的选择。不要选太复杂的微控制器作为入门芯片,不能超越学习过程。不要一下子学习几种芯片。

可以通过一个芯片入门,并具有一个实践经验后,根据实际需要选择芯片开发实际产品。注意,不要把微处理器(mpu)与微控制器(mcu)概念相混淆,微处理器只是微控制器的内核。

关于嵌入式操作系统的选择。可以等到具有一定实践基础后,选择一个简单、容易理解原理的嵌入式操作系统进行学习。不要一开始就学习几种操作系统,理解了基本原理,实践中确有实际需要再学习也不迟。

人总是要不断学习的。

关于汇编语言与c语言的取舍。随着mcu对c编译的优化支持,对于汇编语言可以只了解几个必要的语句,而直接使用c语言编程。但必须通过第一个程序理解芯片初始化过程、中断机制、程序存储情况等,区别于pc机程序的内容。

另外,为了测试的需要,最好掌握一门pc机编程语言。

要明确自己的学习目的,并注意学习方法。要明确学习目的是打基础,还是为了适应工作需要而进行的短训。学习方法方面,要根据学习目的选择合适的学习途径,注意理论学习与实践、通用知识与芯片相关知识、硬件知识与软件知识的平衡,要在理解软件工程基本原理基础上理解硬件构件与软件构件等基本概念。

嵌入式式系统作业

目录。摘要 1第一章绪论 2 第二章相关芯片介绍 3 2.1 tms320f28335 3 2.2 加速度传感器adxl345 4 2.3 角速度传感器l3g4200 5 第三章 dsp的i2c通讯原理 6 3.1 adxl345的i2c接口 6 3.2 l3g4200的i2c接口 8 3.3 tm...

嵌入式系统作业

计算机科学与技术学院。计科09 2班。题目 电子产品之嵌入式追踪系统。一 现状。我时常听到说某位同学的手机被盗了或者相机丢了,类似的事情在高校里时有发生。这给同学们造成了严重的损失,而且里面还有很多资料是非常重要的,这一丢失给失主造成的损失更是无法估量,那么我们能否用什么方法来解决此类问题吗?因此我...

嵌入式系统作业

红外接收与发送系统设计。一 红外发送与接收系统硬件构成。红外遥感原理是利用红外线进行信息传递,波长范围 0.76um 1.75um。该系统总体框架图如图1所示,发射机 接收机和数码显示组成。图1 红外发送与接收系统框架图。1.红外发送系统模块。发射码是由引导码,用户码,键码和键码反码构成。通过按键控...