综合实现:产品框架(保姆级讲解)

你好!我是你的学习助手。今天我们来一起学习"综合实现"课程中的产品框架部分。我们将通过三张图片,逐步理解整个产品的硬件组成、设计思路、软件结构以及上位机界面。我会用最通俗的语言,把你当成零基础来讲解,确保你完全明白。每一部分我都会告诉你对应的图片放在哪里,方便你复习时对照。


1. 整体概述

在一个典型的物联网或工业控制系统中,通常有以下几个角色:

  • 上位机:就是电脑或者平板上的控制软件,用来给人操作和查看数据。

  • 中控:一个中间设备(比如智能网关),负责连接上位机和各种传感器,并处理通信。

  • 传感器:实际测量温度、湿度、压力等的设备,它们可能通过不同的通信协议连接。

今天我们要讲的这个产品框架,就是围绕"上位机---中控---传感器"这三层来设计的。下面我们分别从硬件、设计思路、软件和界面四个角度来学习。


2. 9.1.1 硬件框架

这张图展示了整个系统的硬件连接关系。我们把它拆解开来解释:

2.1 图中的元素

  • 上位机:最上方的"上位机"方块,它通过两个串口(com1 和 com2)连接到下面的中控。

  • 中控:中间有两个"中控"方块,分别是"中控1"和"中控2"。每个中控有自己的通道(channel1 和 channel2),用来连接不同的传感器。

  • 传感器:底部有很多传感器,分为两类:

    • 非Modbus传感器:比如传感器1(非Modbus)和传感器m,它们可能使用自定义协议,不遵循Modbus标准。

    • Modbus传感器:大量的传感器(传感器1、2、3、n、k、x、y等)都标有"Modbus",表示它们支持Modbus通信协议。

2.2 连接关系

  • 上位机通过 com1 连接到中控1,通过 com2 连接到中控2。

  • 中控1通过 channel1 连接多个Modbus传感器(传感器1、2、3...n),同时还可能连接一个非Modbus传感器(传感器1非Modbus)。注意:这里"传感器1"出现了两次,可能是为了区分不同接口,实际中同一个传感器只能有一种连接方式。

  • 中控2通过 channel2 连接另一组Modbus传感器(传感器k、x、y)以及一个非Modbus传感器(传感器m)。

2.3 为什么要这样设计?

  • 中控的作用是协议转换和集中管理。它把来自不同传感器的数据统一起来,让上位机只需要跟中控通信,而不需要关心底下有多少种传感器。

  • 通道(channel)可以理解为中控上的不同物理接口(比如RS485总线),每个通道可以挂载多个Modbus设备(通过不同的设备地址区分)。

  • 非Modbus传感器可能需要额外的电路或协议转换,所以单独列出。

这样,硬件框架就构成了一个树形结构:上位机 → 中控 → 通道 → 传感器。

硬件框架的生活例子

[请对照上图:硬件框架]

  • 上位机物业总控制室的大屏幕电脑

    物业管理员在这台电脑上查看整栋楼的设备状态、下发指令。它只跟下一级的"楼层管理员"打交道,不直接管每个房间的设备。

  • 中控1、中控21楼和2楼的楼层管理员

    每个楼层有一个管理员(中控),他们手里有两部对讲机(channel1channel2),分别负责不同的区域。

    • 中控1(1楼管理员)用对讲机1(channel1)联系1楼东区的各个房间设备;用对讲机2(channel2)联系1楼西区的设备。

    • 中控2(2楼管理员)类似,用对讲机1(channel1)联系2楼东区,对讲机2(channel2)联系2楼西区。

  • Modbus传感器支持标准对讲协议的智能设备

    比如智能灯泡、智能插座,它们都听得懂楼层管理员用标准指令(Modbus协议)说的话。每个设备有一个唯一的编号(设备地址),管理员喊"设备5,打开灯光",设备5就会执行。

  • 非Modbus传感器老式设备或特殊设备

    比如一台老式空调,它只听得懂红外遥控指令(非Modbus),不能直接用对讲机控制。这时楼层管理员需要用一个红外转发器(特殊接口)来转换指令,所以图上单独列出"非Modbus传感器"。

  • 串口(com1、com2)总控制室到楼层管理员的专用电话线

    物业管理员通过电话线 com1 直接呼叫 1楼管理员,通过 com2 呼叫 2楼管理员。电话线是物理连接。

