基于ARMLINUX的嵌入式GUI的设计与开发

2024-06-18

基于ARMLINUX的嵌入式GUI的设计与开发(通用6篇)

篇1:基于ARMLINUX的嵌入式GUI的设计与开发

基于ARM LINUX的嵌入式GUI的设计与开发

摘 要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。

关键词:嵌入式系统;ARM;Linux;MiniGUI

1、引言

目前,嵌入式应用非常广泛。嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。软件方面一般由嵌入式操作系统和应用软件组成。嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。

2、系统环境和构架

系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。

SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统[1] [2];上面带有充足的存储资源(PSRAM,NAND FLASH,NOR FLASH和E2EPRORM等)和丰富的接口(以太网接口、CF卡和SD卡接口,串口接口等),可使用2.2英寸240*320 TFT液晶屏,可使用JTAG仿真调试[3];

嵌入式Linux内核[4]:uCLinux嵌入式操作系统;

uCLinux开发平台的构建:

基于Linux嵌入式系统的设计,其开发流程为如图1所示:

图1 Linux嵌入式系统开发流程

图中,依次建立开发环境arm-elf-gcc,安装uCLinux内核,下载ZLG/BOOT,下载uCLinux内核和文件系统,为了调试uCLinux应用程序,将宿主机的共享目录加到开发板的/mnt目录下,并启动NFS服务。MagicARM2200-S主芯片为LPC2210,LPC2210芯片没有内部Flash,无法进行ISP下载,需要额外的DownLoad程序。

3、MiniGUI移植

在宿主机上安装MiniGUI:将MiniGUI函数库源代码和资源文件(MiniGUI-STR压缩包)复制到PC机的RedHat 9.0特定目录上,解压,编译。

在目标板的uCLinux操作系统上运行MiniGUI应用程序[3],需要:

1)由于不同目标机的图形显示设备与输入设备不一致,所以需要为MiniGUI编写相应的GAL和IAL(驱动程序),再于MiniGUI的源代码一起交叉编译生成MiniGUI的静态链接库文件(uCLinux不支持共享库,只能使用静态连接库); 2)MiniGUI应用程序也在宿主机上进行交叉编译,并与MiniGUI静态链接库生成目标板可执行的FLAT格式文件,交叉编译如图2所示; 图2 MiniGUI应用程序的交叉编译

3)在目标板的uCLinux操作系统上搭建MiniGUI运行环境(安装MiniGUI的资源文件res和运行的配置文件MiniGUI.cfg),将MiniGUI应用程序(FLAT格式)下载和运行。

根据系统要求,需安装MiniGUI资源文件,并修改运行时的配置文件MiniGUI.cfg。

4、系统设计与实现 4.1系统总体框架

基于SmartARM2200开发板,进行MiniGUI系统,并模拟手机显示部分主要功能:首页,图标选择界面,电话本,信息,游戏,其他等六大模块,系统总体框架如图3.1所示:

1)首页:具有显示静态封面图片,更改、显示时间等功能;

2)图形选择界面:提供一个以图标加标签文字的方式供用户浏览选择条目的界面;

3)电话本管理:提供记录姓名、手机、电话、地址等信息,并且可以添加、修改、设计适合手机键盘输入的拼音输入法程序,满足中文姓名,中文短信等汉字输入的需要,键盘布局如图3.2所示;

4)信息管理:提供编写新信息,浏览收信箱和发信箱等的操作界面; 5)游戏:提供一到两个单机游戏,比如贪吃蛇,俄罗斯方块; 6)其他:利用GUI绘图函数绘制几幅优美的图像,制作闹钟等;

图3.1系统整体框图图

图3.2键盘布局图

注:在主界面下,可以通过按左右键来进入图形选择界面,电话本管理和短信管理;在图形选择界面下可以通过选择不同的图标来进入不同的操作界面。

4.2 系统模块设计

4.2.1主界面功能的实现如下:

1)主窗口的创建部分[5]

InitMainWindow();

// 设置各项属性,并建立主窗口

ShowWindow(hMainWnd,SW_SHOWNORMAL);

// 显示主窗口

2)消息循环

while(GetMessage(&Msg,hMainWnd))

{ TranslateMessage(&Msg); DispatchMessage(&Msg);}

3)填充背景色和显示汉字

LoadBitmapFromFile(HDC_SCREEN,&mainskin,“res/skin2.bmp”);

FillBoxWithBitmap(hdc,0,0,MWINDOW_RX,283,&mainskin);

TextOut(hdc,30,295,“信息”); // 显示文字

其中资源图片一般在MiniGUI建立主窗口的过程中发送MSG_CREATE消息时加载(逻辑字体也在此时创建),而背景色的填充和汉字的显示则是在窗口初始显示,发送MSG_PAINT消息时绘制,而且必须在指定的设备上下文中操作:

hdc = BeginPaint(hWnd);

// 获得设备hdc

EndPaint(hWnd,hdc);

// 释放设备hdc

4)时间操作

在MSG_CREATE消息时,启动1s的定时器:SetTimer(hWnd,ID_TIME,100);在定时器消息MSG_TIMER中获取当前时间,并显示出来。

4.2.2图形选择界面的功能实现

当有键盘按下时,系统会发送MSG_KEYDOWN,处理此消息时,通过判断按键方向,确定当前选择的图标,当选择图标发生变化时,即用背景色重绘原有边框,用另一种颜色绘制新的边框,并将标签文字重写在右下角的位置。

4.2.3电话本管理模块完成的功能:

1)显示电话本名单,通过上下键移动可选中不同的名单,同时显示其电话号码;

2)选中一个名单时,可以查看其详细信息(姓名,手机,固话,住址,排序,类型等),并且可以编辑修改;

3)当选中“新建”时,可以创建一个新的电话名单和其详细信息;

4)姓名和住址的编辑支持中文拼音输入法,通过2~9按键上标注的26个字母组合,可以输入常见的汉字。

电话本管理模块的实现方法如下:

1)电话本列表框实现:

{CTRL_LISTBOX,//列表框控件定义:

WS_VISIBLE WS_VSCROLL WS_BORDER LBS_NOTIFY,//LBS_SORT,//

L

BS_AUTOCHECKBOX,1,0,238,263,ID_PhoneList,”“,0,}

在初始化和更新条目时需要填充列表框,清空列表框和填充函数分别为:

SendDlgItemMessage(hWnd,ID,LB_RESETCONTENT,0,0);

SendDlgItemMessage(hWnd,ID,LB_ADDSTRING,0,(LPARAM)myphonenote[i].name);

更改选择条目字符串和更改反白条位置的函数分别为:

SendDlgItemMessage(hwnd, ID, LB_SETTEXT,index,buff),SendDlgItemMessage(hwnd,ID,LB_SETCURSEL,index,0L);

2)条目明细——查看框

