- 博客(44)
- 收藏
- 关注
原创 S32K3 MCU时钟部分
SCG(模块接口)时钟的模式转换:当在需要运行模式直接进行转换的时候,SCG应该先完成SCG时钟控制寄存器中定义的时钟模式的切换。SIRCDIV1_CLK:划分SIRC_CLK这应该在RUN/HSRUN模式下配置为8MHZ或者更低,在VLPR/VLPS模式下配置为4MHZ或者更低。SIRCDIV2_CLK:划分SIRC_CLK这应该在RUN/HSRUN模式下配置为8MHZ或者更低,在VLPR/VLPS模式下配置为4MHZ或者更低。时钟的生成逻辑还实现了模块特定的时钟门控,允许单独禁用模块。
2025-03-07 13:50:52
574
原创 AutoSar_WdgM基础概念整理
WdgMProgramFlowRefCycle:该受监控实体的程序流参考周期是监控周期的整数倍,程序流参考周期是从检测到第一个程序流违规的时候开始计时的,从ok到failed的。截止期限监督的主要目的是检查受监管实体的时间行,截止日期对于发现崩溃的任务或者无限循环很有用,如果由于任务以错误结束或卡在循环中二从未达到目标检查点,则将到站违反期限。WDGM受监控实体SE的程序流和时间约束。失败参照周期容忍度:这个参数定义了可以忍受SE在一定数量的监视周期内的程序流违规,违规的时候本地状态从正常改为失败。
2025-03-07 13:49:19
304
原创 AutoSar_NM基础概念整理
同步唤醒的流程如下:Nm通过调用ComM_Nm_NetworkStartIndication将来自网络的唤醒提示转发给ComM,然后ComM将调用Nm_PassiveStartUp,通过Nm转发到BusNM的相应接口。NM-Cluster:NM协调器将保持NM协调集群的所有当前处于唤醒状态的NM通道处于唤醒状态,直到可以在所有唤醒通道上协调网络睡眠。NM协调器的功能:协调器可以同步关闭两个或者多个网络,只要至少有一个网络没有准备好休眠,协调算法就会使得协调器的所有网络保持清醒。
2025-03-05 08:08:13
525
原创 AutoSar_Mode基础概念整理
COM:Com中的I-PDU组的处理可以由BswM执行作为I-PDU组启动/停止的一部分,可以将包含的信号重置为其相应的初始化值,BswM处理COM中信号截止期限监视的启用和禁用,也可以触发I-PDU的传输。看门狗管理器是AUTOSAR的标准化基本软件体系结构的基本软件模块,他监控与记时约束有关的应用执行的可靠性。我们首先通过考虑应将子状态的条件信息组合成复合的状态来定义必要的状态,每个关联规则的复合状态以条件表达式的形式表示,以创建状态转换条件,并将输出与该转换条件关联。时间触发的更多非工作状态。
2025-03-05 08:06:46
224
原创 AutoSar_Dcm基础概念
为了实现并行处理多个客户端的诊断请求,DCM需要为能够与之通信的每个客户端保留RAM来实现相应的DCM与客户端的连接,DCM RAM的使用可能急剧增加。如果启用SilentBSW并且禁用分页读取,当读取具有可变长度的DID的时候,DCM会验证所配置的DID的读取字节的最大长度不超过DCM的内部缓冲区。该服务的目的是提供一种访问数据或者诊断服务的方法,这些服务因安全,排放或者安全原因受到限制,该服务管理ECU的安全级别,用于限制对关键服务的诊断访问,
2025-02-28 10:44:52
333
原创 AutoSar_Diag基础概念整理
数据字段由一字节长的服务标识符来控制服务的功能,$35请求上传 此服务启动从ECU到测试仪的数据传输,当ECU准备好将数据发送到测试依的时候,他会发送一个肯定的响应,其中包含用于后续数据传输块的大小。CAPL程序是事件驱动的,这意味着他们由各自的功能组成,每个功能都对被分析系统中的事件做出反应:接收消息,信号的改变,定时器到期设置环境变量的变化。$34请求下载 此服务启动从测试仪到ECU的数据传输,当ECU准备从测试仪接收数据的时候,他会发送肯定响应,其中包含用于后续数据传输的可用快大小。
2025-02-27 17:12:24
486
原创 AutoSar_Com 基础概念整理
SWC–>Rte(Rte_Write)–>Com(Com_Signal)->PduR(PduR_ComTransmit)–>CanIf(CanIf_Transmit)–>CAN(Can_write)–>can仲裁胜出–>can总线。没有分配I-PDU组的I-PDU被始终处于活动状态。CAN驱动程序应该支持接收和传输具有标准ID和扩展ID的L-PDU,包括在一个硬件对象上同时接收和传输具有标准ID和扩展ID的L-PDU。当且仅当他所属的至少一个I-PDU组是活动的时候,一个I-PDU才是活动的。
2025-02-27 08:07:14
736
原创 Autosar_RTE基础概念整理
Task Mapping Scenarios A2: 适用情况下具有不同周期timing event和runnable映射到同一个basic task,basic task根据补贴周期的最大公约数,当调用隐性发送和接收的API后,数据的发送和接收不会立即发生,而是分别映射在task开始时和接收自己感兴趣的数据和结束的时候发送出最终加工后的数据。RTE在新数据到达的时候自动调用接收器可运行实体的可运行实体的激活,然后为了访问新到达的数据,接收者需要使用隐式或者显示数据读取访问。
2025-02-26 14:24:52
630
原创 AutoSar_Os基础概念整理
相应的阻塞的系统服务API:waitEvent()实现任务的阻塞,只有特定的事件发生任务解除阻塞状态。同步机制:某个任务在等待特定的事件发生,如果事件准备就绪了,另一个任务发送同步信号,或者通过中断处理程序发送到某个任务,即来自外围设备的输入。使用非抢占调度可能导致更高优先级的任务被运行中的低优先级的任务延迟,因为正在运行的不可抢占的低优先级任务直到显性重新调度点才会被更高。任务类型和一致性类:根据任务的是否有同步需求将其分为两类,基本任务和扩展任务,也就是没有等待状态的是基本任务反之是扩展任务。
2025-02-26 11:36:07
422
原创 APT32F1023_CDK开发初识
2.官方提供两种开发模式标准库开发和csi库开发这边本人采用的标准库开发。新建工程里面有soc厂家类型以及具体的芯片型号和keil类似。3.官方提供两个点C分别是各个外设的初始化以及芯片的各个function中断。后续开发可以基于demo修改。1.CDK下载,http://aptchip.com/,建议走爱普特官网。
2025-01-10 11:35:58
290
原创 车载逆变器选型评估
替代性:KA7500C与TL494CN芯片的外部引脚排列完全相同,内部电路几乎完全相同,可以相互替代使用。内置5V基准源:TL494CN内置有5V基准源,稳压精度为5V±5%,负载能力为10mA。控制复杂性:如果采用SPWM逆变,虽然输出电压低次谐波含量少,但控制复杂,整机效率较低。双端式开关电源控制:TL494CN是专用的双端式开关电源控制芯片,适用于高频逆变电路。输出电压谐波含量:方波逆变器的输出电压低次谐波含量较高,需要较大的输出滤波器体积。欠压封锁功能:具有欠压封锁功能,增强电路的安全性。
2025-01-04 11:59:35
327
原创 车载逆变器_apt32f102初识
该方案使用APT32F102作为主控芯片,通过其内部的PWM控制单元实现对逆变器的精确控制,在逆变器的设计中,需要考虑到车载电力系统的特殊要求和环境条件。总的来说,APT32F102基于车载逆变器的方案是一种针对车辆电力系统需求的高性能解决方案,能够实现稳定可靠的电力输出,并对车载电器设备进行全面保护和控制。1.监控和管理:软件可以实时监控逆变器的运行状态,包括电流、电压、功率输出等参数,并提供历史数据记录和分析功能,以便用户了解逆变器的性能和故障情况。
2024-12-26 11:39:26
343
原创 车载逆变器初识
直流-直流变换:车载逆变器接下来使用直流-直流变换器将汽车电池的直流电转换为稳定的直流电。这个变换器通常使用电感和电容组成的滤波电路来平滑输出电流,并通过控制开关管的开关信号来控制输出电压的大小。总的来说,车载逆变器通过将汽车电池的直流电转换为交流电,为车辆内的电子设备提供电力。它的实现原理涉及输入电流检测、直流-直流变换、交流输出以及输出保护和控制等多个步骤。输入电流检测:车载逆变器首先通过电流检测电路检测汽车电池的直流输入电流。这个电流检测电路通常由电流传感器和运算放大器组成,用于测量电池的电流大小。
2024-12-26 11:18:27
212
原创 MPC 思路流程
(2)在仿真发送CAN报文的时候,需要设置报文的字节长度,有设置dlc和datalength两种方式,正常can报文的帧结构DLC占4个bit,Data最多占64bit。BMS_OBC不仅能监测电池的电压和电荷状态,还能根据车辆的需求调整电池的工作状态,以提高整个系统的效率和性能。帧格式不同:CAN的帧格式分为标准帧和远程帧,而CAN-FD取消了远程帧的概念,使用了新的帧格式。数据长度不同:CAN的数据长度是8字节,而CAN-FD支持更长的数据长度,最多可达到64字节。
2024-12-23 11:18:24
543
原创 DSP 28069 ePWM模式初识
例如,ePWM1表示系统中的第一个实例,ePWM3表示系统中的第三个实例,ePWMx表示系统中的任意一个实例。1.1.(ePWM)模块是控制许多商业工业设备中的许多电力电子系统的关键元件,这些系统包括数字电机控制,开关模式电源控制,不间断电源和其他形式的电源转换。3.3.1.每个ePWM模块都有自己的时基子模块,用于确定ePWM模块的所有事件定时,内置同步逻辑允许多个ePWM模块的时间基础作为单个系统一起工作。2.1.ePWM的介绍,有效的PWM外设必须能够以最小的CPU的开销和干扰产生的复杂的脉宽波形。
2024-12-23 11:15:03
450
原创 OTA_run_app
(1)说明是二次进PBL,disable 全局中断。(1)恢复特殊标记值,一般是故障。(3) 所有外设disable。(4) 所有中断disable。OTA执行APP的主要流程。(2)清除对应的flag。2.2 不是特殊的标记值。(5) 设置主堆栈指针。(6) 使用MSP指针。2.设置特殊标记的方案。1.主机指令看着方案。(2) 关闭全局中断。(7) 跳转到APP。(8) WDT的设置。2.1 是特殊标记值。(3)设置主堆栈指针。(2)主控reset。
2024-12-21 15:58:05
149
原创 OTA初识
(7)将固件包更新至App分区,如果FW已经加密必须按照4096byte个单位解密后才能写入app分区,固件包首地址的4个字节数据暂存且先不写入(必须是解密后的数据)(8)擦除或者修改download分区的数据,如果是factory分区则无需擦除,download分区的擦除和修改需要FW自动更新的方案来决定。(5)校验固件的准确性,如果有误需要重新进行固件更新流程,校验通过后再将暂存的4个字节数据写入对应分区的首地址中。(3)固件包头写入到对应的分区,首地址的四个字节数据暂存且先不写入。
2024-12-21 14:53:43
436
原创 Zephyr初识_psoc4_gpio
zephyr不同于常用的RTOS,pin脚定义部分需要配合dts,config,yaml等文件结合实现但是有着超强的可移植性。我的理解是yaml相当于dts和c文件沟通的桥梁,每新建一个模块的dts需要实施更新对应的yaml。
2024-12-18 13:36:44
133
原创 tps25751初识
1.2.控制器发送启动条件,在SDA输入和输出上进行高到低转换,而SCL输入为高,则启动I2C通信。在Start条件之后,发送设备地址字节,首先发送最高有效位(MSB),包括数据方向位(R/W)。在时钟周期的高脉冲期间,SDA线上的数据必须保持稳定,因为此时数据线的变化被解释为控制命令(启动或停止)。控制器发送一个停止条件,在SDA输入和输出上的低到高转换,而SCL输入是高的。1.3.在接收到有效的地址字节后,该设备以确认(ACK)响应,在ACK相关时钟脉冲的高电平期间,SDA输入/输出的低电平。
2024-12-18 13:13:00
575
原创 GSRef_cy8c4146
请参阅PSoC Creator帮助>构建PSoC Creator项目>生成的文件(PSoC 6),了解有关PSoC Creator生成的文件的MISRA合规性和偏差的信息,全局信号参考组件没有任何C源代码api.(3)联合UAB中断(UABInt) -通用模拟模块(UAB)共享一个中断源,当任何启用的UAB产生中断时触发。(8.1)如果您将中断组件连接到此终端,则该端口将使用专用端口中断,也允许引脚成为合并端口中断的源。1.2一般的描述:全局信号参考组件允许访问必须在系统级别使用的特定于设备的全局信号。
2024-12-18 13:11:51
328
原创 ADC_cy8c4146
负输入端子的数量取决于通道的数量和方式存在许多单端通道。只有当一个或多个模拟通道被定义为单端输入且单端负输入参数被设置为外部时,该终端才会出现。2.2.您还可以配置多达16个模拟通道(取决于设备),这些通道将自动扫描,并将结果放置在单独的结果寄存器中。2.3.可选的“注入通道”也可以由固件启用,以偶尔扫描不需要以与其他通道相同的速率扫描的信号。当选择时,时钟速率将根据通道数自动计算,平均,分辨率和采集时间参数,以满足输入的采样率。总是有相同数量的模拟信号输入终端,因为有顺序通道选择,包括注入通道。
2024-12-18 13:10:19
275
原创 pin脚定义_CY8C4146
指定为“CMOS或LVTTL”的引脚将默认为CMOS,但可以配置为LVTTL in将命令放置在配置为LVTTL的端口中。这个设置是在一个端口上,3.6 配置一个Pins组件使用Vref信号:使用数字输入或双向终端,在“输入”子选项卡上设置“阈值”参数为“Vref”,或使用数字输出或双向终端,并在输出子选项卡上配置驱动器电平为Vref。如果选择热插拔,则引脚需要SIO,阈值设置为“LVTTL”或“LVTTL”以外的任何值“CMOS”,驱动电平设置为“Vref”,和/或电流设置为“25mA sink”。
2024-12-18 13:05:59
1136
原创 I2C_cy8c4146简介
EZI2C Slave是一种基于I2C寄存器的从设备,EZI2C从站是I2C从站的一种独特实现,所有的通信都在I2C从站之间主程序和从程序在ISR(中断服务程序)中处理,不需要与主程序流交互。scl_b -双向串行时钟(SCL)是主生成的I2C时钟。虽然从机从不产生时钟信号,它可能使时钟保持低电平,使总线停滞,直到它准备发送数据或ACK/NAK的最新数据或地址。它兼容[1]I2C标准模式、快速模式和快速模式Plus设备,这些设备在NXP网站www.nxp.com的I2C总线规范[2]中定义。
2024-12-18 13:05:17
156
原创 DSP 28069 eCan
10.4.3 如果设置了相应的中断掩码位,则RMP[n]位或TA[n]位的设置也会在GIF0/GIF1寄存器中设置GMIF0/GMIF1 (GIF0.15/GIF1.15)标志。LAM(4)和LAM(5),它们都需要用相同的值编程。设置在发送缓冲区中的消息失去仲裁之前,发送缓冲区的内容将被替换优先级高的邮箱,仲裁丢失后优先级高的邮箱将被发送。10.3.3.如果所有的中断标志都被清除,并设置了一个新的中断标志,CAN模块中断输出线(ECAN0INT .如果设置了相应的中断掩码位,则激活ECAN1INT)。
2023-10-26 17:22:30
470
原创 学习笔记(7):C语言复杂表达式与指针应用视频精讲-C语言专题第4部分-4.4.1.指针数组与数组指针
本课程是指针部分的话题,首先讲解了数组指针、指针数组、函数指针等常见的复杂指针表达式的分析方法、含义,再引入typedef关键字并详细讲解;后讲了二重指针、二维数组以及两者结合的运算。通过本章学习希望大家对指针的理解和运用上升到一定高度。...
2021-03-13 15:45:06
135
原创 学习笔记(5):朱老师鸿蒙系列课程第1期-1.鸿蒙系统HarmonyOS打通开发实践-1.3.鸿蒙相关网络资源汇总介绍...
本期是我们鸿蒙系列课程的第1期,主要目标是让大家先搞清楚鸿蒙的整体架构,开发环境搭建,代码构建和编译烧录测试等玩法。然后就是核心的代码解读和试验了,譬如liteos_a的启动流程,liteos的shell原理和用法,鸿蒙各组件的加载和使用。鸿蒙的ipc和rpc,ace模块的实现和接口,鸿蒙app的sdk介绍和app开发环境搭建,app和hap的区分,注册鸿蒙app开发者,本次测试应用、上传应用等。...
2021-03-02 19:09:40
258
原创 学习笔记(4):朱老师鸿蒙系列课程第1期-1.鸿蒙系统HarmonyOS打通开发实践-1.2.本系列课程介绍和规划详解2...
本期是我们鸿蒙系列课程的第1期,主要目标是让大家先搞清楚鸿蒙的整体架构,开发环境搭建,代码构建和编译烧录测试等玩法。然后就是核心的代码解读和试验了,譬如liteos_a的启动流程,liteos的shell原理和用法,鸿蒙各组件的加载和使用。鸿蒙的ipc和rpc,ace模块的实现和接口,鸿蒙app的sdk介绍和app开发环境搭建,app和hap的区分,注册鸿蒙app开发者,本次测试应用、上传应用等。...
2021-03-02 18:10:03
347
原创 LeetCode 7th day
27.移除元素class Solution: def removeElement(self, nums: List[int], val: int) -> int: for data in nums: if data == val: nums.remove(data) self.removeElement(nums,val) return len(nums)int re
2021-01-06 16:18:52
117
原创 Python中的“指針”
python 不存在指針的使用,但有部分問題被稱為模擬指針問題,也可以在一定程度上使用指針。1.數組合併python內一維數組其實就是列表。arr1 = [1,3,4,6,10]arr2 = [2,5,8,11]ind =0ans = arr1.copy()for i in range(0,len(arr2)): while ind < len(arr1): if arr2[i] <= arr1[ind]: ans.insert(in
2020-12-21 16:43:04
143
原创 Leetcode sixth day
有效的括號 class Solution {public: bool isValid(string s) { unordered_map<char,int> m{{'(',1},{'[',2},{'{',3},{')',4},{']',5},{'}',6}}; stack <char> st; bool isTrue =true; for(char c:s) {
2020-12-16 17:05:39
138
原创 Leetcode fifth day
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: return "" str0 = min(strs) str1 = max(strs) for i in range(len(str0)): if str0[i] != str1[i]:
2020-12-15 17:21:18
128
原创 Leetcode fouth day
羅馬數轉換數字 class Solution: def romanToInt(self, s: str) -> int: dic = {'I' : 1, 'V' : 5, 'X' : 10, 'L' : 50, 'C' : 100, 'D' : 500, 'M' : 1000} alist = ['IV', 'IX', 'XL', 'XC', 'CD', 'CM'] s += ' ' ans = 0 i = 0
2020-12-04 17:28:47
141
原创 Leetcode third day
回文數bool isPalindrome(int x){ if(x<0) return false; long y=0; int z=x; while(z!=0) { y=y*10+z%10; z/=10; } if(y==x) return true; return false;}
2020-12-03 16:55:32
110
原创 Leetcode second day
int reverse(int x){ //int x; int ttr; long long int rev=0; unsigned long long int a; //scanf("%d",&x); if(x>=0) { while(x/10!=0)11111 { ttr=x%10; x=x/10; rev=rev*10+ttr; } .
2020-12-02 19:33:54
103
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人