kok 2008-5-7 23:01
让Linux“嵌入”天空
让Linux“嵌入”天空b(P#glH'p6Hy
_jHW'bB5}"W
Intrinsyc软件公司依靠着推出的CerfBoard平台([url=http://www.intrinsyc.com/products/create.asp]http://www.intrinsyc.com/products/create.asp[/url]),一直以来都是智能连接设备开发的倡导者。Intrinsyc长期以来从事能够运行在各种处理器上的、面向Headless设备(安装时不需要使用键盘、显示器和鼠标的设备)和显示应用程序的嵌入式平台的开发,而且还开发了一个通用Linux发行版以充分利用CerfBoard的各种功能。通过使用IBMWME(WebSphere Micro Environment)的JPRE(Java Powered RuntimeEnvironment),CerfBoard已经发展成了一个功能丰富、能力强大的通用嵌入式网关服务器。这个引人注目的小型网关服务器可用于远程系统管理和对连接的任何智能设备进行监控。 ?d%~oR?N)`
8l;l3]!`Jk4I;L_3b
网关服务器是Internet和本地以太网设备之间进行通信的一个桥梁,它允许用户与所连接的设备进行会话或对其进行控制。比如,在智能家居中,一个家庭网关服务器可以连接家庭中的各种设备,并且允许用户把草坪上的喷水机和Internet上的气象预报进行同步。此外,用户还可以通过无线的PDA来开灯、监视报警系统,甚至放飞一架飞机。可以看出,该应用的范围实际上是无限的。
2u\8H
CL:E;cdI
X1VbdK-C#TcR
随着嵌入式智能设备在家庭和办公室的广泛使用,就需要有一个用于连接和整合的标准框架。这是通过使用OSGi(开放服务网关组织)协议和API来实现的。OSGi是通过定义服务网关的Java API来实现标准化的。之所以使用Java技术,是由于它是一项开放的技术,并且可运行于各种平台之上。
[
^!Xc1WH"@~
;}d5k
Y9Ul(M.J
[b]飞机模型的远程导航 [/b]y@H!A5{F']d
z]9t.gf&k {
IBM的PCATL实验室(Pervasive Computing Advanced TechnologyLaboratory)的工程师已经开发了一个应用程序,可以使用一个小型的基于Linux的单板机来代替标准的无线控制设备来控制模型飞机。该思想已经被扩展到Java层,允许用户使用一个标准的无线PDA实现对飞机的控制。由于具有网关服务器技术的很多优点,CerfBoard405EP被选择用于该方案之中。 F
hRd*f,W8nUho V#d0bP
%d3M9j? A5]2dM~4{J#L3c
Intrinsyc软件公司的嵌入式Linux计算机使用的是基于IBM PowerPC405EP嵌入式处理器的CerfBoard 405EP。CerfBoard405EP运行的是Intrinsyc自己的Linux发行版(I-Linux),此外再加上IBM的WME JavaVM(虚拟机)和SMF(服务管理框架),实现了嵌入式服务网关的功能。其中的SMF软件包整合了用户界面和用户在Java层与Linux操作系统进行交互的功能。
q.uR(M%m
!JUHXw(e
CerfBoard 405EP被安全地放置在飞机模型的驾驶舱内,并且被整合至模型中原来的无线控制系统中。CerfBoard 405EP使用的是5伏的电池组,也被放置在驾驶舱之中。
2ua5t/cy+yQZ
E6]~7\1]y
模型机原来的控制模块和CerfBoard 405EP通过某一特定频率被连接在一个无线切换的模块上面。用户可以在计算机控制飞行和手工控制飞行之间自由地切换。整个工作流程见图1。
d:U5z6mb.X
1b2_;STn2{:_Xx1Z
%T8q
?:Yi#c0A?sf
[attach]864303[/attach]
d
K@#~? iwEU
图1 工作流程图?
o-\C/v,_
~r
1iNvOW \
飞机飞行的路径则由下面的组件进行操纵: s^9AI,v)I
?(yq^w:Z2Q!Y
◆ 飞机机翼上的副翼可以旋转机身; 5O*eUg}/j~
0|i9Dc/_8` v;H2|;t
~'M
◆ 水平稳定器上的升降舵可以调节飞机的高度;
5j]Xc _3Q7`o
N9OvAl
◆ 垂直稳定器上的方向舵改变飞机的转向。
R-n$M2n,St)K7N ?q
x#HPs#^)r
EU6g
伺服发动机连接在副翼之上,升降舵和方向舵则通过一个专门的集成电路来控制,该集成电路通过一个标准的RS232连接来接受命令。CerfBoard405EP上的Java层则通过一个本地的共享库和RS232进行交互。原来用于操纵飞机组件的通信协议则被导入到了CerfBoard405EP上的SMF软件包之中。 ,HT$Z]ZNQ
O1TX]4Ep A
SMF软件包提供了一个JavaServlet(一种标准的服务器端Java应用程序,它扩展了Web服务器的功能)。它可以从任何有Java插件的浏览器中进行访问。该Servlet会显示一张某一地点的LandSAT(地球资源卫星)地图,还可以通过CerfBoard405EP的URL来进行访问。当地图上某一选定的点和飞机的位置不同时,软件就会给出一系列的命令,指引飞机到达指定的位置。一旦目的地到达,飞机就会在此盘旋,等待接收新的命令。 a G*CZ4FrQY{&b
X EC'{)F
飞机上安装的一套GPS(全球定位系统)和一个独立的陀螺仪用于保持飞机的虚拟位置和实际物理位置之间的同步,并且允许对其飞行路径进行实时地校正。飞机的当前位置是由主板上的GPS模块和整合在垂直指示器上的陀螺仪来决定的。导航软件是由带有本地库支持的、具有GPS和陀螺仪模块接口的SMF软件来充当。收集到的数据会输送至一个位置算法程序中,该程序会比较飞机目前的状态和想要飞行的路径,并且由伺服系统对结果进行精确调整。 n&s9LmWm(j
IglK"Hj?
IBM的PCTAL开发了一个3维的虚拟飞行环境,它可以跟踪飞机的飞行情况。该环境居于LandSAT地图,并且给用户一个从飞机座舱里的虚拟视角(见图2)。高度、位置和方向等信息会被传送至一个Linux桌面,并且以640×480的分辨率来显示出地形。该飞行视角图可以实时更新。#?2dd7l&XTl#cD
%q/G9Sf/K#_+L"_
R\\!MXr"}1BmH
[attach]864302[/attach]f6tU1NR!x
图2 从飞机上传送回来的图片9[,[aK| zl(Y|G5F
'`I\;o5e+b*NK
PDA和随飞机携带的CerfBoard405EP之间的交流是通过手机通信的方式来完成的。该手机通信模块通过一个RS232连接与CerfBoard整合在一起。一个802.11b连接用于近距离的通信和软件升级。CerfBoard 405EP使用了一个带有128位加密模块的MiniPCI无线卡。
O']!k#n'_wb%n
+]-m;dSc;a3a
PDA客户端使用的是一个具有Java功能的浏览器(比如Intrinsyc的uPDA平台或SharpZaurus)。PDA在此扮演的是一个通过802.11b和手机通信连接与CerfBoard405EP进行连接的瘦终端,用户无需在PDA上运行任何其它的应用程序。
xh zLk&g&@
1nm7|*T5z
CerfBoard 405EP小型服务器 L3Sox0Q&Mg2K
7e+w
O p9s t Rb&V#]
CerfBoard405EP(见图3)使用的是IBM PowerPC 405EP嵌入式处理器。IBM PowerPC 405EP32位RISC处理器可以提供灵活的硬件解决方案,以满足高性能嵌入式应用程序的需求。由于采用的是PowerPC体系结构,405EP处理器在代码上可以和其它的PowerPC处理器兼容,并且可以相互移植,从而加速了相关产品推向市场的速度。7fU8W
y/y
'Gx5e-qSl
4o3Ldmb5ohv6eu1dBJ
[attach]864301[/attach]
hZ-t\C0C]$r
图3 Intrinsyc的CerfBoard 405EPP/RS?x*WY2s)TT
I%^-Yz m'}e1l f
CerfBoard405EP优化的性能、低功耗及丰富的功能使其成为通信、数据存储等方案的理想选择。它包含有32MB NAND Flash和32MBSDRAM。I-Linux操作系统使用的内存不到5MB,而WME和SMF使用的内存也只有5MB,这就为其它的应用程序留下了足够资源。它还包含有两个网卡,两个RS232异步端口。 z5Pv v5w
%U4t#bP@
为什么使用Linux ]F~H._'o.u!e
dA
zA+dVeb
据Intrinsyc公司称,之所以选择在CerfBoard405EP上使用Linux,是因为Linux功能丰富,并且具有极好的可配置性。对于硬件资源有限的Headless设备来说,Linux绝对是一个非常不错的选择。此外,IBM的WME虚拟机与SMF可以和Linux操作系统无缝整合,并且提供一个强大的远程访问控制层也是主要的原因之一。 fE:Kn Z[o{#@hn
:iv,QzB[:w!B |7T
I-Linux -ZRkT9J5DV
Jun*?8d~4WM8Q
Intrinsyc软件公司开发了一个可用于CerfBoard上的Linux发行版。该发行版使用自由发行的内核和文件系统,这保证了用户也可以自由地加入推进该发行版功能的开发工作中来。 ] Z*\H4b_
HAF+H&`"Ct:m*`#o
该发行版使用的内核是2.4.21-pre2。它经过修改可以支持CerfBoard 405EP的一些特定功能,比如对第二个网卡的支持和对在NANDFlash之上的JFFS2的支持。CerfBoard405EP有一个MiniPCI插槽,所以内核里也包括了对网卡、调制解调器及HostAP无线网卡的支持。 'H.@TOx/e,p
|vPq
I
文件系统来自Familiar Project([url=http://familiar.handhelds.org/]http://familiar.handhelds.org/[/url]),并且对其进行了一些更改。这使得CerfBoards可以运行一些具备很多关键功能的成熟工具,比如ipkg软件包管理工具。这个软件包工具由FamiliarProject的PXA250演变而来,它可以简化应用程序和驱动程序的安装过程。另外,它与Debian的兼容性使得开发人员可以非常轻松地整合任何Debian中可用的软件包。
\A5x/@)kr m
7Hk8X2`[)]AV
现在,Intrinsyc软件公司正在致力于建立一个开发社区,以支持和发行基于PowerPC405EP的驱动程序和应用程序。该公司希望能够吸引大量的开发人员和用户加入其中,从而为PowerPC405EP储备大量可用的应用程序和驱动。对于基于PowerPC405EP的Linux而言,其成功的关键在于它对所支持的平台的整合过程简单,并且开发时间也比较短。 bVXO-S0L,r
rx? s?na9|
WME和SMF
S#~$SD#@0Y
C2Tfu:\
上述遥控模型飞机方案展示了Linux和Java技术可以互补的特点。在该方案中,Linux提供了一个框架和操作系统的功能,Java的类库则提供了远程控制的能力和图形化的用户界面。Java技术可移植性的特点使得所开发的应用程序可以运行在所有Linux平台之上,而无需考虑开发时所使用的平台。
:l_8h RAW
y\
5NP'R4Ma$}Wb2`I
运行在CerfBoard 405EP上的Java层由JavaVM和SMF(服务管理框架)的网关服务框架组成。WME提供了一个专门针对嵌入式平台进行优化的虚拟机,其模块化的设计提供了多种可供选择的功能。在嵌入式平台上,软件大小的限制往往是至关重要的。Linux模块化的特点和WME VM让开发人员只包含必须组件的做法,都是基于这点考虑的。开发人员可以通过以下途径来配置WME:
P(bbM2_7V Y)W?
#B1p`HiR ~.q(w
◆ WME配置选项; ^{]D`1A
oYe@;]
◆ 本地库选择; M'i2r-S0[`C-v
5dO-P.g4P&nn.A
◆ 使用JXE。
w5^zA9|+w
;MqIe)I
HE(~1Z
WME为J2ME应用程序提供了一个Java运行环境。CDC(连接设备配置)是专门为内存超过2MB的系统设计的,它支持以下的Java组件:
V-m0i ~y;OR
(b},gf:iOl1m:?Q9aH
◆ java.lang Java VM系统类; -g7MPmO2_
S$C4gc&Qx5D
◆ java.util 基本的Java工具;
:D.D vI5B#X1Q
O;V-ySBAU.J
~
n
◆ java.net UDP(Universal Datagram Protocol) 数据包和I/O;
:k}*hv9wv
{6Ux0J }6jk"n4A
◆ java.io Java文件I/O;
qZdg@2j6_r
s%y;kg`P.M
|
◆ java.text 对国际化的支持; 1u.k*OaLJR8^u)h
oS1s4SA!x
◆ java.security 对安全和加密的支持。
#O*i:NGDT~
s-~5e
F*Ty:]&u Dr:h*X
它结合了一个创建J2ME运行环境的配置文件,该配置文件定义了一个用户可以操作的API层。本地库允许VM应用程序可以通过Java命令来访问硬件组件,从而简化了Java应用程序的开发。 /|&a4G%h`^.r
a"N.r${J(Tw
WME JXE文件允许开发人员只包含classes.zip文件中所需的组件。因此,如果配置VM的要求是已知的,那么对于减少VM的大小,JXE文件将是一个理想的选择。
'wB%c+G0d g
4u8H;h(v `"_s!Z
SMF专门针对嵌入式系统进行过优化,它组件化的设计可以让用户根据需求和资源的限制来进行配置和选择。它可以使用的设备范围非常广。此外,它还可以对资源进行管理。对于每一个软件包,开发人员可以指定最大的内存使用量、优先进程的数量等。 ty&Q? w
,F3v+FZ1K$p
WSDD %lp~k(\;k0n
+Q+Y(M$qoyd
WSDD(WebSphere Studio DeviceDeveloper)用于整合WME和SMF,从而简化针对这些平台的开发。IBM使用Eclipse平台的插件结构将其集成到WSDD。借助Eclipse技术,WSDD提供了全面的、可为移动电话、PDA及其它无线或有线设备构建、部署和测试嵌入式Java应用的环境。
$cqt-X?1T1`"irZ
a'VON\!O
为什么使用OSGi ~mF\2mXf#^b|
m,XMzQv%E+Cm
OSGi定义了Internet到本地网和在设备传送服务时要遵守的一些规范。这些规范的目的是利用和管理日渐增长的家庭自动控制、家庭网络和娱乐服务的应用程序。网关服务标准化的框架可以被其它应用程序使用。
%lq:d4D{S$o|3z,| b [J3g
)]1Z7e
i z$?#Kis
网关服务整合了原来相互独立的电话、数据网络、线缆服务、娱乐、移动业务、能源管理和信息通信业务。这些设备可以被打包,并且从一个具有单一用户界面的控制台进行管理。
+E$H6u~O#O
)yV+P{$M:]n0{ ?b
OSGi充分利用了Java对于各平台的兼容性和可移植性,意味着任何Java设备都可以在该框架内进行管理。
9i.C7a \/oc
YjC.~:]Py
小结 ;O9E|~a
H` a:t&I6Q[6g
Linux和Java的结合在上述的方案中显示出了强大的实力。有理由相信,这还只是Linux在嵌入式应用中的冰山一角,还有很多未知的应用领域等待Linux去施展身手。
~Sylvie~ 2008-5-8 03:00
我做的嵌入式,,,可我不太会用LINUX(rf26rf) (rf26rf) (rf26rf)
SeuletDeviner 2008-5-8 16:21
对于java的效率 ,汗一个9[3P
D]`
j_)@
x ^r\'r[ig {
另,对于普通用户,的确不需要学linux,人机交互的界面只会越来越容易
kok 2008-5-8 16:37
[quote]原帖由 [i]SeuletDeviner[/i] 于 2008-5-8 16:21 发表 [url=http://bbs.revefrance.com/redirect.php?goto=findpost&pid=11343200&ptid=487024][img]http://bbs.revefrance.com/images/common/back.gif[/img][/url]
%kSg U-? d l
对于java的效率 ,汗一个
1iss?J|V!Wy
YJKhY%C
x
N
另,对于普通用户,的确不需要学linux,人机交互的界面只会越来越容易 [/quote]i#}"C9n:Kk2y(Yo'TE
Nn WC7r&r-B
此JAVA非彼JAVA
新手新手 2008-5-8 20:22
为什么不在我学LINUX前说:eek: 呢:eek: