当前位置: 首页 > news >正文

Linux上位机开发实践(硬件设计的创新)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        很多同学都认为,现在的硬件电路设计都只是把soc芯片厂家demo改一改,做成板子给嵌入式软件工程师使用一下即可。如果真的这么来实施,那确实没有什么创新之处。只不过,芯片厂家在制定soc规格的时候,肯定是按照特定的应用、特定的市场去设计的。至于,这些芯片是不是最终真的去服务于这些市场,很多时候并不取决于生产厂家,而是取决于终端设计人员。

1、跨行业去使用soc

        一些芯片驱动对于规格,有着严格的限定。因为这些限定也对应着不同的价格。比如说h264对应一个规格,h265对应一个规格;64m ddr对应一个规格,128m ddr对应一个规格;有mipi dsi输出对应一个规格,没有mipi dsi输出对应一个规格;支持2k camera是一个规格,支持4k camera是一个规格;单核cpu对应一个规格,多核cpu一个规格;usb 2.0对应一个规格,usb 3.0对应一个规格;单独编码属于一个规格,同时支持编、解码属于一个规格,诸如此类。

        这些规格对于特定的市场可能是资源不足的,但是对于另外一个市场可能是绰绰有余的。以64m ddr的soc为例,这个规格的soc同时做camera解码和显示,可能做不了。但如果只是用来做工控、做qt,那却是绰绰有余。本来很多工控场景就是为了交互和显示使用,soc如果能内置ddr,不仅极大降低成本,还可以提高自己的竞争性。

2、通过总线扩展soc的外设

        soc很多外设功能,有可能是原厂不支持的,比如说网络。遇到这种情况,就可以通过总线来进行解决。因为很多板子都支持usb,这种情况下,就可以添加usb读卡器、usb转有线网络模块、usb转无线网络模块来解决。这样本身soc可能不带网络,但是我们可以通过总线转换来解决。这个时候我们只要添加对应的设备驱动代码就可以了。既然是总线驱动,那么本身和soc关系不是很大。

        类似的驱动还可以是spi、iic、sdio,都可以这么来进行处理。

3、通过扩展芯片来增加原来没有的功能

        有些芯片本身具有很强的性价比,但是就因为缺少一些功能可能就要升级芯片,或者放弃使用。这个时候,我们可以通过外置芯片的方法,来拓展原来的soc驱动功能。比如原来gpio少,可以通过i2c+mcu芯片的方法来增加gpio;比如原来只有mipi,没有hdmi,这个时候可以通过添加mipi转hdmi芯片的方法来解决;再比如原来只有linux,没有办法做实时控制,这种情况下就可以外挂一个stm32芯片,port一个rtos即可;甚至于原来soc没有加密功能,那我们自己用mcu实现一个,这都是可以的。

4、想办法为cpu减负

        很多时候,芯片厂商制定这么多规格,它的目的就是为了严格区分高、中、低市场。作为终端设计人员来说,如果真的这么去做,很容易被拿捏,自己的竞争力也会受到限制。所以,哪怕是作为电路设计人员来说,肯定要有降本思维。大部分时候可以选择一颗soc实现主要功能,不足的部分选择另一个芯片,这样才会有1+1>2的效果。

        以cpu举例,很多算法都要求实时处理,这种情况下,对cpu的要求自然很高。但是一颗soc上面,是不是所有的资源都用到了呢,比如soc有没有gpu,有没有npu,有没有dsp,实在不行,能不能外挂一个fpga,甚至专门用zynq这样带有fpga的soc来处理呢,而不是一味地去找cpu频率高的soc。

        还是以cpu举例来说,很多摄像头设备都有低延时要求,如果是常规思路,那么肯定要选择cpu频率高的、性能好的。但是cpu速率再高,也不可能有soc ip硬件加速的水平高。此时,如果能找到带硬件加速的soc,比多高频率的cpu都好使。

5、部分工作转到上位机来做

        嵌入式设备性能再强,它和桌面pc还是有差距的。这种情况下,实在处理不过来,那就反其道行之。比如,下位机做基本处理,剩下来的工作交给上位机处理。或者直接下位机只负责收集数据,功能全部交给上位机来做,这也是可以的。没有必要片面地追求下位机的性能,那样的产品即使做出来、做稳定了,价格上面没有优势,也是很难卖出去的。

相关文章:

  • SQL Server 2022 数据同步到 Elasticsearch 思考
  • Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲
  • 16.1Linux自带的LED灯驱动实验(知识)_csdn
  • [3.2] 深入了解recv参数列表里的status
  • 信息系统项目管理中各个知识领域的概要描述及其管理流程
  • 【网络安全】 防火墙技术
  • 卢瑟福实验室2025.4.5
  • java流程控制05:Switch选择结构
  • Python开发GUI 框架TKinter、PyQt、PySide、wxPython、Kivy、PyGTK
  • Day 7
  • 采掘队绩效考核制度与生产管理
  • Angular 2 模板语法详解
  • Ubuntu(CentOS、Rockylinux等)快速进入深度学习pytorch环境
  • 【Redis】背景知识
  • 信息系统项目管理师-第十章-项目进度管理
  • 2-Visual Studio 2022 NET开发Windows桌面软件并连接SQL Server数据库
  • 【前端】【tailwind】「由浅入深」 的方式,从基础概念到高级应用,逐步解析 Tailwind CSS 的分层系统,并设置自己的原子类和组件类
  • 谷歌亮剑:Canvas免费开放,TPU火上浇油!AI大战再掀波澜
  • 讯飞语音合成(流式版)语音专业版高质量的分析
  • vscode和cursor对ubuntu22.04的remote ssh和X-Windows的无密码登录