Board logo

标题: 面向嵌入式领域的开源软件 [打印本页]

作者: yuyang911220    时间: 2017-6-16 11:27     标题: 面向嵌入式领域的开源软件

很高兴有机会跟大家一起交流一下关于嵌入式领域的开源软件,我按照目前我了解的一些情况给大家做个介绍。不能包含到题目的方方面面,只能是个人的一些粗浅的认识。开源软件确实是从我开始接触,就是90年代中初期,到现在也有10多年了。但是也很难说对开源软件了解到很透,因为确实发展日新月异,这是我了解到的情况。首先我跟大家介绍一下当前在嵌入式领域内的一些应用,这个可以看出来我们软件有些什么样的特点;接下来会就嵌入式系统中的软件架构层次上介绍一下各层次在面向嵌入式相关的一些软件;最后还有时间的话,给大家介绍一下目前在嵌入式领域做的教学科研工作,和大家分享一下。
    前面已经有很多老师提到嵌入式系统的应用领域,比如说在国防、工控、消费电子等等,其实还有一个很重要的趋势是跟网络结合,这些事我们认为当前嵌入式领域最主要的应用,但是由于领域的差异性很大,也导致了一些软件的区别是很大的。在早期,在军控、航空航天里面,嵌入式系统是相当的广泛,举个简单的例子,在我们国内,像航空航天,我们跟航空航天的一些机构有些联系,我们知道在他们的系统里面,无论是登月,还是载人飞船,还有自己的大飞机,嵌入式软件的身影是无处不在的;另一方面呢,在我们的日常生活中,比如现在比较流行的电子书,这其实也是嵌入新型的软件在里面,还有在家庭方面,我们早期的家庭方面,可能没有关注到太多嵌入式软件的身影,但是现在的一些PSP、手机里面,还包括摄像机等等,软件的作用越来越大,特别是跟Internet互联,这一块已经成为现在嵌入式系统里面重点关注的、软件需要重点去支持的一个方向。说到视频服务器,我跟大家简单介绍一下,不知道大家有没有体会,现在出门基本可以看到到处都有摄像头,摄像头就是通过类似这样一个架构来把摄像头所看到的场景给记录下来,便于事后进行分析,可以这样说目前北京摄像头的比例在世界上都可以排到前三位的。那么怎么能够更好地支持一些视频的处理?这一块也是嵌入式系统比较关注的一个领域。家庭这一块,这个其实是目前在研究方面也是做的比较多的,整个家庭场景里面,实现一个设备级的互联互通,刚才周立功老师也讲到他们企业中设备的互联互通,他的那个场景可能更多在工控里面,在智能家居这个领域,目前也是竞争相当激烈,也有很多的研究成果,后面会给大家介绍一下。这个嵌入式Internet代表了这几年会比较大的发展趋势,怎么能够把嵌入式软件、嵌入式应用和Internet连接起来,跟后端的两个所谓余计算等等结合起来,更方便更有效地服务,这个其实是我们前端和后端越来越紧密地连在一起了。这个不仅是嵌入式软件的问题,还要考虑嵌入式软件和后端服务器软件之间更有效的互联互通,我们上了3G以后,这一块的重要性也越来越突显出来了。这个数字机顶盒,我就跳过去了,其实前几年已经有的概念,目前来说发展的还不是特别快。汽车电子这一块是个很重要的问题,大家都知道,我们开这个会很多都提到“核高基”,其实“核高基”在嵌入式领域重点支持两个,一个就是汽车电子,一个是移动网络。在这两个里面怎么能够发挥软件的作用,使得它的功能可以更大化,更充分体现出来,这一块其实国家也是相当重视,我们的企业在这方面也是做了很多工作。智能玩具和机器人,这个我给大家简单介绍一下为什么这个也很重要,不知道大家关注没有,微软目前专门面向机器人领域提出了它的所谓的集成开发环境,希望把将来robot的发展方向能够控制住,通过它的IDE、编程语言,通过它提供的一系列库等等,这个领域现在看不出很大的前景,但其实,在国外这个方面已经有很热的研究了。包括我们每年在学校都会组织一些国内国外都有机器人比赛,机器人足球赛等等,这都是嵌入式软件在智能机器人领域里的发展。工控这个领域,其实大家很多企业都涉及到这一块,我就不做详细讲解了。但是有一个需要注意的地方,现在的工控领域已经不是一个单独的体系,它需要跟Internet互联,这一点像微软虽然它不做开源,但是它还是支持一些开放的标准,甚至包括开放一些源代码,我觉得也不能一提到开源,就把微软作为一个靶子来打。在学校来讲,对微软还算是一个中立的立场上来说话的。微软还和其他一些企业做DPWS协议,就是希望能在工控领域使得工控设备能够更有效地进行互联互通,这个就类似于早期的UPnP,UPnP协议可能更侧重于家电,嵌入式设备等,但目前还希望能推到设备上去。军事侦察这个领域,大家在一些场合都看到了,在我们国家,无论是在航空航天,其实周立功老师他们更有经验,在我们国内已经承担了一些项目,还有朱明远老师他在航空领域、飞机领域也有他们软件产品的体现。可能由于国内安全或保密的要求,他们公布的信息不多。这是一个日本做的机器人,是个例子,还有火星探路者等等。
   前面给大家简单介绍了当前嵌入式系统应用的领域,我们可以看出有几个特点,嵌入式应用场景是千差万别的,但是也确实朝着互联互通Internet的这么一个方向发展,基于这个趋势,我们来看看现在的一些开源软件。这里面资源确实有限,我也很难进行展开介绍,这是把我了解到的部分内容和大家做个简单的交流。从这个软件架构上来说,它确实从硬件上涉及到一系列的软件,包括协议等等。在硬件这一层通过协议和网络这一层的互联互通,除了TCP/IP协议外,还有一些使用比较广泛的协议,比如ZigBee,Bluetooth等等,这些协议都有相应的软件协议在支持,有了最底层的协议栈支持后,上层的这些软件就可以互联互通了。在这之上,会有一系列的操作系统和更高层的协议,操作系统也是涉及到开源和嵌入式领域内的,有Ecos、RTEMS等,协议有UPnP、Jini、DPWS、IGRS等,那么重点提一下IGRS是我们国内设备级互联互通的协议标准,目前它的基础协议层已经成为国际标准,目前在进行推广,其他的如UPnP、Jini、DPWS是国外一些大的企业自己的标准。再往上是middleware这一层,middleware本身是个比较广义的软件范畴,这里面会提到CORBA、OSGi、DLNA等等,它主要面向工业界和消费电子界服务层或软件层的互联互通。再往上是一些middlewareservice,包括GUI,还有Database、IDE等等,在底层这些支撑软件的支持上才会产生各种各样的应用。那么现在的应用,我觉得主要有两个趋势,一个是跟那个所谓的被控系统绑定,第二个是跟Internet绑定,这两个趋势会导致一些新的厂商、新的应用、新的技术。
    我再简单介绍一下相关的OS,由于是开源软件,那么在嵌入式操作系统里面,开源软件也是相当多的。但是做的能够给产业去用的开源操作系统并不是很多,刚才邵老师已经介绍了有μC/OS等,但是要注意的是开放源代码并不就是开源,它还和license相关,刚才邵老师也介绍了有关license的情况,如果用于商业里面,也是需要付费的。(呵呵其中的意思大家体会一下)但是这里的一些OS即使用于商业里面,也可能不需要付费的。这个层面的OS也有一些,也达到了一定的数量。第一个就是ECos,它一开始是自己独立的一个小公司,然后被RedHat给购买了,购买后,嵌入式这一块由于推广不力,Ecos又自己出去了成立一个新的公司,目前也还在发展,但总的来说,发展的力度并不是特别强(感觉最近发展的还可以吧,09年4月发布的3.0版本,我最近项目拿来开发的感觉还可以,抽时间我独体的介绍一下)。第二个是RTEMS,RTEMS主要是应用在航空航天领域,这就有点类似于Vxworks,但是它是一个不需要缴纳版税的嵌入式操作系统,是由美国的一个公司在维护。根据我的理解,当前在航天领域,有些系统是用RTEMS在做一些应用,我们跟他们有些技术上的交流与合作。开源的特点是很多人来维护,但是缺乏一个很强的商业支持,从商业上的支持维护来看,维护的热情和做操作系统商业还是有点差距的(性能非常不错的RT os,性能不错跟Vxworks比过犹不及,应该关注一下)。这两个操作系统,我理解是目前开源、无版税、有一定市场潜力的操作系统。至于Linux大家已经讲了很多了,我不会展开去讲,但是Linux它的发展点是不一样的,Linux它本来的目标是面向服务器和桌面的操作系统,但是它会有很多分支,特别是在RT-Linux会对实时有很多支持,目前它的RT能力,根据我了解到的一些资料,因为Linux还有一个很大的特点是它支持VM,虚存管理,它和windriver有虚存管理的Vxworks的性能相比,差别并不是很大,这是RT-Linux最新的发展;第二种Linux发展就是面向没有虚存管理的CPU,更低端的CPU,有一个分支叫μCLinux,这个也在很多的嵌入式设备里面有很多体现,大家可能看不到,因为操作系统在最底下,比如说我们现在看到市场上的摄像机,就是嵌入式μCLinux,还有一些照相机等等。Linux应该是很大的一类,由于大家了解比较多,就给大家简单介绍到这。另外还要介绍一些OS,这些OS是用在更不常用的领域,我们称之为无限传感器网络,可以看到无限传感器网络这个小片子,它和一个硬币的大小差不多,日本有的企业做出来的甚至比硬币还要小很多。这些小一点的嵌入式设备,它通过ZigBee可以实现一定程度的互联互通,在这个小设备上,也有一些OS在应用。有美国做的TinyOS,还有欧洲做的Contiki操作系统,它支持了小型或微小型深度嵌入式设备的互联互通,这一块目前在研究阶段还是多一些,但是我们认为在将来会有一个好的应用前景,它意味着我们的嵌入式设备真是无处不在的且互联互通。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0