0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

第0章_項(xiàng)目方案介紹

嵌入式Linux那些事 ? 來源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2024-06-29 14:02 ? 次閱讀

第0章 項(xiàng)目方案介紹

0.1 功能介紹

本課程來自一個(gè)真實(shí)項(xiàng)目:多個(gè)氣體傳感器的管理。由于氣體傳感器比較昂貴,本課程里使用普通傳感器來做實(shí)驗(yàn)。真實(shí)項(xiàng)目的使用場景如下圖所示:

  • 上位機(jī)操作界面:可以監(jiān)測多個(gè)傳感器
  • 中控:圖片暫時(shí)無法放出來,它的功能是向下通過 RS485 連接多個(gè)傳感器,向上通過USB 口連接 PC。中控平時(shí)就要時(shí)刻采樣傳感器的數(shù)據(jù),當(dāng)上位機(jī)需要數(shù)據(jù)時(shí)通過 USB 口高效率地傳輸數(shù)據(jù)。
  • 傳感器:有多個(gè)機(jī)位,每個(gè)機(jī)位都有傳感器

使用場景如下:

  • 設(shè)置傳感器 ID:拿到一個(gè)傳感器后,要通過上位機(jī)設(shè)置它的 ID,然后把它放在某個(gè)機(jī)位
  • 中控監(jiān)測傳感器的狀態(tài):在線/離線,上位機(jī)周期性地讀取狀態(tài)信息
  • 中控讀取傳感器數(shù)據(jù),上位機(jī)周期性地讀取這些數(shù)據(jù)
  • 上位機(jī)顯示傳感器狀態(tài)、顯示傳感器數(shù)據(jù)
  • 上位機(jī)可以讀取中控、各個(gè)傳感器的程序版本信息,升級(jí)固件

0.2 硬件方案

工業(yè)控制場景中,上位機(jī)通過中控,去控制多個(gè)設(shè)備,硬件框圖如下:

各部件的作用如下:

  • 上位機(jī):功能強(qiáng)大,方便操作,比如記錄歷史數(shù)據(jù)、圖像化顯示數(shù)據(jù)、升級(jí)硬件程序
  • 中控:在上位機(jī)和傳感器之間轉(zhuǎn)發(fā)數(shù)據(jù),當(dāng)傳感器很多時(shí),不使用中控的話,上位機(jī)無法快速獲得各個(gè)傳感器的數(shù)據(jù)
  • 傳感器:采樣數(shù)據(jù)、上報(bào)數(shù)據(jù)

0.3 軟件方案

0.3.1 上位機(jī)方案

上位機(jī):

  • 界面使用 LVGL 編寫,界面和底層數(shù)據(jù)通過 JSON 進(jìn)行隔離,方便更換 GUI
  • 數(shù)據(jù)傳輸基于 libmodbus,可以使用 Modbus RTU 協(xié)議,也可以使用 Modbus TCP 協(xié)議
  • 自定義協(xié)議,以實(shí)現(xiàn):設(shè)備 ID 寫入、設(shè)備狀態(tài)檢測、數(shù)據(jù)讀寫、程序升級(jí)等功能

0.3.2 中控方案

中控程序復(fù)雜,基于 FreeRTOS 編寫。

中控上的程序分為 2 個(gè):Bootloader(用于升級(jí)應(yīng)用程序)、應(yīng)用程序。中控的

Flash 如下劃分:

中控上電后,首先運(yùn)行 Bootloader,它根據(jù)配置信息決定是否啟動(dòng) APP1 或 APP2,

還是保存運(yùn)行 Bootloader 本身:

  • Bootloader:接收上位機(jī)下發(fā)的固件,升級(jí) APP
  • APP1 或 APP2:平時(shí)運(yùn)行的程序,收集傳感器數(shù)據(jù),等待上位機(jī)讀取

上位機(jī)和中控 Bootloader 的程序框架如下:

上位機(jī)和中控 APP 的程序框架如下:

0.3.3 傳感器方案

傳感器上的程序也分為 2 個(gè):Bootloader(用于升級(jí)應(yīng)用程序)、應(yīng)用程序。傳感器的 Flash 如下劃分:

傳感器上電后,首先運(yùn)行Bootloader,它根據(jù)配置信息決定是否啟動(dòng)APP1或APP2,還是保存運(yùn)行Bootloader本身:

  • Bootloader:上位機(jī)給中控下發(fā)傳感器的固件,中控再把它傳給傳感器的Bootloader,Bootloader升級(jí)APP
  • APP1或APP2:平時(shí)運(yùn)行的程序,讀取傳感器數(shù)據(jù),返回給中控

中控APP和傳感器Bootloader的程序框架如下:

中控APP和傳感器APP的程序框架如下:

0.3.4 技術(shù)難點(diǎn)

