基于UDS的BootLoader详解

原创 汽车电子与软件 2024-11-09 17:47

导读:



本文选自由向满和童维勇编著,机械工业出版社出版的《新能源汽车诊断UDS协议及实现》, 本书结合汽车电控系统软件中的BootLoader程序和上位机及脚本介绍UDS的使用场景,并深入讲解其功能,分为基础篇、核心篇、提升篇三部分。主要内容包括新能源汽车电控系统基础知识、基于CAN/LIN总线的通信协议、UDS协议栈架构、基于UDS的BootLoader、通过脚本实现UDS客户端通信、UDS测试等内容。是业内首部UDS的专著,推荐给大家。
本文节选了其第八章内容基于 UDS 的 BootLoader:
 
  • 01 BootLoader 介绍
  • 02 BootLoader 机制介绍
  • 03 BootLoader 的一般要求
  • 04 BootLoader 详细流程
  • 05 BootLoader 软件架构与实现
  • 06 BootLoader 电控单元 OTA 介绍 

以下是正文:


由于工艺和安装环境的要求,车辆 ECU 需要在线升级和在线调试,即便是  仅使用 LIN 总线通信的低成本 ECU,也被车辆制造商要求满足这一需求。在线升级和在线调试为 ECU 升级和维护带来了巨大的方便,极大节约了维护成本。以 UDS 协议为基础的通信技术使车辆制造商可以统一管理车载 ECU 的软件升级,目前正在迅速发展的 OTA 技术也是基于 UDS 通信的。


本章以车辆 ECU 软件升级为背景,介绍 UDS 在 ECU 软件升级过程中的 应用。同时,本章既是对前面章节中 UDS 协议应用的补充,也可为初次接触 BootLoader 设计的读者提供设计参考。




   01 BootLoader 介绍  ▼ 


BootLoader 即引导加载程序,是为 ECU 提供运行环境初始化和应用数据 更新功能的软件。BootLoader 程序一般包含 UDS 通信协议的实现,闪存的读写和程序跳转处理等功能。一般微控制器(MCU)中包含芯片制造商的 BOOT 程序,但该 BOOT 程序用户无法访问,用户设计的 BootLoader 仅能作为 MCU 的二级 BOOT 程序。图 1 所示为两种 BootLoader 设计方式。

         

 


图 1  微控制器内存分配

      

 

    

其中,图1a 中用户 BootLoader 只有一级;图1b 中设计了二级 Boot- Loader,其中“BootLoader Manager”为第一级 BootLoader 程序,BootLoader Manager 程序可用于更新第二级 BootLoader 程序;第二级 BootLoader 程序可 用于更新应用程序。二级 BootLoader 程序的设计方式相较于仅包含一级 Boot- Loader 程序的设计复杂得多,特别是程序跳转的处理。
    


   02 BootLoader 机制介绍  ▼ 

         

 

BootLoader 机制主要描述 MCU 启动时序和 ECU 软件诊断会话模式的切换 机制。设计引导加载程序时需要考虑不同芯片的启动要求。本节假设 ECU 均采用仅包含一级用户 BootLoader 和应用程序的设计方案。

1. MCU 启动时序

电控单元上电或复位后,MCU 首先执行芯片厂商的 BOOT 程序,在开始 执行用户程序后总是首先执行 BootLoader 程序。BootLoader 程序根据跳转条件, 判断是否跳转到应用程序处运行,如图 2 所示。


图 2  ECU 启动时序

BootLoader 程序会初始化运行的基本模块,如前面章节中介绍的最小系统等。初始化完成后,BootLoader 程序会检查外部重编程请求(重编程请求通常为通过应用程序写在非易失性存储器中的标识),如果重编程请求判断有效,MCU 会持续运行 BootLoader 程序。MCU 检查重编程请求有效后,需要清除非易失性存储器(根据存储位置,也可是易失性存储器)中的重编程请求标识,同时切换到编程模式,并主动回复在应用程序中接收到的请求进入编程模式服务的响应。   

