第一代硬件系统架构确立及产品选型
[toc]
关键字: Qt
、Qml
、信号采集机
、数据处理
、上位机
项目介绍
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。
在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。
在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。
无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!
重要说明☝
☀该专栏更新到第三代软件开发时将转为收费专栏
摘要
作为一个软件开发人员,仅仅满足需求并实现功能是其中一部分工作,但参与整个项目并从不同的角度思考问题可以为你带来更大的乐趣和成就感。
首先,了解产品的角度能够帮助你更好地理解用户需求和目标。通过深入了解产品的用途、用户群体以及市场竞争情况,我们可以提供更有价值的建议和解决方案。能够把握用户体验、界面设计和功能交互等方面,确保软件能够满足用户期望并具备良好的可用性。
其次,从项目整体的角度思考问题能够帮助你更好地协调团队合作和项目进度。作为一个开发者,我们需要了解整个项目的架构、模块之间的依赖关系以及各个模块的功能。这样你就能够更好地评估新需求对现有系统的影响,避免出现不必要的冲突和重复工作。同时,我们也可以在团队中分享你的见解和经验,促进团队协作和知识共享。
另外,关注软件层面和系统层面的不同解法可以提升你的技术能力和创造性思维。在软件开发过程中,有时候会面临多种方案选择和技术选型的问题。通过探索不同的解决方案,你可以深入理解各种技术的优劣势,并提供更加灵活、高效的解决方案。
总之,参与整个项目并从不同角度思考问题可以让你成为一名全面发展的软件开发人员。这样的经历将使你更具价值,能够做出更好的决策,并为项目的成功作出更大的贡献。
硬件架构
整个系统涉及到三个主要组成部分:刺激信号发出器、刺激信号接收器以及上位机解析。让我对这些组件进行进一步的描述:
刺激信号发出器:该组件负责生成并发送刺激信号,可能通过外部传感器或其他输入设备获取数据,并将其转换为相应的刺激信号。这可以包括数字/模拟转换、信号调理和输出控制等功能。
刺激信号接收器:该组件负责接收从刺激信号发出器发出的信号,并采取适当的措施作出响应。这可能涉及到信号放大、滤波、数据采集和处理等功能,以确保准确地捕捉和解释刺激信号。
上位机解析:该组件负责接收从刺激信号接收器传输的数据,并对其进行解析和处理。上位机可以是一个计算机、服务器或其他设备,它可以通过软件算法对数据进行分析、计算和可视化,以便用户理解和做出决策。
硬件结构选型及设计
对于硬件设计方面的工作,我们有专门的结构设计团队来处理,并且工业设计部分也会交给专业的外部团队。这在许多情况下是一个合理的做法,特别是对于初创公司或那些不专注于工业设计的企业来说。
将工业设计外包给专业团队可以有效地利用外部资源和专业知识,减轻内部团队的负担,让他们能够专注于产品的核心设计和开发。这样一来,我们可以确保最终产品在结构强度和人机工学方面达到要求,同时节省时间和精力。
但是,在选择外部团队时,确保他们具备相关领域的专业知识和经验非常重要。他们应该有良好的工业设计背景和成功的项目案例,以便为我们提供高质量的设计方案。此外,与外部团队建立有效的沟通和合作也是至关重要的,以确保他们能够准确理解你们的需求并按时交付设计成果。
当涉及到结构强度和人机工学时,这些是确保产品质量和用户体验的重要因素。结构强度需要考虑材料选择、模拟仿真和结构设计的合理性,以确保产品在正常使用条件下能够承受所需的力和压力。人机工学包括考虑人体工程学原理,设计符合人体工程学要求的界面、控件和外观。
最终目标是确保产品在可靠性、舒适性和用户友好性方面达到最佳水平。通过将这些方面的工作交给专业团队,我们可以获得专业水平的设计成果,并在核心设计上集中精力,从而更好地满足市场需求并提升竞争力。
单片机选型
当我们明确了单片机系统的功能要求、性能和可靠性等要求,并结合业务需求和行业内解决方案来进行选型时,选择一个在信号采集方面具有强大优势且被广泛使用的芯片是一个明智的决策。相比常见的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通信相关的硬件框架需求。这样的选型和配备将有助于实现项目目标,验证核心功能,并为后续开发和迭代奠定基础。
其实在上位机选型的时候,也是考虑了好多因素,供大家参考
- 确定系统需求:考虑到目前是原理验证阶段,所以性能上留了大量的冗余,我们选着了11代 的i3 处理器,内存 8GB,硬盘256G固态,现在没有特殊说明,应该都是固态了吧。固态的优势就不用展开讲了。
- 分析应用场景:同理,第一代产品,我们在只跑原理的情况下,设备运行环境是理想的室内环境,对于耐高温、防尘、防水啥的暂时都没有需求,这里NUC也满足我们的需求
- 硬件平台:根据系统需求,NUC 满足我们原理验证阶段的需求,在后期,我们会根据考虑平台的性能、可扩展新和兼容性等再次评估及重新选型
- 处理器和内存:这里选用11 代i3 其实已经留了很大冗余了,后期肯定会降,硬盘盒内存短时间不会有太多的需求,所以基本就是入门配置,8 + 256.没准后期我们会降到 4 + 128
- 存储:目前我们没有存储需求,最低即可满足
- 外围接口:同理,还是根据基本的硬件架构,确定我们上位机需要的外围接口,我们最终需要的USB接口,485接口。HDMI接口其他可以忽略
- 电源需求:我们的设备是有源设备,所以对于功耗目前没有明确限制,满足功能即可
- 安全性和可靠性:其实同样的i3 咋淘宝上可以找到一大堆厂家做,最终选用intel 还是考虑了安全性和可靠性,毕竟有的个别商家提供的电源连最基本的3C认证都没有
- 散热系统:电子产品就没有不发热的,所以散热系统是一个很重要的考虑因素,但是目前阶段,我们都是直接扔在外面的,所以NUC 自带的风冷系统能够满足当前的需求
- 性能测试和验证:这个其实是最难搞的,因为在这个阶段,我们的软件没有开始进行,所以进行性能测试基本就是凭借工程师经验了,这里也就是我们选择i3 的原因,先流出冗余,实现后再根据软件运行资源暂用情况进行更换
以上这些差不多就是我在选型中考虑的一些因素吧,希望可以对你的硬件选型有一定的帮助。
扯点别的
其实现在网上大部分的分享,基本要么是纯软件,要么就是一个简单的单片机项目啥的,但是现实中,一个项目中很能说仅有其中一个设备,尤其是现代工控医疗行业,他们既需要精准的控制,也需要高性能的运行。单片机 和高性能上位机基本在项目中都是一同出现的,他们各自发挥着自己的特长,共同是整个项目为用户提供优质的服务,他们的优缺点简单如下:
单片机的优点:
- 低功耗:单片机通常采用低功耗设计,适合在电池供电或需要长时间运行的嵌入式系统中使用。
- 高度集成:单片机集成了中央处理器、存储器和外设接口等功能模块,减少了系统的尺寸和复杂性。
- 成本效益:由于高度集成,单片机在成本上相对较低,适合大规模生产和成本敏感的应用。
- 实时性能:许多单片机具有实时性能,能够在特定时间限制内响应输入并产生输出,适用于需要快速响应和实时控制的应用。
单片机的缺点:
- 计算能力受限:由于单片机通常采用较低的处理能力和存储容量,对于复杂的计算任务和大规模数据处理可能表现不佳。
- 缺乏操作系统支持:单片机通常没有像传统操作系统那样的丰富支持和开发工具链,软件开发相对复杂。
- 缺乏通用性:单片机针对特定应用设计,定制化程度高,不如x86架构上位机灵活和通用。
x86架构上位机的优点:
- 强大的计算能力:x86架构基于主流的个人计算机体系结构,具有更高的处理能力和存储容量,适合复杂的计算任务和大规模数据处理。
- 丰富的操作系统支持:x86架构广泛支持各种成熟的操作系统,如Windows、Linux和macOS等,提供了丰富的开发工具和软件生态系统。
- 灵活性和通用性:x86架构上位机可以运行各种应用程序,从通用办公软件到复杂的图形处理和多媒体应用都可以胜任。
x86架构上位机的缺点:
- 高功耗:相比单片机,x86架构上位机通常需要更多的功率来运行,不太适合低功耗和移动设备。
- 复杂性和尺寸:x86架构上位机由多个组件构成,包括中央处理器、内存、硬盘、显示器等,通常较大且复杂,不如单片机紧凑。
- 成本较高:由于需要更多的硬件资源和操作系统支持,x86架构上位机的成本相对较高。