難點(diǎn)在于如何保證多個(gè)傳感器數(shù)據(jù)上報(bào)以及上位機(jī)下發(fā)不丟包,因?yàn)樗粌H僅是單塊板了,還可以集聯(lián)多個(gè),所以它的拓展性很強(qiáng)。后期還可以非常方便地給傳感器進(jìn)行批量升級(jí);另外在工廠場景下,會(huì)涉及到數(shù)據(jù)監(jiān)控,產(chǎn)線情況監(jiān)控等場景。項(xiàng)目涉及上位機(jī)開發(fā)、FreeRTOS程序開發(fā)、裸機(jī)程序開發(fā)、單片機(jī)的控制。也能掌握傳感器數(shù)據(jù)通訊、傳感器協(xié)議定義、程序升級(jí)等知識(shí)點(diǎn)。還可以學(xué)習(xí)良好的程序開發(fā)模式:一套代碼如何適應(yīng)不同的主控芯片、不同的操作系統(tǒng)(FreeRTOS和裸機(jī))。最后,怎么寫出穩(wěn)定可靠、容

易擴(kuò)展的程序,這個(gè)將會(huì)貫穿整個(gè)學(xué)習(xí)過程——這是產(chǎn)品,不是練手Demo。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751031
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18973

    瀏覽量

    302002
  • RS485
    +關(guān)注

    關(guān)注

    39

    文章

    1135

    瀏覽量

    82071
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【安富萊】【STemWin教程】25 Sprites

    `25 Sprites 本期教程主要是跟大家講解sprite的顯示,這里講的sprite跟23講的游標(biāo)是類似的,只是這里的游標(biāo)是可以任意跑動(dòng)的,可以根據(jù)程序設(shè)置跑動(dòng)的路徑。 2
    發(fā)表于 04-11 11:12

    【安富萊】【STemWin教程】26 抗鋸齒基礎(chǔ)介紹

    26 抗鋸齒基礎(chǔ)介紹 本期教程主要是跟大家講解一下抗鋸齒,關(guān)于抗鋸齒,在16講解字體顯示的時(shí)候也講了點(diǎn)。本期教程就是跟大家詳細(xì)的講解
    發(fā)表于 04-13 11:05

    2 嵌入式實(shí)時(shí)操作系統(tǒng)介紹

    總結(jié)2.1嵌入式系統(tǒng) 一般嵌入式系統(tǒng)方面的書籍開頭部分都會(huì)做很多概念性的介紹。關(guān)于概念性的東西,大家需要有個(gè)了解。這里為大家推薦兩個(gè),講解都非常好,推薦大家看:u 邵貝貝老師翻譯的《嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II》書籍,2
    發(fā)表于 10-01 17:15

    25 Sprites

    轉(zhuǎn)stemwin教程 本期教程主要是跟大家講解sprite的顯示,這里講的sprite跟23講的游標(biāo)是類似的,只是這里的游標(biāo)是可以任意跑動(dòng)的,可以根據(jù)程序設(shè)置跑動(dòng)的路徑。 25. 1 介紹
    發(fā)表于 10-14 12:44

    【下載】《PIC項(xiàng)目實(shí)戰(zhàn):基于PIC18》

    PIC18項(xiàng)目7 高級(jí)PIC18項(xiàng)目——SD卡項(xiàng)目8
    發(fā)表于 01-30 17:53

    基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)6介紹

    基于FPGA的嵌入式系統(tǒng)設(shè)計(jì) -6-
    發(fā)表于 10-30 10:44 ?0次下載

    3 MAXPLUS軟件的使用(1節(jié))

    3 MAXPLUS軟件的使用(1節(jié))
    發(fā)表于 07-13 10:08 ?0次下載

    3 MAXPLUS軟件的使用(2節(jié))

    3 MAXPLUS軟件的使用(2節(jié))
    發(fā)表于 08-01 14:32 ?0次下載

    3 MAXPLUS軟件的使用(6節(jié))

    3 MAXPLUS軟件的使用(6節(jié))
    發(fā)表于 07-13 10:07 ?0次下載

    2、驅(qū)動(dòng)設(shè)計(jì)的硬件基礎(chǔ)

    2、驅(qū)動(dòng)設(shè)計(jì)的硬件基礎(chǔ)
    發(fā)表于 10-27 14:26 ?6次下載
    <b class='flag-5'>第</b>2<b class='flag-5'>章</b>、驅(qū)動(dòng)設(shè)計(jì)的硬件基礎(chǔ)

    PICmicro中檔單片機(jī)系列中文參考手冊—11 Timer0

    PICmicro中檔單片機(jī)系列中文參考手冊—11 Timer0
    發(fā)表于 05-25 17:19 ?6次下載

    6 端接.zip

    6端接
    發(fā)表于 12-30 09:22 ?3次下載

    7 通孔.zip

    7通孔
    發(fā)表于 12-30 09:22 ?2次下載

    3_UART 開發(fā)基礎(chǔ)

    3_UART 開發(fā)基礎(chǔ)
    的頭像 發(fā)表于 06-29 14:27 ?586次閱讀
    <b class='flag-5'>第</b>3<b class='flag-5'>章</b>_UART 開發(fā)基礎(chǔ)

    2 ANSYS分析基本過程--7 通用后處理器

    2 ?ANSYS分析基本過程--7 通用后處理器
    發(fā)表于 08-31 09:31 ?0次下載