王 丹,劉國棟,張海濤,張曉冬
(1.中國電子科技集團公司第四十七研究所,沈陽110000;2.中國人民解放軍95979 部隊,山東 新泰 271207)
智慧機場[1-2]是目前機場建設和發(fā)展的趨勢,在智慧機場的規(guī)劃中,應該力求實現(xiàn)集成化、智能化、簡潔化的管理。但現(xiàn)實情況是,我國大型機場一般都存在多種相似、相關、獨立的系統(tǒng),彼此數(shù)據(jù)傳輸協(xié)議不統(tǒng)一,各自采集的數(shù)據(jù)無法共享,更談不上數(shù)據(jù)分析和挖掘,而數(shù)據(jù)共享和挖掘恰恰是實現(xiàn)智慧機場的精髓,因此,打破信息孤島是建設具備“互聯(lián)網(wǎng)+”屬性的機場管理系統(tǒng)的關鍵一步。鑒于此,針對智慧機場項目,設計一款數(shù)據(jù)采集板卡,其功能是采集空管設備集中監(jiān)控系統(tǒng)中的導航設備數(shù)據(jù),通過互聯(lián)網(wǎng)傳輸?shù)皆破脚_,實現(xiàn)統(tǒng)一的數(shù)據(jù)管理和數(shù)據(jù)共享。
空管設備集中監(jiān)控系統(tǒng)是為民航系統(tǒng)設計的智能數(shù)據(jù)采集控制平臺,其功能框圖如圖1 所示。數(shù)據(jù)采集板卡是其重要組成部分,負責采集導航設備信息。數(shù)據(jù)采集板卡與導航設備通過串口進行數(shù)據(jù)傳輸,完成數(shù)據(jù)解析、判斷、顯示,并通過網(wǎng)絡接口發(fā)送給中間機,再由中間機發(fā)送給云服務器。
圖1 空管設備集中監(jiān)控系統(tǒng)功能簡圖
數(shù)據(jù)采集板卡的核心芯片選用ST 公司的低功耗微控制器STM32F107。STM32F107 基于ARM[3-4]Cortex-M3 的 32 位 RISC 內(nèi)核,內(nèi)嵌 256 kB Flash及64 kB SRAM。片上集成GPIO、數(shù)模轉(zhuǎn)換器、模數(shù)轉(zhuǎn)換器、定時器、RTC、DMA、看門狗。此外片上還載有豐富的通信接口,如 I2C、SPI、I2S、USART、UART、USB、CAN、Ethernet 控制器等,能夠完全滿足項目的資源需求。
該數(shù)據(jù)采集板卡硬件設計功能框圖如圖2 所示。程序代碼是被存放在STM32F107 的內(nèi)部Flash中;數(shù)據(jù)存放在片上的SRAM 中。串口負責接收空管設備集中監(jiān)控系統(tǒng)中導航設備數(shù)據(jù),由STM32F107 進行數(shù)據(jù)CRC 校驗、數(shù)據(jù)分析等處理,在LCD 上顯示導航設備的相關數(shù)據(jù)及調(diào)試信息,通過以太網(wǎng)發(fā)送到遠端的云平臺。另外通過以太網(wǎng)實現(xiàn)遠程固件更新功能,EEPROM 存儲器存放配置信息;LED 指示燈會提示板卡運行狀態(tài);按鍵提供板卡復位等功能。
圖2 數(shù)據(jù)采集板卡硬件功能框圖
STM32F107 內(nèi)部還集成了以太網(wǎng)控制器MAC,因此需要外接以太網(wǎng)收發(fā)芯片PHY。為此,該板卡選用了LAN8720 芯片。使STM32F107 與LAN8720通過RMII 接口實現(xiàn)彼此互聯(lián)。具體連接形式如圖3所示。
圖3 STM32F107 與 LAN8720 連接圖
數(shù)據(jù)采集板卡軟件采用的是Keil 集成開發(fā)環(huán)境,包括編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫等,同時提供仿真調(diào)試等功能,完全滿足項目的開發(fā)需求。
數(shù)據(jù)采集板卡的軟件流程如圖4 所示。
圖4 數(shù)據(jù)采集板卡軟件流程
4.2.1 設備初始化
如圖4 流程圖可見,軟件工作的第一步要對設備進行初始化處理,其詳細過程如下:
1、STM32F107 內(nèi)部系統(tǒng)時鐘設置為72MHz;
2、定時器配置為5 秒產(chǎn)生一個中斷,發(fā)送PING數(shù)據(jù)幀給導航設備;
3、啟動看門狗,防止程序跑飛;
4、初始化串口;
5、初始化 I2C,通過 I2C 讀寫 EEPROM;
6、初始化網(wǎng)絡相關軟硬件配置;
7、初始化LCD 控制,并顯示程序啟動信息。
4.2.2 與外界設備通信
該數(shù)據(jù)采集板卡與外界設備通信接口包括兩大部分:串口收發(fā)導航設備數(shù)據(jù);網(wǎng)絡接口收發(fā)數(shù)據(jù)給中間機。
1) 串口收發(fā)數(shù)據(jù)
數(shù)據(jù)采集板卡通過串口與導航設備之間進行數(shù)據(jù)傳輸。根據(jù)導航設備的接口要求,串口要求波特率9600,數(shù)據(jù)位1 位,停止位1 位,無奇偶檢驗。
數(shù)據(jù)采集板卡與導航設備之間的幀格式如圖5所示。
圖5 數(shù)據(jù)幀格式
其中各部分說明如下:
幀頭:占3 個字節(jié),內(nèi)容固定為7EH 7EH 7EH。
指令:占1 個字節(jié),詳細的請求與應答指令如表1 所示。
表1 通信指令
數(shù)據(jù)長度:占2 個字節(jié),數(shù)據(jù)長度包括數(shù)據(jù)內(nèi)容及CRC32 所占用的字節(jié)數(shù),低位在前。例如:連接測試請求“7E 7E 7E 01 05 00 00 92 7A 33 9F”中,數(shù)據(jù)長度為5 個字節(jié)。
數(shù)據(jù)內(nèi)容:占用的字節(jié)數(shù)不確定,會根據(jù)不同的指令有所變化。
CRC32:占4 個字節(jié),從指令開始至CRC32 前的所有字節(jié)均要進行校驗,多項式為EDB88320H。
2) 網(wǎng)絡收發(fā)數(shù)據(jù)
數(shù)據(jù)采集板卡通過網(wǎng)絡接口與中間機進行數(shù)據(jù)傳輸,網(wǎng)絡接口遵守的網(wǎng)絡協(xié)議是基于輕量級的TCP/IP[5]協(xié)議?!狶wIP[6]。該協(xié)議棧是由瑞士計算機科學院開發(fā)的用于嵌入式系統(tǒng)的網(wǎng)絡協(xié)議族。LwIP 的優(yōu)點是在保留TCP/IP 協(xié)議主要功能的基礎上,減少存儲器利用量和代碼尺寸,更適合應用于小的、資源有限的處理器,如STM32F107。
LwIP 的主要特性可歸納如下:
支持多網(wǎng)絡接口下的IP 轉(zhuǎn)發(fā);
支持ICMP 協(xié)議;
包括實驗性擴展的UDP;
包括阻塞控制、RTT 估算、快速恢復和快速轉(zhuǎn)發(fā)的TCP;
提供專門的內(nèi)部回調(diào)接口(Raw API),用于提高應用程序性能;
具有可選擇的Berkeley 接口API;
支持 ppp、IP fragment、DHCP 協(xié)議;
動態(tài)分配IP 地址;
支持IPv6。
該數(shù)據(jù)采集板卡的軟件核心代碼是基于TCP協(xié)議[7](Transfer Control Protocol),為應用層提供可靠的二進制數(shù)據(jù)流服務。TCP 流程圖如圖6 所示。
圖6 TCP 流程圖
4.2.3 μC/OS 操作系統(tǒng)
由于該平臺需要并行處理多個任務,因此需要選用一款適用的操作系統(tǒng),本設計選用μC/OS-II 操作系統(tǒng)[8],并行處理的任務包括:
串口收發(fā)處理數(shù)據(jù);
網(wǎng)絡TCP_SERVER;
連接到TCP_SERVER 的TCP_CLIENT;
LCD 顯示任務;
軟件定時器任務,5s 產(chǎn)生一次中斷,發(fā)送PING幀給導航設備。
以一款具體產(chǎn)品的設計為例,介紹了數(shù)據(jù)采集板卡的基本設計框架。該設計目前已應用于空管設備集中監(jiān)控系統(tǒng)。由于產(chǎn)品具有一定的可升級性,可以加入藍牙、紅外、4G/5G 等其他功能,應用于包括鐵路、港口、智慧軍營、智慧城市等諸多領域,具有廣闊的市場前景。