, ,
(海軍工程大學 導航工程系 武漢,430033)
目前,艦船在出海航行時參數數據只能記錄在船載航行數據記錄儀(voyage data recorder,VDR)中,需要專用設備才能提取,過程也比較繁瑣,并且VDR中的參數數據不夠完整,不能為參數辨識全面提供依據。針對這一問題,設計便捷、高效、實用的艦舵參數數據采集傳輸系統,實時采集、存儲、傳輸有關艦船航向、舵角、位置、縱橫搖角等參數數據。本文主要介紹為獲取艦舵參數數據采集電路的設計及將數據存儲至大容量的SD(secure digital memory card)卡中,并通過無線網絡將數據傳輸至遠端服務器的工作。
艦舵參數采集傳輸系統的設計以C8051F500單片機為控制器,SD卡作為安全存儲介質,GPRS-DTU為傳輸設備,對艦船自動舵的航向、舵角、位置等參數進行采集、存儲和傳輸。以C8051F500單片機為主控器的采集電路對艦舵參數進行采集,通過SPI訪問方式將數據寫入大容量存儲介質SD卡中,利用GPRS-DTU無線傳輸設備根據串口通信協議將存儲在SD卡中的參數數據傳輸到遠端服務器,見圖1。

圖1 系統組成示意
參數數據采集傳輸系統的硬件電路設計包括單片機的選取及其外圍電路設計,其中外圍電路主要有晶振電路、C2接口電路、電源電路、CAN總線驅動電路,R232/422串口電路、SD卡SPI模式與單片機連接電路等
選用C8051F500單片機,片內的JTAG調試電路允許對MCU進行非侵入式(不占用片內資源)、全速在線調試。在使用JTAG調試時,所有的模擬和數字外設都可全功能運行。C8051F系列的開發軟件可以使用專用集成開發環境Silicon Laboratories IDE,也可以使用較為通用的8051單片機開發軟件uVision集成開發環境。C8051F500單片機不僅能夠滿足數據采集功能,還能很容易地實現SD卡的訪問[1],與SD卡系統的相關特性主要有以下幾個方面。
1)單片機內部具有SPI接口,可與SD卡的SPI總線接口匹配。
2)具有5個I/O端口,除滿足數據采集需要外,有足夠的端口與SD卡連接。并且,這些端口可通過軟件進行配置,獲得不同的功能,其中,SPI接口就是通過配置相關寄存器獲得的。
3)具有可擴展的中斷系統,支持18個中斷源,2個優先級,其中包括SPI接口產生的中斷。
4)4 352字節內部數據RAM(256~4 096),64 kB的可在系統編程的FLASH存儲器,不需要擴展存儲器,就可以滿足文件系統的建立和訪問SD卡的需要。
5)片內JTAG調試電路提供全速、非侵入式的在系統調試,支持斷點、單步調試。
6)時鐘系統比較完善,可以使用內部時鐘,也可以使用外部時鐘,通過編程可以切換。
SD卡包含兩個基本部分:NAND型FLASH存儲模塊和內置控制器。FLASH存儲模塊用來以扇區(512B)為單位存儲數字信息,控制器用來實現與主機的接口及控制數據在存儲模塊中的傳輸[2]。
SD卡支持兩種總線訪問方式[3]:SD方式和SPI方式,其中SD方式采用6線制,使用CLK、CMD、DAT0~DAT3進行數據通信,有較快的存取速度,一般通過帶USB接口的SD卡讀卡器與SD卡通信時多采用此模式;而SPI方式采用4線制,使用CS、CLK、DataIn(DI)、DataOut(DO)進行數據通信,由于許多51內核單片機已經提供了SPI接口,即便沒有SPI接口,也可以很容易地通過軟件模擬實現SPI協議通訊,所以采用單片機對SD卡進行讀寫時一般都采用SPI模式[4]。本系統設計所采用的C8051F500單片機內部已經提供了SPI總線接口,所以不需要進行軟件模擬。SD卡在SPI模式下引腳功能定義見表1。

表1 SPI模式下SD卡的引腳功能定義
注:S-電源輸入;I-輸入;O-輸出;PP-采用推拉驅動的輸入輸出
SD卡與C8051F500單片機的P1的4個I/O口相連。SD卡的CS腳連接到單片機的SS管腳;DI腳連接到單片機的MOSI管腳,單片機通過此管腳向SD卡寫入數據;DO腳連接單片機的MISO管腳,單片機從這個管腳讀取SD卡內的數據;SCK腳連接單片機的SCK管腳,單片機通過這個管腳向SD卡發送時鐘信號。具體連接見圖2。