如果没有外部编程请求,BootLoader 程序会检查应用程序是否有效,如果应用程序无效,MCU 停留在 BootLoader 程序中运行;如果应用程序有效,MCU 会跳转到应用程序的起始启动地址处执行应用程序代码。

2. 诊断会话模式切换机制

图 3 所示为一种 ECU 软件的诊断会话模式切换机制,不同车辆制造商在 切换机制的实现上有所不同,同时本节仅体现 BootLoader 机制下的模式切换。


图 3   BootLoader 时序与会话模式切换

应用程序与 BootLoader 程序在实现编程会话模式有所不同,应用程序在接  收到编程诊断会话请求后会执行复位,因此应用程序不支持编程诊断会话模式。通常,进入编程会话模式需要从扩展会话模式切换,ECU 也不支持直接从编程会话模式切换到扩展会话模式。

在应用程序运行时接收到“10 02”编程会话模式请求后,ECU 将重编程请求标识符置为有效,并复位。
        

 

    
ECU 复位后,启动时序见“MCU 启动时序”小节的描述。

在 BootLoader 模式下,ECU 首先检查重编程请求标识符,如果有效,则不 会进行跳转判断,ECU 会一直运行 BootLoader 程序,并直接切换到编程会话模式。在编程会话模式下,由客户端进行安全认证解锁后即可进行软件升级流程。

在 BootLoader 模式下,如果没有重编程请求,并且应用程序无效的情况 下,ECU 仍会一直运行 BootLoader 程序。此时,当 ECU 接收到重编程请求后, BootLoader 程序会进行模式切换,并根据客户端的命令进行软件升级。



   03 BootLoader 的一般要求  ▼ 

        

 

BootLoader 程序的主要功能是软件升级,因此其一般要求主要围绕电控单 元软件刷写的安全性与稳定性展开,这些细则可作为 BootLoader 软件开发的基本要求。然而,不同车辆制造商的软件刷写要求并不相同,希望读者在理解这些要求的基础上举一反三。

3.1 通信要求

电控单元基于 UDS 通信进行软件刷写时,诊断通信报文的数据域长度一般 固定为 8B。无效的字节以车辆制造商要求的字符填充,如填充 0x55 或 0xAA,以减少 CAN 通信时的位填充。

电控单元应遵守车辆制造商定义的网络层定时参数和诊断会话层的定时要 求进行网络层的配置。

为提高软件刷写过程的数据传输效率,减少通信过程中客户端和服务器的 请求和应答交互频次,电控单元的 BootLoader 程序流控参数的设置对性能的要求比较高见表 1。

表 1    电控单元的 BootLoader 程序流控参数设置
   
         

 

3.2 安全要求

电控单元在软件刷新过程中需要校验刷写软件的合法性和刷写条件的安全 性,以确保电控单元在安全的条件下进行有效的升级。   
 
电控单元需要支持安全访问,软件编程功能需要在安全访问通过后才能激 活,以确保软件刷写得到授权。   

电控单元在软件升级的过程中若遇到电源供电异常和 CAN 通信异常等情况 仍需保持软件升级能力。

电控单元应确保在合法授权的前提下更新软件。在更新了软件后,电控单 元仍具备再升级的能力。

电控单元应对软件有效性进行校验,在数据校验或其他检查项目未通过时,不运行应用软件,以防止意外情况发生。

电控单元在进行软件升级时,应通过软件数据下载服务将闪存(Flash)驱 动下载到随机存储器(RAM),以避免电控单元中的闪存驱动意外触发。
  


   04 BootLoader 详细流程  ▼ 

      

 

ISO 15765-3 标准介绍了 ECU 重编程相关的知识。基于 UDS 的 ECU 重编 程流程一般分为 Pre-Programming 、Programming 、Post-Programming 三个阶段。除此三个阶段外,在 ECU 重编程过程中,测试仪(Tester)将以固定时间间隔通过功能寻址发送诊断仪在线的请求(并且设置抑制积极响应指示位为“ 1”), 使网络上所有 ECU 保持会话模式直至重编程结束。

