- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式数据库设计
基于嵌入式数据库设计
摘 要:文章提出了基于嵌入式的简单数据库设计。设计了以S3C2440A微处理器作为数据库数据采集的硬件控制核心,然后指出了嵌入式下数据库的需求特点,对在ARM-Linux下的SQLite数据库的体系进行分析,再结合ARM-Linux开发板给出了如何实现SQLite数据库的具体方法。
关键词:嵌入式;SQLite数据库;ARM-Linux开发平台
引言
现有的RTU多基于ARM7开发板上的程序植入和数据库管理,对于多线程的数据管理,以及种类繁多的第三方数据接口,显得力不从心。本课题拟在ARM9处理器上进行数据库的建立,对底层的数据采集,并对采集数据进行历史保留和远程管理。其中,数据库的建立运用可基于嵌入式系统的小型数据库SQlite,SQLite是一款嵌入式数据库,没有独立运行的进程,在所服务的应用程序在应用程序进程空间中是共同存在的。它与应用程序的代码也是一起的,作为它所服务程序的一部分,同时提供了丰富的数据库接口;而对数据采集,则由底层设备驱动程序完成。
1 数据库数据采集的硬件平台设计
为了实时的对现场数据的采集和传输,我们采用功能强大的ARM9作为主控处理器,外接相关功能模块,在ARM9处理器上嵌入Linux操作系统,其强大的多任务和多线程以及设备独立性能够较好的发挥ARM9强大的控制功能。
现场数据采集主要由:数字量输入、输出模块、模拟量输入模块组成。数字量输入模块将外部采集的数据经过处理输入到ARM9处理器;模拟量输入模块采集外部输入的模拟量;数字量输出模块采集主控处理器的输出量。如图1所示。
图1 硬件系统主要构成图
数据的存储和传输部分主要包括S3C2440A微处理器、存储器模块、数据通信模块、RS458模块、以太网模块、无线功能模块等。该处理器是基于ARM920T核心的16/32位的精简指令集(RISC)微处理器,S3C2440A为手持设备和一些小型应用提供了低耗能、低价格、高性能提供了一个绝佳的选择。它采用了新的总线结构AMBA(Advanced Microcontroller Bus Architecture),这一结构具有独立的16KB指令缓存和16KB数据缓存,每个都是由8字长的行组成。因为它具有一套完整的系统外设,S3C2440A降低了整体的系统成本并且不需配置另外的组件。这部分的主要功能是对现场采集数据进行处理、存储和显示,之后通过网络把所采集的数据上传到远程的PC机网页上。远程的PC机主要负责的功能是对所上传的数据进行监测、分析、处理。必要时对采集终端进行控制。
2 Linux下的数据库的应用
基于Linux系统下的数据库数不胜数,大型应用于商业开发的数据库有Sybase、Empress、Oracle、Informix等,小型数据库常用的有mSQL、MySQL、Sqlite等等。应用于商业开发的大型数据库一般价格高昂并且体积庞大,不符合嵌入式下数据库要求。在小型数据库中MySQL虽说在保持体积较小的情况,提供了足够的应用与一般开发的功能,但是在应用于商业用途也要收费。mSQI具有嵌入式开发的条件,但是由于它并非完全开源的代码,在使用期限上不符合本设计的要求。余下的开放源码数据库中,除了占用空间较大以外,学习难度也比较大,如果非要采用的话必然会加大开发成本。
SQLite支持大部分的SQL的语句,采用单文件存放数据库,存储速度也快,在操作语句上与关系数据库类型更加接近,最重要的是它的代码使完全开源的,不用收费。基于SQLite的设计理念,虽然相较与商业用途的大型数据库在功能上有所不足,但是在开源组织的日渐完善下差距逐渐缩小。在应用上如果不需要存储过程或者复杂的表之间的关联的话,SQLite是个非常好的平衡点。
3 SQLite的体系结构以及在Linux平台上的开发技术
3.1 SQLite的体系结构
SQLite有一套简洁的、模块化的体系结构,并引进了一些方法进行有关关系型数据库的管理。SQLite的体系结构由3个子系统和8个独立模块组成,如图2所示,它显示了SQLite的主要成分及各成分之间的关联,其中有一些相当接近于关系数据库管理。
图2 SQLite的体系机构
接口位于整个结构的顶端,由SQLite C API组成。所有与SQLite交互的程序和库文件都是通过接口进行的。Tokenizer(词法分析器)和Parser(语法分析器)协同对文本形式的查询语言进行分析,验证其语法的有效性,然后转化成底层能更容易处理的层次化数据结构。这个结构的中心部分便是数据库引擎VDBE(Virtual DataBase Engine)。VDBE在字节码上工作,区别于顶层操作系统、系统体系结
文档评论(0)