002-第一代硬件系统架构确立及产品选型

news2025/1/12 12:06:13
头图

第一代硬件系统架构确立及产品选型

文章目录

  • 第一代硬件系统架构确立及产品选型
    • 项目介绍
    • 摘要
    • 硬件架构
    • 硬件结构选型及设计
    • 单片机选型
    • 上位机选型
    • 扯点别的

关键字: QtQml信号采集机数据处理上位机

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏更新到第三代软件开发时将转为收费专栏

摘要

作为一个软件开发人员,仅仅满足需求并实现功能是其中一部分工作,但参与整个项目并从不同的角度思考问题可以为你带来更大的乐趣和成就感。

首先,了解产品的角度能够帮助你更好地理解用户需求和目标。通过深入了解产品的用途、用户群体以及市场竞争情况,我们可以提供更有价值的建议和解决方案。能够把握用户体验、界面设计和功能交互等方面,确保软件能够满足用户期望并具备良好的可用性。

其次,从项目整体的角度思考问题能够帮助你更好地协调团队合作和项目进度。作为一个开发者,我们需要了解整个项目的架构、模块之间的依赖关系以及各个模块的功能。这样你就能够更好地评估新需求对现有系统的影响,避免出现不必要的冲突和重复工作。同时,我们也可以在团队中分享你的见解和经验,促进团队协作和知识共享。

另外,关注软件层面和系统层面的不同解法可以提升你的技术能力和创造性思维。在软件开发过程中,有时候会面临多种方案选择和技术选型的问题。通过探索不同的解决方案,你可以深入理解各种技术的优劣势,并提供更加灵活、高效的解决方案。

总之,参与整个项目并从不同角度思考问题可以让你成为一名全面发展的软件开发人员。这样的经历将使你更具价值,能够做出更好的决策,并为项目的成功作出更大的贡献。

硬件架构

image-20230630223606706

整个系统涉及到三个主要组成部分:刺激信号发出器、刺激信号接收器以及上位机解析。让我对这些组件进行进一步的描述:

刺激信号发出器:该组件负责生成并发送刺激信号,可能通过外部传感器或其他输入设备获取数据,并将其转换为相应的刺激信号。这可以包括数字/模拟转换、信号调理和输出控制等功能。

刺激信号接收器:该组件负责接收从刺激信号发出器发出的信号,并采取适当的措施作出响应。这可能涉及到信号放大、滤波、数据采集和处理等功能,以确保准确地捕捉和解释刺激信号。

上位机解析:该组件负责接收从刺激信号接收器传输的数据,并对其进行解析和处理。上位机可以是一个计算机、服务器或其他设备,它可以通过软件算法对数据进行分析、计算和可视化,以便用户理解和做出决策。

硬件结构选型及设计

对于硬件设计方面的工作,我们有专门的结构设计团队来处理,并且工业设计部分也会交给专业的外部团队。这在许多情况下是一个合理的做法,特别是对于初创公司或那些不专注于工业设计的企业来说。

将工业设计外包给专业团队可以有效地利用外部资源和专业知识,减轻内部团队的负担,让他们能够专注于产品的核心设计和开发。这样一来,我们可以确保最终产品在结构强度和人机工学方面达到要求,同时节省时间和精力。

但是,在选择外部团队时,确保他们具备相关领域的专业知识和经验非常重要。他们应该有良好的工业设计背景和成功的项目案例,以便为我们提供高质量的设计方案。此外,与外部团队建立有效的沟通和合作也是至关重要的,以确保他们能够准确理解你们的需求并按时交付设计成果。

当涉及到结构强度和人机工学时,这些是确保产品质量和用户体验的重要因素。结构强度需要考虑材料选择、模拟仿真和结构设计的合理性,以确保产品在正常使用条件下能够承受所需的力和压力。人机工学包括考虑人体工程学原理,设计符合人体工程学要求的界面、控件和外观。

最终目标是确保产品在可靠性、舒适性和用户友好性方面达到最佳水平。通过将这些方面的工作交给专业团队,我们可以获得专业水平的设计成果,并在核心设计上集中精力,从而更好地满足市场需求并提升竞争力。

单片机选型

当我们明确了单片机系统的功能要求、性能和可靠性等要求,并结合业务需求和行业内解决方案来进行选型时,选择一个在信号采集方面具有强大优势且被广泛使用的芯片是一个明智的决策。相比常见的STM32系列,这个选型可能提供更好的适应性和性能。

