周隆英
(昆明船舶設(shè)備研究試驗中心,昆明650051)
水下航行體應急控制系統(tǒng)設(shè)計與實現(xiàn)
周隆英
(昆明船舶設(shè)備研究試驗中心,昆明650051)
水下航行體在科研階段的安全性已經(jīng)越來越重要,它關(guān)乎科研成本的巨大浪費,更關(guān)乎科研數(shù)據(jù)的丟失,無法分析辛苦得來的寶貴數(shù)據(jù),更嚴重的是,航行體的丟失,使得科研無法繼續(xù)進行,耽誤科研的進度。因此水下航行體應急控制系統(tǒng)顯得尤其重要。本水下應急控制系統(tǒng)采用C8051F040單片機為控制核心,Am29F040Flash存儲器為存儲單元,C語言為編程環(huán)境來實現(xiàn)。它的實現(xiàn),確保了航行體的安全,對整個科研起到至關(guān)重要的作用。實際應用證明,該系統(tǒng)具有較高可靠性和實用性,為保證水下航行體安全提供了一種有效方法。
水下航行體;應急控制系統(tǒng);安全;C8051F040單片機;存儲器;CAN總線
水下航行體應急控制系統(tǒng),主要用于航行體在正常航行過程中,對航行體重要狀態(tài)的實時監(jiān)測,用于預防由于航行體控制系統(tǒng)突然掉電、航行深度超出設(shè)定深度、航行時間超出設(shè)定時間等因素引起的航行異常。同時采取應急控制措施,控制航行體安全可靠的浮出水面并定位,便于安全回收。
作為應急系統(tǒng),其工作時間長,系統(tǒng)穩(wěn)定性和抗干擾性要求高,記錄數(shù)據(jù)量大,建立一套穩(wěn)定可靠的通訊方式具有重要意義。該系統(tǒng)采用CAN總線通信方式,CAN總線系統(tǒng)工作可靠、穩(wěn)定[1],具有很高的抗干擾性,CAN控制器局域網(wǎng)具有體系開放、廣播式的新一代網(wǎng)絡通信協(xié)議,有效支持分布式控制和實時數(shù)據(jù)傳輸。由于其采用兩線差分串行傳輸,單工或半雙工工作模式,速度高,很適用于中小型的、實時要求高的系統(tǒng)[2]。因此確定使用CAN總線構(gòu)建應急系統(tǒng)通信方式。
水下航行體應急控制系統(tǒng)工作原理框圖如圖1所示,主要由控制模塊,數(shù)據(jù)存儲模塊,時鐘讀取模塊,信號監(jiān)測模塊和驅(qū)動模塊組成。
圖1 應急控制系統(tǒng)工作原理框圖
系統(tǒng)硬件部分以C8051F040單片機為核心[3],配備4M位閃速FLASH存儲器TMS29F040芯片、DS12887時鐘芯片、CAN總線通訊芯片、RS-232串口通信芯片、信號驅(qū)動芯片、繼電器、JTAG芯片等。其中C8051F040單片機是整個應急系統(tǒng)的大腦中樞,F(xiàn)LASH存儲器芯片存儲關(guān)鍵數(shù)據(jù),DS12887時鐘提供關(guān)鍵數(shù)據(jù)時間點,CAN總線通訊芯片作為通訊的收發(fā)器件,RS-232串口通信芯片用于軟件調(diào)試,信號驅(qū)動芯片驅(qū)動輸出端口,JTAG芯片用于程序下載。
3.1 C8051F040單片機電路設(shè)計
C8051F040單片機為整個應急系統(tǒng)的大腦中樞,實時快速監(jiān)測水下航行體的航行姿態(tài),同時每0.1s間隔記錄從傳感器采集到的深度數(shù)據(jù)。出現(xiàn)緊急情況時,控制各路信號的輸出,并讀取時鐘芯片內(nèi)時間作為關(guān)鍵信息的時間點存儲到FLASH存儲器。
3.2 FLASH存儲器電路設(shè)計
應急系統(tǒng)配備4M位閃速FLASH存儲器Am 29F040芯片,Am29F040Flash存儲器由8個獨立區(qū)段構(gòu)成[4],區(qū)段結(jié)構(gòu)如下表1所示,A18、A17、A16為選擇8個區(qū)段之一的地址位[5]。在存儲航行體不同種類數(shù)據(jù)時,可分區(qū)段和地址位存儲產(chǎn)品所要記錄的數(shù)據(jù)。其主要用途為存儲應急參數(shù),關(guān)鍵CAN信息數(shù)據(jù)及時間,航行體航行深度數(shù)據(jù)(0.1s間隔)。
表1 存儲器結(jié)構(gòu)
3.3 時鐘電路設(shè)計
采用DS12887芯片設(shè)計的時鐘電路無需任何外圍電路和器件,具有良好的微機接口[6]。DS12887芯片具有微功耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點。內(nèi)含一個鋰電池,斷電后運行十年以上不丟失數(shù)據(jù)。計秒,分,時,天,星期,日,月,年,并有閏年補嘗功能[7]。根據(jù)應急系統(tǒng)存儲時間的要求,DS12887芯片完全滿足運行穩(wěn)定可靠、工作時間長、時間精確度高等要求。
軟件是應急控制系統(tǒng)的指控中樞。應急控制系統(tǒng)硬件在軟件的統(tǒng)一調(diào)度、管理和配置下,實現(xiàn)對水下航行體各系統(tǒng)主要信號的監(jiān)測,同時記錄水下航行體工作異常時的重要數(shù)據(jù),控制應急控制系統(tǒng)各功能模塊輸出驅(qū)動信號,確保水下航行體安全、快速的浮出水面。
4.1 軟件功能與結(jié)構(gòu)
軟件功能主要包括:①實航深度信號及航行時間監(jiān)測;②關(guān)鍵電源信號狀態(tài)監(jiān)測;③數(shù)據(jù)記錄;④信號驅(qū)動控制;⑤CAN總線通訊。
該應急系統(tǒng)軟件監(jiān)測航行體航行深度信號、航行時間和關(guān)鍵的5路電源信號,并在該監(jiān)測信號發(fā)生異常時,通過CAN總線向控制系統(tǒng)報警以及警戒停機控制;在航行體由應急控制系統(tǒng)實施警戒停機后,由應急控制系統(tǒng)控制航行體安全浮出水面。
為了方便設(shè)計與后續(xù)的完善、修改,采用模塊化設(shè)計。各功能模塊完成各自不同的軟件功能,它包括狀態(tài)信號監(jiān)測程序、深度信號監(jiān)測程序、驅(qū)動控制程序、數(shù)據(jù)記錄程序、CAN總線通訊程序五個功能模塊。連接到定時循環(huán)的主模塊中形成自主循環(huán)檢測和中斷響應程序。其功能模塊框圖如圖2所示。
圖2 功能模塊框圖
4.2 主程序設(shè)計
主程序主要完成端口的初始化設(shè)置以及單片機的寄存器初始化,包括串口初始化、定時器初始化、系統(tǒng)時鐘初始化、I/O初始化、CAN通訊初始化、ADC0初始化等。初始化完成后,等待監(jiān)測指令,收到監(jiān)測指令后,監(jiān)測航行體,根據(jù)監(jiān)測信號進入相應的子程序模塊。當有結(jié)束提示或命令時,退出主程序。有關(guān)程序中用到的CAN及傳遞參數(shù)的全局變量數(shù)據(jù)類型也需要在此程序框架中定義,以便在系統(tǒng)異常時隨時正常調(diào)用各功能模塊。
4.3 監(jiān)測程序設(shè)計
狀態(tài)信號監(jiān)測軟件模塊主要監(jiān)測航行體5路狀態(tài)信號的實時狀態(tài),判斷各路信號是否出現(xiàn)異常。當全航行體任一信號出現(xiàn)異常時,軟件即設(shè)置該狀態(tài)異常標志位,并由驅(qū)動程序進行相關(guān)的警戒停機動作。其軟件模塊流程圖如圖3所示。
圖3 狀態(tài)信號監(jiān)測軟件模塊流程圖
對要進行監(jiān)測的輸入端口標志位進行判讀,在此軟件中,標志位“0”為正常信號狀態(tài),標志位“1”為異常信號狀態(tài)。通過c語言里的判斷語句,對輸入端口進行判讀,達到監(jiān)測信號的目的。
深度信號監(jiān)測子程序主要是監(jiān)測航行體航行過程中的實時深度信號,判斷航行體深度是否過深。當航行深度過深時,軟件設(shè)置深度異常標志位,并由驅(qū)動程序進行相關(guān)的警戒停機動作。通過提取深度傳感器的實時航行深度數(shù)據(jù),對比外部寄存器Am29F040B內(nèi)設(shè)定的深度警戒參數(shù),來達到監(jiān)測深度的異常。
4.4 數(shù)據(jù)記錄程序設(shè)計
深度數(shù)據(jù)記錄子程序?qū)崟r記錄航行體航行的深度數(shù)據(jù)。它對采樣的深度信號進行轉(zhuǎn)換,把模擬量數(shù)據(jù)轉(zhuǎn)換成數(shù)字量數(shù)據(jù),經(jīng)濾波處理后存儲到應急系統(tǒng)的數(shù)據(jù)存儲區(qū);當深度信號異常時,把深度信號異常數(shù)據(jù)存儲到記錄異常數(shù)據(jù)的特定存儲區(qū)。記錄的航行深度,有利于試驗后對深度數(shù)據(jù)進行分析。
其數(shù)據(jù)記錄軟件模塊流程圖如圖4所示。
圖4 數(shù)據(jù)記錄軟件模塊流程圖
狀態(tài)信號異常數(shù)據(jù)記錄子程序主要記錄狀態(tài)信號異常時的數(shù)據(jù),在航行體航行過程中,當航行體航行深度信號、航行時間和控制5路信號,只要其中任何一路信號出現(xiàn)異常時,把異常數(shù)據(jù)存儲到記錄異常數(shù)據(jù)的特定存儲區(qū)。記錄當前時刻的異常數(shù)據(jù),試驗后通過對安全控制電路記錄數(shù)據(jù)取數(shù),可以清楚的知道在航行體航行過程中,是哪一路信號在何時出現(xiàn)了異常,便于問題的查找,縮短查找問題的時間。
4.5 CAN通信設(shè)計
CAN總線通信軟件模塊是對CAN總線通信接口卡硬件的操作。根據(jù)產(chǎn)品的CAN總線通信規(guī)程協(xié)議,上電運行控制程序中,程序初始化過程就完成CAN的初始化,完全根據(jù)各信號狀態(tài)、航行深度信號以及航行時間是否異常進行CAN發(fā)送信息和接收對應節(jié)點的CAN總線信息。由于每種命令的CAN總線通信幀的8個字節(jié)為核心內(nèi)容,因此只需要把CAN總線通信功能設(shè)計發(fā)送和讀取函數(shù),再用不同的調(diào)試命令調(diào)用CAN總線單元函數(shù)實現(xiàn)CAN通信。
通過CAN中斷,判斷是否接收或發(fā)送CAN消息,其實現(xiàn)如下:
其中,在CAN發(fā)送函數(shù)里,將*p數(shù)據(jù)寫入can消息發(fā)送,len為數(shù)據(jù)長度;在CAN接收函數(shù)里,將接收數(shù)據(jù)存入*p指針中,len為接收長度。Msg-Num為消息號,id為CAN總線上的節(jié)點號。
詳細介紹了某水下應急系統(tǒng)的設(shè)計與實現(xiàn),該產(chǎn)品屬于嵌入式自動化設(shè)備,具備智能化、小型化與模塊化的設(shè)計特點。經(jīng)測試,系統(tǒng)運行穩(wěn)定,能可靠實現(xiàn)對水下航行體實航的狀態(tài)監(jiān)測,在航行體工作異常時,快速做出應急響應,確保水下航行體的安全性。
[1] 鄔寬明.CAN總線原理和應用系統(tǒng)設(shè)計[M].北京:北京航天航空大學出版社,2002.
Wu Kuanming.Can bus principle and application system design[M].BeiJing:Beijing University of Aeronautics and Astronautics Press,2002.
[2] 楊慧,田亮,田敏.CAN總線協(xié)議分析[J].中國儀器儀表,2002(4):1-4.
YangHui,Tian Liang,Tian Min.The Analysis of CAN Bus Protocol[J].Chin Instrumentation,2002(4):1-4.
[3] 萬光毅,孫九安,等.SoC單片機實驗、實踐與應用設(shè)計——基于C8051系列[M].北京:北京航天航空大學出版社,2006.
Wan Guangyi,SunJiuan,etal.SOCmicrocontroller experiment,practice and application of design-Based on C8051 series[M].BeiJing:Beijing University of Aeronautics and Astronautics Press,2006.
[4] 吉峰.基于Flash存儲器的嵌入式文件系統(tǒng)設(shè)計[J].江南大學學報,2006,5(1):1-2.
Jie Feng.The design of embedded file system based on flash memory[J].Southern Yangtze University,2006,5(1):1-2.
[5] 公茂忠,劉漢奎,徐殿國.Flash存儲器的在系統(tǒng)編程及其在DSP系統(tǒng)中的應用[J].電子技術(shù)應用,2002(3):69-70.
Gong Maozhong,Liu Hankui,Xu Dianguo.The Flash memory in system programming and its application in DSP system[J].Application of Electronic Technique,2002(3):69-70.
[6] 閆勝利.DS12887時鐘芯片及其在LED中的應用[J].電子產(chǎn)品世界,2001(4):3-4.
Yan Shengli.DS12887 clock chip and its application in LED[J].Electronic Engineering&Product World,2001(4):3-4.
[7] 高培先,王濤.測控系統(tǒng)設(shè)計中的實時時鐘研究[J].計算機測量與控制,2014,22(1):239-241.
Gao Peixian,Wang Tao.Research of Real Time Clock in Measurement and Control System[J].Computer Mesaurement&Control,2014,22(1):239-241.
Design and Im plementation of Underwater Bodies Emergency Control System s
Zhou Longying
(Kunming Shipborne Equipement Research&Test Center,Kunming 650051,China)
The safety of underwater bodies,concerning about the research costs and the research data,has been more and more important in research stage.What'smore,the loss of the bodiesmakes scientific research interrupt and delays the progress of the research.The underwater bodies emergency control system is so important that it is paid more attention.The system uses C8051F040 singlechip as control core,Am29F040Flash memory for storage unit and C language as programming environment.Its implementation is conducted to ensure the safety of navigation and play a crucial role for the whole research.The practical application indicates that the system has high reliability and practicability and provides an effectivemethod for underwater navigation safety.
Underwater bodies;Emergency control system;Safety;C8051F040 microcontrolle;Memory;CAN bus
10.3969/j.issn.1002-2279.2015.05.019
TP277
A
1002-2279(2015)05-0072-04
周隆英(1981-),男,廣西人,工程師,主研方向:監(jiān)測設(shè)備研制與開發(fā)。
2015-03-10