圖2 單片機與SD卡連接示意
系統采集的實驗參數數據存儲在SD卡中,可以由兩種方式傳送至PC機:①將SD卡插入PC機的SD卡槽讀取參數數據;②通過GPRS無線傳輸方式將數據傳送至遠端PC機。由于艦船遠海航行時沒有通信信號,只能在艦船近海航行或者靠近碼頭時傳送數據,而通過無線傳輸能節省大量的時間、資源和資金。基于方式1)具有延時性、間斷性、繁瑣性、受限性,本系統選擇方式2)GPRS無線傳輸。
基于通用分組無線業務的GPRS無線數據傳輸是目前十分適合遠程數據傳輸的一種通訊方式,具有運行成本低、實時性好、可靠性高、不受地域限制等優點,更重要的是GPRS網絡是由移動運營商投資,可以節省巨額的網絡建設費用,免除了網絡的日常修改和維護,可使系統建設及維護成本大大降低。
GPRS無線應用組網方式有多種[5],本課題所研究系統選用了北京天同誠業科技有限公司生產WG-8010 GPRS-DTU數據傳輸終端。WG-8010內置工業級GPRS無線模塊,提供標準RS232/485數據接口,可以方便連接RTU、PLC、工控機等設備,僅需一次性完成初始化配置,用戶設備就可以與數據中心通過GPRS無線網絡建立連接,實現數據的全透明傳輸。
DTU的主要功能如下。
1)永遠在線。DTU數據終端能夠保持與GPRS/CDMA網絡的連接,能夠實時監測網絡的狀態保持通訊鏈路暢通。
2)自動撥號。當由于網絡或外部電源關閉等原因造成DTU與網絡鏈路中斷時,DTU能夠自動發起撥號,重新與網絡指定IP建立連接。
3)透明傳輸。用戶數據通過網絡傳輸以后,到達串口端是嚴格按照數據原碼輸出的。
4)標準UDP/TCP數據傳輸。用戶可以根據數據的特點選擇使用通訊協議,UDP協議是“無鏈接的數據傳輸協議”,TCP協議是“可靠的數據傳輸協議”。
5)固定IP和支持動態域名。DTU不但支持與固定IP建立連接,還能夠支持動態域名解析。
利用C8051F500單片機通過VDR對外接口采集艦舵參數,并將采集數據寫入SD卡存儲,再通過WG-8010 GPRS-DTU將參數數據傳送至遠端服務器,軟件主要分為以下幾部分。
1)C8051F500單片機硬件初始化及SPI端口配置,主要用來配置SPI接口所占用的具體引腳以及SPI的主、從模式等參數。
2)SD卡初始化。SD卡命令輸入模塊,通過此模塊的調用可以向SD卡輸入各種控制或配置命令,同時檢測SD卡的工作狀態。
3)SD卡的數據塊的讀寫。在功能命令輸入之后,單片機可以調用此模塊與SD卡交換數據。
4)SD卡數據存儲結構即FATFS文件系統初始化,實現SD卡中數據能在PC機正常讀。
5)利用GPRS-DTU通過串口通信實現數據在遠端PC機上的接收和發送。
相比目前VDR船載航行數據記錄儀,將大容量SD卡存儲方式運用到艦舵參數數據采集傳輸系統中,解決了大量數據存儲的需求,簡化了數據提取方式,也提高了數據采集傳輸系統的可靠性。一方面能為艦舵操縱K-T方程的參數辨識及其他艦船運動模型參數辨識提供實驗依據;另一方面建立一個完整的關于艦船航向、舵角、位置、縱橫搖角、載重情況等參數的數據庫,為將來的艦船實驗研究提供重要依據,優化自動舵的控制率。
[1] 李長有.基于C8051F020的SD卡主控制器設計[J].微計算機信息,2007(9):120-122.
[2] 段 勇.基于MSP430單片機的SD卡讀寫[J].生物醫學工程研究,2007,(4):347-350.
[3] 韓 輝.基于SD卡的多通道數據采集系統[J].工業儀表與自動化裝置,2010(1):65-67.
[4] 袁芬艷.SD卡在工業數據采集中的應用[J].電子器件,2010(5):629-631.
[5] 劉 博.基于GPRS的遠程數據采集傳輸系統設計[D].大連:大連海事大學,2008.