分别创建相应的静态框和编辑框,列表框,并填充相应的值即可。

3)条目明细——编辑框

初始化时把光标赋予姓名框,备份当前的条目信息。

SendMessage(hwnd,EM_LIMITTEXT,10,0L);

4)拼音输入框

拼音输入法实现了手机电话本的修改维护和信息的编写,它不仅窗口比较多,切换频繁,而且需要汉字字库和键盘编码译码的支持,显示界面实现的难度比较大,其实现框架图如图4所示:

图4 拼音输入法界面

5、系统实现

经过交叉编译,通过FTP或NFS,和MiniGUI的资源文件、配置文件一起下载到构架好uCLinux操作平台的ARM板,重启运行,程序在开发板上运行时部分界面效果比较理想,如图5所示:

图5 运行结果

参考文献:

[1]李岩,荣盘祥编著.基于S3C44B0X嵌入式uCLinux系统原理及应用.清华大学出版社.[2] 广州周立功单片机发展有限公司.uCLinux开发平台构建.[3]周立功等著.ARM嵌入式系统实验教程(二).北京航空航天大学出版社.[4]林晓飞,刘彬等编著.基于ARM嵌入式Linux应用开发与实例教程.清华大学出版社.[5]北京飞漫软件技术有限公司.MiniGUI编程指南.

篇2:基于ARMLINUX的嵌入式GUI的设计与开发

设计

基于ARM linux的嵌入式远程测控系统设计

类别:嵌入式系统

前言 目前,大多数远程测控系统中,系统的硬件采用8/16位的单片机,软件多采用汇编语言编程,该编程仅包含一个简单的循环处理的控制流程;单片机与单片机(或上位机)之间的通信通过RS232、RS485或CAN总线来组成局域网,再用Pc机作为 Web服务器,与Internet进行通讯。这样的远程测控设备成本高、体积大、速度慢、功耗大。现在,32位嵌入式CPU价格已下降,性能指标也有提高,为嵌入式系统的广泛应用提供了可能性。基于上述情况,我们将嵌入式系统应用于远程测控系统,大大提高了测控系统的性能,同时降低了成本和功耗,体积也大大减小。

嵌入式系统一般应用嵌入式操作系统来开发。在嵌入式操作系统的选择上,由于Linux有完整开放的源代码,因而它具有修改和优化系统、内核稳定、适用于多种CPU和多种硬件平台、支持网络等特点,所以选择Linux作为嵌入式操作系统较好。本文提出的基于 ARMlinux的嵌入式远程测控系统不仅能够实现本地数据采集与控制,还能实现远程测控任务。

1、硬件系统

硬件系统如图1。S3C2410包含一个16/32-bit的Risc(ARM920T)的CPU内核,主频200Hz,内部含有8通道1O位AD转换器和大量的I/O口、LCD控制器等丰富接口,能运行Ucosll、ARMlinux和Wince嵌入式操作系统,DM 9OOO是10M/100M以太网接口控制芯片。本硬件系统结构简单,成本低,不需要Pc机就可直接接入Internet。

2、软件系统

嵌入式操作系统是整个嵌入式系统的核心。本系统选择ARMlinux系统。由于嵌入式系统的存储容量很小,因此要把ARMLinux操作系统装入有限的存储器内,就要对它进行裁剪。很多资料对此都有论述,这里就不再累述。下面主要介绍基于操作系统上的远程测控软件设计。其体系结构如图2。

2.1 基于Boa的Web服务器

嵌入式linux主要有三个web Server:Hapd、Thttpd和Boa。Httpd是最简单的一个web Server。它的功能最弱,不支持认证,不支持CG1。Thttpd和Boa都支持认证、CGI等,功能都比较全。Boa是一个单任务的小型Httpd 服务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。下面介绍Boa的移植与编译。

对于有MMU嵌入式linux,把Boa下载到Redhat宿主机上后,解压到任意目录,再修改Boa/src/Makefde里面的编译器。例如:

CC=/opfhosfarmv41/bin/armv41—unkllown—linux—gcc CPP=/opt/host/army41/bin/armv41—unknown—linux—g++ 此后直接在Boa/src目录下执行make即可生成Boa可执行文件。将其复制到ramdisk加载mount的目录的bin里面后,等一同加入配置文件和HTML/CGI文件后,重做ramdisk即可。

配置文件Boa.conf的编制见下。

需要说明的是,Linux下的应用程序的配置都是以配置文件的形式提供的,~般都是放在目标板/ete/目录下或者/ctc/config目录下,但Boa 的配置文件Boa.conf一般都放置在目标板/home/httpd/目录下。本系统Boa.conf文件的编写程序为:

Servername S A M S U N G—A R M DocumentRoot/home/httpd/cgi—bin/

ScfiptAlias/index.html/home/httpd/html/index.html 它指定了HTML页面index.html必须放/home/httpd/html目录下,CGI可执行文件必须放到/home/httpd/cgi~bin目录下。

2.2 CGI程序技术原理

CGI(Common Gateway Interface)是外部扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通过 CGI可以提供许多静态的Html网页无法实现的功能。其www与CGI的工作原理如下。

HTTP协议是WWW的基础,它基于客户/服务器模型。一个服务器可以为分布在网络各处的客户提供服务。它是建立在TCP/IP协议之上的“无连接”协议。每次连接只处理一个请求。当一个请求到来时,便创建一个子进程为用户的连接服务。根据请求的不同,服务器会返回HTML文件或通过CGI凋用外部应用程序,返回处理结果。服务器通过CGI与外部程序和脚本之问进行交互,根据客户端在进行请求时所采取的方法,服务器会收集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序。CGI扩展程序对信息进行处理并将结果返回服务器。服务器对信息进行分析后,将结果发送网客户端。

外部CGI程序与www服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与CGI扩展程序之问的信息交换的通道。客户的请求通过服务器的标准输出传送给CGI的标准输入。CGI对信息进行处理后,会将结果发回到它的标准输入,然后由眼务器将处理结果发送给客户端。

2.3 CGI外部扩展程序的编制

服务器程序可以通过三种途径接收信息:环境变量、命令行和标准输入。具体使用哪一种方法要由标签的Method属性来决定。在“Method=GET”时,向CGI程序传递表单编码信息的正常做法是通过命令来进行的。

大多数表单编码信息都是通过Qucry-String的环境变量来传递的。如果“Method=POST”,表单信息将通过标准输入来读取。还有一种不使用表单就可以向CGI传送信息的方法。那就是把信息直接追回在URL地址后面,信息和URL之间用问号(?)来分隔。本测控系统采用的是GET方法。下面是远程控制LED闪烁快慢的程序。其网页如下页图3,其程序如下。

;LED测试

<input type=“radio”name=“speed”value=“show”checked>慢速