生活场景模拟

物业管理员想查看 1楼东区 3号房间的智能灯泡是否亮着。他拿起电话 com1 打给 1楼管理员(中控1),说:"请帮我查一下 channel1 上 设备地址5 的灯泡状态。" 1楼管理员马上用对讲机1(channel1)呼叫设备5,获取状态,再通过电话告诉物业管理员。


3. 9.1.2 设计思路

这部分虽然没有图片,但它是整个系统的灵魂,解释了"上位机如何找到传感器"以及"数据如何流动"。我们结合硬件框架来理解。

3.1 上位机如何定位到传感器?

站在上位机的角度,它要读写某个传感器(比如"Modbus传感器2"),需要知道以下5个参数:

  1. 串口 :使用com1 还是 com2?因为上位机通过不同的串口连接不同的中控。

  2. 通道 :使用channel1 还是 channel2?因为中控可能有多个通道,每个通道下挂载不同的传感器。

  3. Modbus设备地址:在同一个通道上,每个Modbus传感器有一个唯一的地址(比如1~247)。

  4. 寄存器类别:Modbus协议中有多种寄存器,比如线圈(Coils)、离散输入(Discrete Inputs)、保持寄存器(Holding Registers)、输入寄存器(Input Registers)。上位机需要指定要读哪一类。

  5. 寄存器地址:该类寄存器内的具体地址(比如0x0001)。

所以,当用户在上位机界面上添加一个"点"(即一个监控对象)时,就需要填写这5个参数。

3.2 上位机如何读写传感器?

为了简化上位机的设计,我们让上位机只跟中控通信。也就是说,上位机根本不知道下面有那么多传感器,它只认为中控就是一个大设备,中控内部有很多寄存器。这些寄存器被映射到实际传感器的数据。

  • 映射关系:上位机把用户填写的5个参数打包成一个"映射规则",然后发送给中控。中控收到后,就会建立一张映射表:比如"中控的寄存器A"对应"通道1上的设备地址2的保持寄存器0x0010"。

  • 读操作:当中控需要读取某个传感器的数值时,它主动轮询(不断读取)这些传感器,并把最新值保存到自己的寄存器中。上位机要读数据时,直接读中控的对应寄存器即可,非常快。

  • 写操作:如果上位机要控制某个设备(比如写线圈),它会发送写命令给中控,中控再根据映射表转发给对应的传感器。

3.3 中控如何读写传感器?

中控内部运行着一个后台程序,它负责:

  • 根据映射表,定时通过Modbus协议读取传感器的数据(轮询)。

  • 接收上位机的写命令,并立即去写传感器。

  • 维护与上位机的通信(比如通过串口或网络)。

3.4 上位机如何发送映射关系、传输固件?

当用户在上位机界面上配置好所有"点"之后,需要把映射关系下发给中控。另外,有时还需要升级中控的固件。这里用到Modbus的一个特殊功能:Write File Record(写文件记录)。这个功能允许通过Modbus协议传输大块数据,甚至整个文件。所以上位机可以把映射关系表(一个文件)或者固件文件,用这个功能发送给中控,中控再写入自己的Flash存储器中。


4. 9.1.3 软件框架

这张图展示了各个设备上的软件层次和通信方式。我们从上到下解读:

4.1 上位机

上位机软件分为两部分:

  • LVGL(前台程序):这是一个流行的嵌入式图形库,用来绘制漂亮的用户界面。用户看到的按钮、图表等都是它渲染的。

  • 后台程序(控制中心):负责处理业务逻辑,比如与中控通信、管理映射关系、处理升级等。前台和后台之间通过某种内部通信(比如JSON RPC)交换数据。

4.2 中控

