王雨飛李欣
(1、中國海洋大學信息科學與工程學院,山東青島266100;2、中國海洋大學信息科學與工程學院,青島,266100)
海底原位監測技術是一種能對海底表面或近海底進行定點、連續、多要素同步測量的水下監測技術。研發深海海底邊界層原位監測技術,對于加快提升我國海底資源探測開發的技術創新能力、促進深海科學研究均具有極為重要的意義。
開發板的硬件系統是海底原位監測技術的核心基礎,根據系統設計要求,實現深海海底邊界層原位監測系統程序的自啟動,采集數據的存儲以及數據傳輸。
系統主要由以下幾部分構成:可以在海底穩定工作的海洋探測儀器;控制系統自動化運行以及數據采集的嵌入式系統;負責電源管理和兩路模擬量數據采集的單片機系統;實現數據中轉的串口服務器和交換機系統。

鑒于以上分析,采用基于ARM9的嵌入式系統作為自動化控制系統,通過讀取傳感器的數據來判斷環境位置,基于TCP/IP協議,通過串口服務器與海洋儀器進行通信,進行數據采集和管理。電源管理系統基于MSP430單片機,智能控制電源分配,采集一種其數據后,斷開深海儀器與嵌入式系統的供電,進入低功耗模式,等待下一周期。
ARM微處理器具有體積小、低功耗、高性能的優點[1],嵌入式系統采用ATMEL公司的AT91S9263CU微處理器作為控制核心。2MB norflash用來存放u-boot引導程序;10M/100M以太網接口,用于程序下載、網絡通訊應用;4GB SD卡作為系統的主存區,從深海設備中采集到的數據,經處理后保存到SD卡中。MSP430系列單片機是一種16位單片機,集成功能豐富,內存也比較強大[2]。MSP430單片機自帶8路12位ADC,精度高,設計靈活巧妙,在本系統中的功能主要是采集模擬量數據和控制整個系統的電源供給。
系統共集成了8臺海洋儀器,分別為聲學多普勒流速計(ADV),三維海流計(Aquadopp),CO2、CH4、PH、DO 傳感器,高度計和深海攝像子系統。其中ADV、Aquadopp、CO2、CH4 四臺儀器為 RS232通訊接口,經過串口服務器轉換與RJ45接口的交換機及ARM通訊。PH、DO傳感器數據為模擬量輸出,與MSP430單片機的12位轉換通道相連,數據經模數轉換后打包,通過串口服務器轉換后上傳給ARM。系統集成了深海攝像子系統拍攝海底影像。
深海海底邊界層原位監測系統的核心是以Atmel公司的AT91S9263CU為微處理器的ARM9開發板,采用Linux2.6.30作為開發板的操作系統。選擇Linux操作系統作為開發板的操作系統主要是因為Linux操作系統是穩定的系統,可以進行獨立工作,自由與開放,配置要求低廉,功能強大而穩定[3],適合需要小核心程序的嵌入式系統。
2.6 版本的內核相比于2.4版本的內核使用了新的進程調度算法,在高負載的情況下執行的極其出色,并且當有很多處理器時也可很好擴展[4]。內核任務可以被搶占,從而提高系統的實時性,可以處理任意數目的縣城,增加對文件系統支持。
移植內核需要對內核進行適當的裁剪,以滿足開發的需要。根據開發需求,對內核進行裁剪。這里,選擇與Atmel公司的AT91S9263CU微處理器相關的配置。保存相關配置,對內核進行配置,并且對內核進行編譯。因嵌入式系統需通過uboot來燒寫Linux內核以及文件系統,而且uImage是u-boot加載的映像格式,生成可執行的內核鏡像文件uImage。
鏡像燒寫是開發板加載操作系統的基礎,選擇燒寫jffs2鏡像,是因為jffs2支持Nand Flash裝置,是具有斷電可靠性的日志結構文件系統。
JFFS2是JFFS的后繼者,由Red Hat重新改寫而成。JFFS2的全名為Journalling Flash File System Version 2(閃存日志型文件系統第2版),其功能就是管理在MTD設備上實現的日志型文件系統。與其他的存儲設備存儲方案相比,JFFS2并不準備提供讓傳統文件系統也可以使用此類設備的轉換層。它只會直接在MTD設備上實現日志結構的文件系統。JFFS2會在安裝的時候,掃描MTD設備的日志內容,并在RAM中重新建立文件系統結構本身。
深海海底邊界層原位監測系統需要使用可寫文件系統,因此選擇使用JFFS2具有斷電可靠性的日志結構文件系統。根據開發者的開發需求對開發板的系統文件進行適當的修改,以滿足系統的需求。
在數據存儲方面,選用Atmel公司的AT91S9263CU為微處理器的ARM9的開發板,其存儲器容量為64MB SDRAM、128MB NandFlash、2MB DataFlash,不能滿足存儲大容量數據的要求,需要外接存儲設備。在外圍設備方面,本型號的開發板有1路SD/MMC卡接口,可以在外部擴展存儲容量,通過外部擴展SD卡實現大容量數據存儲的要求。
對開發板自啟動文件進行相應的修改,實現自動掛載SD卡的功能。開機自啟動的文件是Linux操作系統的系統文件,該文件完成各種設備的掛載。通過修改此文件,可以實現設備的自動掛載。
為實現自動掛載SD卡的功能,在此系統文件中添加相關命令。重新啟動嵌入式系統,通過相關監測設備可以監測是否自動掛載SD卡。
在深海海底邊界層原位監測系統中,SD卡內的監測程序是整個系統中最核心的部分,而監測程序的自動啟動是深海海底邊界層原位監測系統能夠順利工作的基礎。實現程序的自動啟動除了實現開機后SD卡自動掛載,還需要實現使用者自定義開機啟動程序,Linux啟動最后階段,系統會執行SD卡中相關文件命令。在系統開機時,需自動運行自定義開機啟動程序。將通過交叉編譯環境所生成的二進制文件存儲到SD卡中并且建立相關文件,在該文件中添加啟動命令,重新啟動通過監測設備可以監測程序是否自動運行。
FTP是文件傳輸協議(File Transfer Protocol)的簡稱,是因特網上使用的最廣泛的文件傳輸協議。FTP提供交互式的訪問,允許客戶指明文件的類型與格式,并允許文件具有存取權限[5],文件傳送協議FTP使用TCP可靠的運輸服務。在進行文件傳輸時,FTP的客戶和服務器之間要建立兩個并行的TCP連接:控制連接和數據連接。控制連接在整個會話期間一直保持打開,FTP客戶所發出的傳送請求,通過控制連接發送給服務器端的控制進程。服務器端的控制進程在接收到FTP客戶發送來的文件傳輸請求后就創建數據傳送進程和數據連接,用來連接客戶端和服務器端的數據傳送進程。
通過FTP服務器,可以使上位機(PC機)通過網絡接口訪問嵌入式系統,實現上傳下載數據的功能。FTP服務器使用簡單,可以通過FTP客戶端建遠程登錄FTP服務器,進行各種文件的操作。
FTP有多種實現形式,本系統在調試時使用bftpd服務器程序。bftpd可以廣泛應用于 Linux、BSD/OS、FreeBSD、Solaris、DG-UX以及Tru64平臺。bftpd主旨成為一款高速、小巧而且配置方便的服務器,可以使用其默認的配置選項,也可以通過交叉編譯將其嵌入在不同的應用平臺上,bftpd依賴關系比較簡單,運行穩定。
通過長時間連續掛載SD卡以及連接FTP服務器的試驗,表明以上方法可以滿足深海海底邊界層原位監測系統硬件系統的設計要求,實現了在外圍設備中的數據存儲以及數據傳輸。
[1]劉銳,王林.基于ARM數據采集系統的設計[J].中國測量,2010(36):89-92.
[2]秦龍.MSP430單片機C語言應用程序設計[M].北京:電子工業出版社,2006:1.
[3]鳥哥.鳥哥的Linux私房菜,基礎學習篇(第二版)[M].北京:人民郵電出版社,2007:16.
[4]宋寶華.Linux設備驅動開發詳解[M].北京:人民郵電出版社,2008:45-46.
[5]謝希仁.計算機網絡(第 5版)[M].北京:電子工業出版社,2007:232.