<input type=“radio”name=“speed”value=“normal”>中速 <input type=“radio”name=“speed”value=“rast”>高速

<input type=“submit”value=确定“name=”submit>

其中leds.cgi程序如下:

#!/bin/sh Period=1+case $QUERY-STRING in slow)

period=0.25 ;;

normal)period = 0.125 ;;

fast period=0.0625+;;

fast)+ period =0.0626 ;;

esac /bin/echo $ period ? /tmp/led-control//通过Query_String的环境变量传递给应用程序。

echo “Content-type:texe/html;charset=gb2312”

echo /bin/cat led =result.template exit 0 led—control是编译好的可执行的应用程序,通过led驱动来实现对LED的控制。因为S3C2410有MMU,所以通过操作系统来对硬件控制需要驱动程序来实现。其数据采集部分也类似,不再单独说明。

图3 实验结果

3、测试结果

首先建立好基于S3C2410嵌入式开发环境,把编译好的booloader、嵌入式linux内核和ramdisk烧人Flash中,然后起动Boa服务器,在PC机的浏览器上输人嵌入式系统的IP地址,即显示出如图3的网页。通过点击慢速、中速和高速,再点击确定,测控板上LED的闪烁由慢变快,圆满实现了设计目标。

4、结论

篇3:基于ARMLINUX的嵌入式GUI的设计与开发

嵌入式系统中GUI的实现方式主要有两种:一种是采用现有的GUI库;第一种是开发基于特定嵌入式系统设计特有的GUI系统。第一种方法开发周期短, 容易取得较好兼容性和可移植性。第二种方法因为高度定制, 更少冗余, 更加精简, 在资源占用上有优势, 但是开发成本高, 周期长, 在兼容和可移植方面较差。

TVOS嵌入式操作系统是一个开放的应用运行平台, 在此基础上需要培养完善、繁荣的应用生态;同时, 为了支持系统的推广和软硬件的升级, 要求GUI必须具有良好地可移植性和兼容性。同时, 机顶盒作为普遍推广家庭娱乐信息终端, 资源有限, 但屏幕大, 像素高, 在媒体和图形服务方面提出了很高的要求, 但其图形资源却相对有限。TVOS嵌入式操作系统GUI实现的要点在于:考虑其大屏幕, 家庭娱乐性等特点, 必须支持多应用、多窗口, 广泛支持多媒体格式;基于特定的应用场景和输入方式, 要开发符合应用场景的桌面行为和响应;基于相对有限的图形资源实现较好的图形性能;同时, UI组件的选择, 必须服务于支持繁荣的应用生态。因此, 本系统采用移植现有GUI组件的方式实现。

作为计算机技术的一个重要内容, 图形技术发展迅速。近年来, 随着智能终端市场不断发展, 针对不同硬件资源和各种应用场景的图形支持组件也如雨后春笋般不断涌现, 给电视操作系统图形用户界面的设计实现带来了更多选择。在资源丰富, 硬件性能越来越强大的PC机上, 我们通常可以选择Linux内核和X Window协议来负责控制硬件资源, 使用开源的GNOME或者KDE作为桌面环境, 选择Fire Fox或者Opera这样功能全面的浏览器。但是, 在嵌入式操作系统中, 通常通过降低硬件配置来达到控制成本、减小功耗、缩小体积等目的。资源受限往往是限制我们在设计图形系统时充分发挥的一个关键因素。近来, 伴随着内存、flash等硬件价格降低, 以及日益增长的智能终端市场带来的商业利益刺激, 嵌入式设备的硬件配置有了很大的进步。因此, 有条件在嵌入式设备上配备功能更加复杂完善的图形组件, 以充分利用硬件资源, 满足终端用户对GUI体验日益提升的要求。

已有的GUI研究给出了嵌入式条件下的GUI发展趋势。文献[1]提出了在以ARM为基础的硬件上实施复杂GUI的想法并给出了一个方案;文献[2]设计了一种分层结构, 针对嵌入式环境对C/S模式做了改进;文献[3]围绕嵌入式条件下使用X Window开展了一系列研究;文献[4, 5]也针对嵌入式开展复杂GUI提出了有效的解决方案。这些研究表明, 即使资源受限, 嵌入式操作系统的GUI仍然有走向更复杂, 更智能的可能和必要。

本文设计实现了一种适用于嵌入式操作系统的GUI框架。相对传统嵌入式GUI, 该框架采用了功能更为全面, 可移植性强, 具有丰富应用生态的图形支持组件, 支持多应用多窗口。定义和实现一系列符合电视机应用场景的桌面行为响应。基于开源资源, 开发集多媒体库和应用库于一体的桌面环境。增加应用管理模块以确保多应用条件下系统稳定性。框架尤其适合用作目前智能电视操作系统的GUI。本文选用一款配置和成本适中的硬件平台, 具有非常典型的代表意义, 以此为硬件平台开发GUI, 既满足当前智能电视操作系统性能要求, 也能适当兼顾未来发展趋势。

2 GUI框架分层结构介绍

目前比较主流的GUI采用分层结构设计。按照职能大致可以分为硬件资源层、显示模型层、窗口模型层、用户接口层以及处于最上层的桌面环境, 如图1。

硬件资源层指CPU、GPU、显卡、内存、显示器等图形系统设计的底层硬件资源, 也包含鼠标、触摸屏以及键盘等与用户界面交互行为紧密相关的输入设备。显示模型层指图形软件的最底层, 包括驱动、设备文件以及内核中帧缓存 (Frame buffer) 等图形硬件的抽象接口, 软硬件加速以及输入设备抽象接口, 虽然图形系统各层次都存在对图形资源不同程度的抽象和处理, 但这部分主要功能均包含在内核以及操作系统中。窗口模型层负责建立窗口模型, 管理应用窗口的共存、显示、刷新。用户模型层是面向应用程序封装的图形资源接口, 它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。桌面管理系统则本身处于应用层, 实现符合应用场景的界面风格、用户行为定义以及终端功能的界面入口集成。

考虑TVOS对GUI的特定要求, 基于X Window选取并移植适当的图形组件库, 在移植开源软件的基础上开发集成多媒体中心和应用管理中心的桌面环境, 定义了符合场景的桌面行为响应, 同时对视频播放采取了针对硬件平台的加速。

3 本文的GUI框架方案

本文开发的GUI框架以当前的智能终端嵌入式操作系统为应用场景, 尤其针对国家863重大专项智能电视操作系统 (TVOS) 。本设计主要考虑满足要求: (1) 作为新一代的娱乐性智能终端GUI, 需要配备充足的硬件资源, 适应智能终端发展形势, 同时尽可能地降低资源消耗; (2) 要求GUI框架具有良好的可移植性、可扩展性, 能够较好地适应不同的硬件平台, 随着终端硬件的发展, 还要能够方便地进行功能扩展; (3) 尽量使基于本GUI框架的应用开发容易, 支持丰富的应用类型, 争取能够方便地将现有PC机应用程序平移过来; (4) 适合应用场景的交互方式。

