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。
学习嵌入式系统是以软件为主还是以硬件为主,或许怎么挑选切入点,怎么在软件与硬件之间获得平衡?关于这个困惑的主张是:要想成为一名真实的嵌入式系统规划师,在初学阶段,有必要打好嵌入式系统的硬件与软件根底。以下是从事嵌入式系统规划二十多年的美国学者JohnCatsoulis在《Designing Embedded Hardware》一书中关于这个问题的总结:嵌入式系统与硬件严密相关,是软件与硬件的综合体,没有对硬件的了解就不或许写好嵌入式软件;相同,没有对软件的了解也不或许规划好嵌入式硬件。
2.3 片面知道嵌入式系统
嵌入式系统产品品种繁复,运用范畴各异。在第1部分中,把嵌入式系统的运用规模大略分为电子系统的智能化与计算机运用的延伸两大类。从初学者视点,或许存在别离从这两个视点片面知道嵌入式系统的问题。因而,一些从电子系统智能化视点知道嵌入式系统的学习者,或许会忽视编程结构、编程标准、软件工程的要求、操作系统等常识的堆集。另一些从计算机运用的延伸视点知道嵌入式系统的学习者,或许会把通用计算机学习进程中的概念与办法生搬硬套到嵌入式系统的实践中,忽视嵌入式系统与通用计算机的差异。
实践上,在嵌入式系统学习与实践的初始阶段,应该充沛了解嵌入式系统的特色,依据本身的已有常识结构,拟定合适本身状况的学习方案。方针应该是打好嵌入式系统的硬件与软件根底,经过实践,为成为杰出的嵌入式系统规划师树立起根本常识结构。学习进程中,详细运用系统可为实践载体,但不能拘泥于详细系统,应该有必定的笼统与概括。例如,初学者开发实践操控系统时没有运用实时操作系统,但不要以为实时操作系统不需求学习。又例如,初学者能够一个带有实时操作系统的样例为蓝本进行学习,但不要以为任何嵌入式系统都需求实时操作系统,乃至为一个非常简明的实践系统加上不用要的实时操作系统。因而,片面知道嵌入式系统,或许导致学习困惑。应该依据实践项目需求,训练自己剖析实践问题、解决问题的才能。这是一个长时间的学习与实践进程,不能希望经过短期培训完结全体常识系统的树立,应该注重本身实践,全面地了解嵌入式系统的常识系统。