中控的软件也分层:

  • APP(应用程序)Bootloader:Bootloader是启动加载程序,负责启动APP或升级固件。APP就是实际运行的控制程序。

  • libmodbus:一个开源的Modbus协议库,用来封装Modbus报文,方便与传感器通信。

  • 串口API:操作系统提供的串口操作接口。

  • UART HAL:硬件抽象层,屏蔽不同芯片的UART差异。

  • Flash驱动:用来读写中控内部的Flash存储器,用于保存配置信息和固件。

4.3 传感器

传感器同样有 APP/Bootloader ,以及 libmodbusUART HALFlash驱动。对于非Modbus传感器,可能没有libmodbus,而是使用自定义协议。

4.4 通信方式

  • 上位机与中控 :通过 JSON RPC远程调用 进行通信。JSON是一种轻量级数据格式,RPC(远程过程调用)让上位机可以像调用本地函数一样调用中控的功能。比如上位机发送一个JSON命令:"读取寄存器0x100",中控执行后返回结果。

  • 中控与传感器 :通过 Modbus协议(基于串口)通信。中控使用libmodbus库构造Modbus请求,通过串口发送给传感器,传感器解析并回复。

4.5 数据流向

  • 用户操作LVGL界面 → 后台程序 → JSON RPC → 中控后台 → libmodbus → 串口 → 传感器。

  • 传感器数据返回路径相反。

这样分层设计的好处是每一层职责清晰,易于维护和扩展。

软件框架的生活例子

[请对照上图:软件框架]

现在我们把人物换成他们手里的工具和软件,看看数据是怎么流动的。

  • 上位机(物业总控制室电脑):

    • LVGL(前台程序)大屏幕上的可视化界面,显示整栋楼的平面图,每个房间的灯、空调图标,还有实时温度数字。物业管理员点点图标就能下发指令。

    • 后台程序(控制中心)电脑后台运行的"指令处理系统" ,它接收前台的点按事件,转换成具体的任务(比如"查设备5状态"),然后通过 JSON RPC远程调用 把任务打包成标准指令,发送给对应的楼层管理员。

  • 中控(楼层管理员的智能平板):

    • APP(应用程序)平板上的管理软件,负责处理物业发来的任务,调度底层通信。

    • Bootloader平板的启动引导程序,平时隐藏,只有在升级管理软件时才出现,保证升级失败还能恢复。

    • libmodbus对讲机里的"标准指令手册",APP要跟设备说话时,就调用 libmodbus 把"查状态"翻译成设备能听懂的 Modbus 报文(比如一串数字:设备地址+功能码+寄存器地址)。

    • 串口API平板的操作系统提供的"拨号接口",APP通过它调用硬件发送数据。

    • UART HAL平板的硬件驱动层,把数字信号转换成电信号,从对讲机天线发出去。

    • Flash驱动平板的存储卡读写工具,用来保存"映射表"(哪个房间对应哪个设备地址)和 APP 的升级文件。

  • 传感器(智能灯泡):

    • 也有自己的 APP/Bootloader (灯泡内置的固件和启动程序),以及 libmodbus (听懂标准指令)、UART HAL (接收电信号)、Flash驱动(保存自己的配置,比如亮度记忆)。
  • 通信过程

    1. 物业管理员在 LVGL 界面上点击"查询 1楼东区 灯泡5"。

    2. 后台程序收到,用 JSON RPC 打包成一条消息:"中控1,请读 channel1 设备5 的线圈0x0001"。

    3. 消息通过电话线(串口)传到 1楼管理员的平板。

    4. 平板的 APP 解析消息,调用 libmodbus 生成 Modbus 查询报文:[设备地址5] [功能码01] [寄存器地址0x0001] [数据长度1] [校验]

    5. 串口API 和 UART HAL 把报文变成电信号,从对讲机1(channel1)发射出去。

    6. 灯泡5 的 UART HAL 收到信号,libmodbus 解析出"查询线圈",APP 读取自己的状态,原路返回数据。

    7. 数据层层返回,最终显示在 LVGL 界面上。


5. 5. 上位机界面

最后我们来看上位机界面长什么样,用户如何操作。这张图可能有点乱,我们整理出关键区域:

5.1 顶部按钮

  • Upgrade:升级按钮,点击后可以上传固件文件给中控升级。

  • MQTT Setting:MQTT设置,可能用于将数据上传到云平台。

  • Advanced Settings:高级设置,比如网络参数、日志级别等。