为了充分利用终端硬件资源, 同时保证性能以及丰富、良好的用户体验, GUI采用方案结构如图2所示。

3.1 硬件资源层

本框架采用HI3716M作为硬件平台, HI3716M是一款机顶盒硬件方案, 其硬件配置如表1所示。这样的硬件资源, 无法与当前热门智能终端动则上GHz的主频, 数十GB的内存相提并论, 但与传统嵌入式设备相比, 有了很大的提高。

3.2 显示模型层与窗口模型层

显示模型层实现对硬件的操作。考虑目前对GUI支持良好的智能终端操作系统Mee Go与android的特点, 本文认为:Mee Go底层驱动为标准的Linux内核, 开源程度高 (由Linux基金会领导) , 社区开发活跃, 对现有大多数中间件方案支持度良好。相比之下, android应用框架从应用层的组件化到内核的通信机制都颇有自成一体的迹象, 导致对各个层次的个性化设计变得十分被动, 对android目前支持内容以外的应用形式进行支持难度也较大。本文以社区版mer内核以及海思SDK作为操作硬件的基础。

窗口模型层负责窗口级的抽象, 以及窗口的管理。采用X Window主要考虑它典型的client/server的模型结构, 这使得一个应用客户端的崩溃不会影响到图形系统的其他部分, 有利于支持第三方应用的扩展开发, 而不影响到主体部分和其它应用。X Window作为Linux系统领域最为成熟稳定的图形系统, 经历了长期的开发及应用实践, 能够支持多种风格的用户界面。X Window协议根据功能、尺寸和资源消耗的不同, 拥有丰富的实现, 目前小型的实现Tiny-X的X-server在x86 CPU上消耗少于1M内存。为了充分利用资源, 提升用户体验, 在资源允许的情况下, 本系统采用了X Org。

X Window本身包含对硬件的适配 (如色彩深度的适配) 以及对硬件的直接访问, 所以它是横跨显示模型层和窗口模型层的一个图形组件。

3.3 用户模型层

桌面Linux的图形界面采用基于X协议的图形库, 一般可分为两种:第一, 基于GTK图形库的GNOME;第二, 基于KDE库的QT。采用Qt主要考虑其良好的可移植性, 使得TVOS平台可以平移现有的Qt应用程序。面向对象, 模块化程度高, 同时具有丰富的API, 使得应用开发非常方便。Qt对Webkit的良好支持也符合TVOS的开发要求。另外, 它同时支持2D/3D图形渲染, 支持Open GL。随着硬件条件的改善, TVOS向支持3D的平台移植变得简单易行, 而支持3D是智能终端发展趋势。

3.4 桌面环境及应用集成

本文在前述图形框架上, 集成了多媒体仓库、媒体播放器、应用仓库、应用管理器为主要内容的桌面环境, 该环境基于Qt开发。多媒体仓库分为图片、音频、视频三个子仓库, 可根据需要从中添加播放内容;播放器负责播放多媒体素材。应用仓库包含QT、Html等类型丰富的应用程序, 由应用管理器负责维护仓库数据, 向用户提供查看, 添加, 删除等管理接口。应用管理器包含一个实时调度模块, 负责维护系统运行时处于各种运行状态的应用程序信息, 并向用户提供暂停、重启、停止等生命周期管理接口。

桌面环境包含用户行为定义。目前用户输入支持鼠标和键盘 (遥控器输入可作为键盘输入处理) 。其中鼠标暂不支持右键点击操作;左键单击为选择确定, 或启动、播放;退出、返回等行为由点击退出按钮或键盘操作支持。应用程序的集成及交互逻辑如图3所示。

应用的集成和管理是依靠应用管理模块和窗口管理模块实现的。应用管理模块负责维护各类应用信息, 通过生命周期管理实时调度应用程序。窗口管理模块负责与Xserver交互, 同时配合应用管理需要, 控制桌面窗口显示。图3中所示关系为 (1) 应用管理器维护应用仓库, 向桌面提供应用信息, 提供仓库管理和应用生命周期管理的接口; (2) 桌面通过调用接口, 实现仓库管理和应用生命周期管理; (3) 用户行为通过键盘、鼠标等设备事件输入系统; (4) X Window获取事件发生对应的窗口信息; (5) 设备驱动将事件汇报给X Server; (6) X Server将事件通知窗口管理器 (一个client) ; (7) 窗口管理器根据事件信息、应用管理器通知以及内部逻辑, 切换窗口, 响应用户行为; (8) 应用管理过程中, 有时需要通知窗口管理器切换窗口或者释放窗口相应资源并退出; (9) 不论任何情况下, 按指定按键, 窗口管理器需将应用调度模块前台窗口置于栈顶。

3.5 针对视频效率的改进

为了最大限度地增强TVOS应用扩展性, 支持更为广泛的应用, 我们选择了X Window+Qt图形结构。这种结构由于在视频播放硬件与应用之间隔了一层, 降低了播放效率。尤其是在播放高清视频时, 造成了明显的卡顿。因此, 设计了如图2所示的结构, 视频并不像一般窗口, 通过X协议现实在硬件设备上, 而是直接与hasi的SDK取得交互。实验表明, 经过改进, 播放高清视频没有明显卡顿。

4 组件尺寸和资源分析

本文以HI3716M为硬件平台, 设计开发的智能电视操作系统GUI, 在资源允许的条件下, 充分利用硬件, 为用户提供方便的交互和丰富的应用。在HI3716M硬件平台上的实施表明, GUI用户操作方便, 窗口切换自然流畅, 音视频播放无卡顿感。以完全启动GUI系统, 同时启动3个应用测试程序的情况为例, 考查GUI主要组件的CPU和内存消耗。数据如表2所示。

测试表明, GUI消耗CPU带宽较少, 内存消耗也在可以接受的范围内。其中最为突出的桌面环境消耗内存超过30%。分析原因在于, 桌面采用Qt/C++实现, 大量的复杂窗口在桌面启动时即装入内存, 在窗口切换时还有动画效果, 消耗更多内存, 是以内存消耗换取更友好的桌面风格。

在启动视频播放的情况下, 同样以启动3个应用测试程序的情况为例, 考查GUI主要组件的CPU和内存消耗, 如表3所示。

可见, 在进行视频播放的改进之后, 不仅提高了播放效率, 同时还节约了播放视频时的资源。

5 总结及展望

本文提供了智能终端图形用户界面的一个实现方案, 并在海思平台上合理搭建, 经过分析及运行测试, 证明性能基本满足用户体验要求。系统实现侧重于对更多应用的支持, 并有效管理, 保障系统稳定性。让视频播放越过X Window直接操作平台SDK, 解决了X系统带来的视频播放效率偏低问题, 取得明显效果。该系统仍有进一步裁剪、优化的空间。

