陳小米 張 浩
(中國船舶重工集團公司第七一二研究所,武漢 430064)
艦船車鐘記錄儀是用于自動記錄艦船航行和控制過程中的一些重要數據,如駕控室車令、集控室或機艙回令、螺旋槳轉速等。在艦船發生重大海損或事故后,車鐘記錄儀可作為事故原因分析調查的重要依據之一,即是俗稱的“船上黑匣子”。在平時的航行中也可通過其記錄的運行數據記錄考察艦船的運行狀況[1]。
隨著技術的發展,許多現代化艦船操縱系統已采用了計算機控制及網絡通訊技術,船舶的車令及運行數據的記錄方式也發生了很大改變。本文通過采用基于 ARM9的硬件平臺,以嵌入式WinCE操作系統為軟件平臺,研制了一種通過液晶屏提供豐富圖形化人機界面、便于調試及操作的新型艦船車鐘記錄儀[2]。
為了保證車鐘記錄儀的高性能,硬件系統采用韓國三星公司研發S3C2410A處理器,該處理器是的一款基于ARM9內核ARM9TDMI架構的16/32位高性能微處理器。它片上集成了豐富的外設資源:獨立16KB數據緩存和16KB指令緩存、存儲器管理單元、LCD控制器、NAND FLASH接口、系統管理功能、3通道串口、4通道DMA控制器、4通道帶PWM 的定時器、I/O接口、實時時鐘(RTC)、8通道10位分辨率ADC、LCD接口、IIC總線、IIS總線、USB接口、SD接口、2通道SPI接口和鎖相環等。因此,可以基于該處理器構建一個功能強大的系統[3]。
在充分利用S3C2410A片上資源的基礎上,本文設計的車鐘記錄儀主要實現了以下四個功能:數據采集、數據保存、數據打印、人機界面顯示和設置,如圖1所示。
其中數據采集功能用于獲取主令車鐘信號、應急車鐘信號及推進螺旋槳轉速信號;
數據保存功能主要將采集的各種指令信號保存起來,保證在掉電情況下數據仍然能夠長期保持,并擴展了支持1G容量SD卡的接口;
數據打印功能主要通過一臺微型熱敏打印機實現,由觸摸屏控制,隨時打印保存的數據;
人機界面功能主要由一塊3.5英寸LCD觸摸屏組成,可以實時顯示采集的車令及轉速信息,在線對車鐘記錄儀功能做出相關的設置。
記錄儀每隔 20s(采樣時間可以通過觸摸屏在線設置)就分別對主令車鐘信號、應急車鐘信號車鐘及推進螺旋槳轉速進行實時采集。由于上述信號均為4~20 A電流信號,而A/D轉換器采集接收的是電壓信號,所以在主控板中專門設計了相應的信號調理電路,如圖2所示。
根據總體施工規劃,降水井布設于隧道兩側,距離隧道外邊線約8 m,位于盾構施工影響的三倍洞徑范圍內,盾構機在推進過程中會不可避免地擾動周圍地層,使得地層發生擠壓和變形等。由于水泥管剛度低于鋼管,水泥管的抗彎、抗拉、抗壓強度,以及接頭側向受力更是明顯低于鋼管,在盾構推進過程中可能出現井管局部錯位變形的可能,進而導致不能正常降水甚至降水井損壞。
經過信號調理電路的轉換和濾波后輸出0~3.3 V的電壓信號,再經片上ADC轉換器傳至S3C2410A處理器進行處理。
圖2 主控板信號調理電路圖
在記錄儀主控板上,擴展了 32M 的 NAND FLASH作為程序存儲器,用來存儲ARM WinCE操作系統以及應用程序。同時,設計擴展32M的SDRAM 作為系統的內存。同時利用該芯片豐富的外設接口,可以方便地進行外部設備的擴展,本系統為了異地讀取數據的方便,特意擴展了SD卡接口,用來將采集到的各種數據保存到容量為1G的SD卡中,從而實現了大容量存儲。
為了提高記錄儀打印功能的可靠性,本文采用了市場上成熟的SPRT-DIIIB微型熱敏打印機。它體積小、重量輕、支持國標GB2312的24*24點陣字庫打印,擁有標準的 10線針型扁平電纜插座,與RS232C標準兼容。由于S3C2410A處理器上已經集成了3個串口通道,記錄儀利用上面的通道1作為與微型熱敏打印機的通訊接口。
S3C2410A處理器內部集成了液晶顯示屏(LCD)控制器,本系統在此基礎上外接一快SHARP公司的65526色320×240分辨率的3.5英寸的帶觸摸屏的LCD,為友好的圖形界面做好了硬件基礎。
觸摸屏采用的是四線電阻式觸摸屏,觸摸屏的控制采用專用控制器ADS7843芯片。
本文采用嵌入式WinCE操作系統平臺,利用Embedded Visual C++5.0工具基于模塊化的思想開發了車鐘記錄儀的軟件程序。對在Windows CE操作系統下程序的構成主要分三個層次:首先是啟動程序,然后是的各種驅動程序,最后是應用程序,三者缺一不可。軟件程序的層次如圖3所示[4]。
啟動程序的功能主要是根據記錄儀硬件平臺的需要進行Windows CE操作系統的定制,生成操作系統鏡像。創建一個功能完善的 Boot Loader,是開發WinCE系統的第一步。
圖3 基于WinCE的記錄儀軟件層次圖
Windows CE的驅動程序有兩種模型:本機設備驅動程序和接口設備驅動程序。本機設備驅動程序由原始設備制造商創建的,用以驅動如鍵盤、觸摸屏、音頻設備等。接口設備驅動程序則是由第三方生產商提供,以支持添加到系統的設備。WinCE下的設備驅動程序在與應用程序相同的保護級上工作。當系統啟動時,大多數驅動程序是由設備管理進程加載的,所有的這些啟動程序將共享同一個進程地址空間。本文中主要編寫了以下驅動程序:
(1)本地實時時鐘驅動:實時時間模塊;
(2)LCD驅動:用于圖形顯示操作界面,人機交互顯示;
(3)本地存儲器驅動:存儲內核鏡像,文件系統鏡像,數據庫等,掉電保留;
(4)移動存儲器驅動:SD卡驅動;
(5)微型打印機驅動:打印機驅動程序設計。
在應用程序中,根據系統的功能,本文主要編制了以下子程序:
(1)A/D轉換和數字濾波子程序:采用多次復用采集,進行A/D轉換,并編制相應的數字濾波程序,實現軟件的抗干擾;
(2)數據處理和存儲子程序:將采集的數據按順序存入FLASH中,并標定時間記錄;
(3)串行通信子程序:按照約定的數據幀格式,實現與熱敏打印機的數據單向傳送;
(4)GUI顯示處理子程序:實現參數和采集數據的顯示,以及觸摸程序的識別和處理,完成與觸摸屏的雙向數據交換。其中,人機交互界面,主要由三部分組成:主界面、功能界面、子功能界面。
本文就基于ARM硬件平臺和WinCE操作系統艦船車鐘記錄儀的功能和設計進行了詳細的論述。充分利用嵌入式ARM芯片處理強大的運算能力和豐富的接口功能,集成度高、抗擾性能好等優點,以及利用C++語言在Embedded Visual C++5.0環境下開發應用軟件的便捷性,成功構建一個圖形界面友好,操作方便,集數據采集、顯示、打印于一體的車鐘記錄系統,具有很好的發展前景,滿足了今后艦船航行記錄的要求。
[1]陶勇, 龍飛等. TCJ-1型通用車鐘記錄儀的研制. 船電技術[J], 2007(1), 31-33.
[2]孫秀強, 宋延民. 單片機在通用船舶車鐘記錄儀中的應用[J].天津職業技術師范學院學報, 2001(2),23-26.
[3]陳方亮, 王勁等. 一種基于C8051F020單片機和TL16C554串行通信接口的車鐘記錄儀[J]. 船電技術, 2007(增刊), 52-55.
[4]屈博, 楊耿煌等. 基于ARM9 Linux的手持電能質量分析儀[J]. 電子測量技術, 2007(8), 94-98.
[5]繆兵. 基于ARM9內核的嵌入式檢測系統設計[J].儀表技術與傳感器, 2010(1), 70-73.