从信号采集的角度来看,不同的芯片可能具有不同的性能特点和特殊功能,因此找到一款在信号采集方面有优势的芯片非常重要。这样的芯片可以提供更高的精度、更快的采样率、更低的噪声水平或其他专门设计用于信号采集的功能。

同时,考虑到在行业内该芯片被广泛使用的事实,这也增加了该选型的可靠性和可行性。如果在行业中已经存在广泛采用该芯片的成功案例,那么我们选择该芯片就可以借鉴和受益于相关经验和最佳实践。这意味着开发过程中可能会有更多的资源和支持可用,并且我们可以更容易地找到相关文档、教程和社区支持。

综上所述,选择一个在信号采集方面具有优势且被行业广泛采用的芯片是明智的。这样可以确保我们的单片机系统在信号采集性能上达到要求,并利用行业内的经验和资源来提高开发效率和可靠性。最终,这将有助于满足业务需求并增强产品在市场竞争中的优势。

上位机选型

鉴于项目中存在许多不确定因素,以及成本和原型开发的目的,我们选择了使用Intel的NUC作为上位机,并基于Windows 10进行软件开发。虽然工业计算机可能更适合工业应用,但其成本较高,而且在第一代原型开发阶段,主要目标是验证基本原理,因此采用基于x86架构的Windows平台是一个合理的选择。

使用Intel的NUC作为上位机可以提供相对低廉的成本,并且具有强大的处理能力和广泛的软件支持。Windows 10作为操作系统也具有广泛的应用和开发生态系统,使得软件开发过程更加便捷和灵活。通过这样的选型,我们可以快速搭建起硬件框架,并专注于实现项目的核心功能和验证想法的可行性。

另外,为了完成整个项目的硬件框架搭建,你还需要寻找一个USB转485的辅助设备。这是为了满足项目中与485通信相关的需求。USB转485适配器可以将USB接口转换为485总线通信接口,从而方便连接与485通信相关的设备或传感器。这是一个常见的解决方案,可以帮助你们在硬件层面搭建起完整的系统。

总结而言,选用Intel的NUC作为上位机并基于Windows 10进行软件开发是一个经济高效且合理的选择,特别是在第一代原型开发阶段。使用USB转485辅助设备可以满足与485通信相关的硬件框架需求。这样的选型和配备将有助于实现项目目标,验证核心功能,并为后续开发和迭代奠定基础。

其实在上位机选型的时候,也是考虑了好多因素,供大家参考

  1. 确定系统需求:考虑到目前是原理验证阶段,所以性能上留了大量的冗余,我们选着了11代 的i3 处理器,内存 8GB,硬盘256G固态,现在没有特殊说明,应该都是固态了吧。固态的优势就不用展开讲了。
  2. 分析应用场景:同理,第一代产品,我们在只跑原理的情况下,设备运行环境是理想的室内环境,对于耐高温、防尘、防水啥的暂时都没有需求,这里NUC也满足我们的需求
  3. 硬件平台:根据系统需求,NUC 满足我们原理验证阶段的需求,在后期,我们会根据考虑平台的性能、可扩展新和兼容性等再次评估及重新选型
  4. 处理器和内存:这里选用11 代i3 其实已经留了很大冗余了,后期肯定会降,硬盘盒内存短时间不会有太多的需求,所以基本就是入门配置,8 + 256.没准后期我们会降到 4 + 128
  5. 存储:目前我们没有存储需求,最低即可满足
  6. 外围接口:同理,还是根据基本的硬件架构,确定我们上位机需要的外围接口,我们最终需要的USB接口,485接口。HDMI接口其他可以忽略
  7. 电源需求:我们的设备是有源设备,所以对于功耗目前没有明确限制,满足功能即可
  8. 安全性和可靠性:其实同样的i3 咋淘宝上可以找到一大堆厂家做,最终选用intel 还是考虑了安全性和可靠性,毕竟有的个别商家提供的电源连最基本的3C认证都没有
  9. 散热系统:电子产品就没有不发热的,所以散热系统是一个很重要的考虑因素,但是目前阶段,我们都是直接扔在外面的,所以NUC 自带的风冷系统能够满足当前的需求
  10. 性能测试和验证:这个其实是最难搞的,因为在这个阶段,我们的软件没有开始进行,所以进行性能测试基本就是凭借工程师经验了,这里也就是我们选择i3 的原因,先流出冗余,实现后再根据软件运行资源暂用情况进行更换

以上这些差不多就是我在选型中考虑的一些因素吧,希望可以对你的硬件选型有一定的帮助。

扯点别的

