Chinaunix首页 | 论坛 | 博客
  • 博客访问: 801915
  • 博文数量: 455
  • 博客积分: 9776
  • 博客等级: 中将
  • 技术积分: 5870
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 23:23
文章分类

全部博文(455)

文章存档

2011年(455)

分类: LINUX

2011-04-20 22:30:28

一、 嵌入式系统的定义

根据网络上搜索到的关于嵌入式系统的定义,结合自己对嵌入式系统的理解,把嵌入式系统定义如下:

1 嵌入式系统简单的说就是面向特定应用设计的专用计算机系统;

2、嵌入式系统与普通的PC或者notebook不同,嵌入式系统的外形尺寸、功耗、外部适配器等各种特征必须满足应用的要求和限制;

3 嵌入式系统的软件包括操作系统烧录在一块电路板上;

4、使用低功耗的X86级别的CPU,采用模块化的设计,配置了最基本的计算机周边配备而制成。这种计算机通常采用Windows操作系统;

5 嵌入式系统的CPU可以是:4位、8位、16位、32位;

6 嵌入式系统应用广泛,诸如:

1 小家电

2 汽车

3 电梯

4 电视

5 录像机或者VCDDVD

6 mp3mp4

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/oslinuxvxworkswincedos。。。

8、嵌入式系统更多的表现为SoC的特点,也就是把整个系统都集成在一个芯片上,例如,ATMELarm7的芯片91sam7x128/256等;用户可以获得廉价而功能强大的嵌入式系统;

 

二、 最正确的学习道路 - 8mcucanbusARM7

第一步:熟悉8mcu

个人的看法是,学习嵌入式的技术有个脉络:8mcu51或者avr...+can2.0Barm7arm9,学习的时候可以按照这个脉络来进行;

作为低端的嵌入式系统,选择8mcu作为入门是比较适中的,而8mcu中,相比picavrfreescale等等8位单片机来说,又以选择51核的单片机作为学习8mcu的首选来更加合适。当然这个观点是仁者见仁智者见智;如果需要理由的话,那么也许以下这些理由可以作为参考:

1 51上积累了大量的优秀的代码和其它资源;网络上这样的资源太多了,几乎就是不花钱的;

2.生产51内核的单片机的厂家很多,比如:ATMEL、华邦、LG、飞利浦、STC(宏晶科技)、TI

3 51单片机在细分低端市场,面向不同的行业应用,厂家推出了不同的产品,如LPC900系列,STC12CXXXX系列;在功能、价格、功耗,体积,封装、抗干扰等方面来满足行业用户的需求;例如,现在的51单片机越来越多的集成了A/DD/ASPII2CPWM、内部时钟、看门狗、eepromISP/IAP等等,已经跟传统的ATMEL89C51/52有了很大的差别!功能越来越强大的同时成本越来越低,而且不担心某个厂家缺货...

第二步:熟悉can2.0A/B,在精通51的基础上,熟悉can2.0A/B

为什么是canbus而不是modbus busbitbus

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位)

三、 直奔主题 - 不要穿着棉袄洗澡

学什么很重要,没有必要穿着棉袄洗澡,直奔主题,要学就学最有用的东西。

比如单片机,学什么型号?市场上的单片机,有51AVRPICfreescale等不同的系列,把任何一款单片机学会了玩通了那都是很不错;

但是我个人认为还是51系列的单片机在中国使用最多,去中发问问哪款单片机出货量最大就知道啦;

学习51不也一样能了解计算机的基础知识?而学好了51毕业出去就能生存;

大家都知道485总线要想可靠工作非专家不可,而现在canbus作为更加可靠性能更加卓越的总线技术,节点数量每年递增;可以说,

51+canbus能够让你如虎添翼;

那么,是不是去学习canbus要能获得更加远大的前途而不必在485上浪费宝贵的青春?答案显然是前者。

毕业之前的大学n年+毕业设计就是为了迈出就业的第一步;第一步很重要。

人生不要有断点,一步接着一步,现在迈出的一步就是为了下一步做好准备,甚至为了比较长远的以后

这是一个初学者常问的问题,也是初学者问嵌入式该如何入门的根源。我感觉有两个方面,偏硬和偏软.我不认为嵌入式开发

软件占绝对比重,相反,软硬件都懂,才是嵌入式高手所应该追求的,也是高手的必由之路。

硬件道路:

第一步: pcb设计,一般为开发板的电路裁减和扩充,由开发板原理图为基础,画出PCB和封装库,设计自己的电路。

第二步: SOPC技术,一般为FPGA,CPLD开发,利用VHDL等硬件描述语言做专用芯片开发,写出自己的逻辑电路,

基于ALTERXILINUXFPGA做开发。

第三步: SOC设计,分前端,后端实现,这是硬件设计的核心技术:芯片设计.能做到这步,已经不属于平凡的技术人员。

软件道路:

第一步:bootloader的编写,修改, 通过这步熟悉ARM硬件结构,学习ARM汇编语言,阅读ARM的芯片手册,感觉就是像操作51单片机一样操作ARM芯片.这一步最好的两个参考资料就是:芯片手册和bootloader源代码。

第二步:系统移植, 驱动开发, 我只做过linux方向,所以也推荐学习嵌入式linux系统,作为标准体系,他开源而且可以获得大量学习资料.操作系统是整个计算机科学的核心,熟悉 kernel实属不易,kernel, 驱动开发的学习,没有什么捷径,只有多读代码,多写代码,熟悉系统API.. understanding linux kernel , linux device driver 都是不可多得的好书,值得一看。

第三步:应用程序的编写,各种GUI的移植,qt , minigui都被大量采用,两种思想都类似,熟悉一种就可以。

软件道路中,驱动,系统应该是最深入的部分,不是短时间可以掌握的,需要有勇气和耐心。嵌入式开发,软硬结合,因为硬件条件比PC差很多,所以肯定会遇见不少问题,因此实践的勇气更加重要.有问题就解决问题,无数次的实验,也许是解决问题的必由之路。

阅读(839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~