基于GENE-8310的嵌入式TinyOs系統(tǒng)設(shè)計(jì)
無(wú)線傳感器網(wǎng)絡(luò)是當(dāng)前國(guó)際上備受關(guān)注的、多學(xué)科高度交叉、知識(shí)高度集成的前沿?zé)狳c(diǎn)研究技術(shù),其核心技術(shù)Tinyos被譽(yù)為是“無(wú)線嵌入式系統(tǒng)”。Tinyos是一個(gè)開源的嵌入式操作系統(tǒng),他由加州大學(xué)的伯利克分校開發(fā)出來(lái),越來(lái)越多的無(wú)線傳感器網(wǎng)絡(luò)通信協(xié)議正不斷被開發(fā)并加入Tinyos系統(tǒng)組件中,并應(yīng)用于技術(shù)研究和系統(tǒng)開發(fā)中。
本文引用地址:http://cafeforensic.com/article/90216.htm無(wú)線傳感器網(wǎng)絡(luò)通常利用無(wú)線技術(shù)在某個(gè)區(qū)域內(nèi)實(shí)時(shí)部署一個(gè)專用的無(wú)線局域網(wǎng)絡(luò)。傳輸傳感器上采集到的數(shù)據(jù)是無(wú)線傳感器網(wǎng)絡(luò)的主要目標(biāo)。在無(wú)線傳感器網(wǎng)絡(luò)的部署過(guò)程,Web服務(wù)器是確立網(wǎng)絡(luò)部署和監(jiān)控通信傳輸?shù)年P(guān)鍵。由于嵌入式操作系統(tǒng)具有高可靠性,在惡劣環(huán)境或突然斷電的情況下,系統(tǒng)仍然能夠正常工作,系統(tǒng)中的軟件代碼一般都固化在只讀存儲(chǔ)器中。因此,要求在惡劣環(huán)境中仍然能高穩(wěn)定工作的無(wú)線傳感器網(wǎng)絡(luò)可以采用嵌入式操作系統(tǒng)作為其實(shí)現(xiàn)平臺(tái),這其中包括:嵌入式Linux,Windows CE,Windows XP Embedded,VxWorks,μCOSⅡ,QNX,F(xiàn)reeRTOS,還有定制版的NetBSD和FreeDOS等多種移植平臺(tái)。本文主要采用Windows XPEmbedded設(shè)計(jì)平臺(tái)。
本文主要致力于在嵌入式開發(fā)板GENE-8310上移植Tinyos應(yīng)用操作系統(tǒng),將GENE-8310作為無(wú)線傳感器網(wǎng)絡(luò)中的遠(yuǎn)程服務(wù)器,實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)與有線網(wǎng)絡(luò)的跨網(wǎng)段傳輸和遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控。GENE-8310是研揚(yáng)科技研制的第三代無(wú)風(fēng)扇解決方案,與以往的3.5 in單板電腦相比GENE-8310在低功耗和高性能方面都有很大的改進(jìn),對(duì)于客戶在低功耗控制下的優(yōu)秀處理能力等更高需求方面都是最好的選擇。
1 嵌入式Tinyos移植
嵌入式Tinyos移植方案方框圖如圖1所示:
首先,在開發(fā)機(jī)PC上,利用Microsoft Windows Embedded Studio工具套件中的組件設(shè)計(jì)器開發(fā)出網(wǎng)關(guān)MIB520的驅(qū)動(dòng)組件,并結(jié)合第三方工具Dependencywalker,InCtr15開發(fā)出應(yīng)用程序cygwin.bat的組件,之后把構(gòu)建完成的驅(qū)動(dòng)組件和應(yīng)用程序組件通過(guò)工具套件中的組件數(shù)據(jù)庫(kù)管理器導(dǎo)入到組件數(shù)據(jù)庫(kù)中,以便開發(fā)操作系統(tǒng)時(shí)添加。接下來(lái)定制Windows XP Embedded操作系統(tǒng)的功能組件,確定系統(tǒng)所支持的功能,再利用目標(biāo)設(shè)計(jì)器添加功能組件、組件數(shù)據(jù)庫(kù)中的驅(qū)動(dòng)組件和應(yīng)用程序組件并生成Windows XP Embedded操作系統(tǒng)映像。最后再把操作系統(tǒng)映像部署到嵌入式目標(biāo)平臺(tái)——GENE-8310中,并將其作為無(wú)線傳感器網(wǎng)絡(luò)Web服務(wù)器,驗(yàn)證Tinyos移植的結(jié)果。
2 嵌入式Tinyos移植開發(fā)流程
無(wú)線傳感器網(wǎng)絡(luò)由節(jié)點(diǎn)、服務(wù)器和遠(yuǎn)程PC終端組成。節(jié)點(diǎn)負(fù)責(zé)采集外部數(shù)據(jù),完成后把數(shù)據(jù)通過(guò)網(wǎng)關(guān)轉(zhuǎn)發(fā)到服務(wù)器,最后由遠(yuǎn)程PC實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)。其中網(wǎng)關(guān)的作用重大,但是需要手動(dòng)安裝驅(qū)動(dòng)。通過(guò)網(wǎng)關(guān)驅(qū)動(dòng)組件的開發(fā),便可把網(wǎng)關(guān)驅(qū)動(dòng)集成在操作系統(tǒng)映像中,實(shí)現(xiàn)自動(dòng)識(shí)別網(wǎng)關(guān)。同理,應(yīng)用程序也可作成組件。具體的移植開發(fā)流程如下:
(1)開發(fā)網(wǎng)關(guān)驅(qū)動(dòng)組件。該功能的實(shí)現(xiàn)相對(duì)比較簡(jiǎn)單,可以將設(shè)備驅(qū)動(dòng)程序.INF文件直接導(dǎo)入到組件設(shè)計(jì)器工具中。組件設(shè)計(jì)器會(huì)根據(jù)INF文件自動(dòng)配置相關(guān)文件,之后便可生成該驅(qū)動(dòng)組件。
(2)開發(fā)相關(guān)的應(yīng)用程序組件。這里利用第三方工具軟件和Windows Embedded Studio工具套件來(lái)共同開發(fā)。首先利用InCtr15從安裝程序中捕獲信息,確定應(yīng)用程序所需的文件和注冊(cè)表設(shè)置。然后再根據(jù)DependencyWalker獲得應(yīng)用程序依賴項(xiàng),即程序運(yùn)行所必須的DLL的列表。最后再利用Windows Embedded Studio工具套件中的組件設(shè)計(jì)器生成該應(yīng)用程序組件。
(3)定制Windows XP Embedded操作系統(tǒng)映像。確定Windows XP Embedded操作系統(tǒng)所要支持的功能組件,如要支持USB設(shè)備,則添加相關(guān)USB功能組件,要支持網(wǎng)絡(luò)功能,則添加TCP/IP協(xié)議。通過(guò)可實(shí)現(xiàn)縮小嵌入式系統(tǒng)的體積,這就嵌入式系統(tǒng)的可裁減特性,便于實(shí)現(xiàn)特定場(chǎng)合的應(yīng)用。
(4)生成和部署Windows XP Embedded操作系統(tǒng)映像。定制完系統(tǒng)功能之后,利用目標(biāo)設(shè)計(jì)器添加功能組件,進(jìn)行關(guān)聯(lián)性檢查之后生成Windows XP Embedded操作系統(tǒng)映像。該映像可以在目標(biāo)設(shè)備上直接運(yùn)行,并可以運(yùn)行特定的應(yīng)用程序。
(5)移植應(yīng)用及功能測(cè)試。當(dāng)應(yīng)用程序移植完后,必須測(cè)試其能否在目標(biāo)設(shè)備正常運(yùn)行。運(yùn)行應(yīng)用程序,如果應(yīng)用程序無(wú)法運(yùn)行,則其會(huì)出現(xiàn)相應(yīng)的提示信息,如文件無(wú)法找到等,根據(jù)提示添加缺少的文件和注冊(cè)表項(xiàng)即可解決。因?yàn)門inyos的主要應(yīng)用是無(wú)線傳感器網(wǎng)絡(luò),故將其應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)的Web服務(wù)器。
無(wú)線傳感器將采集溫度數(shù)據(jù),在網(wǎng)絡(luò)運(yùn)行正常、應(yīng)用程序移植成功的情況下,遠(yuǎn)程主機(jī)能接收到溫度數(shù)據(jù),并能顯示出來(lái)。
2.1 MIB520網(wǎng)關(guān)驅(qū)動(dòng)組件開發(fā)
MIB520具備網(wǎng)關(guān)的基本功能,接口為USB。安裝完MIB520驅(qū)動(dòng)之后,其會(huì)在計(jì)算機(jī)上生成2個(gè)虛擬串口,一般是COM3和COM4。COM3一般是編程端口,COM4為通信端口。驅(qū)動(dòng)程序里包括2個(gè)FTDIBUS.INF和FT-DIPORT.INF文件,他含有網(wǎng)關(guān)的信息或腳本和控制網(wǎng)關(guān)的操作。在INF文件中指明網(wǎng)關(guān)驅(qū)動(dòng)該如何安裝到系統(tǒng)中,源文件在哪里、安裝到哪一個(gè)文件夾中、怎樣在注冊(cè)表中加入自身相關(guān)信息。設(shè)計(jì)主要分為6步:
(1)在組件設(shè)計(jì)器里分別導(dǎo)入網(wǎng)關(guān)驅(qū)動(dòng)自帶的FT-DIBUS.INF和FTDIPORT.INF文件;
(2)在驅(qū)動(dòng)程序目錄里找出Files列出的文件名稱,把這些文件拷貝到自己命名的文件夾里;
(3)在Repositories文件夾下新建一個(gè)Repositories,重命名為FTDIBUS,在Source Path中,找到剛才拷貝Files下文件所在的文件夾,并添加;
(4)點(diǎn)擊Component下USB Serial Converter組件,在右邊找到“Repositoty”,點(diǎn)擊Repositories按鈕,選中新建的Repository為FTDIBUS;
(5)在Components上點(diǎn)右鍵,選擇release,在GroupMemberships上,右鍵選擇Add Group Membership,并選擇一個(gè)組;
(6)在目標(biāo)設(shè)計(jì)器中搜索可找到4個(gè)與網(wǎng)關(guān)相關(guān)的組件USB Serial Converter,USB Serial Port1,USB SerialPort2,USB Serial Port3
2.2 應(yīng)用程序組件開發(fā)
移植TinyOS嵌入式系統(tǒng)需要開發(fā)MoteWorks 2.0,Cygwin和XServe三個(gè)部分的組件。在移植過(guò)程中需要先利用InCtrl5導(dǎo)出應(yīng)用程序組件所需的文件清單和注冊(cè)表信息。在獲得相關(guān)文件后,應(yīng)用程序組件的開發(fā)過(guò)程與驅(qū)動(dòng)組件開發(fā)大體上相似。不同的是,他沒(méi)有.INF文件,故Components文件夾下的Files,Registry Data下的文件和注冊(cè)表項(xiàng)需要手動(dòng)添加,并且要設(shè)置好在目標(biāo)設(shè)備上的路徑。
2.3 構(gòu)造Windows XP Embedded操作系統(tǒng)映像
(1)目標(biāo)平臺(tái)分析。分析目標(biāo)設(shè)備上GENE-8310的硬件,使用的硬件分析工具TAP.EXE來(lái)識(shí)別硬件。他會(huì)對(duì)的系統(tǒng)進(jìn)行檢測(cè),并創(chuàng)建一個(gè)硬件定義文件devices.pmq。
(2)創(chuàng)建初始化配置。在目標(biāo)設(shè)計(jì)器上創(chuàng)建一個(gè)配置(Configuration),并重命名為WSN SERVER0.six,導(dǎo)入devices.pmg。文件導(dǎo)入過(guò)程,即分析硬件,并從組件數(shù)據(jù)庫(kù)中選取相應(yīng)組件的過(guò)程。完成后軟件自動(dòng)添加所有的硬件支持組件。此時(shí),系統(tǒng)共添加了66組件,F(xiàn)AT格式下大小為6 676 kB,NTFS格式下為4 806 kB。
(3)關(guān)聯(lián)性檢查。在目標(biāo)設(shè)計(jì)器的菜單欄Tools的Options…中對(duì)關(guān)聯(lián)性檢查進(jìn)行設(shè)置。將DependencyCheek中的Auto-resolve dependencies選項(xiàng)鉤上。設(shè)置完后,關(guān)聯(lián)性檢查會(huì)自動(dòng)添加關(guān)聯(lián)的組件,如果要把握組件的內(nèi)在聯(lián)系,則Auto-resolve dependencies前的鉤可以去掉,但是要根據(jù)提示逐一添加。此時(shí),系統(tǒng)添加的組件已達(dá)423個(gè),壓縮后大小為120 MB。但是提示有4errors。這是由于一些功能組件未添加進(jìn)去,如要支持的語(yǔ)言、登陸方式、文件系統(tǒng)等。雙擊提示,分別選擇NT Loader,English Language Support,Windows Logon,F(xiàn)AT Format,NTFS Format。
(4)定制功能組件。根據(jù)傳感器網(wǎng)絡(luò)應(yīng)用,要求支持USB設(shè)備、TCP/IP協(xié)議,則這二者必須添加。其余的功能組件也適當(dāng)添加,組件添加完成后,所有的組件列表如圖2所示。
(5)生成映像
向WSN SERVER0配置中添加上述必須的核心組件。再次進(jìn)行關(guān)聯(lián)性檢查,完成無(wú)誤后,展開WSNSERVER0.slx,選中Settings,這時(shí)右邊的屬性設(shè)置面板會(huì)顯示可以設(shè)置的選項(xiàng)。以上設(shè)置完成后,組件達(dá)527個(gè),壓縮后大小為186 MB。最后,按下Build按鈕,目標(biāo)設(shè)計(jì)器會(huì)完成映像的構(gòu)建,并輸出到指定的文件下。
2.4 部署Windows XP Embedded操作系統(tǒng)映像
將GENE-8310的硬盤格式化,分區(qū)并激活主分區(qū)。然后將開發(fā)機(jī)上生成的映像(D盤目錄中)拷貝到GENE-8310 C盤的根目錄下。
將顯示器、硬盤、光驅(qū)、鼠標(biāo)、鍵盤連接至GENE-8310,從光盤啟動(dòng)進(jìn)入DOS環(huán)境下,運(yùn)行BOOTPREP.EXE(可以在開發(fā)機(jī)C:\Program Files\Windows Embed-ded\utilities中找到)。重啟進(jìn)入FBA(First Boot Agent)階段,第一次啟動(dòng)Windows XP Embedded后系統(tǒng)會(huì)進(jìn)行必要的設(shè)置,會(huì)花費(fèi)比較長(zhǎng)的時(shí)間。FBA之后,系統(tǒng)就可以正常運(yùn)行,到此,完成了整個(gè)開發(fā)過(guò)程。
3 系統(tǒng)測(cè)試
在系統(tǒng)測(cè)試過(guò)程中,本文使用了采用克爾斯博科技公司的Micaz和配套的網(wǎng)關(guān)MIB520搭建的實(shí)際的無(wú)線傳感器網(wǎng)絡(luò)。調(diào)試無(wú)線傳感器網(wǎng)絡(luò)的主要工作在于驗(yàn)證移植的應(yīng)用程序cygwin.bat調(diào)用的XServe能否正常工作。調(diào)試完cygwin.bat界面如圖3所示。
在命令提示符后輸入xserve—device=com4,即調(diào)用XServe。XServe調(diào)用結(jié)果顯示如圖4所示。
最后,在客戶端MoteView顯示的溫度數(shù)據(jù)如圖5所示:
Data標(biāo)簽下顯示的是該傳感器網(wǎng)絡(luò)實(shí)時(shí)的溫度數(shù)據(jù),在temp一欄顯示為29.65C。至此,無(wú)線傳感器網(wǎng)絡(luò)的調(diào)試工作已經(jīng)完成,GENE-8310實(shí)現(xiàn)了作為無(wú)線傳感器網(wǎng)絡(luò)Web服務(wù)器的功能,證明Tinyos應(yīng)用操作系統(tǒng)移植成功。
4 結(jié) 語(yǔ)
作為一項(xiàng)正在研究中的新興技術(shù),無(wú)線傳感器網(wǎng)絡(luò)從20世紀(jì)90年代開始逐步為人熟知,目前有多種通信標(biāo)準(zhǔn)正在制定中。TinyOS平臺(tái)的設(shè)計(jì)和移植一直是無(wú)線傳感器網(wǎng)絡(luò)研究的重要技術(shù)之一。在GENE-8310嵌入式開發(fā)板上移植TinyOS系統(tǒng)是一個(gè)新的技術(shù)嘗試。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論