- 博客(1316)
- 收藏
- 关注
原创 【车载开发系列】RH850的OSTM功能
OSTM(Output Compare Timer Module)是RH850系列MCU的高精度定时器。它是瑞萨RH850系列内置的专用定时器外设,常作系统Tick间隔定时,配置简单中断响应快。
2026-02-23 11:14:03
156
原创 【车载开发系列】RH850中的中断
RH850 内核特点:32位 RISC、哈佛架构、寄存器组内存布局:Flash、RAM、外设地址异常/中断基本概念:EI 异常、FE 异常、复位本文将详细介绍中断的概念,EI异常,以及中断复位等相关概念和RH850中的实现。
2026-02-23 00:45:00
352
原创 【车载开发系列】ISO26262 ASIL基本概念
ASIL(Automotive Safety Integrity Level,汽车安全完整性等级)作为 ISO 26262 功能安全标准的核心评估指标,采用A、B、C、D,QM的分级体系。安全级别详细说明举例ASIL D最高安全等级。要求最严格,需要最复杂的安全机制和最高的测试覆盖率。故障可能导致生命危险或致命的伤害刹车、转向、安全气囊系统ASIL C高安全等级。要求严格,仅次于D自适应巡航ACC、自动紧急制动AEBASIL B中等安全等级尾灯、电动车窗ASIL A最低安全等级。
2026-02-22 11:48:15
469
原创 【车载开发系列】RH850中的GPIO操作
瑞萨RH850系列MCU的GPIO(车规级通用输入输出),主要包含了架构、寄存器、配置步骤、复用、安全/硬件特性与示例,方便直接落地开发。
2026-02-22 11:37:07
732
原创 【车载开发系列】GPIO核心概念理解
GPIO中断是GPIO引脚检测到特定电平变化或信号跳变时,向处理器发送中断请求,使处理器暂停当前任务并执行对应中断服务程序的机制,用于实现对外部事件的实时响应。输入—我听你的(读取外部信号)输出—我指挥你(向外发出信号)按键—上拉输入,浮空输入ADC—模拟输入LED—通用推挽软件I2C—通用开漏硬件I2C—复用开漏PWM、SPI—复用推挽GPIO中断—按键输入检测,传感器信号捕捉(红外,触摸传感器)
2026-02-21 11:52:28
782
原创 【车载开发系列】入坑RH850芯片
RH850 = 车规安全天花板 + 性能功耗黄金比 + 全场景覆盖 + 成熟AutoSAR生态 + 高集成度,是当前汽车MCU的主流首选。
2026-02-21 11:19:27
545
原创 【车载开发系列】瑞萨RH850芯片基础介绍
瑞萨芯片作为日本的品牌,它在全球的汽车电子芯片市场占据很高的地位,尤其是车规级MCU方面,基于此瑞萨也获得了大量的汽车零部件厂商的青睐。虽然国内国产化的呼声一直很高,但是不得不承认与国际的芯片巨头仍然存在着很大的距离,因为工作原因可以比较近的接触到瑞萨MCU芯片,所以本篇文章就介绍一下瑞萨车规级MCU RH850-F1x系列的使用指南。RH850/F1x是车规级MCU,不同系列在市场上定位也是不一样的。
2026-02-18 19:01:00
755
原创 【车载开发系列】Renesas Flash Programmer (RFP) 反向读取功能
在弹出的设置中,选择需要读取的存储区域(如Code Flash 1),设置好保存路径,点击确认后即可将芯片中的程序读取为.hex或.bin格式的文件保存到本地。从HexView可以查看到,一共有三段分别是CodeFlash,DataFlash以及UserBootArea。当我们不知道MCU当中烧录的是哪个软件的时候,我们可以使用这种方法来排查问题。使用HexView工具就可以打开刚刚我们保存出来的文件了。
2026-02-18 13:25:41
32
原创 【车载开发系列】Renesas Flash Programmer (RFP) 使用教程
RFP就是Renesas Flash Programmer的缩写。它是一款用于瑞萨系列MCU的闪存编程工具,它支持嵌入式程序的刷写、擦除以及Option Byte的配置。芯片中的Option Byte(OPBT)是用于配置芯片特定功能和属性的内存区域。通过修改Option Byte开发者能够根据需求对芯片进行灵活的配置,实现安全性和其他关键特性。
2026-02-16 00:15:00
891
原创 【车载开发系列】浮点数与整型数的转换
浮点数与整数之间的转换需要特别注意的问题,当整形数为char或者short时直接强制转换便好了,但是如果整数是int型且是一个很大的数,那么就不能转了,因为float只能保存最大2的24次方的数字;同样float也是可以直接转换为int数,但要注意的是直接强转的话小数部分将被丢失,要想四舍五入的话推荐使用round函数。最后在浮点数当中有float和double两种类型,float直接转64位的double型时,自然没问题。
2026-02-15 00:15:00
53
原创 【车载开发系列】C语言浮点数入门
全世界人口数大约是:6,100,000,000,这样的数书写和显示都很不方便,为了免去写这么多重复的0,将其表现为这样的形式:6,100,000,000=6.1×10^9(10的九次方),即6.1E9或6.1e9。科学计数法采用%e或%E输出,完整的输出格式是%m.ne或%m.nE,指定输出数据整数部分和小数部分共占m位,其中有n位是小数。在浮点数的取值范围内,整数转换为浮点数不会有精度的损失,但是浮点数转换为整数后,会丢弃小数位,所以为了不丢失精度,建议使用库函数round。float采用%f占位符;
2026-02-14 11:33:56
401
原创 【车载开发系列】C语言浮点数运算
int类型与float类型都是占据4字节内存,所以都是32个0和1的组合,所以它们所能表示的数据个数是相同的;浮点数所表示的数据是不连续的;浮点数只是一种近似表示法,是不能用作精确数来使用的(比如条件判断 if (f == 0.1) 这种判断不要出现);浮点数的内存表示方法更复杂,所以浮点数的运算比int类型要慢很多。
2026-02-14 10:42:26
375
原创 【车载开发系列】安全算法与安全访问
所谓的消息摘要算法,就是对一个消息或文本,产生一个固定长度的值(也就是摘要),采用的是单向的Hash函数对消息或文本进行计算产生,且不同的明文生成的摘要结果 "总是"不同的,相同的明文产生的摘要 “必定” 一致。这里目前最常用的摘要算法有 MD5和SHA1。MD5是由MD4,MD3,MD2改进而来,摘要长度为128位,在目前应用比较广泛。
2026-01-18 17:42:09
971
原创 【车载开发系列】AES-CMAC算法基础
AES(Advanced Encryption Standard)是对称加密算法的一个标准,主要用于保护电子数据的安全。CMAC(Cipher Block Chaining-Message Authentication Code),也简称为CBC_MAC,它是一种基于对称秘钥分组加密算法的消息认证。一般情况下每次操作128位有效数据位,也就是16个字节。
2026-01-18 14:09:43
278
原创 结构化思维之PERP原则
PERP是四个手写字母的缩写,强调先结论,后展开分析,最后再说结论的一种结构化思维分析与沟通的方式。广泛应用在提建议写邮件的过程中。在沟通过程中,往往我们采用先事实,根据事实进行分析预测,进而得出行动与结论,使用这种方式在职场沟通中使用,将更加高效。PREP原则是一种高效沟通框架,通过结构化表达提升了说服力和内容清晰度。强大的说服能力和沟通能力可以帮你得到想要的资源,而且良好的沟通能力也能促进不同部门人员之间的协作,最终有效达成目标。
2026-01-17 15:44:48
608
原创 职场人的结构化思维
结构化思维是一种从混乱中创造秩序的能力,是将零散、无序的信息,经过加工和整理,变成有条理、有层次、有逻辑的思考方式的过程。有结构的信息更适合大脑记忆和理解。结构化思维不是与生俱来的天赋而是一种可训练的后天思维习惯。本文首先介绍了什么是结构化思维,它将无序的信息经过拆解,归纳与重构之后,形成有规律便于记忆信息的过程。在日常沟通表达上,我们可以使用金字塔结构,PERP原则,结构化的表达与传递信息给需要的相关方。
2026-01-17 13:44:02
1016
原创 【车载开发系列】了解流控帧
流控帧(Flow Control Frame,FC)是ISO 15765-2(CAN协议)网络层中的一部分,用于管理在多帧传输过程中发送方与接收方之间的通信。
2026-01-10 17:30:59
1179
原创 【车载开发系列】指针指向数组并指定改数组首地址
这样就定义了一个指针,该指针指向数组类型为short类型,总长度为2048,但是这个指针或者说是数组并没有初始化的地址。于是需要给它初始化一下,也就是指定数组的起始地址,我是这样做的。)[2048])的类型的地址,可以理解成一个无名的指针(*)指向一个类型为short,长度为2048的数组的首地址,该首地址为0xc0001234,并将这个地址赋值给ptr。)[2048])0xc0001234将数字0xc0001234强制转换成(short(用一个指针来指向一个数组,同时定义了数组的数据类型。
2026-01-10 16:14:31
165
原创 【车载开发系列】总线物理层规范下篇
TSEG1由传播段和相位缓冲段1合并而成,我们也称之为时间段1。TSEG2是相位缓冲段2。它们的长度越大,容忍的误差范围越大,但同时也会影响传输速度。增加相位缓冲段1和相位缓冲段2的长度,以允许更多的时钟调整空间SJW的全称是sync Jump Width,它叫同步跳转宽度。它定义了在重新同步时可以缩短或延长的最大时钟周期数。因为重新同步时,相位缓冲段1会延长或是相位缓冲段2缩短。当接收到的边沿时间与预期不同步时,SJW定义了允许的时间跳跃范围。增大SJW可以容忍更大的时钟误差。
2026-01-03 17:14:24
901
原创 【车载开发系列】总线物理层规范中篇
由发送单元在非同步的情况下每秒钟发送的位数称为位速率,即一个二进制位在总线上传输所需要的时间就是位时间。1除以位时间之后可以得到波特率(也就是位的速率)。时间份额是通过MCU芯片的晶振周期分频得到的,它的作用是用于定义CAN通信中每一位的时序结构,确保数据传输的稳定性和同步性。每一位Tq都包含以下四个部分:同步段(Synchronization Segment)传播段(Propagation Segment)
2026-01-03 14:18:48
504
原创 【车载开发系列】总线物理层规范上篇
晶振的全名叫晶体振荡器,单片机系统里都有晶振,晶振是由石英晶体经过加工并镀上电极而做成的,主要特性就是通电后会产生机械振荡,可以给单片机提供稳定的时钟源。晶振提供时钟频率越高,单片机的运行速度也就越快。振荡周期就是晶振振荡一次花费的时间。以12Mhz为例,振荡周期=1秒/12Mhz,也就是频率的倒数。它是由单片机振荡器的晶振频率决定的,指的是振荡器每震荡一次所消耗的时间长度,也是整个系统中最小的时间单位。时钟周期其实就是振荡周期(因为晶振提供的是时钟,也就是时间,换个名字而已)
2025-12-27 19:50:32
298
原创 【车载开发系列】比特率与波特率
比特率(Bit Rate)是指单位时间内传输的二进制位数,通常以比特每秒(bps)为单位,它用于衡量数字通信系统中的数据传输速率。例如,网络带宽、文件下载速度等常常用比特率表示。波特率(Baud Rate)是衡量数据传输速率的单位,表示每秒传输的符号(或信号变化)的数量。一个波特代表一个状态的变化,它的衡量单位通常是波特每秒(Bd/s)。
2025-12-21 10:35:25
301
原创 【车载开发系列】总线负载率基础概念
实际数据传输速率和理论上能达到的数据传输速率的比值就叫做总线负载率。比如每个教室都有一个负荷上限,比如容纳100人,如此时教室中只有10个人时,我们就说教室的负载率是10%。他说明了在空间上资源被利用的情况。负载率直接关系到网络的实时性和可靠性。只有在低负载率(一般指定为低于30%)下,总线才能满足响应迅速,以及高可靠性和高实时性。当然有些主机厂也会要求在负载率达到90%甚至100%时,也要求正常按周期收发报文,所以在设计通信总线的报文时,更加需要设计合理的报文长度和数量。
2025-12-20 19:37:39
652
原创 【车载开发系列】车载总线的Busoff功能需求
如果ECU没有唤醒(通讯关闭,报文停止发送),或者供电电压范围在网络相关诊断开启电压范围(9-16V)之外,或者TDiagstart没有超时,那么即便Busoff故障,故障码也不会发生。ECU首次进入BusOff需执行快恢复,五次连续的快恢复(连续的快恢复是指两次快恢复之间该ECU未发送任何正常报文)之后再次进入Bus Off故障需执行慢恢复。当ECU进入Busoff之后快恢复要被执行,如果ECU经历三次连续快恢复之后仍然不能恢复,ECU需在第四次进入BUSOFF故障时,记录BUSOFF的故障码。
2025-12-07 15:46:33
1066
原创 【车载开发系列】车载总线的交互层功能
交互层规定了发送方和接收方应用层通过应用报文通讯时的交互规则,应用报文为定义在通讯矩阵中的所有CAN(FD)报文,应用报文但不包含诊断报文、标定报文以及网络管理报文。交互层规定了连接到标准CAN或者CANFD网络的不同ECU的应用功能使用独立的小信息项(即单个信号或信号组)进行通讯时所使用的协议。一个信号组包含一组单个信号,这些单个信号同步写入交互层和从交互层读出,通过标准CAN或者CANFD总线同步发送和接收。
2025-12-02 00:00:00
993
原创 【车载开发系列】车载总线的网络管理
对于间接网络管理ECU,在电源模式由非ON切换为ON时,ECU要完成初始化后开启CAN通讯。具体定义了三个度量指标来判断网络通讯开启是否满足性能方面的要求。参数名说明最大值T1电源模式由非ON切换为ON,到ECU接收报文的时间295T2电源模式由非ON切换为ON,到ECU发送报文的时间300T3电源模式由非ON切换为ON,ECU将所有报文发送一遍的时间320TA电源模式由ON切换为非ON,到间接管理ECU停止发送报文的时间100。
2025-11-30 14:10:04
967
原创 【车载开发系列】如何编辑DBC文件
定义网络中传输的消息,包括:报文ID报文名称报文类型(普通报文,诊断报文或网络管理报文)报文发送类型(周期型,事件型或周期事件型)消息的方向(发送或接收)帧格式(标准can,扩展can,标准canfd或扩展canfd)报文长度定义消息中的每个信号,包括:信号名称信号长度(以位为单位)排列格式(Intel或Motorola)缩放因子和偏移量(用于原始数据和实际值的转换)信号的单位和物理最小/最大值。
2025-11-30 10:50:52
784
原创 【车载开发系列】CAN报文排列格式--Motorola_MSB、Motorola_LSB、Intel
摘要:本文介绍了CAN报文排列格式中的Motorola_MSB、Motorola_LSB和Intel三种标准。Motorola采用大端字节序,分为MSB(最高有效位)和LSB(最低有效位)两种格式,而Intel采用小端字节序。文章详细解释了大端与小端的概念,以及LSB和MSB的定义,并通过0xB7A的十六进制示例展示了三种格式的具体排列方式。最后总结了三种格式的特点:Intel格式从后往前、从上到下排列;MSB格式从前往后、从上到下填入;LSB格式从后往前、从下到上填入。
2025-11-25 00:00:00
107
原创 【车载开发系列】UDS诊断时间参数
在ISO-15765-3标准(UDSonCAN)中针对Tester以及Server列出了3对P时间参数,用来描述应用层的时间参数。这些时间参数主要用于上位机在测试UDS的过程中,诊断工具需要设置一些参数来实时掌握诊断报文的响应状态以及控制相应诊断请求的发送。这作为评估整个UDS的通信是否稳定等性能指标。
2025-11-23 10:16:20
494
原创 【车载开发系列】再谈集成测试
c) 软件单元/集成测试环境应支持驱动模块和桩模块的编写与加载,并与测试用例一起进行有效管理。集成测试主要测试软件模块之间的交互和协作,而系统测试则是测试整个系统的功能、性能和可靠性。b) 软件单元/集成测试环境可以是仿真环境、模拟环境、开发环境(推荐);a) 应建立软件单元/集成测试环境,配备软件单元/集成测试工具;软件集成测试环境与单元测试环境基本相同。
2025-11-22 11:07:48
807
1
原创 【车载开发系列】常见集成测试的方法
针对面向对象的系统,从分析类之间的依赖关系出发,通过从最小依赖关系的类开始集成,逐步扩大,最后集成到整个系统,通过该集成方法,可以验证类之间接口的正确性。针对可以有许多并发运行、没有专门控制轨迹的组件、以及没有专门服务器层的分布式系统。验证松散耦合的同级组件之间交互的稳定性。快速迭代式开发和增量式开发可能会导致系统功能的遗漏和冲突,该集成主要是为了避免以上问题,同时控制可能出现的基线偏差。对于和单独的服务器组件进行松散耦合的客户端组件,可以使用客户/服务器集成来完成。验证客户和服务器之间交互的稳定性。
2025-11-01 18:38:21
1100
原创 【车载开发系列】嵌入式中的集成测试
自底向上集成(Bottom-up Integration)方式是从程序模块结构的最底层的模块开始组装和测试,因为模块是自底向上进行测试的,对于一个给定层次的模块,它的子模块已经组装并测试完成,所以不再需要桩模块。采用了和设计一样的顺序进行测试,它在第一时间内对系统的控制接口进行验证,其中顶层的组件具有控制的责任,首先测试顶层的组件,然后逐步测试处于底层的组件,这种集成方式可以采用深度优先策略和广度优先策略。它既有白盒测试的成分,也有黑盒测试的成分,结合了白盒测试和黑盒测试的特点,一般把他归入灰盒测试。
2025-11-01 12:09:19
961
原创 【车载开发系列】如何用Parasoft实现跨平台编译环境的配置
bdf是数据文件的一种类型,是一种数据库文件,本质上存储了每个文件的编译信息。在ParaSoft当中,可以使用bdf文件来快速创建一个测试项目。为了构筑跨平台编译环境,首先就要做成跨编译器的BDF文件。MinGW-w64 是基于 GNU GCC 的跨平台开发工具链,支持 Windows、Linux 等系统的 32 位和 64 位应用程序开发。
2025-10-31 00:00:00
996
原创 【车载开发系列】LIN总线必知必会
在比如车身某些电子配件的地方(如车窗、后视镜、大灯、车锁等),这些配件的通讯根本不需要像CAN总线那样“高速”传输,各大厂商为了在车身低速的应用上节约成本,就联合研究了出了这个LIN总线。它主要用于连接不需要CAN总线高性能和高成本的传感器、执行器、开关等设备(如车窗、雨刮、座椅、空调控制、车灯等),LIN可以作为CAN总线的一个补充。主节点既有主任务又有从任务,从节点只包含从任务,主任务负责决定总线上的报文,从任务提供每一帧的数据。LIN总线上可以传输两类报文,一类是信号报文,另一类是诊断报文。
2025-10-19 11:01:56
489
原创 【车载开发系列】ParaSoft实现单独源文件环境构筑
安装GCC编译器的方法取决于操作系统和网络环境:Windows用户可通过MinGW安装,访问MinGW官网(www.mingw.org)下载最新安装程序(如mingw-get-setup.exe),就可以运行并选择安装目录了。本文使用ParaSoft软件,针对无法对单个文件跑静态以及动态测试的问题,采用了ParaSoft中内置构建器的方法,在不做成bdf文件的前提下,构筑一个临时的工程,从而实现单个文件或者文件夹中批量源代码实施单元测试的需求。具体的对策详细方法在本文中记载,供参考。
2025-10-17 00:00:00
408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