嵌入式数据库的应用
嵌入式数据库一般不出现在表现层,所以很难被一般的用户所察觉。实际上,被称作“嵌入式数据库”的软件早在20年前就已经被组合在各种应用程序、软件组件和硬件环境中。它有两个很重要的特征——“嵌入性”和“实时性”。这里用实际应用的实例来说明,在嵌入式系统里如何有效地使用嵌入式数据库。
关键词 嵌入式数据库 工业控制 汽车导航 信息家电 宇宙航空 机器人 医疗信息系统 路由器
引言
嵌入式系统中一直很少使用数据库,因此对大部分人来说,很难想象嵌入式数据库在哪些场合才能发挥出优势。事实上,嵌入式数据库大致可在以下两大领域使用:
① 会计、证券交易等业务的应用软件。在这类软件中应用,不是把数据库作为服务器端组成C/S结构,而是将数据库嵌入到应用程序(使之成为程序的一部分)进行使用。通常也称为“软件嵌入”。
② 车载导航、路由器、信息家电、DVD记录装置、iPOD、机器人等嵌入式系统。在这类嵌入式系统当中,除了硬件部分外,还需用软件对其进行控制。这时将嵌入式数据库嵌入到这些硬件当中,可使系统的性能和效率大大提高。通常也称作“硬件嵌入”。
1 嵌入式数据库和企业级数据库的比较
现在常用嵌入式数据库的领域是汽车电子和信息家电等领域。嵌入式数据库软件同企业级数据库软件(如IBM公司的DB2、Microsoft公司的SQL Server、Oracle公司的Oracle Database)等相比,有以下不同点:
① 内核足够小,可嵌入于应用程序和处理能力受限的硬件环境;
② 性能高,比企业级数据库速度要快,实时性要求高;
③ 成本低,可嵌入手机、车载导航等批量生产的系统里;
④ 可裁减,能够根据实际需要增加或者减少必要功能模块;
⑤ 嵌入性,能够嵌入到软件系统或者硬件系统。对终端用户来说是透明的,他们在使用时意识不到嵌入式数据库的存在,能够免维护。
2 嵌入式数据库应用实例
2.1 FA领域的实例
下面举例介绍嵌入式数据库产品在控制仪器、数据收集装置中的使用。
FA(Factory Automation)是采用计算机控制技术使工厂自动化,既可提高生产效益又可实现必要的功能。嵌入式数据库在FA领域已经广泛使用。
2.1.1 汽车碰撞测试装置
嵌入式数据库经常在汽车碰撞测试装置中使用,如图1所示。所谓汽车碰撞测试,是检验汽车安全性能的一种有效手段。在测试中,让汽车高速碰撞某个物体,然后收集嵌入在车体中各个部位的各种感应器所发出的数据,再对这些数据进行分析,这需要在碰撞的瞬间大量地收集和保存数据。这时,如何能尽快地保存数据是一个问题。为了解决这个问题,在汽车碰撞测试装置中使用嵌入式数据库,取得非常好的实际效果。
2.1.2 发电机监视装置
在美国大型发电厂的发电机监视装置里,使用了嵌入式数据库。发电厂的发电机是非常重要的生产设备,所以要严格管理以防发电机停机。发电机的监控装置通过收集发电机的各种数据进行监视,如图2所示。
这种需要实时监控的场合,在数据库里预先录入了监视数据用的程序模块。当某数据进入“异常值”、“异常范围”、“警戒范围”的时候,这些程序模块会检测出这些数据,然后自动报警,同时通知监视中心有异常情况。这种数据收集也可用于发电机系统的模拟试验。
2.1.3 监视引擎
在美国的大型飞机制造厂,为了收集引擎的测试数据和飞机内部机械的数据,在飞机上也装载了嵌入式数据库。在美国的大型汽车制造厂的引擎废气排放测试装置里,也嵌入了数据库,废气排放测试的结果全部保存于数据库,以后的其他测试、分析以及模拟试验等环节就能有效利用这些数据。2008年奥运会所使用的环保巴士内也使用了嵌入式数据库。
2.1.4 在FA领域中使用数据库的注意事项
在这个领域利用嵌入式数据库时,会有一些常见的典型问题,如往数据库写入数据的速度和性能等问题。一方面要求内存消耗量足够少,一方面又需要对大量数据的进行运算,所以必须同时满足两个相反的要求。再者,像发电机装置监视的例子那样,数据监视模块必须要嵌入到数据库中(在实际的嵌入式数据库中,这些监视模块主要是通过用户自定义的函数来实现数据的收集、监视和报警等)。
另外,在出现故障时能否通过事务处理和恢复注册等功能进行数据的恢复也很重要。
2.2 车载导航的实例
2.2.1 车载导航的GPS与自动导航装置组合
车载导航系统在日本等发达国家已经普及,在中国实际使用者应该也有很多。不过对日常使用的车载导航,了解它的内部构造的人并不多。这里就有关车载导航的系统构造进行简单说明。
车载导航GPS(Global Position System,全球定位系统)是利用装有车速脉冲、罗盘传感器等的“自动导航法”装置,为正在驾车的驾驶员进行现在的位置及驶向目的地行驶路线导航的一种电子仪器。
车载导航刚开始开发时,只使用“自动导航法”装置。由于靠装置自身来推算出车辆的位置,因此行驶开始后有必要对行驶到一定地点的行驶方向和行驶角度进行小调整。现在GPS方法非常盛行。该方法通过GPS推算出车辆的位置。不过只靠GPS,不管怎样设计总会有某种程度的误差。因此,现在的车载导航通过对GPS和“自动导航法”装置组合的方法来弥补双方的缺点,以推算出车辆的位置。
2.2.2 车载导航与地图信息的融合
车载导航正在朝以下各方向进化,即它不局限于检测出车辆自身的位置,还可以根据需要调出道路信息和地图信息等,并把这些信息和车辆的行驶状况相对照进行计算后提示给用户,如图3所示。为了得到这些信息,应在车载导航上装载DVDROM之类的存储设备。由于地图信息不是需要频繁更新的相对静止信息,DVDROM之类的ROM存储设备完全可以满足这些信息的处理要求。
2.2.3 用车载导航处理交通信息
随着技术的发展,现在的车载导航系统把交通信息、堵车信息等也都反映在车载导航中了。因为这些信息要不断地被更新,所以ROM存储设备已很难满足需求了。
为此,许多最新的设计方案中用硬盘存储介质(HDD,Hard Disk Drive)代替ROM存储介质。这样,能够对多种信息进行更新的新一代车载导航产品问世了。另外,由于装载了HDD使得车载导航的运行速度变得更快。
2.2.4 车载导航上追加媒体终端功能
现在可以播放音乐、能与因特网联网的具备个人电脑功能的车载导航系统已经出现了。另外,还可将电视功能作为标准配置装在车载导航系统上。电视机除了具有原先的模拟播放形式外,还具有点播方式的数字电视功能。
2.2.5 现在的车载导航存在的问题
现在的车载导航还有许多功能不能满足客户的要求。例如:不能进行复合检索和模糊检索。所谓“复合检索”就是类似这样的检索要求:“要在距离人民广场10 km范围内并距离火车站3 km的范围内的地方寻找三星级以上宾馆”。所谓“模糊检索”是,只知道要检索的公司名或地点名的一部分,通过“中间一致”和“后方一致”的方式检索出所有匹配的类似目标。
大部分车载导航是通过使用ROM存储方式提供地图信息、店铺信息以及设施的数据来进行计算的,不能够随时对有变化的一部分数据进行更新,只能重新再制作一张DVDROM,对所有的信息进行一次性的完全更新。
除此以外,不同的使用者应该可以设定自己的个性化数据,即在使用车载导航时,根据个人的身份数据的不同,应能产生不同的检索结果(这被称为“个性化功能”)。在目前的车载导航上还不能够实现这种功能。要实现这些功能,必须使用嵌入式数据库。
2.2.6 数据库用在车载导航场合能实现的功能
下面再详细说明一下嵌入式数据库在装入车载导航装置后能实现的新功能。
在检索功能方面,不但能实现上面的复合检索和模糊检索等,还能实现空间检索。所谓的“空间检索”,就是能在二维地图上进行检索。具体地说,就是手机带有的道路向导和车载导航的路由检索功能中预先把坐标数据和属性数据保存于数据库中,在检索条件里设定一个空间范围(比如:离某地几km内,同时在另外一个范围内。类似二个圆的交集)。
个人住所地址或店铺名称等发生更改时,使用嵌入式数据库的优势就体现出来了。例如“A百货店”改为“B百货店”时,要是不更换新的DVDROM就一直是“A百货店”,如果换上新的DVDROM就会变成“B百货店”,“A百货店”就不能被检索了,二者都是不能被接受的。这时如果使用嵌入式数据库,则在一定的时期内对输入的“A百货店”或“B百货店”都能进行检索;过了一定时期后,还可以删掉“A百货店”,只让“B百货店”成为检索对象。
以个人履历信息为基础的详细个性化功能的形式如:在“张三”的车载导航的履历中,他经常去垒球场。以后,只要“张三”检索体育场,首先就会显示垒球场的信息。
现在的车载导航有个很麻烦的问题,那就是由于不能随时随地按要求部分地更新导航设备中需要更新的相关信息,而使整个导航仪器的信息不准确。下一代的车载导航通过使用数据库来解决这个问题,使数据能够得到及时更新;并且在数据更新的同时,还可以进行数据检索。还有一个重要的优点就是,车载导航的数据库不会因为引擎停止、电源切断等原因而被损坏。当然,用在车载导航中的嵌入式数据库资源消耗量(CPU和储存容量)必须很低,而且对有关历史信息、路径信息也须有某种程度的安全保护功能。
加载数据库后的车载导航系统功能如图4所示。
2.3 信息家电的实例
2.3.1 与网络连接的家电是将来的主流
信息家电正在改变人们的生活。以电视机、大容量刻录机、DVD、HD、AV机等为代表的家电数字化进程正在稳步推进。另外,电视节目也将以数字化的形式传输和播放。这些节目可以预先存储在服务器上再播放,即所谓的“服务器蓄积型”播放形式。
所谓信息家电就是具有信息处理能力的家电产品。例如:数码相机、手机等产品,以及今后以和计算机网络连接为前提的产品(例如DVD、刻录机、机顶盒等)。这些产品一定会越来越多。
2.3.2 信息家电中使用嵌入式数据库的例子
信息家电领域使用数据库的实例如图5所示。比如一个用于卫星播放或有线播放的机顶盒。机顶盒里保存有大量的数据,如节目表、节目内容、某时间段播放的电影内容介绍、主演演员的介绍等信息。这些信息的管理和下载、录入和检索等都要通过数据库来实现。用了数据库技术以后,对节目信息可以同时进行下载和检索。这是利用多进程的数据库来实现的,一个数据库可以支持多个用户同时访问。另外,使用节目名字、种类等进行更复杂的复合检索都变得简单易行。
和互联网电视从远程下载节目信息的接收装置一样,许多信息家电需要进行远距离的电视节目信息的管理、下载、检索,并根据演员的名字或节目种类进行复合检索。今后的DVD刻录机、带HDD的DVD刻录机等产品也需要这些功能。
另外,通过在卡拉OK遥控装置中装载嵌入式数据库,就可以提供根据曲名、种类进行复杂的复合检索。通过设定广告播放控制盒等设备的各种参数,可以实现广告内容的定时管理等功能。
2.3.3 信息家电中使用数据库的注意事项
要在信息家电领域使用数据库,数据库的内核必须足够的小。电源断电后的恢复功能(即电源断电后自动恢复到原先状态的功能)也是必要的。在实际应用中,电源发生瞬间或者长时间断电的时候,对数据进行保护是毋庸置疑的。数据库通常是通过事务处理来对数据进行保护的。具体地说,这种事务处理就是把日志写入文件系统。因此,一旦文件系统被破坏,就不能进行事务处理了。也就是说,仅靠文件系统层面来实现电源断电恢复功能或数据保护功能是很难的。嵌入式数据库里可以带有其他的硬件所提供的独立的高性能、高稳定性的文件系统来完善电源断电恢复功能和数据保护功能。这时,可以根据需要选择文件系统层面的断电保护和数据库层面的断电保护。
在信息家电的制造中,常常受生产成本或价格的制约,仅靠硬件达不到预期的高性能。因此需要嵌入式数据库,以支持内存存取和磁盘存取。把最重要的数据表放到内存,可以大大提高性能,降低成本。
2.4 宇宙航空和机器人的实例
现在,嵌入式数据库在宇宙航空和机器人等方面有很多实际应用。例如木星探查伽利略计划,卫星观测系统,地上测定、命令处理系统,卫星控制系统,天气预报的发布系统,战争模拟游戏等。除此以外,还有许多其他的宇宙航空项目和机器人项目中使用了嵌入式数据库,如图6所示。
嵌入式数据库在宇宙航空以及机器人的应用程序中起着核心的作用。在数据库中保存着全部的程序、指令、可执行的模块,并将这些制作成基于知识(knowledge based)或者基于规则 (rule based)的系统。可执行模块将根据传感器的信息执行各种动作或命令。
评论
查看更多