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

头图

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

文章目录

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

关键字: 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.rhkb.cn/news/139674.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【视觉SLAM入门】8. 回环检测,词袋模型,字典,感知,召回,机器学习

"见人细过 掩匿盖覆” 1. 意义2. 做法2.1 词袋模型和字典2.1.2 感知偏差和感知变异2.1.2 词袋2.1.3 字典 2.2 匹配(相似度)计算 3. 提升 前言: 前端提取数据,后端优化数据,但误差会累计,需要回环检测构建全局一致的地图&…

【AI视野·今日Sound 声学论文速览 第十期】Fri, 22 Sep 2023

AI视野今日CS.Sound 声学论文速览 Fri, 22 Sep 2023 Totally 1 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Performance Conditioning for Diffusion-Based Multi-Instrument Music Synthesis Authors Ben Maman, Johannes Zeitler, Meinard M lle…

【新版】系统架构设计师 - 案例分析 - 架构设计<架构风格和质量属性>

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 架构设计<架构风格和质量属性>例题1例题2例题3例题4例题5例题6 架构 - 案例分析 - 架构设计<架构风格和质量属性> 例题1 某软件公司为…

Python —— pytest框架

1、认识pytest框架 1、搭建自动化框架的思路与流程 1、搭建自动化测试框架的思路和流程,任意测试手段流程都是一致的:手工测试、自动化测试、工具测试 手工测试:熟悉业务 —— 写用例 —— 执行用例并记录结果 —— 生成测试报告自动化测试…

Spring循环依赖大全

本博客挑出出现大部分情况的循环依赖场景进行分析,分析启动会不会报循环依赖的错误! 一、常规的A依赖B,B依赖A,代码如下: Component public class A {Resourceprivate B b; } Component public class B {Resourcepri…

【Java 基础篇】Java函数式接口详解

Java是一门强类型、面向对象的编程语言,但在Java 8引入了函数式编程的概念,这为我们提供了更多灵活的编程方式。函数式接口是函数式编程的核心概念之一,本文将详细介绍Java函数式接口的概念、用法以及一些实际应用。 什么是函数式接口&#…

mall电商项目(学习记录1)

1.简介 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管…

一、 计算机网络概论

一、计算机网络概论 1、计算机网络概述 1.1、概念 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 是一些互连的、自治的计算机系统的集合 以能够相互共享资源的方…

Python函数绘图与高等代数互融实例(八):箱线图|误差棒图|堆积图

Python函数绘图与高等代数互融实例(一):正弦函数与余弦函数 Python函数绘图与高等代数互融实例(二):闪点函数 Python函数绘图与高等代数互融实例(三):设置X|Y轴|网格线 Python函数绘图与高等代数互融实例(四):设置X|Y轴参考线|参考区域 Python函数绘图与高等代数互融实例(五…

蓝桥杯 题库 简单 每日十题 day7

01 啤酒和饮料 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你…

C/C++运算符超详细讲解(系统性学习day5)

目录 前言 一、运算符的概念与分类 二、算术运算符 三、关系运算符 四、逻辑运算符 五、赋值运算符 六、运算符的优先级 总结 前言 本篇文章是对运算符的具体讲解。 一、运算符的概念与分类 概念: 运算符就是一种告诉编译器执行特定的数学或逻辑操作的符…

红黑树Java实现

文章目录 红黑树1. 概念性质2. 红黑树节点定义3. 红黑树的插入情况1情况2情况3其它细节问题插入代码实现 4. 红黑树的验证5.性能分析 红黑树 1. 概念性质 红黑树也是一种二插搜索树,每一个节点上比普通二插搜索树都增加了一个存储位置表示节点的颜色,可…

【已解决】ubuntu 16.04安装最新版本google chrome出错, 旧版本chrome浏览器安装流程

ubuntu 16.04 按照常规的Chrome 安装流程总是出错如下: Selecting previously unselected package google-chrome-stable. (Reading database ... 231747 files and directories currently installed.) Preparing to unpack google-chrome-stable_current_amd64.de…

自己写过比较蠢的代码:从失败中学习的经验

文章目录 引言1. 代码没有注释2. 长函数和复杂逻辑3. 不恰当的变量名4. 重复的代码5. 不适当的异常处理6. 硬编码的敏感信息7. 没有单元测试结论 🎉 自己写过比较蠢的代码:从失败中学习的经验 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页&a…

msvcr71.dll、msvcp71.dll丢失怎么办?快速修复方法分享

msvcr71.dll 是一个动态链接库文件,它包含了 C 运行时库的一些函数和类,例如全局对象、异常处理、内存管理、文件操作等。它是 Visual Studio 2003 及以上版本中的一部分,用于支持 C 应用程序的运行。如果 msvcr71.dll 丢失或损坏&#xff0c…

新手学习:ArcGIS对shp文件裁剪

新手学习:ArcGIS对SHP文件裁剪 新手学习 记录每个步骤,因为有很多控件可能刚开始还不熟悉,根本不知道在哪里,所以写的比较详细。 1.添加要裁剪的shp文件 2.查看shp文件的地理坐标系 双击shp文件,就可以查看shp文件的…

倒置字符串(牛客)

一、题目 二、代码 #include <iostream> #include<string> using namespace std;int main() {string s;getline(cin, s);string s2;int i s.length() - 1;int prev i;int next 0;while (i > 0 && prev > 0) { //从字符串的最后往前遍历if (s[pre…

React+Node——next.js 构建前后端项目

一、安装全局依赖 npm i -g create-next-app二、创建next项目 create-next-app react-next-demo //或 create-next-app react-next-demo --typescript三、加载mysql依赖 npm i -S mysql2四、运行项目 npm run dev五、创建db文件目录&#xff0c;目录下创建index.ts import…

HTML常用基本元素总结

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title> biao qian</title> </head> <body><h1>这是标题1</h1> <h2>这是标题2</h2> <h3>这是标题3</h3><p> 这…