0 前言
随着Internet的日益普及,信息共享程度的不断提高,各种以单片机应用系统为中心的小型嵌入式设备纷纷接入互联网,成为信息化发展的趋势。这种嵌入式系统与Internet技术相结合形成的嵌入式Internet技术具有广阔的应用前景。目前已经应用到了很多领域,如控制系统,工业自动化和信息家电等[1]。本文探讨的基于嵌入式数据库Berkeley DB的无线嵌入式Web服务器旨在实现通过无线方式实现对接入Internet只能设备的有效管理和控制。
1 系统结构设计
本系统的核心设计思想就是通过无线收发芯片将嵌入式Web服务器与外界连接起来,并通过嵌入式数据库Berkeley DB进行管理,实现数据的采集和控制信息的发送接收。
当远程用户通过Internet登陆嵌入Web服务器时,S3C2410x接收页面中的指令启动无线收发模块,接收周围无线设备发送的数据,并进入嵌入式 数据库进行缓存,通过动态网页技术把这些数据形成Web页面展示给远程用户。当远程用户通过Web页面发布相关指令时,S3C2410x通过 Internet获取指令信息,然后交给无线收发芯片nRF903进行发送。智能设备接收指令后做出响应,这样智能设备就接入了Internet.
2 关于ARM 和Berkeley DB
ARM,是一个公司,也是一种处理器的通称,还可以认为是一种技术名字。ARM处理器的三大特点是:耗电少功能强,16位/32位双指令集和众多合 作伙伴。本文中使用的是以arm为核心的ARM9。本文使用的系统硬件平台采用Samsung公司的处理器S3C2410x。该处理器内部集成了ARM公 司的ARM920T处理器核的32位微控制器,资源丰富,带独立的16KB的指令Cache和16KB数据Cache,LCD控制器,RAM控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer,并行I/O口,8路10位ADC,Touch Screen接口,I2C接口,I2S接口,2个USB接口控制器,2路SPI,主频最高 可达203MHz。在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了8MB 16位的Flash和16MB 32位的SDRAM。通过以太网控制器芯片DM9000E扩展了一个网口,另外引出了一个HOST USB接口。
Berkeley DB是Sleepycat软件公司开发的一款健壮的,高速的工业级开源式嵌入式数据库系统其对于需快速,可扩展,可靠的嵌入式数据库管理的应用是一个理想的选择。它本身仅300KB,却能管理多达256TB的数据。Berkeley DB可根据不同的应用,配置不同的环境,以支持相应的功能需求。作为嵌入式数据库系统,Berkeley DB有许多独特的优势。首先,由于应用程序和数据库管理系统运行在相同的进程空间中,进行数据操作时可以避免烦琐的进程间通信,因此耗费在通信上的开销自然就降到了极低的程度。其次,Berkeley DB使用简单的函数调用接口来完成所有的数据库操作,这样就避免了对SQL语言进行解析和处理所需的开销。与常用的数据库管理系统有所不同,在 Berkeley DB中并没有数据库服务器的概念,应用程序不需要事先同数据库服务建立起网络连接,而是通过内嵌在程序中的Berkeley DB函数库来完成对数据的保存,查询,修改和删除等操作。Berkeley DB 对任何存入的数据都是按原样直接存储到数据文件中去,无论其是二进制数据流还是ASCII或UNICODe等编码的文本。Berkeley DB提供了四种存储数据的模式:Btree,Hash,Queue和Recno。在打开数据库的时候,要指定一种存储模式[2]。
3 系统硬件部分设计
整个系统功能可以分为几个部分:一是无线收发模块,主要负责与智能设备的通信,另一个是网络接入模块,负责实现TCP/IP 网络协议,接入Internet网络,另一部分是嵌入式数据库。这几部分都需要S3C2410x进行控制。系统的硬件部分包括ARM平台,无线收发模块, 网络接入模块。
3.1 无线收发模块
该模块主要由S3C2410x与nRF903无线收发芯片构成。nRF903是北欧集成电路公司最新推出的单片无线收发一体的芯片,该芯片采用蓝牙技术设计,在一个32脚的芯片中包括了高频发射,高频接收,三段PLL合成,FSK/GMSK调制,FSK/GMSK调解等多种功能。它是使用最方便的无线数传解决方案,覆盖了国际上通用的ISM频段,因此利用它可构建用于便携及手持产品的无线数传通信平台工业数据采集系统,小型无线数据终端,无线遥控系统等。
3.2 网络接入模块
该模块主要由S3C2410x与网络控制芯片RTL8019AS构成。RTL8019AS是一种高集成度的全双工以太网控制芯片,是和以太网传输介质相连的硬件设备。实现了基于Ethernet协议的MAC层的全部功能,内置双DMA通道和FIFO完成数据包的接收和发送功 能,采用全双工通信方式,使帧的收发能在一条线路上同时进行,具有接口方便,驱动简单,占用资源少等优点,特别适合嵌入式系统。
4 系统软件部分设计
S3C2410x是整个系统的核心,它不仅要实现精简的TCP/IP协议栈,还要实现对无线收发芯片的控制,所以 S3C2410x中的软件设计是至关重要的。它已集成了精简的TCP/IP协议栈,这给整个系统的软件设计带来了很大的便利。因此,在系统的软件设计中, 需要着重实现S3C2410x对无线收发芯片nRF903的控制,与与其中的TCP/IP协议栈有机地整合在一起,并实现嵌入式数据库对数据的管理。整个系统的软件工作流程如下:

图1:软件处理流程图
4.1 嵌入式Linux
Linux作为一种优秀的Free OS,近几年在嵌入式领域成为了极具潜力的嵌入式操作系统。Linux操作系统主要由内核,Shell,文件结构组成。其中内核是系统的心脏,是运行程序和管理磁盘,打印机等硬件设备的核心程序[3]。
4.2 Berkeley DB和CGI
Berkeley DB数据库是基于数据库环境工作的。在构建数据库时,首先使用com.sleepycat.je.DatabaseConfig来配置数据库,然后通过数 据库环境实例的openDatabase方法来打开数据库。调用myDatabase.close( )方法来关闭数据库。
CGI是目前实现以Web为基础的应用程序的标准之一。开发CGI是为了提供连接外部程序,如数据库,搜索程序以及表格处理程序与Web服务器的标准界 面。CGI程序即网关程序提供了在Web服务器与这些外部程序之间发送数据的能力[4]。
5系统性能
该系统采用单片机与网卡控制芯片的思路,采用无线Web服务器,避免了传统的嵌入式WEB服务器信息点结构和布局和走线的限 制,可以方便灵活地实现对信息点的控制并减少布线成本。无线收发的数据通过Web页面进行浏览,使无线应用更方便的接入Internet,且系统性能可 靠,运行速度快,抗干扰能力强等优点。
结束语
本系统设计的创新之处是突破了传统的Web服务器的应用局限,提出并实现了基于嵌入式数据库的无线嵌入式微型服务器,该系统在车辆控制,工业数据采集,智能设备远程管理控制等多种系统中将会具有重要的实用意义,市场应用前景广阔。
参考文献
[1] 王海燕,魏洪波。基于单片机的无线嵌入式Web服务器的研究[J],微计算机信息,2007,23:4-2
[2] The Berkeley DB Website. https://www.sleepycat.com/products/featurelist.shtml
[3] Wireless Tools for Linux.https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
[4] 郑伟,徐荣华。嵌入式Linux系统CGI程序设计技术[J]。单片机及嵌入式系统应用,2004,(10):21~23




