|
学习有捷径吗?俺认为是有的,正确的道路就是捷径。
就好象是爬山,如果有导游图,那就能找到一条最正确的路线;如果没有导游图,自己瞎琢磨,东问西问,也未必能找到最佳的路线。
有时候回首前尘,会谓叹,要是当时我这样做就好了;这也说明了人生会有一个最优解。
嵌入式系统的学习也是一样,作为电子专业或者其它专业的学生来说,想要把嵌入式系统的学习搞好,走一条成功的人生道路,那应该怎么去做呢?俺试着分析看看。
当然人生的道路很多很多,嵌入式不可能是唯一的道路,也绝对不是最好的道路;这些都是因人而异的;
如果你没有什么别的资源,俺主要指的是人脉,资金,需要靠技术吃饭,正好你学的是电子、自动化、通讯...这样跟嵌入式相关的专业,又正好喜欢技术,那么可以考虑把嵌入式当作自己的傍身之技来学习。这时寻求嵌入式系统学习的最优解就有了意义。
一、 嵌入式系统的定义
根据网络上搜索到的关于嵌入式系统的定义,结合自己对嵌入式系统的理解,把嵌入式系统定义如下:
1、 嵌入式系统简单的说就是面向特定应用设计的专用计算机系统;
2、 嵌入式系统与普通的PC或者notebook不同,嵌入式系统的外形尺寸、功耗、外部适配器等各种特征必须满足应用的要求和限制;
3、 嵌入式系统的软件包括操作系统烧录在一块电路板上;
4、 使用低功耗的X86级别的CPU,采用模块化的设计,配置了最基本的计算机周边配备而制成。这种计算机通常采用Windows操作系统;
5、 嵌入式系统的CPU可以是:4位、8位、16位、32位;
6、 嵌入式系统应用广泛,诸如:
1) 小家电
2) 汽车
3) 电梯
4) 电视
5) 录像机或者VCD、DVD
6) mp3、mp4
7) 工业控制
8) 医疗设备
9) 卫星
10) 电话
11) PDA
12) 飞行系统等等
13) ……
7、 嵌入式系统的体系结构:
1) CPU
2) RAM
3) ROM或者flash ram
4) AD
5) DA
6) 人机界面(例如按键+LED/LCD/彩色液晶显示器/)
7) I/O
8) Usart
9) USB
10) CAN
11) 以太网
12) 嵌入式的操作系统,例如:uc/os、linux、vxworks、wince、dos。。。
8、 嵌入式系统更多的表现为SoC的特点,也就是把整个系统都集成在一个芯片上,例如,ATMEL的arm7的芯片91sam7x128/256等;用户可以获得廉价而功能强大的嵌入式系统;
二、 最正确的学习道路 - 从8位mcu到canbus到ARM7
第一步:熟悉8位mcu
个人的看法是,学习嵌入式的技术有个脉络:8位mcu(51或者avr...)+can2.0B+arm7+arm9,学习的时候可以按照这个脉络来进行;
作为低端的嵌入式系统,选择8位mcu作为入门是比较适中的,而8位mcu中,相比pic、avr、freescale等等8位单片机来说,又以选择51核的单片机作为学习8位mcu的首选来更加合适。当然这个观点是仁者见仁智者见智;如果需要理由的话,那么也许以下这些理由可以作为参考:
1. 51上积累了大量的优秀的代码和其它资源;网络上这样的资源太多了,几乎就是不花钱的;
2. 生产51内核的单片机的厂家很多,比如:ATMEL、华邦、LG、飞利浦、STC(宏晶科技)、TI、…
3. 51单片机在细分低端市场,面向不同的行业应用,厂家推出了不同的产品,如LPC900系列,STC的12CXXXX系列;在功能、价格、功耗,体积,封装、抗干扰等方面来满足行业用户的需求;例如,现在的51单片机越来越多的集成了A/D、D/A、SPI、I2C、PWM、内部时钟、看门狗、eeprom、ISP/IAP等等,已经跟传统的ATMEL的89C51/52有了很大的差别!功能越来越强大的同时成本越来越低,而且不担心某个厂家缺货...
4. 。。。。(还在不断增加之中)
第二步:熟悉can2.0A/B,在精通51的基础上,熟悉can2.0A/B
为什么是canbus而不是modbus bus、bitbus?
CAN是德国Bosch 公司为解决现代车辆中众多的控制和数据交换问题,开发出一种CAN(Controller Area Network)现场总线通信结构。其主要特点是:
1. 8字节的短帧传送,故传输时间短、抗干扰性强;
2. 高速,最高速度可达1Mbit/s;
3. 多主方式,多主之间又可以分成是主节点和次节点;各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活;发送的时候总线自动仲裁主次;主节点占有优先权;
4. 可以做到全区广播、分区广播和点对点通讯;
5. Can控制器自动过滤帧号不符的帧;大大减轻了CPU的负担;
6. 具有多种错误校验方式如CRC及其他校验措施,数据出错率极低;而且在严重错误的情况下,节点会自动离线,避免影响总线上其它节点;Rs485经常是一个节点影响了总线上所有的节点;
7. 采用无损坏的仲裁技术;
作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN总线已被广泛应用于各个行业之中。大致有以下这些行业:
1、 汽车电子
2、 自动控制
3、 智能大厦
4、 电子系统
5、 纺织
6、 智能仪表
7、 医疗系统
8、 电梯
9、 安防监控
10、 电源
11、 运动控制
12、 …等各领域中,取代了原来的落后的RS485的通讯方式。
bitbus/modbus在物理层上都是Rs485的。
第二步:熟悉ARM7,掌握ARM这个超级单片机(32位)
三、 直奔主题 - 不要穿着棉袄洗澡
学什么很重要,没有必要穿着棉袄洗澡,直奔主题,要学就学最有用的东西。
比如单片机,学什么型号?市场上的单片机,有51、AVR、PIC、freescale等不同的系列,把任何一款单片机学会了玩通了那都是很不错;
但是我个人认为还是51系列的单片机在中国使用最多,去中发问问哪款单片机出货量最大就知道啦;
据说有些大学现在还在教授Z80,在论坛上争论起来,有些人支持,有些人反对;支持的人认为这是一款很好的原型机,可以学到很多计算机的原理;
但是对于嵌入式系统的学习者,一款已经过时的技术学它做什么?难道学了不能致用是对的?
学习51不也一样能了解计算机的基础知识?而学好了51毕业出去就能生存;
大家都知道485总线要想可靠工作非专家不可,而现在canbus作为更加可靠性能更加卓越的总线技术,节点数量每年递增;可以说,51+canbus能够让你如虎添翼;
那么,是不是去学习canbus要能获得更加远大的前途而不必在485上浪费宝贵的青春?答案显然是前者。
毕业之前的大学n年+毕业设计就是为了迈出就业的第一步;第一步很重要。
人生不要有断点,一步接着一步,现在迈出的一步就是为了下一步做好准备,甚至为了比较长远的以后...
四、 把嵌入式系统分成模块学习 - 庖丁怎样解牛?
拿到一个电路设计的任务的时候,或者拿到一块完整系统的电路板的时候,怎样去分析它的系统构成呢?
作为一个电子系统,它的构成通常是:
1. 单片机最小系统
2. 配置(内存、时钟、看门狗、eeprom)
3. 开关量输入
4. 开关量输出
5. 模拟量输入
6. 模拟量输出
7. 人机界面(按键+液晶显示/LED显示)
8. 通讯接口和协议
因此设计的时候,或者分析的时候,要按照这个分类来选择。
举个例子:开关量的输入输出的扩展,有以下的方法:
1、 串口扩展
2、 并行扩展
那么,在系统设计的时候,到底是使用串行扩展还是并行扩展,就需要权衡性能和价格,而选择一种最合适的扩展方法;
在《从51初学者到电子工程师》一书中,将把这些知识点列表出来。
在这个基础上,按照这个思路,您再去构筑自己的知识体系。
其实,任何一门学问,难得就是入门;而入门,就是要有一个完整的知识体系;一开始这个知识体系仅仅是一个个点,到后来就能成为一套完整的体系,知识的网越织越密。
五、 尽可能获得更多的信息 - 站在前人的肩膀上
当您拿到一个设计任务的时候,怎么入手呢?
要把这个任务按照模块分解,再充分利用网络上的资源,找到现成的或者类似的解决方案。
试举一例:
《基于CAN总线的智能I/O读写模块》
当你拿到这个任务的时候怎么着手呢?
1、 您会想到,哦can总线是什么东西啊,不知道;不过没有关系,狗狗之;
哈哈,结果出来啦,原来是周立功先生推的can总线啊,知道知道;把周立功网站上的有关can的资料都下载下来学习;
|
|