第0章 項目方案介紹
0.1 功能介紹
本課程來自一個真實項目:多個氣體傳感器的管理。由于氣體傳感器比較昂貴,本課程里使用普通傳感器來做實驗。真實項目的使用場景如下圖所示:
- 上位機操作界面:可以監(jiān)測多個傳感器
- 中控:圖片暫時無法放出來,它的功能是向下通過 RS485 連接多個傳感器,向上通過USB 口連接 PC。中控平時就要時刻采樣傳感器的數(shù)據(jù),當(dāng)上位機需要數(shù)據(jù)時通過 USB 口高效率地傳輸數(shù)據(jù)。
- 傳感器:有多個機位,每個機位都有傳感器
使用場景如下:
- 設(shè)置傳感器 ID:拿到一個傳感器后,要通過上位機設(shè)置它的 ID,然后把它放在某個機位
- 中控監(jiān)測傳感器的狀態(tài):在線/離線,上位機周期性地讀取狀態(tài)信息
- 中控讀取傳感器數(shù)據(jù),上位機周期性地讀取這些數(shù)據(jù)
- 上位機顯示傳感器狀態(tài)、顯示傳感器數(shù)據(jù)
- 上位機可以讀取中控、各個傳感器的程序版本信息,升級固件
0.2 硬件方案
在工業(yè)控制場景中,上位機通過中控,去控制多個設(shè)備,硬件框圖如下:
各部件的作用如下:
- 上位機:功能強大,方便操作,比如記錄歷史數(shù)據(jù)、圖像化顯示數(shù)據(jù)、升級硬件程序
- 中控:在上位機和傳感器之間轉(zhuǎn)發(fā)數(shù)據(jù),當(dāng)傳感器很多時,不使用中控的話,上位機無法快速獲得各個傳感器的數(shù)據(jù)
- 傳感器:采樣數(shù)據(jù)、上報數(shù)據(jù)
0.3 軟件方案
0.3.1 上位機方案
上位機:
- 界面使用 LVGL 編寫,界面和底層數(shù)據(jù)通過 JSON 進(jìn)行隔離,方便更換 GUI
- 數(shù)據(jù)傳輸基于 libmodbus,可以使用 Modbus RTU 協(xié)議,也可以使用 Modbus TCP 協(xié)議
- 自定義協(xié)議,以實現(xiàn):設(shè)備 ID 寫入、設(shè)備狀態(tài)檢測、數(shù)據(jù)讀寫、程序升級等功能
0.3.2 中控方案
中控程序復(fù)雜,基于 FreeRTOS 編寫。
中控上的程序分為 2 個:Bootloader(用于升級應(yīng)用程序)、應(yīng)用程序。中控的
Flash 如下劃分:
中控上電后,首先運行 Bootloader,它根據(jù)配置信息決定是否啟動 APP1 或 APP2,
還是保存運行 Bootloader 本身:
- Bootloader:接收上位機下發(fā)的固件,升級 APP
- APP1 或 APP2:平時運行的程序,收集傳感器數(shù)據(jù),等待上位機讀取
上位機和中控 Bootloader 的程序框架如下:
上位機和中控 APP 的程序框架如下:
0.3.3 傳感器方案
傳感器上的程序也分為 2 個:Bootloader(用于升級應(yīng)用程序)、應(yīng)用程序。傳感器的 Flash 如下劃分:
傳感器上電后,首先運行Bootloader,它根據(jù)配置信息決定是否啟動APP1或APP2,還是保存運行Bootloader本身:
- Bootloader:上位機給中控下發(fā)傳感器的固件,中控再把它傳給傳感器的Bootloader,Bootloader升級APP
- APP1或APP2:平時運行的程序,讀取傳感器數(shù)據(jù),返回給中控
中控APP和傳感器Bootloader的程序框架如下:
中控APP和傳感器APP的程序框架如下:
0.3.4 技術(shù)難點
難點在于如何保證多個傳感器數(shù)據(jù)上報以及上位機下發(fā)不丟包,因為它不僅僅是單塊板了,還可以集聯(lián)多個,所以它的拓展性很強。后期還可以非常方便地給傳感器進(jìn)行批量升級;另外在工廠場景下,會涉及到數(shù)據(jù)監(jiān)控,產(chǎn)線情況監(jiān)控等場景。項目涉及上位機開發(fā)、FreeRTOS程序開發(fā)、裸機程序開發(fā)、單片機的控制。也能掌握傳感器數(shù)據(jù)通訊、傳感器協(xié)議定義、程序升級等知識點。還可以學(xué)習(xí)良好的程序開發(fā)模式:一套代碼如何適應(yīng)不同的主控芯片、不同的操作系統(tǒng)(FreeRTOS和裸機)。最后,怎么寫出穩(wěn)定可靠、容
易擴展的程序,這個將會貫穿整個學(xué)習(xí)過程——這是產(chǎn)品,不是練手Demo。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51162瀏覽量
754104 -
嵌入式
+關(guān)注
關(guān)注
5085文章
19137瀏覽量
305670 -
RS485
+關(guān)注
關(guān)注
39文章
1161瀏覽量
82372
發(fā)布評論請先 登錄
相關(guān)推薦
評論