5.2 左侧区域 ------ 参数配置区

这里是添加/编辑"点"的地方,对应我们之前说的5个参数。注意图中标注了"1.点击"可能是指点击某个按钮后弹出配置界面。具体参数:

  • RTU / TCP:选择Modbus通信方式是RTU(串口)还是TCP(网络)。这里我们主要是RTU。

  • Period:轮询周期,比如100ms。

  • COM/IP:选择串口号或IP地址(如果是TCP)。

  • Device addr (0x):设备地址,十六进制。

  • Register addr (0x):寄存器地址,十六进制。

  • Function:功能码,比如读线圈(01)、读保持寄存器(03)等。

  • Coils (0x):可能是指线圈数量或具体值。

图中还标注了"①参数1:"、"②参数2:"等,应该对应:

  • ①:设备地址

  • ②:寄存器地址

  • ③:寄存器类别(比如线圈、保持寄存器等)

  • ④⑤可能是其他参数,比如通道号、数据格式等。

5.3 右侧区域 ------ 串口/网络设置

这里配置与中控连接的物理参数:

  • COMPORT:串口号,比如COM1、COM2。

  • Baudrate:波特率,比如9600、115200。

  • Data bits:数据位,通常8。

  • Stop bits:停止位,通常1。

  • Parity:校验位,无、奇校验、偶校验。

  • Remote IP:如果使用TCP模式,这里填中控的IP。

  • Remote Port:端口号。

  • Channel:中控的通道号(1或2)。

5.4 右侧下方大量参数列表

图中列出了从"①参数1:"一直到"㊿参数51:"等许多行,但很多都是重复的"127.0.0.1"。这可能是一个占位符,实际界面中可能是一个表格,用于显示已配置的多个"点"的映射关系,或者显示传感器采集到的实时数据。127.0.0.1是本地回环地址,只是示例。

5.5 操作流程

  • 首先在右侧配置好串口参数,连接中控。

  • 然后在左侧填写5个参数,点击"添加"或类似按钮,创建一个点。

  • 可以配置多个点,每个点对应一个传感器数据。

  • 配置完成后,点击"Upgrade"或"应用"将映射关系下发给中控。

  • 之后界面就会开始显示各个点的实时数值。


6. 总结

通过今天的学习,我们掌握了整个产品的框架:

  • 硬件:上位机通过串口连接中控,中控通过通道连接各种传感器。

  • 设计思路:上位机只需跟中控交互,通过5个参数定位传感器,中控负责映射和轮询。

  • 软件:分层设计,使用JSON RPC和Modbus协议通信,界面用LVGL。

  • 界面:用户可配置参数,下发映射,查看数据。

这三张图片分别对应硬件、软件和界面,是理解整个系统的关键。希望你以后复习时,能对照这些图片回忆起今天的内容。如果有任何疑问,欢迎随时提问!

相关推荐
阿成学长_Cain5 天前
R-Studio v9.5.191686 数据恢复软件中文绿色便携特别版
windows·电脑·软件
GR23423412 天前
2025年影视仓TV+手机官方版 内置地址源支持高清直播
java·智能手机·软件
芯巧电子14 天前
09. ABM器件(一)---基本知识点(01) I PSpice高级应用
cadence·pcb·软件·pspice
myloveasuka22 天前
分离指令缓存(I-Cache)和数据缓存(D-Cache)的原因
笔记·缓存·计算机组成原理·硬件
ddsoft12322 天前
在装配拆卸指导动画中如何制作螺栓批量旋出的逼真视频
composer·软件·solidworks
AUTOSAR组织25 天前
深入解析AUTOSAR框架下的TCP/IP协议栈
网络协议·tcp/ip·汽车·autosar·软件架构·软件·培训
myloveasuka25 天前
3-8 译码器(正式型号74LS138、 74HC138、74HCT138 等))
笔记·算法·计算机组成原理·硬件
私人珍藏库1 个月前
[Windows] 桌面整理 Desk Tidy v1.2.3
windows·工具·软件·win·多功能
anscos1 个月前
【无标题】
仿真·软件·marc