4.1  Pre-Programming 阶段

Pre-Programming 阶段是 ECU 进行重编程的准备。该阶段的主要目的是提 高重编程阶段网络通信的稳定性,避免重编程阶段 ECU 报告非预期的故障和读取车辆数据供重编程前校验等。

图 4 所示为 Pre-Programming 阶段的 UDS 命令流。其中:

1 )测试仪通过功能寻址方式发送诊断会话控制请求,请求网络上的所有 ECU 进入扩展会话模式。该命令为后面其他功能寻址请求做准备。

2 )测试仪通过物理寻址方式发送通过标识符读数据的请求,读取 ECU 的 特定数据,这些数据可以是版本号等数据,也可以是其他车辆信息。测试仪可以通过读取到的数据进行重编程前的校验。

3 )测试仪通过物理寻址方式发送例程控制请求,请求 ECU 进行重编程条 件检查。重编程的条件通常由零部件制造商和车辆制造商共同确定。  
 
4 )测试仪通过功能寻址方式发送控制 DTC 设置请求,请求网络上所有 ECU 关闭 DTC 设置。该步骤的目的是防止由 ECU 在重编程时的记录导致的故障。
  

图 4   Pre-Programming 流程

5 )测试仪通过功能寻址方式发送通信控制请求,请求网络上所有 ECU 关 闭非诊断报文的通信,这使得在 ECU 重编程期间,网络上仅有测试仪和 ECU 之间的诊断通信,以保证重编程过程中通信的稳定性。

4.2  Programming 阶段

Programming 阶段用于下载应用数据。应用数据一般是应用程序、闪存驱 动程序或标定数据。

Programming 阶段均为测试仪和目标 ECU 之间的通信,因此所有命令都使 用物理寻址方式。图 5 所示为 Programming 阶段的流程,该流程仅下载闪存 驱动和应用程序数据,其中:

1 )测试仪发送进入编程会话模式的请求,如果 ECU 处于应用程序模式, 则会设置外部编程请求标识,然后复位 ECU ,ECU 将重启进入 BootLoader 模式运行;如果 ECU 处于 BootLoader 模式,则直接切换到编程会话模式。

2)测试仪发送安全访问请求,ECU 将解锁 BootLoader 安全级别。

3 )测试仪发送通过 DID 写数据的请求,向ECU 写入指纹标识以及日期等 信息。

4)测试仪通过发送请求下载、传输数据、请求退出传输的请求,将 ECU 的闪存驱动程序下载到 RAM 区域执行。ECU 下载数据时,将循环使用传输数据请求将所有数据下载到 ECU。


图 5  Programming 流程

5)闪存驱动程序下载完毕后,测试仪发送例程控制请求,校验闪存驱动的 完整性。

6)开始下载应用程序之前,测试仪先发送擦除内存的例程控制请求, BootLoader 程序将根据请求的范围进行内存擦除。

7)与下载闪存驱动程序一样,测试仪通过发送请求下载、传输数据、请求 退出传输等命令来下载应用程序。

8)应用程序下载完毕后,测试仪发送例程控制请求,请求校验应用程序完 整性。

9)下载应用程序的最后一个步骤是检查编程依赖性,测试仪发送检查编程依赖性的例程控制请求,BootLoader 程序执行编程依赖性检查,检查通过后,程序将会设置相关标识符。该标识符也是 BootLoader 跳转的关键条件之一。

10)应用程序下载步骤完成后,测试仪发送 ECU 复位的请求。ECU 将复 位重启。

Programming 阶段中,任何一个步骤失败都将终止程序的下载。

4.3  Post-Programming 阶段

Post-Programming 阶段主要用于 ECU 软件重编程成功后总线网络的同步设 置,因为在 Pre-Programming 阶段,测试仪将网络状态设置为关闭状态。

图 6 所示为 Post-Programming 流程,其中:

1 )测试仪通过功能寻址方式发送进入扩展诊断会话模式请求,总线上所有

ECU 都切换到扩展诊断会话模式。

  

