0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第0章_项目方案介绍

嵌入式Linux那些事 来源:嵌入式Linux那些事 作者:嵌入式Linux那些事 2024-06-29 14:02 次阅读

第0章 项目方案介绍

0.1 功能介绍

本课程来自一个真实项目:多个气体传感器的管理。由于气体传感器比较昂贵,本课程里使用普通传感器来做实验。真实项目的使用场景如下图所示:

  • 上位机操作界面:可以监测多个传感器
  • 中控:图片暂时无法放出来,它的功能是向下通过 RS485 连接多个传感器,向上通过USB 口连接 PC。中控平时就要时刻采样传感器的数据,当上位机需要数据时通过 USB 口高效率地传输数据。
  • 传感器:有多个机位,每个机位都有传感器

使用场景如下:

  • 设置传感器 ID:拿到一个传感器后,要通过上位机设置它的 ID,然后把它放在某个机位
  • 中控监测传感器的状态:在线/离线,上位机周期性地读取状态信息
  • 中控读取传感器数据,上位机周期性地读取这些数据
  • 上位机显示传感器状态、显示传感器数据
  • 上位机可以读取中控、各个传感器的程序版本信息,升级固件

0.2 硬件方案

工业控制场景中,上位机通过中控,去控制多个设备,硬件框图如下:

各部件的作用如下:

  • 上位机:功能强大,方便操作,比如记录历史数据、图像化显示数据、升级硬件程序
  • 中控:在上位机和传感器之间转发数据,当传感器很多时,不使用中控的话,上位机无法快速获得各个传感器的数据
  • 传感器:采样数据、上报数据

0.3 软件方案

0.3.1 上位机方案

上位机:

  • 界面使用 LVGL 编写,界面和底层数据通过 JSON 进行隔离,方便更换 GUI
  • 数据传输基于 libmodbus,可以使用 Modbus RTU 协议,也可以使用 Modbus TCP 协议
  • 自定义协议,以实现:设备 ID 写入、设备状态检测、数据读写、程序升级等功能

0.3.2 中控方案

中控程序复杂,基于 FreeRTOS 编写。

中控上的程序分为 2 个:Bootloader(用于升级应用程序)、应用程序。中控的

Flash 如下划分:

中控上电后,首先运行 Bootloader,它根据配置信息决定是否启动 APP1 或 APP2,

还是保存运行 Bootloader 本身:

  • Bootloader:接收上位机下发的固件,升级 APP
  • APP1 或 APP2:平时运行的程序,收集传感器数据,等待上位机读取

上位机和中控 Bootloader 的程序框架如下:

上位机和中控 APP 的程序框架如下:

0.3.3 传感器方案

传感器上的程序也分为 2 个:Bootloader(用于升级应用程序)、应用程序。传感器的 Flash 如下划分:

传感器上电后,首先运行Bootloader,它根据配置信息决定是否启动APP1或APP2,还是保存运行Bootloader本身:

  • Bootloader:上位机给中控下发传感器的固件,中控再把它传给传感器的Bootloader,Bootloader升级APP
  • APP1或APP2:平时运行的程序,读取传感器数据,返回给中控

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

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

0.3.4 技术难点

难点在于如何保证多个传感器数据上报以及上位机下发不丢包,因为它不仅仅是单块板了,还可以集联多个,所以它的拓展性很强。后期还可以非常方便地给传感器进行批量升级;另外在工厂场景下,会涉及到数据监控,产线情况监控等场景。项目涉及上位机开发、FreeRTOS程序开发、裸机程序开发、单片机的控制。也能掌握传感器数据通讯、传感器协议定义、程序升级等知识点。还可以学习良好的程序开发模式:一套代码如何适应不同的主控芯片、不同的操作系统(FreeRTOS和裸机)。最后,怎么写出稳定可靠、容

易扩展的程序,这个将会贯穿整个学习过程——这是产品,不是练手Demo。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2537

    文章

    48878

    浏览量

    743658
  • 嵌入式
    +关注

    关注

    5017

    文章

    18497

    浏览量

    293277
  • RS485
    +关注

    关注

    39

    文章

    1091

    浏览量

    81421
