基于米爾全志T536開發(fā)板的多協(xié)議物聯(lián)網(wǎng)關(guān)的方案測試
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘自:大信
前兩次已經(jīng)成功的搭建了開發(fā)板的網(wǎng)絡(luò)和開發(fā)環(huán)境,登錄開發(fā)板和網(wǎng)絡(luò)連接上開發(fā)板,并登錄到開發(fā)板進(jìn)行相關(guān)的操作,并且能夠順利的進(jìn)行C/C++開發(fā)。
米爾基于全志T536開發(fā)板
為了充分的應(yīng)用該開發(fā)板,結(jié)合T536處理器的特點(diǎn),這里進(jìn)一步的進(jìn)行軟件開發(fā),充分利用開發(fā)板的硬件資源,完成業(yè)務(wù)產(chǎn)品的需求。這里以物聯(lián)網(wǎng)多協(xié)議網(wǎng)關(guān)應(yīng)用為研究為目的,首先建立基礎(chǔ)的從各個(gè)硬件設(shè)讀取硬件端口的數(shù)據(jù),并且通過SOCKET由網(wǎng)絡(luò)收發(fā)的過程。在一般開發(fā)物聯(lián)網(wǎng)網(wǎng)關(guān)時(shí)可以采用MQTT,MODBUS等協(xié)議庫,作為標(biāo)準(zhǔn)的通訊,來解決硬件型號采集和對TCP/IP網(wǎng)絡(luò)發(fā)送的過程。但有些業(yè)務(wù)則需要專有的通信協(xié)議來進(jìn)行通訊,比如TCP、IP或者UDP的方式進(jìn)行物連信號的網(wǎng)絡(luò)收發(fā)。
在米爾官方的資料中已經(jīng)提供了全套的開發(fā)資料,可以參考開發(fā)板的資料,來搭建所需要的開發(fā)環(huán)境。開發(fā)資料中提供了系統(tǒng)固化鏡像、Bootloader源碼、內(nèi)核驅(qū)動源碼,以及豐富的Demo程序,閱讀資料有助于快速的構(gòu)建開發(fā)環(huán)境,這里將開始進(jìn)行驗(yàn)證和測試。
1. 主機(jī)硬件端口讀取
在T536上支持了豐富的端口并且開發(fā)板上做了型號的隔離,非常適合工業(yè)物聯(lián)網(wǎng)型號采集和控制。首先查看一下開發(fā)板的端口硬件資源:
開發(fā)板的物聯(lián)網(wǎng)接口資源豐富,它引出2路RS485、1路RS232、2路CAN、3路Ethernet、5路USB、Local Bus等通信接口,同時(shí)引出LVDS,HP OUT/MIC IN等音視頻多媒體接口,內(nèi)置2TOPS NPU、8M@30fps ISP,并支持4K@25fps H.264視頻編碼。
這里首先進(jìn)行讀取RS232和485端口數(shù)據(jù),這里設(shè)計(jì)可配置的數(shù)據(jù)參數(shù)讀物方式,端口配置保存在板子用戶目錄下。
2. 端口配置文件
通過使用端口配置,可以方便的在實(shí)施時(shí)配置與業(yè)務(wù)對應(yīng)的參數(shù),符合應(yīng)用場景。這樣不必修改程序即可投入使用,這里配置端口文件如下
3. 進(jìn)程間通訊程序RPC
為了使讀取的數(shù)據(jù),能多重的使用,這里使用多線程的方式,其中一個(gè)線程負(fù)責(zé)讀取線程,并把讀取的數(shù)據(jù)壓入系統(tǒng)的隊(duì)列中。另外一個(gè)線程則可以檢查和處理數(shù),比如對數(shù)據(jù)做異常值檢查,對數(shù)據(jù)做平滑,抽稀,均值等處理,通信線程則把需要的數(shù)據(jù)向另外的進(jìn)程通過進(jìn)程通訊的方式進(jìn)行發(fā)送,RPC線程程序設(shè)計(jì)如下:
4. 交叉編譯環(huán)境腳本編寫
編寫好編譯腳本,即完成整體工程的創(chuàng)建,并傳輸?shù)骄幾g環(huán)境主機(jī)中進(jìn)行編譯。把工程項(xiàng)目傳到主機(jī)交叉編譯環(huán)境中:
然后直接make 進(jìn)行編譯:
很順利的編譯成功。
5. 開發(fā)http服務(wù)程序
在物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備中,通常采用web的管理界面,用戶監(jiān)控系統(tǒng)應(yīng)用的工作狀態(tài),以及進(jìn)行的必要的配置和設(shè)置等工作。
這里設(shè)計(jì)一個(gè)嵌入式的http服務(wù)程序,考慮服務(wù)程序和硬件緊密結(jié)合,這里不使用nginx 等這樣的獨(dú)立的web服務(wù)程序,而是使用 httpd 開源的小型http服務(wù)工程,進(jìn)行二次開發(fā),好處是可以方便的加入對硬件的訪問以及特別的應(yīng)用功能,不如獲取端口的數(shù)據(jù),并做處理,通過web網(wǎng)關(guān)傳到頁面前端,通過動態(tài)html腳本,完成靈活的頁面和底層訪問的功能。
這里使用httpd 開源工程進(jìn)行二次開發(fā):
工程主代碼如下:
工程目錄如下:
其中需要創(chuàng)建幾個(gè)運(yùn)行目錄,tmpl 是前端頁面模板目錄,里面可以放入html模板,供http服務(wù)器程序渲染輸出最終的html頁面。
www目錄則放置靜態(tài)資源文件,如圖片,樣式表文件,js 前端腳本文件等。
這幾個(gè)目錄也需要在開發(fā)板上創(chuàng)建。
對工程進(jìn)行編譯,編譯如下:
可見成功的編譯出 httpd 板上執(zhí)行程序。
6. 設(shè)計(jì)并開發(fā)前端頁面
為了使這個(gè)物聯(lián)網(wǎng)網(wǎng)關(guān)根直觀可用,這里還需要設(shè)計(jì)一組前端頁面,方便觀察網(wǎng)關(guān)的運(yùn)行裝填,以及對響應(yīng)的配置文件等進(jìn)行配置。
因?yàn)榍岸隧撁娌皇情_發(fā)板主要的開發(fā)目標(biāo),這里我們使用 AI 輔助設(shè)計(jì)前端頁面,順便也看一下AI前端頁面設(shè)計(jì)的能力。
這里使用字節(jié)跳動的coze spzce 智能體來設(shè)計(jì)物聯(lián)網(wǎng)網(wǎng)關(guān)的前端頁面,首先打開扣子空間頁面:
在提示詞中詳細(xì)描述我們的頁面設(shè)計(jì)內(nèi)容,提示詞內(nèi)容如下:
再點(diǎn)擊生成,經(jīng)過大約5分鐘的時(shí)間,生成了頁面代碼和樣式表文件以及相關(guān)js代碼,生成內(nèi)容如下:
輸出的頁面內(nèi)容如下:
7. 手動調(diào)整修改HTML前端頁面
由智能體生成的頁面,通過檢查,發(fā)現(xiàn)頁面中有不少錯誤和缺失,首先對頁面進(jìn)行人工檢查錯誤和修改,對頁面中的實(shí)例數(shù)據(jù)進(jìn)行刪除,并修改為全局模板變量,對訪問的靜態(tài)資源文件位置進(jìn)行修改,對訪問數(shù)據(jù)的XRH 方式進(jìn)行jquery方式進(jìn)行修改。
8. 服務(wù)程序和前端頁面模板部署
把端口數(shù)據(jù)服務(wù)程序以及WEB后臺服務(wù)程序httpd都傳輸?shù)介_發(fā)板上,并且把頁面模板也傳輸?shù)介_發(fā)板httpd的同級目錄下:
前端頁面的部署:
9. 服務(wù)啟動運(yùn)行
部署好服務(wù)程序后,即可開始啟動相關(guān)服務(wù)程序,首先啟動
multi-serial-monitor
打開瀏覽器,輸入開發(fā)板的IP,訪問WEB頁面,顯示出來:
總結(jié)
通過連接開發(fā)板的調(diào)試串口,到了解系統(tǒng)重要指標(biāo)參數(shù),以及設(shè)置網(wǎng)絡(luò)和配置遠(yuǎn)程登錄過程,整體非常順暢。很容易建立好開發(fā)板的使用測試環(huán)境。同時(shí)通過開發(fā)板啟動時(shí)的串口信息,也可以看到開發(fā)板的各個(gè)子系統(tǒng)的配置和相關(guān)參數(shù),對進(jìn)一步了解開發(fā)板也很有幫助。