其实现在网上大部分的分享,基本要么是纯软件,要么就是一个简单的单片机项目啥的,但是现实中,一个项目中很能说仅有其中一个设备,尤其是现代工控医疗行业,他们既需要精准的控制,也需要高性能的运行。单片机 和高性能上位机基本在项目中都是一同出现的,他们各自发挥着自己的特长,共同是整个项目为用户提供优质的服务,他们的优缺点简单如下:

单片机的优点:

  1. 低功耗:单片机通常采用低功耗设计,适合在电池供电或需要长时间运行的嵌入式系统中使用。
  2. 高度集成:单片机集成了中央处理器、存储器和外设接口等功能模块,减少了系统的尺寸和复杂性。
  3. 成本效益:由于高度集成,单片机在成本上相对较低,适合大规模生产和成本敏感的应用。
  4. 实时性能:许多单片机具有实时性能,能够在特定时间限制内响应输入并产生输出,适用于需要快速响应和实时控制的应用。

单片机的缺点:

  1. 计算能力受限:由于单片机通常采用较低的处理能力和存储容量,对于复杂的计算任务和大规模数据处理可能表现不佳。
  2. 缺乏操作系统支持:单片机通常没有像传统操作系统那样的丰富支持和开发工具链,软件开发相对复杂。
  3. 缺乏通用性:单片机针对特定应用设计,定制化程度高,不如x86架构上位机灵活和通用。

x86架构上位机的优点:

  1. 强大的计算能力:x86架构基于主流的个人计算机体系结构,具有更高的处理能力和存储容量,适合复杂的计算任务和大规模数据处理。
  2. 丰富的操作系统支持:x86架构广泛支持各种成熟的操作系统,如Windows、Linux和macOS等,提供了丰富的开发工具和软件生态系统。
  3. 灵活性和通用性:x86架构上位机可以运行各种应用程序,从通用办公软件到复杂的图形处理和多媒体应用都可以胜任。

x86架构上位机的缺点:

  1. 高功耗:相比单片机,x86架构上位机通常需要更多的功率来运行,不太适合低功耗和移动设备。
  2. 复杂性和尺寸:x86架构上位机由多个组件构成,包括中央处理器、内存、硬盘、显示器等,通常较大且复杂,不如单片机紧凑。
  3. 成本较高:由于需要更多的硬件资源和操作系统支持,x86架构上位机的成本相对较高。

博客签名2021

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos8下载安装JDK8

安装JDK8 一、下载 官网:https://www.oracle.com/java/technologies/downloads/#java8-linux 二、存放到opt目录下 三、解压 tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local如果下载的是tar格式,则安装如下命令解压 tar -zvf jdk-8u361-linu…

Flash的学习

Flash的学习 1 概述 2 特性 STM32 的内部FLASH 包含主存储器、系统存储器以及选项字节区域。 2.1 主存储器 主存储器分为256 页,每页大小为2KB,共512KB。这个分页的概念,实质就是FLASH 存储器 的扇区,与其它FLASH 一样&…

【C++】动态内存管理(79分钟写的文章哪里看不懂了,快来学)

动态内存管理目录: 一、C/C内存分布 在学习了C/C内存区域的划分后,我们来做几道题巩固一下: 1. 选择题:选项 : A.栈 B.堆 C.数据段(静态区) D.代码段(常量区)globalVar在哪里?____ staticGlobalVar在哪里&#x…

【2023知乎评论爬虫】我用Python爬虫爬了2386条知乎评论!

文章目录 一、爬取目标二、展示爬取结果三、爬虫代码讲解3.1 分析知乎页面3.2 爬虫代码 四、同步视频五、完整源码 您好,我是 马哥python说,一枚10年程序猿。 一、爬取目标 前些天我分享过一篇微博的爬虫:https://blog.csdn.net/solo_msk/a…

Spring 的注入

