基于STM32I和IDP衛(wèi)星通信模塊的遠洋船舶實時監(jiān)控系統(tǒng)
2.5 數據存儲模塊
本文引用地址:http://m.butianyuan.cn/article/245750.htm數據存儲采用了1片1 M x 16位的SST25VF016B芯片。上傳的定位數據包為27個字節(jié),總共可以存儲(2x 1 024×1 024)/27=77 672條定位數據。按照每分鐘存儲一條定位數據的頻率,共計可以存儲77 672/(60×24)=53天的定位數據。
3 系統(tǒng)軟件設計
3.1 軟件整體設計
系統(tǒng)硬件設計完成之后,就要進行軟件的設計。對軟件同樣采用模塊化的設計思想。軟件方面主要包括了主程序模塊、GPS定位數據采集模塊以及無線通信模塊。衛(wèi)星通信模塊具備二次開發(fā)功能,還需對衛(wèi)星通信模塊進行專門的設計。系統(tǒng)軟件丁作流程如圖6所示。
3.2 STM32F103VCT6的啟動/UART使用過程
STM32F103VCT6芯片采用了Cortex-M3內核,并且ST公司提供的固件庫中包括了啟動文件“stm32f10x_vector.s”。Cortex—M3內核復位后,會自動從起始地址的下一個32位空間取出復位中斷入口向量,跳轉執(zhí)行復位中斷服務程序。STM32F103VCT6的啟動主要包括初始化堆和棧、向量表的定義和轉移、初始化中斷寄存器以及跳轉進入main主函數幾個過程。流程如圖7所示。
STM32F103VCT6的串口使用主要包括啟動外設時鐘、配置NVIC、配置GPIO口、配置串口、初始化串口、使能收發(fā)中斷、使能串口幾個過程。流程如圖8所示。
3.3 衛(wèi)星通信模塊軟件設計
衛(wèi)星通信模塊的串口配置情況如下:波特率設置為9 600 bps;數據位為8;校驗位設置為“None”;停止位為1。
衛(wèi)星模塊單獨采用Lua語言進行開發(fā)。Lua是一個小巧的腳本語言。該語言是針對嵌入式應用程序設計的,能為應用程序提供靈活的擴展和定制功能。Lua體積小、啟動速度快,從而適合嵌入在別的程序里。
使用LUA語言開發(fā)的衛(wèi)星通信模塊部分源代碼略——編者注。
3.4 信息軟件平臺設計
CS監(jiān)控平臺是用戶設備與監(jiān)控中心的信息軟件平臺。監(jiān)控軟件平臺可以動態(tài)展現船舶的實時位置情況,同時可以對船舶進行管理。
CS軟件平臺主要起到如下作用:對船舶進行跟蹤定位,了解船舶的作業(yè)情況;查詢海圖某點處的具體地理情況,包括海水深度、潮高等;距離測算。
4 測試結果
本文用深圳市內5個地點作為測試樣本進行驗證性測試實驗。用定位準確性、長時間回傳數據穩(wěn)定性來評價設計的性能。驗證時,讓本系統(tǒng)在每個地點至少工作1天以上。
同時檢測實時數據上傳的準確性與Flash當中存儲數據的準確性。現通過服務器接收到的地點1的部分定位數據作為例子說明定位的準確性,如圖9所示。
提取其中一條數據加以分析。十六進制的數據如下:1 5 18 CE C9 F1 46 BD 60 00 00 00 00 00 00 00 00 00 00 4A A1 78 67 F0 35。
對應的ASCII碼表示的數據如下:1518CEC9F1FBD