图 6   Post-Programming 流程

2 )测试仪通过功能寻址方式发送开启非诊断报文通信的请求,使在 Pre- Programming 阶段关闭的非诊断报文通信恢复通信。

3 )测试仪通过功能寻址方式发送开启 DTC 设置的请求,使在Pre-Program- ming 阶段关闭的 DTC 设置为开启。

4 )测试仪通过功能寻址方式发送进入默认会话模式的请求,使网络上所有 ECU 恢复到默认会话模式。
    


  05 BootLoader 软件架构与实现  ▼ 


本书前面章节已经介绍了 UDS 软件架构,基于 UDS 的 BootLoader 软件也 是以此为基础实现的,不同的是 BootLoader 软件实现了闪存重编程流程和应用程序跳转功能。本节重点介绍基于 S32K144 芯片的 BootLoader 设计要点。

5.1 最小系统和基本模块

与通用 UDS 软件架构相同,BootLoader 软件亦需要支持软件运行的最小系统、CAN 总线通信和诊断协议栈( ISO  15765/ISO  14229),及闪存驱动 程序。

重编程主要由诊断层的 0x31 、0x34 、0x36 、0x37 等服务完成,重编程步骤可参考介绍 BootLoader 流程章节的描述。

BootLoader 程序还应保证其任务调度器在所有跳转条件都满足的情况下运 行一段时间,通常设置为 10ms 左右,以保证软件升级的安全性。
        

 

    
5.2 内存分配

内存分配包含闪存分配和 RAM 分配,需要给 BootLoader 和应用程序分配 合适的存储空间以供其运行。

MCU 启动用户程序时通常首先跳转到复位向量所在的位置,复位向量存储 了用户程序的启动地址。因此,为保证 MCU 启动时总是首先执行 BootLoader 程序,需要将 BootLoader 程序分配到复位向量所在的区域。

图7 所示为 S32K144 芯片的 P-Flash 内存分配,S32K144 共有 512KB 大 小的 P-Flash 供存储代码。其中,BootLoader 程序内存分配空间从 0x00000000 开始,分配大小为 80KB ;应用程序的内存分配空间从 0x00014000 开始,分配大小为 432KB。
  
         

 


图 7  P-Flash 内存分配示意

图 8 和图 9 所示为 BootLoader 程序和应用软件的内存分配细节,这些设置通过软件代码中的链接文件实现。
         

图 8  Bootloader 内存分配    
  
      

 

图 9   应用程序内存分配

BootLoader 不需要永久占用 RAM 区域,在 BootLoader 程序执行完毕跳转 到应用程序后,RAM 区域可被应用程序使用。此时 BootLoader 程序和应用程序共享芯片的 RAM 内存。

5.3 中断向量表的重映射

程序从 BootLoader 跳转到应用程序后,中断向量表需要重新映射,以保证 系统能正确响应应用程序设置的中断,可参考图 8 和图 9 中的 m_interrupts 段分配。

5.4  闪存驱动

ECU 重编程时通常要求 ECU 的闪存驱动从测试仪下载到芯片的 RAM 区域,闪存驱动提供基本的闪存擦除和编程功能。在 BootLoader 程序中需要在 RAM 区域分配一块内存供闪存驱动临时存储,可参考图 8 中的 m_flash_api 段分配。

5.5  程序跳转

根据内存分配,BootLoader 的起始地址为 0x00000000,应用程序的起始地 址为 0x00014200。根据 S32K144 的启动机制,在运行用户程序时,MCU 从地址0x00000000 处获取栈顶地址,并从地址 0x00000004 处获取 BootLoader 程序的启动地址。

在程序跳转时,BootLoader 软件从地址 0x00014204 处获取应用程序的启动地址,并跳转到启动地址执行,由此就完成了 BootLoader 向应用程序跳转。   
         

 

         

 

 

   06 电控单元 OTA 介绍  ▼ 

    

 

