-
-
xyd2018edu | 当前状态:在线
总积分:41 2024年可用积分:0
注册时间: 2018-08-06
最后登录时间: 2018-11-03
-
这样来讲嵌入式,真够透彻!
xyd2018edu 发表于 2018/8/6 11:31:05 1438 查看 1 回复 [上一主题] [下一主题]
手机阅读
看到很多人,特别是初学者对嵌入式感兴趣,但又十分困惑, 因此,我觉得有必要抽空写些东西来“普渡众生”,当然我不是佛,用“普渡众生”这个词不大合适,但一时也找不到合适的词了,先将就一下吧。
还有就是别叫我大神, 我不是大神,一介草民而已,只不过暂时在这方面懂得比有些人多一点而已,其它方面,他们比我懂,因此,大家是平等的。
既然是一介草民,因此,我也不打算遵循那么多条条框 框的限制了。我平生最讨厌教科书以及其它一些所谓“老师”文邹邹的说教,因此,我打算用草民都能听懂的话来写这个嵌入式系列的东西,如果用这种方式你能把嵌入式搞明白的话,从一个侧面也说明嵌入式其实并不是相象中的那么难,当然也不简单。什么是嵌入式技术? 简单通俗直白的说:就是实现嵌入式系统的技术。
那什么是嵌入式系统?
网上或书上泛滥成灾的定义是:嵌入式系统是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。
看起很复杂很抽象,其实就两点:
第一,嵌入式系统是一个计算机系统;
第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。
也就是说,嵌入式系统说白了,就是针对某个应用的计算机系统!
其它什么的:软硬件可裁减的,对体积、功耗、成本等等有严格要求的这堆修饰词,是做好一个嵌入式系统所需要考虑的因素,注意是做好,做好跟做出来是两码事,当然,真要做好一个嵌入式系统,考虑这些还远远不够,还有其它很多的需要考虑。
PC或笔记本电脑是一个计算机系统,只不过是一个通用的计算机系统。通用的意思,是指没有特定的用途,什么都可以干,比如你可以拿笔记本来上网,来听歌,来看电影,来看照片,甚至还可以开发程序,做服务器等等,反正你想干什么就干什么,没有强制的特定得用途。因此,是通用的,但嵌入式系统是专用的。
怎么来理解这个专用呢?专用就是针对某个特定的用途。
举例:
刚才不是说在PC上可以看照片吗?把看照片的应用扣出来,做成一个计算机,就是针对某个应用的计算机了,作出来后,这个计算机叫什么名字?叫数码像框,电脑城一堆一堆的。按照刚才说的定义,不难看出,数码像框是嵌入式系统!
把听歌的应用扣出来,做成一个计算机,这个计算机叫什么?叫mp3播放器。mp3播放器是针对听音乐的计算机,因此,mp3播放器也是嵌入式系统!
把看电影的应用扣出来,做成一个计算机,这个计算机叫什么?叫mp4播放器。mp4播放器是针对看电影的计算机,因此,mp4播放器也是嵌入式系统!
从这里,我们可以看得出来PC和嵌入式的一个大致区别了,对嵌入式系统应该也有个大致的印象了。
但是不是说,嵌入式系统就只能基于PC来应用呢?
不是,如果只是这样的话,嵌入式就没有存在的必要了,除了来自PC的应用外,嵌入式系统更N的应用,应该就是除PC外的其它各行各业了! 我们吼了好多年的信息化社会,信息化社会,什么是信息化社会? 我认为信息化社会不是指能上个网就是信息化社会,而是所有东西都数字化、信息化,那才叫信息化社会,这个,应该就是嵌入式的用武之地了!
还是先从每个人都见过的东西入手来说,这样你好理解!
POS机大家应该都见过把,就是去超市,去家x福和沃x玛买东西时结账收银的那个东西。哪个东西就是POS机,典型的嵌入式系统: 首先,POS机确实是一个计算机,有主板有CPU有操作系统有软件,具备计算机的核心特征,因此是一个计算机。其次,它是针对一个专门应用的计算机,这个专门应用就是结账收银! 按照我们之前对嵌入式系统的定义,不难理解,POS机就是一个嵌入式系统!
我们把这个POS机(先说原始的大头的POS机)跟PC比较一下。大家对PC都很熟,因此,以PC为参照和基准进行比较!
我们从硬件和软件两方面来比较:
先说硬件:PC上的硬件有哪些呢?有CPU,内存,显卡,声卡,硬盘,网卡,键盘,鼠标等东西,如果我们要参照PC来做一个POS机的话,该怎么做呢?
看看POS机上都需要哪些东西:CPU,内存是必须的,网卡、显卡和键盘应该是要的,声卡和鼠标应该就没太大的必要了。因此,如果要基于PC来做POS机的话,就要去掉声卡和鼠标,同时,增加一个显示屏(pos机有两个屏的),一个打印机。
去掉一些硬件,加一些硬件,这就是硬件可裁减。
硬件要工作,是需要软件支持的,至少需要驱动支持,因此,去掉一些硬件添加一些硬件,软件也必须跟着要去掉一些,添加一些,这就是软件可裁减, 加一起,就是嵌入式系统定义里面的那句话了:嵌入式系统是针对某个应用,软硬件可裁减的,xxxxxx的计算机系统。可裁减的意思理解了吧?
再说成本,这个非常敏感。简单举个例你就一下明白了: 假如你是苹果公司的老板,一年卖了1000万部IPHONE,如果iphone的某个元器件能够省10块钱,卖1000万部就节省1个亿,节省出来的钱就相当于是赚的钱,如果实在不想赚钱的话,拿去给员工发奖金也好阿!
因此,嵌入式设备对成本是非常敏感的!
基于对成本敏感的这一点,你要明白: 我们做嵌入式产品,不是哪个CPU 牛X 就用哪个CPU,而是要综合多方面的因素来选择,arm9能搞定的,就不用arm11,就不用a8,就不用a9。不选贵的,只选对的,然也!
最后,再说一下怎么来学习嵌入式?
在学习嵌入式之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。
C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。
以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。
更多嵌入式学习,欢迎咨询余工Q 二八五九七八零二零三