首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式系统开发要点全面剖析

嵌入式系统开发要点全面剖析

无疑嵌入式系统开发是目前相当热门的领域,因为它涉及到的范围实在是太广了,从消费电子到工业应用,从8位的单片机到32位处理器,嵌入式系统俨然成为不可缺少的一环,且有愈演愈热之势。那么该如何学习和开发嵌入式系统呢?需要具备哪些知识和技能?需要怎么去提高?首先声明,我并非嵌入式方面的高手,远远不是,只是接触过一些嵌入式系统的开发,参加过一点培训,并跟高手有过一些交流,在此把我所知道的东西呈现给大家,不求深,但求全而系统,力求给开发者和学习者一些方向性的建议和指导,如果能给广大热爱嵌入式开发的朋友一些启发和帮助,我愿足矣!
    8位的单片机大家都比较熟悉,在此不再赘述,下面主要谈一下32位机的开发,而且我会主要以linux操作系统为主来阐述。广大初学者最常问的一个问题可能就是:该如何学好嵌入式系统呢?这就跟过去大学里面过英语四六级时问到的一样:该如何学好英语呢?其实同英语一样,嵌入式系统一定要去在实战中演练,要去用,在实践的过程中解决问题,获得经验,慢慢才能成为一个高手,如果只是学而没有练,永远都只能是纸上谈兵,一遇到实际问题便束手无策。
    嵌入式系统开发包括这几个方面:硬件,底层软件,应用软件。在这几个方面里,硬件和底层软件结合比较紧密,底层软件和应用软件又交互影响,所以嵌入式系统的硬件和软件结合比较紧密。公司一般也不会硬件人员、底层软件人员和应用软件人员三拨人分的很清楚,常常是有些人硬件加底层一块做,应用有人单独做,或者应用加底层一块做,这个可以灵活调配,当然你如果能力强,也可以整个硬件加底层加应用都拿下,但在公司里,就算你都能做,时间上也来不及,产品开发周期都比较短。一般比较好的模式是有人负责硬件和底层软件,有人负责应用软件。负责硬件和底层的人员以电子方面的硬件类专业毕业的人为多,而应用软件人员以计算机等偏软的专业为多。当然专业不是问题,我只是陈述一下大概的现实情况,主要还是看你自己的兴趣、能力、经验积累和机会,
    下面我分开叙述一下这几方面的开发要点。
    嵌入式系统的硬件比较简单,通常是你选定一款处理器之后,要找到这款处理器的DEMO板(即开发板)的电路图。比如你选的三星的S3C2410,那么三星公司自己会做一款S3C2410的开发板,当然你不必向三星买这块开发板,因为芯片原厂的开发板价格都比较昂贵,如果你选定了这颗芯片,可以向三星索取它的开发板的资料,包括硬件和底层软件资料。当然为了加快开发速度,你可以购买一个国内的厂商做的开发板,因为国内会有很多开发板厂商依据三星官方的这款S3C2410的开发板的资料,经过修改和增减,做成比较实用一些的板子,而且价格会低很多。当然你也可以不买开发板,直接去网上搜索一些资料,对于做的越成熟用的越多的处理器,网上的资料就越多,你如果选的比较冷门的处理器,网上的资料就会很少甚至没有,这时你就只能去购买开发板或者向原厂索取一些资料了。对于象S3C2410这样的处理器,网上你可以找到它的开发板的原理图、PCB图以及底层软件,总之应有尽有,因为这款处理器已经做滥了,传到网上的资料也相当多。
    刚才说到的是硬件开发方法的问题,到底具体的嵌入式硬件包含哪些东西呢?说穿了就是最小系统+外围接口。最小系统也就是必不可少的部分,小到不能再小了,再少东西就不能工作了。具体包含以下元件:处理器,晶振,电源,程序存储器(ROM或者FLASH),数据存储器(RAM)。外围接口非常丰富,多种多样,要视具体应用增加或者删减。
    对于最小系统很好解释,晶振你可以用无源晶振或者有源晶振都可以,一般处理器的电源至少有两种,一个是外围接口电压,或者叫I/O电压,一个是核心电压,也叫core电压。外围接口电压可能有多种,一般是3.3V、2.5V等,核心电压一般会低一些,比如1.8V、1.5V、1.3V等等,不同的处理器的核心电压也会不同。一般的嵌入式处理器都会集成有RAM和ROM的接口,RAM一般是SDRAM,ROM一般是FLASH.你SDRAM和FLASH的型号选定之后,和处理器的提供的接口相连就可以了。
    外围接口丰富多样,每一个嵌入式平台需要的接口也不尽相同。主要包括:串口(RS232,RS485),USB口,网口,I2C接口,SPI接口,AUDIO接口,LCD接口等。这些是比较常用的,很多平台基本上都会包括这些接口。其他一些诸如蓝牙,WIFI,PCI等等,在一些平台上也会提供。一般是处理器里面集成了这些总线接口的控制器(controller),你直接把你的接口设备连到处理器上即可。比如对于串口,几乎所有的嵌入式处理器里面都会集成有几个UART(通用异步收发器),你只需要接一个TTL——RS232的电平转换芯片即可完成串口的设计,当然对于USB口,处理器里面会集成USB Controller,你可以直接把USB接口引出。
    对于嵌入式系统来说,核心在软件部分,硬件难度并不大,一般出问题也相对比较少。你只要在官方的DEMO板(或者国内某些开发板厂商提供)的原理图的基础上修改一下,然后布成你自己的板子就可以了。当然布线也有些地方要注意一下,对于SDRAM,其地址线和控制线要尽量等长,其数据线也要尽量等长,当然对于低速的SDR SDRAM来说,频率一般为100/133MHz,这个等长可以做的不严格,但是也不要相差太多。但对于高速的DDR SDRAM来说,布线要注意的就更多了,等长要做的非常严格。一般对于arm平台,多数支持的是SDR SDRAM,很多POWPC和coldfire平台会支持DDR SDRAM.只要你完整调试一块板子,基本就掌握了硬件方面的问题,其他的嵌入式平台在硬件方面都很类似。嵌入式系统设计的精华还在于它的软件方面,接下来我会尝试作一下叙述。
返回列表