参考文献

篇4:基于ARMLINUX的嵌入式GUI的设计与开发

【关键词】电子病历; 嵌入式; XML; 设计; 开发

【中图分类号】F416.63【文献标识码】A【文章编号】1672-5158(2013)07-0076-01

1 XML技术简介

扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。XML与Access,Oracle和SQL Server等数据库不同。数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:它极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的GML(Generalized Markup Language)。同HTML一样,XML (可扩展标识语言)是通用标识语言标准(SGML)的一个子集,它是描述网络上的数据内容和结构的标准。尽管如此,XML不象HTML,HTML仅仅提供了在页面上显示信息的通用方法(没有上下文相关和动态功能),XML则对数据赋予上下文相关功能,它继承了SGML的大部分功能,却使用了不太复杂的技术。

XML技术的优点主要表现在三个方面,分别为可扩充性、内容和表现形式的分离以及数据处理方便,具体情况见表1所示:

2 基于XML的嵌入式电子病历书写系统设计

2.1 系统结构

本系统结构设计为三层架构,见图1所示:

三层架构的结构设计具有一定的优点,主要表现为在三层架构之下的各个逻辑层既相互独立,彼此之间又存在着较为密切的联系,这样一来,就对系统的扩充造成有利的影响,这也更加适应了医疗业务不断变化的趋势。就嵌入式电子病历系统与一般电子病历系统来看,两者之间存在着一定的差异,前者运行于双重环境之下,而后者往往只在单一环境下进行运行。

三层架构分别为前端客户表现层、中间应用服务层以及后端数据资源层:

①前端客户表现层:这一层主要是为嵌入式电子病历系统提供方便有效的操作方式,客户并不需要对知道其中具体的细节。一般用户通过客户表现层可以对病历进行一定程度上的查询;而对于高级用户而言,他们则享有更多的权限,例如新建病历、查询病历以及修改病历等;系统管理员可以对用户进行管理,对嵌入式系统存储空间进行管理。

②中间应用服务层:这一层的主要任务是对病历处理任务进行有效的执行,它所设计的内容较为广泛,主要包含有执行用户管理模块、执行病历数据存取的数据操作模块、病历数据库的维护和更新模块、基于节阳 web Service的信息交换模块、XML文档解析、XML文档与应用数据库的相互转换模块、电子病历安全考虑模块以及嵌入式系统存储空间管理模块等。

③后端数据资源层:对于后端数据资源层而言,它主要是由两个部分组成的,分别是XML文档库以及HIS系统数据库,后端数据资源层的主要作用是为电子病历操作提供相应的后台数据支持,一般情况下,对数据库的读写通过ADO.NET接口进行访问,对XML文档使用节几 Web Service技术保存和读取。

2.2 系统模块

用户管理模块:包含两个方面的工作,其一,管理员对用户进行一定程度的管理;其二,系统用户管理登录ID与密码,以及对用户的基本信息进行修改。

病历录入模块:对录入的病历信息进行接收,系统为病历信息的接收提供一个良好的界面;

病历信息表示与存储模块:使用XML记录的病历是文本格式,可直接对其进行阅读,并不会局限于计算机平台、软件以及数据库形式;

病历信息共享模块:病历信息与医院内部HIS子系统的信息集成以及医院之间信息的交换。

3 结束语

本文就针对基于XML的嵌入式电子病历书写系统设计与开发进行研究与分析。首先对SML技术及其优点进行了一定程度的介绍,然后在此基础之上从从系统结构与系统模块两个方面分析了基于XML的嵌入式电子病历书写系统设计。希望我们的研究能够给读者提供参考并带来帮助。

参考文献

[1] 胡业发,陈娟,陶飞,杨朝阳.基于XML的电子病历数据模式研究[J].计算机工程与设计.2007(04)

[2] 昇高昭,孙文东.电子病历-医院信息系统的发展方向[J].医学信息.2007(01)

[3] 孟健,曹立明,王小平,姚亮.基于XML电子病历多重签名方案的设计与实现[J].计算机工程.2006(19)

[4] 齐卫东.强化行业规范 促进医院信息化建设[J].解放军医院管理杂志.2006(03)

篇5:基于ARMLINUX的嵌入式GUI的设计与开发

随着激光雕刻机的不断发展和改进, 嵌入式Linux的激光雕刻机比CNC (Computer numerical control) 激光雕刻的优势不断显现, 它大幅度提高了处理能力, 方便了设计开发, 节约了成本, 是未来经济型激光雕刻机发展的趋势。而嵌入式ARM (Advanced RISC Machines) Liunx步进电机驱动是实现激光雕刻的核心。

嵌入式开发过程中, 经常需要为特定设备开发驱动程序。这些驱动程序的编写和编译与PC上的Linux驱动开发相比存在明显的差异, 需要考虑的因素较多, 实现过程较为复杂。本文以Samsung公司的友善之譬S3C2440开发板为例, 探讨如何使用嵌入式Linux开发字符设备驱动程序来驱动步进电动机[1,2]。

1 硬件系统设计方案

控制系统由处理器、步进电机驱动器、步进电机3部分组成, 如图1所示。

处理器用友善之譬QQ2440V3开发板, 内核为ARM920T。步进电机驱动器采用北京和利时电机技术有限公司 (原四通电机) 的SH-20403。驱动器共有四路输入信号:公共、脉冲信号输入、方向信号输入和脱机信号输入。驱动器的输入信号既可以采用共阳极也可以采用共阴极接线方式, 使用共阳极模式时, 应将输入信号的电源正极连接到公共端, 将输入信号连接到对应的信号端子, 信号低电平有效, 此时对应的内部光耦导通, 控制信号输入驱动器中;对应共阴极模式时, 将输入信号的电源负极连接到公共端, 信号高电平有效, 我们采用的是共阳极接法。控制步进电机驱动器的时序[3]如图2所示。

2 步进电机驱动系统设计

Linux内核结构体系可分为:应用程序、库函数、操作系统 (内核) 、驱动程序。在Linux操作系统中, 驱动程序是操作系统内核与硬件设备的直接接口, 驱动程序屏蔽了硬件的细节, 驱动程序是内核的一部分, 它具有以下功能[4]:

对设备初始化和释放:比如向内核注册这个程序, 这样应用程序传入文件名时, 内核才能找到相应的驱动程序。

对设备进行管理, 包括实时参数设置以及提供对设备的操作接口。

读取应用程序传送给设备文件的数据并回送给应用程序请求的数据。

检测是处理设备出现的错误。