收藏 人收藏

    评论

    相关推荐

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

    `25 Sprites 本期教程主要是跟大家讲解sprite的显示,这里讲的sprite跟23讲的游标是类似的,只是这里的游标是可以任意跑动的,可以根据程序设置跑动的路径。 2
    发表于 04-11 11:12

    【安富莱】【STemWin教程】26 抗锯齿基础介绍

    26 抗锯齿基础介绍 本期教程主要是跟大家讲解一下抗锯齿,关于抗锯齿,在16讲解字体显示的时候也讲了点。本期教程就是跟大家详细的讲解
    发表于 04-13 11:05

    【安富莱原创】【STemWin教程】58 SPINBOX控件

    `58 SPINBOX控件 本期教程讲解STemWin支持的SPINBOX控件。 58. 1 SPINBOX控件介绍 58. 2 官方WIDGET_Spinbox实例 58. 3 使用官方
    发表于 05-23 11:56

    【安富莱原创】【STemWin教程】59 LISTVIEW控件

    59 LISTVIEW控件 本期教程讲解STemWin支持的LISTVIEW控件。 59. 1 LISTVIEW控件介绍 59. 2 官方WIDGET_ListView实例 59. 3 使用官方GUIBulder建立List
    发表于 05-25 11:37

    【安富莱——DSP教程】1 数字信号处理介绍

    `1数字信号处理介绍 本期教程开始带领大家学习DSP教程,学习前首相要搞明白一个概念,DSP有两层含义,一个是DSP芯片也就是Digital Signal Processor,另一个
    发表于 05-27 14:13

    【安富莱——DSP教程】44 示波器操作说明及其介绍

    44示波器操作说明及其介绍 本章节主要讲解示波器的操作说明及其相关介绍。44.1 示波器使用前注意事项44.2 示波器的按键说明44.3 按键操作说明44.4 示波器功能
    发表于 07-20 11:08

    转:2嵌入式实时操作系统介绍

    本章教程为大家介绍嵌入式实时操作系统的基础知识、当前流行的小型嵌入式系统、STM32嵌入式实时操作系统解决方案以及基于时间触发的嵌入式系统。2.1嵌入式系统介绍2.2基于时间触发的嵌入式系统2.3
    发表于 08-19 09:47

    转:25 FreeRTOS任务二值信号量

    信号量效率更高,需要的RAM空间更小。当然,缺点也是有的,它没有22介绍的二值信号量实现的功能全面。本章教程配套的例子含Cortex-M3内核的STM32F103和Cortex-M4内核
    发表于 09-07 10:58

    2 嵌入式实时操作系统介绍

    总结2.1嵌入式系统 一般嵌入式系统方面的书籍开头部分都会做很多概念性的介绍。关于概念性的东西,大家需要有个了解。这里为大家推荐两个,讲解都非常好,推荐大家看:u 邵贝贝老师翻译的《嵌入式实时操作系统uCOS-II》书籍,2
    发表于 10-01 17:15

    25 Sprites

    转stemwin教程 本期教程主要是跟大家讲解sprite的显示,这里讲的sprite跟23讲的游标是类似的,只是这里的游标是可以任意跑动的,可以根据程序设置跑动的路径。 25. 1 介绍
    发表于 10-14 12:44

    26 抗锯齿基础介绍

    转stemwin教程本期教程主要是跟大家讲解一下抗锯齿,关于抗锯齿,在16讲解字体显示的时候也讲了点。本期教程就是跟大家详细的讲解一下抗锯齿方面的知识。 线条由一系列必须位于显示坐标处的像素近似
    发表于 10-14 12:47

    【下载】《PIC项目实战:基于PIC18》

    PIC18项目7 高级PIC18项目——SD卡项目8
    发表于 01-30 17:53

    5管理登录

    5 - 管理登录
    发表于 05-10 16:47

    介绍终极调试方案Event Recoder

    8 STM32H7的终极调试组件Event Recorder本章节为大家介绍终极调试方案Event Recoder,之所以叫终极解决方案
    发表于 08-03 08:00

    介绍STM32H7的GPIO应用之按键FIFO

    19 STM32H7的GPIO应用之按键FIFO本章教程为大家介绍STM32H7的GPIO应用之按键FIFO,这个方案已经在实际项目中千
    发表于 12-06 07:18