版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 設(shè) 計(論 文)</p><p> 設(shè)計(論文)題目: 基于嵌入式的GIS系統(tǒng)研究 _</p><p> 姓 名 </p><p> 學 號 </p><p> 院 系 信息工程學院 </p><p> 專
2、 業(yè) 計算機科學與技術(shù) </p><p> 年 級 </p><p> 指導教師 </p><p> 年 月 日</p><p><b> 目 錄</b></p><p><b> 摘 要5</b></
3、p><p> 一、GIS系統(tǒng)概要6</p><p> ?。ㄒ唬IS簡介6</p><p> ?。ǘ?、OpenGIS規(guī)范6</p><p> (三)、空間數(shù)據(jù)類型(OpenGIS WKB and WKT)6</p><p> 二、GIS數(shù)據(jù)庫系統(tǒng)實現(xiàn)7</p><p> (一)
4、、PostgreSQL數(shù)據(jù)庫管理系統(tǒng)7</p><p><b> 1.系統(tǒng)簡介7</b></p><p> 2.支持幾何數(shù)據(jù)類型7</p><p><b> 3.過程語言8</b></p><p> ?。ǘ?、PostGIS系統(tǒng)8</p><p><
5、;b> 1.簡介8</b></p><p> 2.空間數(shù)據(jù)類型(GIS Objects)的實現(xiàn)9</p><p> 3.數(shù)據(jù)定義10</p><p> 4.數(shù)據(jù)查詢10</p><p> 5.數(shù)據(jù)轉(zhuǎn)儲(Shapefile文件的使用)11</p><p> 6.數(shù)據(jù)庫優(yōu)
6、化(GiST)11</p><p> ?。ㄈ?、數(shù)據(jù)庫結(jié)構(gòu)及實現(xiàn)13</p><p> ?。ㄋ模⒆疃搪窂剿惴鞒?4</p><p> 三、嵌入式系統(tǒng)15</p><p> (一)、嵌入式系統(tǒng)硬件結(jié)構(gòu)15</p><p> 1.Samsung S3C44B0X微處理器體系15</p>
7、<p> 2.JX44B0-1B硬件配置15</p><p> ?。ǘClinux操作系統(tǒng)15</p><p><b> 1.簡介15</b></p><p> 2.uClinux的內(nèi)核加載方式16</p><p> 3.uClinux的內(nèi)存管理16</p>&l
8、t;p> 4.uClinux的根(root)文件系統(tǒng)17</p><p> 5.uClinux的應(yīng)用程序庫17</p><p> 6.可執(zhí)行文件格式17</p><p> ?。ㄈ?、MiniGUI嵌入式圖形界面17</p><p><b> 1.簡介17</b></p>&l
9、t;p> 2.基于 MiniGUI 的嵌入式系統(tǒng)軟件結(jié)構(gòu)18</p><p> ?。ㄋ模⑶度胧较到y(tǒng)結(jié)構(gòu)18</p><p> 1.進程調(diào)度(SCHED)18</p><p> 2.內(nèi)存管理(MM)19</p><p> 3.虛擬文件系統(tǒng)(VirtualFileSystem,VFS)19</p>
10、<p> 4.網(wǎng)絡(luò)接口(NET)19</p><p> 5.進程間通訊(IPC)。19</p><p> 6.依賴關(guān)系19</p><p> 四、嵌入式地理信息系統(tǒng)EmbedGis20</p><p> ?。ㄒ唬⑶度胧降乩硇畔⑾到y(tǒng)簡介20</p><p> ?。ǘ?、EmbedGis
11、系統(tǒng)組成21</p><p> (三)、EmbedGis系統(tǒng)特點及不足21</p><p><b> 謝 辭22</b></p><p><b> 參考文獻23</b></p><p><b> 注 釋24</b></p><p&g
12、t;<b> 附 錄25</b></p><p> ?。ㄒ唬㈤_發(fā)環(huán)境25</p><p> ?。ǘ?、XDMCP26</p><p> ?。ㄈ?、uClinux編譯過程26</p><p> (四)、MiniGUI編譯注意事項27</p><p><b> 摘
13、要</b></p><p> 本文探討了后PC時代基于嵌入式Linux的嵌入式GIS研究的必要性和可行性,對比現(xiàn)有嵌入式GIS的特點,簡述了嵌入式Linux操作系統(tǒng)的優(yōu)點和特色。扼要介紹了基于Linux的嵌入式GIS研究的硬件平臺,最后給出基于Linux的嵌入式GIS研究的模型。</p><p><b> 關(guān) 鍵 詞 </b></p>&
14、lt;p> 后PC時代,嵌入式Linux;嵌入式GIS</p><p><b> ABSTRACT</b></p><p> The necessity and feasibility of the study of Embedded·-Linux based embedded GIS in post-PC age is discussed in
15、 this paper.The different features of several mainstream domestic and foreign Em- bedded-GIS are compared.And the advantage and characteristic of Embedded-Linux operation system is also introduced.The hardware platform
16、 for Linux-based embedded-GIS is then outlined.Finally a model of Linux-Based Embedded-GIS is described.</p><p><b> KEYWORDS:</b></p><p> post—PC age;Embedded—Linux;embedded GIS;&l
17、t;/p><p><b> 一、GIS系統(tǒng)概要</b></p><p><b> ?。ㄒ唬IS簡介</b></p><p> 地理信息系統(tǒng)(Geographic Information System,即GIS)是一門集計算機科學、信息學、地理學等多門科學為一體的新興學科,它是在計算機軟件和硬件支持下,運用系統(tǒng)工程和信息
18、科學的理論,科學管理和綜合分析具有空間內(nèi)涵的地理信息數(shù)據(jù),以提供對規(guī)劃、管理、決策和研究所需信息的空間信息系統(tǒng)。</p><p> ?。ǘ?、OpenGIS規(guī)范</p><p> 開放GIS協(xié)會(Open GIS Consortium)----一個公益的行業(yè)協(xié)會,致力于促進地理數(shù)據(jù)處理方法的新技術(shù)和商業(yè)方法的互操作,它成立于1994年,當時已經(jīng)廣泛認識到了無交互性的問題以及它對行業(yè)、政府
19、和學術(shù)界的許多負面影響。OGC的成員都有一個有關(guān)國際和全球信息基礎(chǔ)設(shè)施的樂觀設(shè)想,地理數(shù)據(jù)和地理處理數(shù)據(jù)源能自由訪問,完全與最新的分布式計算機技術(shù)集成,每個人都可以自由訪問,“可用的地理數(shù)據(jù)”----一個目前還沒有進入地理數(shù)據(jù)處理方法領(lǐng)域內(nèi),但是一個涉及范圍很廣的活動,開拓了新的市場、帶來了新的商機、給社會帶來新的利益。地理數(shù)據(jù)處理軟件廠家、數(shù)據(jù)庫軟件廠家、可視化軟件廠家、系統(tǒng)集成者、計算機廠家、通訊公司、大學、信息提供者和正版軟件經(jīng)銷
20、商都加入了協(xié)會共同制定軟件規(guī)范、進行新的商業(yè)策劃來幫助解決這些問題,實現(xiàn)潛在功能。</p><p> OGC的軟件規(guī)范就是OpenGIS規(guī)范,它是一個通用的分布式訪問地理數(shù)據(jù)和地理處理數(shù)據(jù)源的軟件結(jié)構(gòu)規(guī)范。開放GIS規(guī)范為全世界的軟件開發(fā)者提供了一個詳細的通用的界面模板,這個模板可以與由其它軟件開發(fā)者開發(fā)的開放GIS軟件進行交互操作。</p><p> OpenGIS就是網(wǎng)絡(luò)環(huán)境中對不
21、同種類地理數(shù)據(jù)和地理處理方法的透明訪問。OpenGIS的目的是提供一套具有開放界面規(guī)范的通用組件,開發(fā)者根據(jù)這些規(guī)范開發(fā)出交互式組件,這些組件可以實現(xiàn)不同種類地理數(shù)據(jù)和地理處理方法間的透明訪問。</p><p> OpenGIS的實現(xiàn)模型是一種客戶/服務(wù)器模型,也就是說,客戶端程序或客戶端對象是通過接口與“服務(wù)器端”進行通訊的。服務(wù)器端是可對客戶端的請求進行響應(yīng)的程序和對象,為客戶端返回響應(yīng)信息或向客戶端提供一
22、種進程函數(shù)。不是所有開放GIS執(zhí)行工具都是傳統(tǒng)意義上在客戶端進程和服務(wù)器端進程間建立一對一的客戶服務(wù)器,有的服務(wù)器可能提供多種不同的服務(wù),有的客戶可以通過網(wǎng)絡(luò)訪問多個服務(wù)器。根據(jù)這種情況,用 “服務(wù)器端口”這個術(shù)語比用 “服務(wù)器”更確切。開放地理模型詞典為通用地理數(shù)據(jù)傳輸和客戶與服務(wù)器端間的地理數(shù)據(jù)處理界面提供了基礎(chǔ)。</p><p> ?。ㄈ?、空間數(shù)據(jù)類型(OpenGIS WKB and WKT)</p
23、><p> OpenGIS “Simple Features Specification for SQL”定義了標準的空間數(shù)據(jù)對象類型、操作函數(shù)和元數(shù)據(jù)表集合。為了保證元數(shù)據(jù)和諸如創(chuàng)建和刪除一個空間數(shù)據(jù)字段的操作的數(shù)據(jù)一致性,OpenGIS定義了專用的程序過程。</p><p> OpenGIS規(guī)范定義了兩種標準的空間數(shù)據(jù)類型的表示方式,the Well-Known Text(WKT)文本
24、形式和the Well-Known Binary(WKB)二進制形式,其中包括了數(shù)據(jù)類型定義和坐標組成定義。</p><p> 以下是文本表達方式的例子:</p><p> 點:POINT (0 0)</p><p> 曲線:LINESTRING (0 0,1 1,1 2)</p><p> 多邊形:POLYGON ((0 0,4 0
25、,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))</p><p> 多個點:MULTIPOINT (0 0,1 2)</p><p> 多條曲線:MULTILINESTRING ((0 0,1 1,1 2),(2 3,3 2,5 4))</p><p> 多個多邊形:MULTIPOLYGON (((0 0,4 0,4 4,0 4,
26、0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))</p><p> 空間數(shù)據(jù)集合:GEOMETRYCOLLECTION (POINT(2 3),LINESTRING((2 3,3 4)))</p><p> OpenGIS同時也定義了空間數(shù)據(jù)類型的內(nèi)部存儲格式和空間參照系統(tǒng)標識SRID(Spatial Ref
27、erencing System Identifier)。在空間對象的定義和插入到數(shù)據(jù)庫中是,SRID是必須的。</p><p> 二、GIS數(shù)據(jù)庫系統(tǒng)實現(xiàn)</p><p> (一)、PostgreSQL數(shù)據(jù)庫管理系統(tǒng)</p><p><b> 系統(tǒng)簡介</b></p><p> PostgreSQL是以加州大學伯
28、克利分校計算機系開發(fā)的 POSTGRES,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。 POSTGRES 領(lǐng)先的許多概念只是在非常遲的時候才出現(xiàn)在商業(yè)數(shù)據(jù)庫中。 </p><p> PostgreSQL 是最初的伯克利的代碼的一個開放源碼的繼承人。 它提供了 SQL92/SQL99 語言的支持以及提供了許多其他現(xiàn)代特性,包括復雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制;同樣,Pos
29、tgreSQL 可以用許多方法擴展,比如, 通過增加新功能,如:數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言等。</p><p> 并且,因為許可證的靈活,任何人都可以以任何目的免費使用,修改和分發(fā) PostgreSQL,不管是私用,商用,還是學術(shù)研究使用。</p><p><b> 支持幾何數(shù)據(jù)類型</b></p><p> P
30、ostgreSQL數(shù)據(jù)庫的特點之一是支持幾何類型數(shù)據(jù)的操作。其基本的幾何類型如下表所示:</p><p> 表2.1 PostgreSQL中的空間數(shù)據(jù)類型</p><p> 同時,PostgreSQL提供了基本的幾何類型數(shù)據(jù)的操作函數(shù),如:</p><p> 表2.2 PostgreSQL幾何函數(shù)</p><p><b>
31、過程語言</b></p><p> PostgreSQL 允許用戶增加新的編程語言, 并且可以用這些語言寫函數(shù)和過程。這些語言叫過程語言(PL)。 如果我們用一種過程語言 書寫了一個函數(shù)或者觸發(fā)器, 那么數(shù)據(jù)庫服務(wù)器是沒有任何內(nèi)建的知識獲知如何解析該函數(shù)的源文本的。 實際上這些任務(wù)都傳遞給一個知道如何處理這些細節(jié)的句柄處理。 這個句柄既可以自己干所有的分析,語法分析,執(zhí)行等的工作,也可以充當Post
32、greSQL 和一種現(xiàn)有的編程語言實現(xiàn)之間的"膠水"。句柄本身是一個特殊的 C 語言函數(shù), 它被編譯成一種共享對象并且在需要的時候裝載。</p><p> PL/pgSQL是 PostgreSQL 數(shù)據(jù)庫系統(tǒng)的一個可裝載的過程語言。 PL/pgSQL的設(shè)計目標是創(chuàng)建一種可裝載的過程語言,具備以下特點:</p><p> 可用于創(chuàng)建函數(shù)和觸發(fā)器過程 </p>
33、;<p> 為 SQL 語言增加控制結(jié)構(gòu) </p><p> 可以執(zhí)行復雜的計算 </p><p> 繼承所有用戶定義類型,函數(shù)和操作符 </p><p> 可以定義為被服務(wù)器信任(的語言) </p><p><b> 容易使用。 </b></p><p> ?。ǘ?、Po
34、stGIS系統(tǒng)</p><p><b> 簡介</b></p><p> PostGIS作為以研究空間數(shù)據(jù)庫技術(shù)的項目,由Refractions Research 有限公司開發(fā)。Refractions在維多利亞,哥倫比亞,加拿大建立了GIS和數(shù)據(jù)庫咨詢機構(gòu),專門從事數(shù)據(jù)綜合和定制軟件開發(fā)工作。PostGIS項目支持并參與開發(fā)PostGIS標準,已經(jīng)支持許多重要的G
35、IS功能,包括對OpenGIS的完全支持和高級拓撲結(jié)構(gòu)的實現(xiàn),如coverages, surfaces, networks等。此外,PostGIS還計劃為桌面用戶提供了訪問、瀏覽和編輯GIS數(shù)據(jù)的用戶接口和基于網(wǎng)絡(luò)的通訊工具。</p><p> PostGIS是以PostgreSQL數(shù)據(jù)庫管理系統(tǒng)為后臺服務(wù)器的擴展模塊,它的實現(xiàn)是以PostgreSQL提供的功能為基礎(chǔ),同時依靠并擴展了GEOS的空間數(shù)據(jù)類型測試
36、和操作功能以及Proj4的空間坐標映射功能。</p><p> 空間數(shù)據(jù)類型(GIS Objects)的實現(xiàn)</p><p> PostGIS支持的空間數(shù)據(jù)對象是OpenGIS規(guī)范定義的“Simple Features”空間數(shù)據(jù)對象的超級。在版本0.9以后,PostGIS已完全支持了OGC(OpenGIS Consortium)的標準, PostGIS支持基本的空間數(shù)據(jù)類型包括POIN
37、T,LINESTRING,POLYGON,MULTIPOINT,MULTILINESTRING,MULTIPOLYGON,GEOMETRYCOLLECTION等。空間數(shù)據(jù)對象的創(chuàng)建和插入數(shù)據(jù)庫可以使用以下的接口:</p><p> INSERT INTO SPATIALTABLE (THE_GEOM ,THE_NAME) VALUES (GeomFromText (’ POINT( -126.4 45.32)
38、’, 312) ,’A Place ’);</p><p> 由于OGC的OpenGIS規(guī)范只支持2D的空間數(shù)據(jù)類型,相關(guān)的SRID也從不要求嵌入到數(shù)據(jù)對象的輸入和輸出表示當中,PostGIS提出了新的擴展,包括3DZ,3DM、4D等空間坐標系下的EWKB/WEKT(Every valid WKB/WKT)數(shù)據(jù)形式,同時嵌入SRID信息。EWKT的表達方式如下:</p><p> 點:
39、POINT(0 0 0) -- XYZ</p><p> 包括SRID的點:SRID=32632;POINT(0 0) -- XY with SRID</p><p> 3DM點:POINTM(0 0 0) -- XYM</p><p> 3DZM點:POINT(0 0 0 0) -- XYZM</p><p> 包括SRID的3DM
40、點:SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM with SRID</p><p> 3DM多條曲線:MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))</p><p> 3DM多邊形:POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1
41、 0,2 2 0,1 2 0,1 1 0))</p><p> 3DM多個多邊形:MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))</p><p> 3DM空間多項集合:GEOMETRYCO
42、LLECTIONM(POINTM(2 3 9),LINESTRINGM((2 3 4,3 4 5)))</p><p> 他們的輸入/輸出可以使用以下的接口:</p><p> bytea EWKB = asEWKB( geometry);</p><p> text EWKT = asEWKT( geometry );</p><p>
43、; geometry = GeomFromEWKB ( bytea EWKB );</p><p> geometry = GeomFromEWKT (text EWKT );</p><p> 標準的定義表格和插入數(shù)據(jù)語句如下:</p><p> INSERT INTO SPATIALTABLE (THE_GEOM ,THE_NAME) VALUES (
44、GeomFromEWKT (’SRID =312; POINTM ( -126.4 45.32 15) ’),’A Place ’)</p><p> 下面是一條查詢EWKT的語句,返回了EWKB的16進制形式,</p><p> SELECT ’SRID =4; POINT(0 0) ’:: geometry ;</p><p><b> geom
45、etry</b></p><p> ----------------------------------------------------</p><p> 01010000200400000000000000000000000000000000000000</p><p><b> (1 row)</b></p>
46、;<p><b> 數(shù)據(jù)定義</b></p><p> 在PostGIS中建立包括空間數(shù)據(jù)的表首先要先建立一個PostgreSQL中的普通飛空間數(shù)據(jù)庫表格,語法如下: CREATE TABLE ROADS_GEOM( ID int4, NAME varchar(25) ),然后增加一個包括空間數(shù)據(jù)類型的屬性列,這時需要使用OpenGIS的函數(shù)“AddGeometryColu
47、mn()”,語法是:AddGeometryColumn (< schema_name >, <table_name >,<column_name >, <srid >, <type >,<dimension >)或者使用當前schema:AddGeometryColumn (< table_name >,<column_name >, <
48、;srid >, <type >,<dimension >),使用方式為:SELECT AddGeometryColumn(’public’, ’roads_geom’, ’geom’, 423, ’LINESTRING’, 2)</p><p> SELECT AddGeometryColumn( ‘roads_geom’, ‘geom’, 423, ’LINESTRING’,
49、2)</p><p><b> 數(shù)據(jù)查詢</b></p><p> 從數(shù)據(jù)庫中查詢空間數(shù)據(jù)的最直接的方式是使用SQL語言,你可以將結(jié)果保存到文本文檔中或者直接顯示到屏幕上,如下面的例子顯示的:</p><p> db =# SELECT id , AsText(geom ) AS geom , name FROM ROADS_GEOM ;
50、</p><p> id | geom | name</p><p> 1 | LINESTRING (191232 243118 ,191108 243242) | Jeff Rd</p><p> 2 | LINESTRING (189141 244158 ,189265 244817) | Geordie Rd</p><p>
51、 3 | LINESTRING (192783 228138 ,192612 229814) | Paul St</p><p> 4 | LINESTRING (189412 252431 ,189631 259122) | Graeme Ave</p><p> 5 | LINESTRING (190131 224148 ,190871 228134) | Phil Tce<
52、/p><p> 6 | LINESTRING (198231 263418 ,198213 268322) | Dave Cres</p><p> 7 | LINESTRING (218421 284121 ,224123 241231) | Chris Way</p><p><b> (6 rows )</b></p>&
53、lt;p> 盡管如此,很多時候查詢需要增加一些限制來減少返回的屬性列,在這種基于屬性的顯示的情況下,可以像使用普通的非空間數(shù)據(jù)查詢一樣去使用SQL語句,下面將展示的能在SQL中使用的一些用于空間數(shù)據(jù)計算的操作符,其中操作符“&&”用來判斷兩個空間數(shù)據(jù)對象的bounding區(qū)域是否完全相同。接下來的語句能判斷兩個空間數(shù)據(jù)對象是否空間上完全相同,包括標示符:if ‘POLYGON((0 0,1 1,1 0,0 0)
54、)’ is the same as ‘POLYGON((0 0,1 1,1 0,0 0))’,答案是TRUE,而至于操作符“=”只能判斷兩個空間數(shù)據(jù)對象是一樣的。</p><p> 表2.3 PostGIS空間數(shù)據(jù)操作符</p><p> 在使用SQL語句進行空間數(shù)據(jù)對象的查詢時,需要注意將文本模式的對象通過函數(shù)“GeomFromText()”轉(zhuǎn)換為數(shù)據(jù)庫存儲模式,如SELECT I
55、D , NAME FROM ROADS_GEOM WHERE GEOM ~= GeomFromText (‘LINESTRING (191232 243118 ,191108 243242) ’,-1);這句SQL語句將從表“ROADS_GEOM”中查詢與LINESTRING (191232 243118 ,191108 243242)相同的空間數(shù)據(jù)對象所在的行。</p><p> 數(shù)據(jù)轉(zhuǎn)儲(Shapefile
56、文件的使用)</p><p> Shapefile 是一種基于文件方式存儲GIS數(shù)據(jù)的文件格式。至少由 .shp, .dbf, .shx三個文件組成,分別存儲空間,屬性和前兩者的關(guān)系。是GIS中比較通用的一種數(shù)據(jù)格式。</p><p> 目前的PostGIS沒有提供編輯GIS數(shù)據(jù)的GUI界面,但是提供了強大的數(shù)據(jù)轉(zhuǎn)換功能,將其他成熟的GIS數(shù)據(jù)編輯軟件的數(shù)據(jù)存入PostGIS中,其中一
57、種方式是使用shp2pgsql將Shapefile轉(zhuǎn)換為PostGIS中的數(shù)據(jù)格式。</p><p> 數(shù)據(jù)庫優(yōu)化(GiST)</p><p> 索引使空間數(shù)據(jù)庫存儲大數(shù)據(jù)集合成為可能。沒有索引,每一次對數(shù)據(jù)庫的搜索都會查詢數(shù)據(jù)庫中的每一條記錄,索引通過組織數(shù)據(jù)構(gòu)建查詢數(shù)來加快查詢使其快速的命中目標記錄。</p><p> PostgreSQL 提供了好幾種索
58、引類型∶ B-tree,R-tree,GiST 和散列.每種索引類型都比較適合某些特定的查詢類型, 因為它們用了不同的算法. 缺省時, CREATE INDEX 命令將創(chuàng)建一個 B-tree 索引,這種索引適合于大多數(shù)常見的情形。 B-tree 可以處理那些可以按照某種順序存儲的數(shù)據(jù)的等于和范圍查詢。 特別是在一個建立了索引的列涉及到使用下列操作符之一進行比較的時候, PostgreSQL 的查詢規(guī)劃器都會考慮使用 B-tree 索引∶
59、 <, <=, =, >=, > </p><p> 優(yōu)化器也會把 B-tree 所以用于涉及模式匹配操作符 LIKE, ILIKE,~,和 ~* 的查詢,條件是模式錨接在字串的開頭,比如, col LIKE ‘foo%' 或者 col ~ ‘^foo', 而不是 col LIKE ‘%bar'。 但是,如果你的服務(wù)器不適用 C 區(qū)域,那么你需要用一個特殊的操作符
60、表創(chuàng)建索引。 </p><p> R-tree 索引特別適合于空間數(shù)據(jù).要創(chuàng)建一個 R-tree 索引, 使用下面形式的命令 </p><p> CREATE INDEX name ON table USING RTREE (column);</p><p> 當一個索引了的列涉及到使用下列操作符之一進行比較的時候, PostgreSQL 的查詢規(guī)劃器都會考慮
61、使用 R-tree 索引∶ <<, &<, &>, >>, @, ~=, && 。</p><p> 散列(hash)索引只能處理簡單的等于比較。 當一個索引了的列涉及到使用 = 操作符進行比較的時候, 查詢規(guī)劃器會考慮使用散列索引。 下面的命令用于創(chuàng)建散列索引∶ </p><p> CREATE INDEX name
62、 ON table USING HASH (column);</p><p> B-tree 索引是一個 Lehman-Yao 高并發(fā) B-tree 的實 現(xiàn)。R-tree 索引用 Guttman 的二次分割算法實現(xiàn)了標準的 R-tree。 hash(散列)索引是 Litwin 的線性散列的一個實現(xiàn)。 我們單獨的列出這些所用的算法是要表明所有這些索引方法都是完全動態(tài)的并且不必進行周期性的優(yōu)化 (例如,象靜態(tài)散列
63、算法常見的那樣)。 </p><p> GiST (Generalized Search Trees) 索引用來加速任何非規(guī)則數(shù)據(jù)結(jié)構(gòu)的查詢,它將數(shù)據(jù)打破成“things to one side”,“things which overlap”, “things which are inside”這種索引能使用空間數(shù)據(jù)在內(nèi)的大多數(shù)數(shù)據(jù)類型。PostGIS可以在GiST上使用一個R-Tree索引。下面的語句用來增加
64、一個GiST索引:</p><p> CREATE INDEX [indexname ] ON [ tablename ]</p><p> USING GIST ( [ geometryfield ] GIST_GEOMETRY_OPS );</p><p> ?。ㄈ?、數(shù)據(jù)庫結(jié)構(gòu)及實現(xiàn)</p><p> 圖2.1 數(shù)據(jù)庫結(jié)構(gòu)圖<
65、;/p><p> 道路、建筑物、草坪表是整個空間數(shù)據(jù)庫的基礎(chǔ),交叉點表和路由表是由道路表計算得出的(算法實現(xiàn)見“最短路徑算法實現(xiàn)”部分)。</p><p> 圖2.2 建立交叉點表流程圖</p><p> 圖2.3 填充路由表流程圖</p><p> (四)、最短路徑算法流程</p><p> 圖2.4 尋找最短
66、路徑流程圖</p><p> 本算法的實現(xiàn)將主要的計算任務(wù)放到服務(wù)器端,參考內(nèi)部網(wǎng)關(guān)協(xié)議(RIP)算法用plpgsql語言編寫,從數(shù)據(jù)庫中的路由表(route表)中讀取數(shù)據(jù)行最終調(diào)用PostGIS提供的函數(shù)“MakeLineString()”(路徑生成函數(shù))和“AddPoint()”(像路徑或其他空間數(shù)據(jù)對象中增加點)來完成一條最短路徑的創(chuàng)建并返回給訪問發(fā)起端。</p><p> 針對
67、大區(qū)域的地圖,需將區(qū)域的向外連接道路分四個方向定義,并將各個方向的出口定義為一個點,這樣就可以在大區(qū)域上將一個區(qū)域抽象為一個交叉點,這樣就可以同樣套用以上算法完成大范圍的路徑計算。</p><p> 本算法的計算量大部分在構(gòu)造數(shù)據(jù)庫期間,一個26個交叉點的區(qū)域的route表的填充在Pentium3.0、256M內(nèi)存的PC機上耗費10秒時間,之后的每次查詢訪問耗時在毫秒級。</p><p>
68、;<b> 三、嵌入式系統(tǒng)</b></p><p> ?。ㄒ唬?、嵌入式系統(tǒng)硬件結(jié)構(gòu)</p><p> Samsung S3C44B0X微處理器體系</p><p> Samsung公司推出的16/32位RISC處理器S3C44B0X為手持設(shè)備和一般類型應(yīng)用提供了高性價比和高性能的微控制器解決方案。為了降低成本,S3C44B0X提供了豐富的
69、內(nèi)置部件,包括:8KB cache,內(nèi)部SRAM,LCD控制器,帶自動握手的2通道UART,4通道DMA,系統(tǒng)管理器(片選邏輯,F(xiàn)P/EDO/SDRAM控制器),代用PWM功能的5通道定制器,I/O端口,RTC,8通道10微ADC,IIC-BUS接口,IIS-BUS接口,同步SIO接口和PLL倍頻器。</p><p> S3C44B0X采用了ARM7TDMI內(nèi)核,0.25um工藝的CMOS標準宏單元和存儲編譯器
70、。它的低功耗精簡和出色的全靜態(tài)設(shè)計特別適合于對成本和功耗敏感的應(yīng)用。同樣S3C44B0X還采用了一種新的總線結(jié)構(gòu),即SAMBAII(三星ARM CPU 嵌入式微處理器總線結(jié)構(gòu))。</p><p> S3C44B0X的杰出特性是它的CPU核,是由ARM公司設(shè)計的16/32位ARM7TDMI RISC處理器(66MHZ)。ARM7TDMI體系結(jié)構(gòu)的特點是它集成了Thumb代碼壓縮器,片上的ICE斷點調(diào)試支持和一個3
71、2位的硬件乘法器。</p><p> S3C44B0X通過提供全面、通用的片上外設(shè),大大減少了系統(tǒng)電路中除處理器以外的元器件配置,從而最小化系統(tǒng)的成本。</p><p> JX44B0-1B硬件配置</p><p> CPU: S3C44B0X,Arm7TDMI,工作頻率66MHz(可升至75MHz)</p><p> FALSH:
72、4Mbytes Flash(1X2MX16位)</p><p> SDRAM: 8Mbytes SDRAM(1X4MX16位)</p><p> 5.7英寸, 320*240*256色LCD顯示器 + 觸摸屏(可選)</p><p><b> 4X4鍵盤(可選)</b></p><p> 1個10M以太網(wǎng)口
73、 1個USB 1.1接口</p><p> 2個RS-232C串行接口 14針JTAG接口</p><p> 4個可編程的LED指示燈 1個七段數(shù)碼顯示管 蜂鳴器</p><p> 1個外部中斷測試按鈕 CPU所有接口引出,方便擴展</p><p> IIS音頻接口,立體聲錄、放音</p>
74、<p> 1個IIC接口的EEPROM</p><p> ?。ǘ?、uClinux操作系統(tǒng)</p><p><b> 簡介</b></p><p> Linux是一種很受歡迎的操作系統(tǒng),它與UNIX系統(tǒng)兼容,開放源代碼。它原本被設(shè)計為桌面系統(tǒng),現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域。而更大的影響在于它正逐漸的應(yīng)用于嵌入式設(shè)備。uClinux正
75、是在這種氛圍下產(chǎn)生的。在uClinux這個英文單詞中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領(lǐng)域而設(shè)計的Linux系統(tǒng)”。</p><p> uClinux的內(nèi)核加載方式</p><p> uClinux的內(nèi)核有兩種可選的運行方式:可以在flash上直接運行,也可以加載到內(nèi)存
76、中運行。這種做法可以減少內(nèi)存需要。</p><p> Flash運行方式:把內(nèi)核的可執(zhí)行映象燒寫到flash上,系統(tǒng)啟動時從flash的某個地址開始逐句執(zhí)行。這種方法實際上是很多嵌入式系統(tǒng)采用的方法。</p><p> 內(nèi)核加載方式:把內(nèi)核的壓縮文件存放在flash上,系統(tǒng)啟動時讀取壓縮文件在內(nèi)存里解壓,然后開始執(zhí)行,這種方式相對復雜一些,但是運行速度可能更快(ram的存取速率要比fl
77、ash高)。同時這也是標準Linux系統(tǒng)采用的啟動方式。</p><p> uClinux的內(nèi)存管理</p><p> 應(yīng)該說uClinux同標準Linux的最大區(qū)別就在于內(nèi)存管理,同時也由于uClinux的內(nèi)存管理引發(fā)了一些標準Linux所不會出現(xiàn)的問題。</p><p> 標準Linux使用虛擬存儲器技術(shù),這種技術(shù)用于提供比計算機系統(tǒng)中實際使用的物理內(nèi)存大
78、得多的內(nèi)存空間。使用者將感覺到好像程序可以使用非常大的內(nèi)存空間,從而使得編程人員在寫程序時不用考慮計算機中的物理內(nèi)存的實際容量。為了支持虛擬存儲管理器的管理,Linux系統(tǒng)采用分頁(paging)的方式來載入進程。所謂分頁既是把實際的存儲器分割為相同大小的段,例如每個段1024個字節(jié),這樣1024個字節(jié)大小的段便稱為一個頁面(page)。 </p><p> 標準Linux是針對有內(nèi)存管理單元的處理器設(shè)計的。在
79、這種處理器上,虛擬地址被送到內(nèi)存管理單元(MMU),把虛擬地址映射為物理地址。</p><p> 對于uClinux來說,其設(shè)計針對沒有MMU的處理器,即uClinux不能使用處理器的虛擬內(nèi)存管理技術(shù)(應(yīng)該說這種不帶有MMU的處理器在嵌入式設(shè)備中相當普偏)。uClinux仍然采用存儲器的分頁管理,系統(tǒng)在啟動時把實際存儲器進行分頁。在加載應(yīng)用程序時程序分頁加載。但是由于沒有MMU管理,所以實際上uClinux采用
80、實存儲器管理策略(real memeory management)。這一點影響了系統(tǒng)工作的很多方面。</p><p> uClinux系統(tǒng)對于內(nèi)存的訪問是直接的,(它對地址的訪問不需要經(jīng)過MMU,而是直接送到地址線上輸出),所有程序中訪問的地址都是實際的物理地址。操作系統(tǒng)對內(nèi)存空間沒有保護(這實際上是很多嵌入式系統(tǒng)的特點),各個進程實際上共享一個運行空間(沒有獨立的地址轉(zhuǎn)換表)。 </p><
81、;p> 一個進程在執(zhí)行前,系統(tǒng)必須為進程分配足夠的連續(xù)地址空間,然后全部載入主存儲器的連續(xù)空間中。與之相對應(yīng)的是標準Linux系統(tǒng)在分配內(nèi)存時沒有必要保證實際物理存儲空間是連續(xù)的,而只要保證虛存地址空間連續(xù)就可以了。另外一個方面程序加載地址與預期(ld文件中指出的)通常都不相同,這樣relocation過程就是必須的。此外磁盤交換空間也是無法使用的,系統(tǒng)執(zhí)行時如果缺少內(nèi)存將無法通過磁盤交換來得到改善。</p>&l
82、t;p> uClinux對內(nèi)存的管理減少同時就給開發(fā)人員提出了更高的要求。如果從易用性這一點來說,uClinux的內(nèi)存管理是一種倒退,退回了到了UNIX早期或是Dos系統(tǒng)時代。開發(fā)人員不得不參與系統(tǒng)的內(nèi)存管理。從編譯內(nèi)核開始,開發(fā)人員必須告訴系統(tǒng)這塊開發(fā)板到底擁有多少的內(nèi)存(假如你欺騙了系統(tǒng),那將在后面運行程序時受到懲罰),從而系統(tǒng)將在啟動的初始化階段對內(nèi)存進行分頁,并且標記已使用的和未使用的內(nèi)存。系統(tǒng)將在運行應(yīng)用時使用這些分頁
83、內(nèi)存。</p><p> 從內(nèi)存的訪問角度來看,開發(fā)人員的權(quán)利增大了(開發(fā)人員在編程時可以訪問任意的地址空間),但與此同時系統(tǒng)的安全性也大為下降。此外,系統(tǒng)對多進程的管理將有很大的變化,這一點將在uClinux的多進程管理中說明。</p><p> 雖然uClinux的內(nèi)存管理與標準Linux系統(tǒng)相比功能相差很多,但應(yīng)該說這是嵌入式設(shè)備的選擇。在嵌入式設(shè)備中,由于成本等敏感因素的影響,
84、普偏的采用不帶有MMU的處理器,這決定了系統(tǒng)沒有足夠的硬件支持實現(xiàn)虛擬存儲管理技術(shù)。從嵌入式設(shè)備實現(xiàn)的功能來看,嵌入式設(shè)備通常在某一特定的環(huán)境下運行,只要實現(xiàn)特定的功能,其功能相對簡單,內(nèi)存管理的要求完全可以由開發(fā)人員考慮。</p><p> uClinux的根(root)文件系統(tǒng)</p><p> uClinux系統(tǒng)采用romfs文件系統(tǒng),這種文件系統(tǒng)相對于一般的ext2文件系統(tǒng)要求
85、更少的空間??臻g的節(jié)約來自于兩個方面,首先內(nèi)核支持romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼,其次romfs文件系統(tǒng)相對簡單,在建立文件系統(tǒng)超級塊(superblock)需要更少的存儲空間。Romfs文件系統(tǒng)不支持動態(tài)擦寫保存,對于系統(tǒng)需要動態(tài)保存的數(shù)據(jù)采用虛擬ram盤的方法進行處理(ram盤將采用ext2文件系統(tǒng))。</p><p> uClinux的應(yīng)用程序庫</p><p&
86、gt; uClinux小型化的另一個做法是重寫了應(yīng)用程序庫,相對于越來越大且越來越全的glibc庫,uClibc對glibc做了精簡。</p><p> uClinux對用戶程序采用靜態(tài)連接的形式,這種做法會使應(yīng)用程序變大,但是基于內(nèi)存管理的問題,不得不這樣做(這將在下文對uClinux內(nèi)存管理展開分析時進行說明),同時這種做法也更接近于通常嵌入式系統(tǒng)的做法。</p><p><
87、b> 可執(zhí)行文件格式</b></p><p> coff(common object file format):一種通用的對象文件格式。</p><p> elf(executive linked file):一種為Linux系統(tǒng)所采用的通用文件格式,支持動態(tài)連接。</p><p> flat:elf格式有很大的文件頭,flat文件對文件頭
88、和一些段信息做了簡化。</p><p> uClinux系統(tǒng)使用flat可執(zhí)行文件格式,GCC的編譯器不能直接形成這種文件格式,但是可以形成coff或elf格式的可執(zhí)行文件,這兩種文件需要coff2flt或elf2flt工具進行格式轉(zhuǎn)化,形成flat文件。</p><p> ?。ㄈ?、MiniGUI嵌入式圖形界面</p><p><b> 簡介<
89、/b></p><p> 由北京飛漫軟件技術(shù)有限公司開發(fā)的 MiniGUI(http://www.minigui.com),是國內(nèi)為數(shù)不多的幾大國際知名自由軟件之一。MiniGUI 是面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),1999 年初遵循 GPL 條款發(fā)布第一個版本以來,已廣泛應(yīng)用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)及工業(yè)儀表、便攜式多媒體播放機、查詢終端等產(chǎn)品和領(lǐng)域。目前,MiniGUI 已
90、成為跨操作系統(tǒng)的圖形用戶界面支持系統(tǒng),可在 Linux/uClinux、eCos、uC/OS-II、VxWorks、pSOS、ThreadX、Nucleus 等操作系統(tǒng)以及 Win32 平臺上運行;已驗證的硬件平臺包括 Intel x86、ARM(ARM7/ARM9/StrongARM/xScale)、PowerPC、MIPS、M68K(DragonBall/ColdFire)等等。最新的 MiniGUI 2.0 更為基于嵌入式 Lin
91、ux 的高端嵌入式設(shè)備提供了完整的多進程支持,從而將 MiniGUI 從中端市場帶到了高端市場。 </p><p> 飛漫將 MiniGUI 定義為“針對嵌入式設(shè)備的、跨操作系統(tǒng)的圖形界面支持系統(tǒng)”,屬于一種“嵌入式圖形中間件”軟件產(chǎn)品。目前,MiniGUI 已得到了國內(nèi)最大的民營通信設(shè)備制造商、中國最大的電視機生產(chǎn)商、TD-SCDMA 終端方案供應(yīng)商、全球最大的處理器生產(chǎn)廠商的認可及使用,而在諸如工業(yè)儀表、醫(yī)
92、療儀器、軍工等行業(yè),更有眾多行業(yè)領(lǐng)先廠商選擇 MiniGUI 開發(fā)他們的嵌入式產(chǎn)品。與此同時,MiniGUI 也得到了海外嵌入式設(shè)備開發(fā)商的認可,并遠銷到北美、臺灣、馬來西亞等地區(qū);2005年8月,韓國KSP公司成為飛漫軟件全線產(chǎn)品的第一個海外代理。MiniGUI 業(yè)已成為嵌入式圖形中間件領(lǐng)域的工業(yè)事實標準。 </p><p> 基于 MiniGUI 的嵌入式系統(tǒng)軟件結(jié)構(gòu) </p><p&g
93、t; 為什么 MiniGUI 能夠在如此眾多的嵌入式操作系統(tǒng)上運行?這是因為 MiniGUI 具有良好的軟件架構(gòu),通過抽象層將 MiniGUI 上層和底層操作系統(tǒng)隔離開來。如圖3.1所示,基于 MiniGUI 的應(yīng)用程序一般通過 ANSI C 庫以及 MiniGUI 自身提供的 API 來實現(xiàn)自己的功能;MiniGUI 中的“可移植層”可將特定操作系統(tǒng)及底層硬件的細節(jié)隱藏起來,而上層應(yīng)用程序則無需關(guān)心底層的硬件平臺輸出和輸入設(shè)備。 &
94、lt;/p><p> 圖3.1 MiniGUI的軟件結(jié)構(gòu)圖</p><p> 另外,MiniGUI 特有的運行模式概念,也為跨操作系統(tǒng)的支持提供了便利。 </p><p> ?。ㄋ模?、嵌入式系統(tǒng)結(jié)構(gòu)</p><p> Linux內(nèi)核主要由五個子系統(tǒng)組成:進程調(diào)度,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)接口,進程間通信。 </p><
95、;p> 進程調(diào)度(SCHED)</p><p> 進程調(diào)度控制進程對CPU的訪問。當需要選擇下一個進程運行時,由調(diào)度程序選擇最值得運行的進程??蛇\行進程實際上是僅等待CPU資源的進程,如果某個進程在等待其它資源,則該進程是不可運行進程。Linux使用了比較簡單的基于優(yōu)先級的進程調(diào)度算法選擇新的進程。 </p><p><b> 內(nèi)存管理(MM)</b>&l
96、t;/p><p> 內(nèi)存管理允許多個進程安全的共享主內(nèi)存區(qū)域。Linux的內(nèi)存管理支持虛擬內(nèi)存,即在計算機中運行的程序,其代碼,數(shù)據(jù),堆棧的總量可以超過實際內(nèi)存的大小,操作系統(tǒng)只是把當前使用的程序塊保留在內(nèi)存中,其余的程序塊則保留在磁盤中。必要時,操作系統(tǒng)負責在磁盤和內(nèi)存間交換程序塊。內(nèi)存管理從邏輯上分為硬件無關(guān)部分和硬件有關(guān)部分。硬件無關(guān)部分提供了進程的映射和邏輯內(nèi)存的對換;硬件相關(guān)的部分為內(nèi)存管理硬件提供了虛擬
97、接口。 </p><p> 虛擬文件系統(tǒng)(VirtualFileSystem,VFS)</p><p> 虛擬文件系統(tǒng)隱藏了各種硬件的具體細節(jié),為所有的設(shè)備提供了統(tǒng)一的接口,VFS提供了多達數(shù)十種不同的文件系統(tǒng)。虛擬文件系統(tǒng)可以分為邏輯文件系統(tǒng)和設(shè)備驅(qū)動程序。邏輯文件系統(tǒng)指Linux所支持的文件系統(tǒng),如ext2,fat等,設(shè)備驅(qū)動程序指為每一種硬件控制器所編寫的設(shè)備驅(qū)動程序模塊。<
98、;/p><p><b> 網(wǎng)絡(luò)接口(NET)</b></p><p> 網(wǎng)絡(luò)接口提供了對各種網(wǎng)絡(luò)標準的存取和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)協(xié)議部分負責實現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議。網(wǎng)絡(luò)設(shè)備驅(qū)動程序負責與硬件設(shè)備通訊,每一種可能的硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動程序。 </p><p> 進程間通訊(IPC)。 <
99、;/p><p> 進程間通訊,處于中心位置的進程調(diào)度,所有其它的子系統(tǒng)都依賴它,因為每個子系統(tǒng)都需要掛起或恢復進程。一般情況下,當一個進程等待硬件操作完成時,它被掛起;當操作真正完成時,進程被恢復執(zhí)行。例如,當一個進程通過網(wǎng)絡(luò)發(fā)送一條消息時,網(wǎng)絡(luò)接口需要掛起發(fā)送進程,直到硬件成功地完成消息的發(fā)送,當消息被成功的發(fā)送出去以后,網(wǎng)絡(luò)接口給進程返回一個代碼,表示操作的成功或失敗。其他子系統(tǒng)以相似的理由依賴于進程調(diào)度。 &
100、lt;/p><p><b> 依賴關(guān)系 </b></p><p> 進程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個子系統(tǒng)互相依賴。在多道程序環(huán)境下,程序要運行必須為之創(chuàng)建進程,而創(chuàng)建進程的第一件事情,就是將程序和數(shù)據(jù)裝入內(nèi)存。 </p><p> 進程間通信與內(nèi)存管理的關(guān)系:進程間通信子系統(tǒng)要依賴內(nèi)存管理支持共享內(nèi)存通信機制,這種機制允許兩個進程除了擁
101、有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。</p><p> 虛擬文件系統(tǒng)與網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS),也利用內(nèi)存管理支持RAMDISK設(shè)備。 </p><p> 內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進程(swapd)定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進程調(diào)度的唯一原因。當一個進程存取的內(nèi)存映射被換
102、出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時,掛起當前正在運行的進程。 </p><p> 除了這些依賴關(guān)系外,內(nèi)核中的所有子系統(tǒng)還要依賴于一些共同的資源。這些資源包括所有子系統(tǒng)都用到的過程。例如:分配和釋放內(nèi)存空間的過程,打印警告或錯誤信息的過程,還有系統(tǒng)的調(diào)試例程等等。</p><p> 四、嵌入式地理信息系統(tǒng)EmbedGis</p><p> ?。ㄒ唬?、嵌入式地
103、理信息系統(tǒng)簡介</p><p> 鑒于嵌入式系統(tǒng)自身的特殊性和復雜性,首先對于嵌入式地理信息系統(tǒng)的功能劃分與概念確定就是個比較重要的問題,因為這涉及到需要開發(fā)、研究一個具有什么功能的系統(tǒng)。由于國內(nèi)外嵌入式GIS研究都處于起步階段,所以這方面仍然有待深入研究。我們認為嵌入式GIS應(yīng)該具有的基本功能是:運行于獨立的操作系統(tǒng)之上,具有基本的地圖放大、縮小、漫游、地圖投影變換等常規(guī)GIS功能;具有空間查詢、路徑分析(可
104、以制定自己的路徑尋優(yōu)規(guī)則與模型)和自動導航(與GPS結(jié)合)等基本空間分析功能;可以通過Internet下載和瀏覽地圖;可以與PC—GIS轉(zhuǎn)換、交流數(shù)據(jù)。但鑒于嵌入式GIS的硬件特點,在輸出方面沒有打印、制圖等輸出功能。</p><p> 1.嵌人式GIS特征微型嵌入式GIS運行平臺、軟件的要求與通用計算機的GIS平臺軟件有著明顯的不同;(1)軟件要求固態(tài)化存儲為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般
105、都固化在存儲器芯片中或單片機本身,而不是存貯于磁盤等載體中。高、片上存儲器容量不斷增加,但在大多數(shù)應(yīng)用中,存儲空間仍然是寶貴的,還存在實時性的要求。為此要求程序編寫和編譯工具的質(zhì)量要高,以減少程序二進制代碼長度,提高執(zhí)行速度,同時要求軟件具有很好的可靠性。3)操作系統(tǒng)軟件(OS)的高實時性是基本要求</p><p> 在多任務(wù)嵌入式系統(tǒng)中,對重要性各不相同的任務(wù)進行統(tǒng)籌兼顧的合理調(diào)度是保證每個任務(wù)及時執(zhí)行的關(guān)鍵
106、,這種任務(wù)調(diào)度只能由優(yōu)化編寫的系統(tǒng)軟件來完成,因此系統(tǒng)軟件的高實時性是基本要求 。</p><p> 2. 嵌入式GIS的國內(nèi)外研究現(xiàn)狀在該領(lǐng)域國內(nèi)外都處于剛剛起步的研究階段,國內(nèi)的主要產(chǎn)品有超圖公司的eSuperMap、中地公司的MapGIS和靈圖嵌入式GIS,國外也有一些產(chǎn)品,代表性產(chǎn)品是ESRI的ArcPad。這些產(chǎn)品包括二次開發(fā)工具都是在Windows CE平臺下運行和開發(fā)的?;赪indows CE平
107、臺的優(yōu)勢是開發(fā)比較容易,開發(fā)周期短,把運行于PC Win—dows下的程序進行一些刪減、修改就可以比較容易地移植到Windows CE平臺下,Windows平臺和Win.dows CE平臺下的許多函數(shù)和類庫基本是相同和相似的。此外,Windows現(xiàn)在PC市場的絕對優(yōu)勢占有率和影響力是許多公司采用windows CE平臺開發(fā)嵌2)軟件代碼高質(zhì)量、高可靠性 入式GIS的重要原因。</p><p> (二)、Embe
108、dGis系統(tǒng)組成</p><p> ?。ㄈ?、EmbedGis系統(tǒng)特點及不足</p><p> 嵌入式Linux較其他嵌入式操作系統(tǒng)的優(yōu)點主要有:</p><p> 1、可以免費或廉價獲取實時操作系統(tǒng),可以修改操作系統(tǒng)內(nèi)核,定制符合自己需要的自主產(chǎn)權(quán)的操作系統(tǒng)。</p><p> 2、可應(yīng)用于多種硬件平臺原型可以在標準平臺上開發(fā),然后移
109、植到具體的硬件上,加快了軟件與硬件的開發(fā)過程。</p><p> 3、內(nèi)核占用小一個功能完備的Linux內(nèi)核要求大約1 MB內(nèi)存。而Linux微內(nèi)核只占用其中很小一部分內(nèi)存,包括虛擬內(nèi)存和所有核心的操作系統(tǒng)功能在內(nèi),只需占用Pentium CPU系統(tǒng)的100 K內(nèi)存。</p><p> 4、Linux操作系統(tǒng)源碼是開放的Linux開發(fā)團體比RTOS(實時操作系統(tǒng))的供應(yīng)商更快地支持新的
110、IP協(xié)議和其他協(xié)議。用于Linux的設(shè)備驅(qū)動程序要比用于商業(yè)操作系統(tǒng)的設(shè)備驅(qū)動程序多,如網(wǎng)絡(luò)接口卡(NIC)驅(qū)動程序以及并口和串口驅(qū)動程序。</p><p> 5、Linux操作系統(tǒng)本身的微內(nèi)核體系結(jié)構(gòu)簡單并內(nèi)置網(wǎng)絡(luò)支持網(wǎng)絡(luò)和文件系統(tǒng)以模塊形式置于微內(nèi)核的上層。驅(qū)動程序和其他部件可在運行時作為可加載模塊編譯到或是添加到內(nèi)核上,這為構(gòu)造定制可嵌入系統(tǒng)提供了高度模塊化的構(gòu)件方法。從以上分析可以看出,嵌入式Linux
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(論文)基于嵌入式的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)研究
- 56131.基于嵌入式gis的車輛定位顯示系統(tǒng)研究
- 嵌入式畢業(yè)設(shè)計論文基于arm的嵌入式gui點菜系統(tǒng)
- 基于嵌入式GIS的智能小區(qū)信息系統(tǒng)研究.pdf
- 畢業(yè)設(shè)計論文---基于嵌入式系統(tǒng)的圖像采集系統(tǒng)
- 基于lbs的嵌入式gis研究
- 畢業(yè)設(shè)計基于arm嵌入式系統(tǒng)的socket通信設(shè)計
- 基于ARM的嵌入式GIS系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于嵌入式GIS的移動定位導航系統(tǒng)研究與實現(xiàn).pdf
- 畢業(yè)設(shè)計--基于嵌入式系統(tǒng)的井下智能通信分站的研究
- 畢業(yè)設(shè)計--嵌入式糧情檢測系統(tǒng)的設(shè)計
- 畢業(yè)設(shè)計(論文)-嵌入式系統(tǒng)開發(fā)
- 基于DSP的嵌入式系統(tǒng)研究.pdf
- 基于嵌入式的飛行仿真系統(tǒng)研究與設(shè)計.pdf
- 基于嵌入式的電能計量系統(tǒng)研究.pdf
- 基于嵌入式Linux的通信系統(tǒng)研究.pdf
- 基于混沌加密的嵌入式系統(tǒng)研究.pdf
- 基于CANopen的嵌入式下位系統(tǒng)研究.pdf
- 基于嵌入式的目標跟蹤系統(tǒng)研究.pdf
- 嵌入式GIS導航軟件系統(tǒng)的研究與設(shè)計.pdf
評論
0/150
提交評論