如图3所示, 应用程序通过Linux系统的调用实现与内核通信。由于Linux中将设备当做文件处理, 所以对设备进行操作的调用和对文件操作的操作类似, 主要包括open () 、read () 、write () 、ioctl () 、close () 等接口函数。应用程序发出系统调用命令后, 会从用户态转到内核态, 通过内核将open () 等的系统调用转换成对物理设备的操作。在Linux中通过分层实现对物理设备的调用, 这样使得内核的结构清晰, 提高了模块化的独立性。

2.1 嵌入式Linux设备驱动程序的框架

Linux系统设备分成三种基本类型:字符设备、块设备、网络设备。每个模块通常实现其中某一种:字符模块、块模块或网络模块。

嵌入式设备驱动整体可分以下两部分:

(1) 硬件设备接口层。这部分主要描述驱动程序与设备的交互。

(2) 驱动与内核接口层, 它实现驱动模块在Linux内核的注册加载与卸除工作[5,6]。

对于驱动程序与内核接口层, Linux提供了标准的人口点函数init_function O;在通过模块化的设计方法设计驱动程序时, 使用insmod加载核心模块时会调用本函数, 通知内核对驱动程序进行注册。模块的卸除工作与加载工作类似, 通过rmmod卸载模块时, 调用cleanup_function0取消驱动程序的注册。

2.2 GPIO的步进电机驱动开发

GPIO (General Purpose Input Output) 的步进电机驱动可以归类为Linux设备驱动的字符设备驱动, 以下是开发它的一些具体步骤。

2.2.1 开发步骤

(1) 模块化驱动程序

写字符设备的驱动程序时, 也要遵守模块化编程的一般规范。设备模块在用户空间的初始化和终止:

Init_mnodule () 向内核注册模块提供数据结构、局部和全局变量。

Cleanup_module () 取消所有init_module在内核中的注册。

(2) 设备模块在内核空间的内存申请和释放

kmalloc () 函数分配一段内存, 这样就实现了Chrdevs向量表中指向设备驱动程序名称的指针。使用kfree释放内存。

(3) 字符设备主设备号和次设备号的分配

主设备号标志设备对应的驱动程序, 内核利用主设备号将设备与相应的驱动程序对应起来。主设备号的取值范围是0~255, 如果不善加规划, 则容易造成主设备号的冲突。

次设备号由驱动程序使用, 内核的其他部分并不使用它, 仅将它传递给驱动程序。

(4) 设备模块在内核空间的注册与注销

字符设备的注册有两种方法, 一种是常用注册方法, 通过系统函数registel_chrdev () 将设备加入到系统设备列表中;另一种是devfs技术, 通过系统函数devfs-regisrer () 实现设备的注册。注销与注册相反, 分别调用unregister_chrdev () 函数和devfs_unregister () 函数。

(5) 设备模块在内核空间提供系统调用的函数

设备驱动程序在注册成功以后, 用户可以通过访问设备特殊文件 (一般情况在/dev目录下) 实现系统调用[7,8]。

GPIO驱动程序只需要一个file_operations数据结构体就可以了。

2.2.2 驱动开发

要写实际的驱动, 就必需了解相关的硬件资源。比如:用到的寄存器、物理地址、中断等。在这里, 它用到如下硬件资源, 如表2所示。

要用操作所用到的IO口, 就要设置他们所用到的寄存器, 我们需要调用一些现成的函数或者宏, 比如:

/*每个port有16个引脚, 而每个引脚由两位来配置, 所以你看到32×N。32表示一个port的配置寄存器, 而N代表是第几个端口。而这里的offset表示的是第几个引脚。*/

所用到的头文件如下:

S3C2440开发板中GPIO的许多引脚是和地址线、数据线、串口线等引脚复用的。所以我们必须对GPIO进行重新定义和配置。一般来说, 写驱动可以在内核中找相近的驱动程序, 以它为模板进行开发, 有时也要从零开始, 这次作者在内核L i n u x-2.6.1 3-q q 2 4 4 0kernel-2.6.13driverschar中的qq2440_led.c进行修改。

/*数组, 存储相关的寄存器编号*/

/*数组, 存储相关的引脚*/

/*GPF_io_table和GPF_io_cfg_table两个数组实质上把需要的寄存器资源和引脚资源组织起来了*/

/*显然, 我们需要把引脚和相应的控制寄存器对应起来*/

/*同一个引脚有可能会有多个功能*/

/*这时候, 就需要软件来进行引脚与寄存器的对应*/

/*这是通过s3c2410_gpio_cfgpin () 函数来做的*/

/*联结好之后, 我们对寄存器的操作就是对相应的引脚的操作*/

/*而我们的引脚又是直接与我们的步进电机驱动器连接的*/

/*向步进电机驱动器脉冲信号输入、脱机信号输入给信号, 从而控制步进电机转动*/

最后定义了file_operations和各种API函数, 配置了ini和exit函数以及module_exit和module_init。

驱动开发完后, 要进行测试。把编写好的驱动程序在PC机上进行交叉编译。然后用命令#insmod stepper.ko加载模块到内核中, 通过命令#rmmod stepper.ko可以卸载模块。用mknod/dev/stepper 1000 0建立与驱动程序相应的设备节点。编写相应的应用程序。在应用程序中打开步进电机的设备文件, 通过调用ioctl (fd, 1&dir, 0) , 运行应用程序, 查看步进电机的转向。

3 结论

本文在S3C2440开发板下实现了步进电机的控制。给出了简单的驱动程序, 实验结果表明驱动运行正常、稳定。但对于实现传能激光雕刻的图形及灰度雕刻, 还有待于进一步的完善。

摘要:本平台基于Samsung公司的友善之譬QQ2440V3开发板, 它采用Samsung S3C2440为微处理器, Samsung S3C2440的内核为ARM920T, 且采用Linux2.6.13内核作为它的操作系统。设计了硬件系统, 并实现驱动程序对步进电机的控制, 在QQ2440V3开发板上的实验结果表明驱动运行正常、稳定。这是实现激光雕刻的核心, 为以后实现传能激光雕刻夯实了基础。

关键词:ARM,Linux,步进电机,驱动

参考文献

[1]周立功, 等.ARM微控制器基础与实践[M].北京:北京航天航空大学出版社, 2003.

[2]韦东山.嵌入式Linux应用开发完全手[M].北京:人民邮电出版社, 2008.

[3]刘宝廷, 程树康, 等.步进电机及其驱动控制系统[M].哈尔滨:哈尔滨工业大学出版社1997.

[4]李欣欣, 侯蓝田, 潘普丰.级灰度激光雕刻控制系统的软件设计[R].燕山大学红外光纤与传感研究所2006.5.

[5]华清远见嵌入式培训中心.嵌入式Linux C语言应用程序设计[M].北京:人民邮电出版社2007.

[6]Hou Lantian, Wang Xinqi, et al.Transmission characteristic of GeO2hollow fiber[C]//SPIE, 1999, 2893:309-314.