OTA,是 Over the Air 即空中下载技术的简称,也可称为远程升级技术。在 通信和互联网领域,远程升级技术早已成熟,如日常移动终端的应用软件升级等都使用这种技术。汽车远程升级技术是随着车联网的发展而出现的,目前已有部分车辆制造商实现了这一技术。

OTA 技术分为两类,一类是固件在线升级(Firmware Over the Air,FOTA ), 一类是软件在线升级( Software Over the Air,SOTA )。FOTA 是针对发动机、变速器、电机及底盘等电控单元的固件升级。SOTA 是基于操作系统,更新应用程序、UI 界面、车载地图以及影音娱乐应用等。

当前,OTA 架构通常由三部分组成:OTA 云端、OTA 终端、OTA 升级。OTA 云端为车辆制造商的云端服务器,OTA 终端一般在车载 Tbox。读者可以借助相关资料了解 OTA 云端到 OTA 终端的升级过程,本节着重介绍电控单元的 OTA 技术。

与电控单元相关的 OTA 过程主要是车内总线网络中的代码 BootLoader 升 级技术和代码回滚。

BootLoader 在 OTA 上的实现仍然基于前面章节介绍的软件升级流程。不过 部分 OTA 过程要求电控单元能静默升级,即 OTA 过程不影响电控单元的应用软件功能,这要求电控单元能在应用程序执行时保持升级能力。

OTA 时将电控单元分为两类,一类电控单元不需要代码备份,适用于功能单一的低成本执行器,另一类需要电控单元支持代码备份。支持代码备份的电控单元需要更大的存储空间同时存储两份软件,这种代码回滚方式通常被称为 A/B 交换。

A/B 交换方案的实现有多种方式,最高效的方式是基于硬件地址重映射的 A/B 交换方案,如图 10 所示。

         
图 10  基于硬件地址重映射的 A/B 交换示意    
         

 

        

 

    
图 10 a 中 ECU 激活的应用软件版本为 V1.0,通过 BootLoader 重编程后 将新的应用软件下载到另一个分区,软件版本为 V2.0。图 10 b 中当 ECU 复位或重新上电运行后,A/B 交换生效,激活 V2.0 版的应用软件。

在 S32K1 × 系列中,S32K146 可以实现 A/B 分区方案,其有 1MB 的程序存储空间,有两个各 512KB 的读取分区。双 P-Flash 读取分区允许擦除及写入其中一个分区,同时读取另一个分区或从那里执行代码,从而实现软件静默升级。



本文由机械工业出版社和作者授权发布。

/ END /

汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 随着各行各业对可靠、高效电子元件的需求不断增长,国产光耦合器正成为全球半导体市场的重要参与者。这些元件利用先进的制造工艺和研究驱动的创新,弥补了高性能和可负担性之间的差距。本文探讨了国产光耦合器日益突出的地位,重点介绍了其应用和技术进步。 关键技术进步国产光耦合器制造商在提高性能和多功能性方面取得了重大进展。高速光耦合器现在能够处理快速数据传输,使其成为电信和工业自动化中不可或缺的一部分。专为电力电子设计的栅极驱动器光耦合器可确保电动汽车和可再生能源逆变器等高压系统的精确控制。采用碳化
    克里雅半导体科技 2024-12-06 16:34 154浏览
  • 光耦合器以其提供电气隔离的能力而闻名,广泛应用于从电源到通信系统的各种应用。尽管光耦合器非常普遍,但人们对其特性和用途存在一些常见的误解。本文将揭穿一些最常见的误解,以帮助工程师和爱好者做出更明智的决策。 误解1:光耦合器的使用寿命较短事实:虽然光耦合器内部的LED会随着时间的推移而退化,但LED材料和制造工艺的进步已显著提高了其使用寿命。现代光耦合器的设计使用寿命为正常工作条件下的数十年。适当的热管理和在推荐的电流水平内工作可以进一步延长其使用寿命。误解2:光耦合器对于现代应用来说太
    腾恩科技-彭工 2024-12-06 16:29 183浏览
  • 进入11月中下旬,智能手机圈再度热闹起来。包括华为、小米、OPPO、vivo等诸多手机厂商,都在陆续预热发布新机,其中就包括华为Mate 70、小米Redmi K80、vivo的S20,IQOO Neo10等热门新机,这些热门新机的集中上市迅速吸引了全行业的目光。而在诸多手机厂商集体发布新机的背后,是智能手机行业的“触底反弹”。据机构数据显示,2024年第三季度,中国智能手机市场出货量约为6878万台,同比增长3.2%,连续四个季度保持同比增长,显然新一轮手机换机潮已在加速到来。憋了三年,国内智
    刘旷 2024-12-09 10:43 76浏览
  • 光耦合器对于确保不同电路部分之间的电气隔离和信号传输至关重要。通过防止高压干扰敏感元件,它们可以提高安全性和可靠性。本指南将指导您使用光耦合器创建一个简单的电路,介绍其操作的基本原理和实际实施。光耦合器的工作原理光耦合器包含一个LED和一个光电晶体管。当LED接收到信号时,它会发光,激活光电晶体管,在保持隔离的同时传输信号。这使其成为保护低功耗控制电路免受高压波动影响的理想选择。组件和电路设置对于这个项目,我们将使用晶体管输出光耦合器(例如KLV2002)。收集以下组件:光耦合器、1kΩ电阻(输
    克里雅半导体科技 2024-12-06 16:34 226浏览
  • 在Python中,线程的启动和管理是一个复杂而关键的过程。通过上述代码截图,我们可以深入了解Python中线程启动和处理的具体实现。以下是对图1中内容的详细解析: 4.3.3、启动线程 当调用`rt_thread_startup`函数时,该函数负责将指定线程的状态更改为就绪状态,并将其放入相应优先级的队列中等待调度。这一步骤确保了线程能够被操作系统识别并准备执行。如果新启动的线程的优先级高于当前正在运行的线程,系统将立即切换到这个高优先级线程,以保证重要任务的及时执行。 //```c /*
    丙丁先生 2024-12-06 12:30 111浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-09 08:53 78浏览
  • 开发板在默认情况下,OpenHarmony系统开机后 30 秒会自动息屏,自动息屏会让不少用户感到麻烦,触觉智能教大家两招轻松取消自动息屏。使用触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全新OpenHarmony5.0 Release系统,SDK源码全开放!SDK源码中修改修改以下文件参数:base/powermgr/power_manager/services/native/profile/power_mode_co
    Industio_触觉智能 2024-12-09 11:39 67浏览
  • 在驾驶培训与考试的严谨流程中,EST580驾培驾考系统扮演着至关重要的数据角色。它不仅集成了转速监控、车速管理、转向角度测量、转向灯光控制以及手刹与安全带状态检测等多项功能,还通过高精度的OBD数据采集器实时捕捉车辆运行状态,确保学员在模拟及实际驾驶中的每一步操作都精准无误。EST580驾培驾考转速车速转向角转向灯光手刹安全带OBD数据采集器系统的重要性及其功能:1、提高评判效率:通过原车CAN协议兼容,不同车型通过刷写固件覆盖,不仅提高了考试的数字化、自动化程度,还减少了人为干预的安装需要,从
    lauguo2013 2024-12-09 16:51 46浏览
  • 2024年12月09日 环洋市场咨询机构出版了一份详细的、综合性的调研分析报告【全球电机控制系统芯片 (SoC)行业总体规模、主要厂商及IPO上市调研报告,2024-2030】。本报告研究全球电机控制系统芯片 (SoC)总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析电机控制系统芯片 (SoC)市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从电机控制系统芯片 (SoC)产品类型细分、应用细分、企业、地区等角度,进行定量和定性分析,包括产量、产值、均价
    GIRtina 2024-12-09 11:32 85浏览
  • 自20世纪60年代问世以来,光耦合器彻底改变了电子系统实现电气隔离和信号传输的方式。通过使用光作为传输信号的媒介,光耦合器消除了直接电气连接的需求,确保了安全性和可靠性。本文记录了光耦合器技术的发展,重点介绍了关键创新、挑战以及这一不可或缺组件的未来发展。 过去:起源和早期应用光耦合器的发明源于处理高压或嘈杂环境的系统对安全电气隔离的需求。早期的光耦合器由LED和光电晶体管的简单组合组成,可提供可靠的隔离,但具有明显的局限性:低速:早期的光耦合器速度慢,频率响应有限,不适合高速数字通信
    腾恩科技-彭工 2024-12-06 16:28 140浏览
  •   在外地五年,回家就是大清洁、大清理,忙活了一个多月,废旧物品实在太多太多!除了老旧或出故障了的家具家电外,就是以前职业生涯养成的研究分析习惯而收留和拆解下的电子电器电脑整机、部件、零件、材料、辅料等等。  家具家电不说了,说说保留的各种各样机械、电器、电气、电子类的吧!有好有坏,扔又舍不得,满满的回忆,历史的烙印。留又没有用,拆解做分析和学习是忙不过来的了,加之,到如今个人做拆解的学习目的已经淡化了,也是因为用不着了。以前是研究学习和促进废物利用,理想也梦想能唤起循环使用产业链,结论是根本不
    自做自受 2024-12-08 22:59 154浏览
  • 在阅读了《高速PCB设计经验规则应用实践》后,对于PCB设计的布局经验有了更为深入和系统的理解。该书不仅详细阐述了高速PCB设计中的经验法则,还通过实际案例和理论分析,让读者能够更好地掌握这些法则并将其应用于实际工作中。布局是走线的基础,预先的规划再到叠层的选择,电源和地的分配,信号网络的走线等等,对布局方面也是非常的关注。布局规划的重要性: 在PCB设计中,布局规划是至关重要的一步。它直接影响到后续布线的难易程度、信号完整性以及电磁兼容性等方面。因此,在进行元件布局之前,我们必须对PCB的平
    戈壁滩上绽放 2024-12-05 19:43 172浏览
  • 学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4,对比 FPGA、GPU、CPU 的性能,助力 AIoT 边缘计算应用。(文末有彩蛋)一、 为什么选择 FPGA:应对 7nm 制程与 AI 限制在全球半导体制程限制和高端 GPU 受限的大环境下,FPGA 成为了中国企业发展的重要路径之一。它可支持灵活的 AIoT 应用,其灵活性与可编程性使其可以在国内成熟的 28nm 工艺甚至更低节点的制程下实现高效的硬件加速。米尔的 ZU3EG 开发板凭借其可重
    米尔电子嵌入式 2024-12-06 15:53 169浏览
  • “SPI转CAN-FD”是嵌入式开发领域的常用方法,它极大地促进了不同通信接口之间的无缝连接,并显著降低了系统设计的复杂性。飞凌嵌入式依托瑞芯微RK3562J处理器打造的OK3562J-C开发板因为内置了SPI转CAN-FD驱动,从而原生支持这一功能。该开发板特别设计了一组SPI引脚【P8】,专为SPI转CAN-FD应用而引出,为用户提供了极大的便利。MCP2518FD是一款在各行业中都有着广泛应用的CAN-FD控制器芯片,本文就将为大家介绍如何在飞凌嵌入式RK3562J开发板上适配MCP251
    飞凌嵌入式 2024-12-07 14:30 87浏览
  • DIP开关(双列直插式封装开关)是一种常见的机电设备,广泛应用于各种电子设计中。其多样的形式、配置、尺寸和开关机制使得设计师可以灵活地满足不同的需求。什么是DIP开关?DIP开关由多个开关单元组成,通常并排排列(图1)。这些开关需要手动操作以设置其功能。它们主要安装在PCB上,用于配置设备的操作模式。DIP开关以其可靠性、灵活性和经济性成为原始设备制造商(OEM)和最终客户的首选之一。图1.常见的DIP开关配置极点与掷数:DIP开关的基本规格极点(Pole): 指开关的输入数量。掷数(
    大鱼芯城 2024-12-06 10:36 136浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