目录 一、注入(Injection) 1、什么是注入 (1)为什么需要注入 (2)如何进行注入 2、Spring 注入原理分析(简易版) 二、Set 注入详解 1、JDK 内置类型 (1&#xff09…

【修复版】2023新版塔罗 算八字测运易理风水 取名 源码平台 搭建教程

全线修复,欢迎你拿其他家的来比,叫他们发测试连接去测试对比,眼睛骗不了人 很多说自家的是修复版,能像我这样把修复的列出来嘛,顾客朋友也可以直接去问他:你到底修复了个啥??&#…

深入探索智能问答:从检索到生成的技术之旅

目录 一、智能问答概述1. **语义理解**2. **知识库和数据库**3. **上下文感知**4. **动态学习和自适应** 二、发展历程1. **基于规则的系统**2. **统计方法的兴起**3. **深度学习和神经网络的突破**4. **预训练模型** 三、智能问答系统的主要类型四、基于知识库的问答系统五、基…

如何使用记事本制作一个简陋的小网页(1)

1、创建一个记事本 2、将记事本的尾缀进行修改,变为html html本质上是一种标签并不是一种语言,其最主要的功能就是对页面设置和页面的文本样式进行修改和修缮。 3、右键被修改了尾缀的文本,选择使用记事本的打开方式。 打开完毕后&#xf…

什么是JavaScript的事件驱动编程(event-driven programming)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 事件(Event)⭐ 事件监听器(Event Listener)⭐ 回调函数(Callback Function)⭐ 非阻塞和异步⭐ 事件循环(Event Loop)⭐ 触发事件(…

「C++程序设计 (面向对象进阶)」学习笔记・二

0、引言 本专栏的系列文章是在学习 北京邮电大学 崔毅东 老师的《C程序设计 (面向对象进阶)》课程过程中整理的。欢迎前往专栏了解更多相关内容~ 😀 有关于现代 C 的基本介绍,请前往《现代C基本介绍》! 🔔 先决条件 本专栏的系列…

【测试开发】答疑篇 · 什么是软件测试

【测试开发】答疑篇 文章目录 【测试开发】答疑篇1. 生活中的测试2. 什么是软件测试3. 为什么要有测试/没有测试行不行4. 软件测试和软件开发的区别5. 软件测试和软件调试之间的区别6. 软件测试的岗位7. 优秀测试人员具备的素质 【测试开发】答疑篇 软件不一定是桌面应用&#…

公众号迁移线上公证如何办?

公众号账号迁移的作用是什么?只能变更主体吗?微信公众平台的帐号迁移功能可将原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移至新的公众号。通过迁移可以实现公众号的公司主体变更、粉丝转移、开通留言功能、服务号转为订阅号等作用。因此不…

Qt基于paintEvent自定义CharView

Qt基于paintEvent自定义CharView 鼠标拖动&#xff0c;缩放&#xff0c;区域缩放&#xff0c; 针对x轴&#xff0c;直接上代码 charview.h #ifndef CHARVIEW_H #define CHARVIEW_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #inclu…

Kotlin使用infix关键字构建高可读性代码

自从Google推出Kotlin作为官方开发语言后&#xff0c;一堆像我这样的习惯Java开发的程序员从不习惯到爱上这门语言只用了很短的时间&#xff0c;相比于Java语言&#xff0c;kotlin集各家所长&#xff0c;可以使用更少的代码&#xff0c;实现更多更复杂的需求&#xff0c;而且可…

腾讯mini项目-【指标监控服务重构】2023-08-18

今日已办 watermill 将 key 设置到 message 中 修改 watermill-kafka 源码 将 key 设置到 message.metadata中 接入 otel-sdk 添加 middleware resolveUpstreamCtx 解析上游上下文&#xff0c;开启根Span添加 middleware middleware.InstantAck - 马上ACK&#xff0c;使得多…

怒刷LeetCode的第4天(Java版)

#【中秋征文】程序人生&#xff0c;中秋共享# 目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;遍历字符串 方法二&#xff1a;有限状态机&#xff08;Finite State Machine&#xff09; 方法三&#xff1a;正则表达式 第二题 题目来源 题目内容 解决方…

机器学习——决策树/随机森林

0、前言&#xff1a; 决策树可以做分类也可以做回归&#xff0c;决策树容易过拟合决策树算法的基本原理是依据信息学熵的概念设计的&#xff08;Logistic回归和贝叶斯是基于概率论&#xff09;&#xff0c;熵最早起源于物理学&#xff0c;在信息学当中表示不确定性的度量&…

带你了解前后端分离的秘密-Vue【vue入门】

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Vue》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这个专栏…

js中事件委托和事件绑定之间的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 事件绑定&#xff08;Event Binding&#xff09;⭐事件委托&#xff08;Event Delegation&#xff09;⭐ 选择事件绑定或事件委托⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本…

NVM安装及如何使用NVM

NVM是什么&#xff1f; nvm 全名 Node Version Manager&#xff0c;Node的版本管理工具 NVM能做什么&#xff1f; 安装 nvm 后&#xff0c;可以使用nvm的相关命令来管理和切换不同的 node 版本&#xff0c;方便开发 如何安装NVM 链接: NVM GitHub地址 如何使用 NVM 命令 …