[7]Marcatili E A J, R.A.Schmeltzer R A.Hollow metallic and dielectric waveguides for long distance optical transmission and lasers[J].The Bell System Technical Journal, 1964 (11) :1783-1809.

篇6:基于ARMLINUX的嵌入式GUI的设计与开发

(1. 浙江国际海运职业技术学院 航海工程学院, 浙江 舟山 316021;2. 大连陆海科技股份有限公司, 辽宁 大连 116023)

0 引言

随着船舶自动化程度的不断提高和计算机网络系统技术的飞速发展,船舶自动化系统正在向船舶信息集成化方向发展,各船舶航运企业纷纷建立船舶信息监控管理系统.该系统通常能自动集成船舶运行的重要信息数据,通过卫星传输实现船舶与航运公司之间的信息交换、航运公司对船舶的监控和管理,促进船岸一体化管理平台建设进程,提高管理层的调度、经营和决策能力,提升船舶航运安全性和港口运输能力.[1-5]现有船岸一体化管理平台对船舶的信息采集多集中于船舶航行的动态信息,并局限于对具体的设备进行采集,对于船舶上的其他类型传感器数据无法进行统一处理.另外,现有船岸一体化管理平台多采用陆地上通用的计算机设备,不能适应特殊的船舶航行环境,且与传感器的设备信息之间没有隔离保护,设备电源也未采用隔离保护措施.在船岸一体化管理平台中采用嵌入式技术,统一采集和传输协议,可满足对更多不同类型信息的采集和传输;具有应急电源保障的24 V直流电源供电和电源隔离保护,对传感器的信号接口进行隔离保护,提高系统工作的稳定性和抗干扰性.[6-7]

所谓嵌入式技术,就是综合计算机技术、自动控制技术、通信技术等开发智能化产品,实现产品故障诊断、自动报警、本地监控或远程监控,达到管理的网络化、数字化、信息化和现代化.在船岸一体化管理平台中采用嵌入式技术,可实现功能:(1)利用现行的国际标准和行业标准(IEC-61162,NMEA0183和NMEA2000),对船舶常用传感器/设备输出的信息进行采集、存储和远程传输的协议封装.(2)在协议封装的基础上,设计协议的扩展规则.在该规则下,对没有国际标准和行业标准的非标准的非交互式传感器/设备的信息进行采集、存储和远程传输的协议封装.(3)实现对非标准的交互式传感器/设备的信息采集、存储和远程传输的协议封装.(4)实现预警按钮和用户自定义按钮的功能.(5)实现采集信息的显示与查询、报警信息的屏幕显示.

1 嵌入式船岸一体化管理平台设计与开发

嵌入式船岸一体化管理平台由嵌入式计算机硬件和嵌入式软件组成.

1.1 嵌入式计算机硬件设计与开发

嵌入式船岸一体化管理平台硬件系统的整体结构见图1.

图1 嵌入式船岸一体化管理平台硬件系统组成

该平台硬件系统的核心是嵌入式船舶信息综合采集与传输设备,在第2节进行具体介绍.船舶导航设备是指符合IEC-61162或NMEA0183标准的船舶导航设备,如船舶自动识别系统(Automatic Identification System,AIS)、全球定位系统(Global Positioning System,GPS)、计程仪、测深仪、风速/风向仪、陀螺罗经、自动舵、雷达等船舶常用设备.非标准的非交互式传感器/设备包括具有只读信号输出的传感器/设备,如机舱集控系统输出的船舶主机运转信息(如主机转速、排气温度等)、燃油消耗信息、船舶辅机的发电参数等.这些只读信息以一定的周期对外提供,不需要与数据的接收方进行协议交互,提供数据的方式是ASCII码或二进制数据流.船上冷冻舱室、存油水舱的传感器属于非标准的交互式传感器/设备,这些传感器/设备采集的信息需要进行交互式查询.嵌入式船舶信息综合采集与传输设备可以从计算机网络获取用户自定义的需要采集的数据,同时也可以通过船舶计算机网络访问船舶卫星通信设备,进行船岸之间的远程通信和数据传输.[8]在船上通常使用AMOSMail或Rydex的个人计算机作为电子邮件网关,网关提供标准的电子邮件POP/SMTP服务.船舶卫星通信设备是指目前常用的船舶卫星通信设备,例如:支持IP通信服务的VSat设备和铱星设备或海上宽带设备Inmarsat-FBB,支持MPDS的Inmarsat-F,支持ISDN的Inmarsat-F/B,支持存储转发短消息通信的Inmarsat-C/Mini-C等.[2,9-11]

1.2 嵌入式软件设计与开发

嵌入式船岸一体化管理平台软件由通信模块、采集模块、WEB设置与管理模块组成,见图2.

图2 嵌入式软件结构

1.2.1 采集模块

采集模块负责读取所连接的采集设备的相关类型和接口配置信息,根据配置文件中的参数初始化相关采集设备,提取需要的采集设备的数据,对数据进行编码并写入缓存中.从设备的配置文件中读取所采集设备的配置信息,该信息对设备进行采集所要使用的标准协议、非标准非交互和非标准交互中的某种方式进行描述.

1.2.2 通信模块

通信模块负责读取所连接的通信设备的相关类型和接口配置及通信通道的配置信息,根据配置文件中的参数初始化相关通信设备,轮询查看是否有新的等待发送的信息包命令,并解析新的信息包命令,根据报文命令调用相关的需要采集的设备的数据(从缓存中读取要采集的设备的数据),之后对数据进行编码,选择通信信道,驱动通信设备,发送编码后的数据.从设备的配置文件中读取使用通信和传输设备的配置信息,根据需要对传输的设备信息进行传输协议的封装,采用标准或非标准的封装方式进行编码,选择通信设备和通信方式发送到指定的目的地址.

1.2.3 WEB设置与管理模块

嵌入式平台软件通过嵌入式的WEB服务提供设备配置与管理界面.在设备安装调试时,可以通过连接到本设备的计算机用浏览器对设备进行配置;同时也可以对连接到本设备的传感器/设备进行调试.具体的实现流程是,从设备的配置文件中读取配置信息,通过设备中的嵌入式WEB服务器(即BOA,一个小巧高效的WEB服务器)在WEB浏览器中显示.根据登录用户的权限控制,只读用户只能查看配置信息,维护管理用户可以对所采集的设备和传输设备进行配置修改,确认后写入配置文件,从而更改设备的运行参数.通过该模块可以根据配置文件对船舶上需要的采集传感器/设备的数据采集方式和通信方式进行配置,实现对不同类型信息的采集和传输.

