嵌入式北斗網(wǎng)絡時間服務器的Web網(wǎng)頁實現(xiàn)
摘要:本文介紹了嵌入式北斗網(wǎng)絡時間服務器的基本功能,重點講述了如何在該設備中添加Web網(wǎng)頁的方法及實現(xiàn)過程,以及在嵌入式設備中添加此功能應該考慮的資源因素。
本文引用地址:http://2s4d.com/article/202208/437622.htm關(guān)鍵詞:TCP/IP;HTTP;Cortex-M4;RAM;鏈表
1 時間服務器功能描述
北斗衛(wèi)星接收終端接收北斗導航衛(wèi)星發(fā)射的 RNSS (Radio Navigation Satellite System,無線導航衛(wèi)星系統(tǒng))無線電波信號,在設備內(nèi)部通過 PVT 解算,計算出用戶當前的位置、速度以及時間信息。北斗的時間信息具有非常好的特性,其中包括年、月、日、時、分、秒等完整信息,并且其輸出的 1pps 秒脈沖上升沿,對時精度可達到 20ns 以內(nèi),是一種非常好的時間基準源。北斗網(wǎng)絡時間服務器就是利用北斗接收終端中精確的時間信息,通過格式轉(zhuǎn)換,將其轉(zhuǎn)換成標準 NTP(Network Time Protocol,網(wǎng)絡時間協(xié)議)協(xié)議傳輸,在以太網(wǎng)端口實現(xiàn)對其它設備的授時功能,將北斗時間轉(zhuǎn)換成網(wǎng)絡時間服務器的基準時間。在網(wǎng)絡時間服務器中授時和數(shù)據(jù)傳輸都使用網(wǎng)口,添加 Web 網(wǎng)頁,可以使參數(shù)的配置和監(jiān)測也使用網(wǎng)口,一口多用,靈活方便,并且簡化了設備的對外接口。
2 Web網(wǎng)頁實現(xiàn)方法
北斗網(wǎng)絡時間服務器內(nèi)部采用 STM32 的 Cortex-M4 芯片作為主控 MCU,芯片內(nèi)部帶有網(wǎng)絡媒體控制器(MAC),只需要外接接口芯片就可以完成以太網(wǎng)的硬件功能設計。在軟件設計中,使用開源的 Lwip 協(xié)議棧來實現(xiàn)嵌入式網(wǎng)絡功能。Lwip 是一套專門為嵌入式系統(tǒng)設計的輕量級網(wǎng)絡協(xié)議棧,支持 TCP/IP (Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議 / 網(wǎng)際協(xié)議)傳輸層協(xié)議,支持 HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)應用層協(xié)議。HTTP 應用層協(xié)議在 TCP/IP 傳輸層基礎上,使用 TCP/ IP 的端口 80,實現(xiàn)與 IE(Internet Explorer,網(wǎng)絡瀏覽器)之間的網(wǎng)絡通信。在嵌入式數(shù)據(jù)存儲方面,軟件設計中將 M4 芯片的內(nèi)嵌 FLASH 分成兩部分,一部分用于存儲程序,一部分用于存儲參數(shù)。芯片內(nèi)嵌的 Flash 具有掉電保存功能,設置好的配置參數(shù)每次設備上電后都可以自動調(diào)入使用。設備中嵌入的 Web 網(wǎng)頁采用HTML(Hyper Text Markup Language,超文本標記語言)腳本語言編寫,要使用的網(wǎng)頁首先在 PC(個人電腦)機上的編輯環(huán)境中設計完成,然后將網(wǎng)頁生成二進制流的格式存儲到嵌入式 FLASH 中,嵌入的方法是在程序中創(chuàng)建數(shù)組,將數(shù)據(jù)拷貝輸入。多張網(wǎng)頁以鏈表的數(shù)據(jù)結(jié)構(gòu)存儲,便于 IE 調(diào)用時查找。北斗網(wǎng)絡時間服務器在與 PC 機通信時,將 FLASH 中的網(wǎng)頁調(diào)入 Cortex-M4 的 RAM 中實現(xiàn)參數(shù)更新,PC 機上的 IE 瀏覽器可以直接打開 HTML 語言網(wǎng)頁,進行瀏覽和參數(shù)修改。Cortex-M4 程序中定義的變量參數(shù),根據(jù)現(xiàn)場數(shù)據(jù)變化后,將參數(shù)替換到 HTML 腳本的二進制流中,通過 HTTP 協(xié)議與 IE 瀏覽器進行數(shù)據(jù)交互。在 IE 中設置的參數(shù)通過 HTTP 協(xié)議傳輸給嵌入式設備,一方面更新到 HTML 腳本的二進制流中,用于下次 IE 點擊時調(diào)用,另一方面存儲到嵌入式系統(tǒng)的數(shù)據(jù) FLASH 中保存,這些被保存的參數(shù)在設備上電時,會根據(jù)程序調(diào)用,實時更新到網(wǎng)頁中。
在嵌入式設備中添加 Web 網(wǎng)頁,要充分評估有限的硬件資源,既要功能完善,也要考慮可靠性及實時性,網(wǎng)頁在設計中不宜太過繁瑣,畢竟底層硬件資源有限,增加硬件資源就是增加成本。在網(wǎng)頁參數(shù)設置和更新時間段,要充分考慮網(wǎng)頁任務和北斗網(wǎng)絡時間服務器其它任務的配合,做到任務執(zhí)行時間的合理分配,既不互相影響,保證其它任務的實時性,也要提高網(wǎng)頁執(zhí)行效率,更不能丟失設備數(shù)據(jù)。
3 結(jié)語
現(xiàn)代的嵌入式設備中,以太網(wǎng)通信功能越來越普遍,在北斗接收終端中添加以太網(wǎng)功能,形成北斗網(wǎng)絡時間服務器,拓展了北斗時間的應用形式。同時,將 Web 網(wǎng)頁也嵌入到北斗網(wǎng)絡時間服務器中,設備在與 PC 機通信時,就可以通過 IE 瀏覽器直接查看和設置服務器參數(shù),不需要額外配置軟件,非常方便。
參考文獻:
[1] 朱升林,歐陽駿,楊晶.嵌入式網(wǎng)絡那些事[M].北京:中國水利水電出版社,2015.
[2] 阮曉龍,李朋楠,于冠軍,等.Web前端開發(fā)從學到用完美實現(xiàn)[M].北京:中國水利水電出版社,2016.
[3] STM32F4XX參考手冊[G].2018.
[4] DP83640參考手冊[G].2021.
[5] 北斗三號民用終端通用數(shù)據(jù)接口要求[S].北京:中國衛(wèi)星導航定位應用管理中心,2021.
(注:本文轉(zhuǎn)載自《電子產(chǎn)品世界》雜志2022年8月期)
評論