WEB设置与管理模块主要包括读配置文件模块和写配制文件模块.通过IE浏览器输入控制器的IP地址,登录控制器的设置页面(控制器有BOA),BOA引导控制器调用相关的功能模块.读配置文件模块读取所有的配置信息,所有配置信息通过BOA传递到WEB浏览器上,通过WEB浏览器对控制器进行设置.对设备的配置进行维护后,保存设置时会调用写配置文件模块.

2 嵌入式船舶信息综合采集与传输设备

该设备负责船舶航行信息的采集和管理,随时从AIS,船舶保安警报系统(Ship Security Alert System,SSAS),船舶局域网的文件服务器或其他采集软件服务器等采集船舶数据信息;及时解析来自地面站的指令,并根据指令要求执行相应的操作.[7]该设备主要由触摸屏、预警按钮、用户自定义功能按钮、以太网接口、多个串行口、对串行口进行信号隔离的模块、电源隔离模块等组成,见图3.

电源隔离模块采用直流中心电压为24 V支持12~36 V的宽电压隔离供电方案,以适应船舶通信应急电源的供电特点.本设备符合船舶通信电源的设计和使用规范,并得到船舶通信应急电源的支持,同时也避免或减少因电源产生的信号干扰.信号隔离模块对接入设备的串行口进行隔离保护,避免不同设备之间的信号干扰,同时提高设备对船舶环境的适应能力.

以太网接口用于连接船舶计算机网络或支持以太网接口的船舶卫星通信设备.通过网络连接,既可以通过网络采集用户自定义的数据,又可以通过以太网与船舶卫星通信设备连接进行船岸远程数据通信.[9,12]

触摸屏提供设备的人机界面,对采集的信号进行显示,对设定预警和报警门限的传感器信息进行相应的预警和报警.预警按钮用于人工报警,可以预设置报警内容和报警的目的地址.用户根据预先的设定,在报警情况出现时按下该按钮,可以将报警信息发送到陆地的用户公司端.用户也可以通过自定义功能按钮定义信息发送的内容和目的地址;通过浏览器设置和配置设备运行参数、符合船舶设备显示规范的屏幕显示配色方案和亮度.

图3 嵌入式船舶信息综合采集与传输设备结构

3 采集、传输协议设计

采集协议的封装按照原始数据透明传输的原则,在原始数据的基础上增加协议头(Header)、船舶标识(通常采用船舶的海上移动识别(Maritime Mobile Service Identify, MMSI)9位码)、设备标识.采集的信息传输到岸端后再提取和还原,并进行解析.这种透明传输可以得到传感器/设备的原始数据,减少中间处理环节,从而降低信息处理的复杂度,提高对采集设备的兼容性,使设备可以适应各类船舶、多种设备及信息的采集与传输.

船舶常用的符合IEC-61162或NMEA0183标准的船舶导航设备采集和远程传输的协议封装内容包括:协议头,船舶标识,采集与处理的时间戳(Time-Stamp),传感器/设备的标识ID,一个标准、完整的符合IEC-61162或NMEA0183标准的信息内容的语句和协议尾(Tail)等.

对非标准的非交互式传感器/设备的输出信息进行协议封装时,在协议头标识出该信息为非标准信息;采集信息由一个或多个以200 Byte的ASCII字符串或二进制数据块组成,这些信息传输到岸端后再提取和还原,并进行解析.

对于非标准的交互式传感器/设备只能按照不同设备生产厂家的输出协议采用定制开发的方法进行数据采集.其具体处理流程:在配置文件初始化采集设备后,根据设备定义的交互式查询逻辑定制开发采集的模块,经过采集设备数据编码后存入缓存.在非标准交互式的采集数据封装上,采用非标准的非交互式传感器/设备输出信息的封装协议进行封装.

4 结束语

嵌入式船岸一体化管理平台通过创新的软硬件平台设计,具有适应多种类型传感器/设备的信息采集、抗干扰能力强、工作稳定和可靠等特点;支持船到岸报警和用户自定义信息发送等功能,能自动、快速地对远程请求作出响应,通信效率高,减少人为操作失误的可能性;实现对参数的远程修改以及远程维护和管理.

嵌入式船岸一体化管理平台能提升平台的通用性、可靠性和安全性,在为岸基提供船舶实时信息的同时,进一步实现岸基对船舶的远程监控和对船队的优化管理,提高对突发事件的处理能力,是今后船舶自动化发展的一个主要方向,在船舶运输业、海上救助、海洋船舶监察、海洋考察、远洋渔业、海洋勘探和海洋勘查等领域具有广泛的应用前景.[13-15]

参考文献:

[1] 钱晓江. 船舶集成平台管理系统和船岸一体化[J]. 上海海事大学学报, 2006, 27(1): 53-57.

[2] 潘春彬, 杨哲, 郑士君. 基于INMARSAT的船岸一体化供应平台建设[J]. 中国科技信息, 2012(22): 134-153.

[3] 岳跃申, 郑士君, 黄爱平. 新型船岸一体化管理平台的设计及其功能[J]. 航海技术, 2009(9): 70-72.

[4] PIETRZYKOWSKI Z, BORKOWSKI P, WOLEJSZA P. Marine integrated navigational decision support system[M]//Telematics Transport Environ. Berlin, Heidelberg: Springer, 2012: 284-292.

[5] 东昉, 刘正江. 数字航海[M]. 大连: 大连海事大学出版社, 2010: 170-171.

[6] MACNAMEE C, HEFFERNAN D. Emerging on-ship debugging techniques for real-time embedded systems[J]. Computing & Contr Eng J, 2000, 11(6): 295-303.

[7] 韩建锋, 陈星. 嵌入式船舶数据采集与监控系统[J]. 仪表技术与传感器, 2008(8): 61-62.

[8] 冯素梅. 基于WEB的远程监控技术研究及应用[J]. 船电技术, 2006, 26(1): 29-32.

[9] 李顺亮, 王新辉, 钟碧良, 等. 基于鑫诺卫星的船岸综合监控系统的设计实现[J]. 中国航海, 2008, 31(3): 211-213.

[10] 郑士君, 褚建新. 船舶安全监督综合管理信息系统[J]. 上海海事大学学报, 2008, 29(3): 19-23.

[11] 薛明刚, 徐承飞, 赵卫丽, 等. 船岸一体化数据同步的实现[J]. 中国修船, 2011, 24(1): 21-24.

[12] 钱晓江. 基于工业以太网的船舶集成网络平台[J]. 上海海事大学学报, 2007, 28(2): 48-52.

[13] 汪益兵. 综合船桥系统的开发及在中型船舶上的应用[J]. 船舶工程, 2010, 32(4): 45-48.

[14] 蔡晔敏, 周亚兰, 朱蕊. 船舶自动化系统网络的设计进展[J]. 上海工程技术大学学报, 2010, 24(2): 142-144.

上一篇:八年级语文日记范文下一篇:第四中学创建太极特色学校总结