- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 Autosar软件组件概述
端口原型在软件组件之间的通信中起着关键作用,它们定义了数据的传输方向和接口规范,端口原型通过端口接口来定义其通信行为,不同类型的端口接口具有不同的语义和功能,端口接口提供了一种标准化的方式来描述端口之间的通信协议和数据格式,使得不同的软件组件可以相互理解和交互。:在汽车电子系统中,校准参数的准确性和一致性对于系统的性能和可靠性至关重要,通过定义特定的数据属性,可以确保每个参数在系统中的作用和意义是明确的,并且可以根据不同的角色进行灵活的配置和管理。:可以同时作为需求和提供端口,具有双重功能。
2024-10-18 14:15:09
1035
原创 Autosar CP系列:设计模式之仲裁模式和信号质量模式
当使用发送者 / 接收者接口时,仲裁组件需要为每个请求者或提供者设置不同的请求或提供端口,为不同的请求或提供者设置唯一的名称,各端口的数据类型保持一致。为了解决多个不同提供者或请求者之间的仲裁问题,引入一个新的组件,这个组件的作用是管理所有来自不同请求者或提供者的请求。在整个系统中建立统一的信号质量评估标准,使得不同的组件和模块能够依据相同的规则来处理和判断信号的有效性和可靠性。在信号传输过程中,对于每个信号 ,除了传递信号本身的值之外,相应的质量信息也需要一同被传递。来自主信号源的可信赖的值。
2024-09-30 15:22:08
429
原创 全文最详细CPP/XCP标定协议讲解:命令传输对象CTO
从设备建立连接时,向主设备发送特定于通信的信息,“RESOURCE”是从设备提供的信息,说明是否支持如页面切换等功能,或者是否可以通过XCP进行闪存编程,“MAX_DTO”从设备会告知主设备它支持的最大数据包长度,用于传输测量值等。在CAN总线传输时,XCP消息仅可使用七个有效字节,校准值是4字节的数据,那么传输地址和校准值共需要九个字节,无法在一个CAN消息中传输更改,校准请求由主设备向从设备发送两条消息来完成,从设备必须确认这两条消息,总共交换四条消息。
2024-07-31 18:37:46
881
原创 全文最详细CPP/XCP标定协议讲解:首篇
第一个问题通过A2L文件解决,A2L文件(ASAM MCD-2 MC Calibration Package,即ASAM标准化组织制定的汽车测量、标定和数据交换标准中的标定包文件)是ECU标定过程中非常重要的一个文件,它包含了ECU的硬件和软件信息,包括参数的地址、类型、单位、范围等,使得标定工具能够正确地与ECU进行通信和数据交换。而校准概念则是一个更广泛的主题,它涉及到如何定义和管理ECU中的参数,包括参数的初始化、存储、校准流程、数据持久化等方面,后面的文章会说明。从设备发送时间戳是可选的。
2024-07-30 16:08:35
2004
原创 eMMC存储器的市场和技术分析
一般为4MB,通过 HMAC SHA-256 和 Write Counter 来保证保存在 RPMB 内部的数据不被非法篡改,eMMC 在写入数据到 RPMB 时,会校验数据的合法性,只有指定的 Host 才能够写入,同时在读数据时,也提供了签名机制,保证 Host 读取到的数据是 RPMB 内部数据,而不是攻击者伪造的数据。定义了卡的属性和选定的工作模式,长512字节,其中最重要的320字节是属性段(Properties segment),它定义了卡的能力,并且不能被主机修改。
2024-07-27 17:13:43
2106
原创 Nor Flash存储器深度分析第二篇
在SPI或QPI通信中,Dummy Cycle是指在数据传输过程中,不发送有效数据或命令,但时钟信号仍然继续的周期,周期通常用于内部操作,如准备数据或切换状态,通过P6, P5, P4, P3这些位,可以配置在读取操作中使用的Dummy Cycle的数量。BP3, BP2, BP1, BP0用于定义需要保护的内存区域的部分,编程或擦除操作都将被禁止,根据功能寄存器TBS位的设置,配置BP3, BP2, BP1, BP0的值,可以选择保护的块的起始位置和数量。当WEL为“1”时,允许执行写入操作。
2024-07-19 15:28:28
956
原创 Nor Flash存储器深度分析第一篇
写保护引脚与SRWD(状态寄存器写保护)位一起工作,以保护状态寄存器不被写入,当SRWD被设置为“1”,并且WP#被拉低时,状态寄存器的位(SRWD、QE、BP3、BP2、BP1、BP0)将受到写保护,不能被修改,当WP#为高电平时,这些位不受写保护,当SRWD被设置为“0”时,无论WP#的状态如何,状态寄存器都不会受到写保护。状态寄存器的QE位被设置为“1”时,引脚作为四SPI模式下的IO3引脚,当QE=0时,该引脚根据读寄存器中的P7位设置来充当HOLD#或RESET#引脚。输入和输出的同步时钟。
2024-07-18 15:47:57
891
原创 智能汽车域控制器FOTA升级方案探讨
上文提到的Entry属性,包括Active 属性, Bootable 属性, Successful 属性, Retrycnt 属性 ,Active 属性用于标志槽的优先级,bootloader优先选择Active 属性=1的槽启动,Bootable 属性标志槽可否可启动,Successful 属性标志槽是否成功启动过,Retrycnt 属性标志槽可尝试启动的次数。芯片启动后,首先进入Bootloader阶段,此阶段将读取存储系统的分区属性,根据属性值进行逻辑判断,并确定进入哪个分区,详见流程图。
2024-07-15 15:16:49
1036
原创 H桥驱动器芯片详解
睡眠(SLEEP)状态,不适用于SPI的“P”变体,在SLEEP状态下,除了唤醒命令之外,设备不会处理任何功能,所有驱动器都处于高阻态(Hi-Z),内部电源轨(如5V电源轨等)被关闭,nFAULT引脚在此状态下也被撤销断言,设备可以从STANDBY状态或ACTIVE状态进入SLEEP状态,取决于nSLEEP引脚被断言为低电平的时间长度,HW变体,需要的时间长度大于tSLEEP,SPI的“S”变体,需要的时间长度大于tSLEEP_SPI。此外,设备还提供了低功耗模式,在系统需要休眠时,最小化电流消耗。
2024-07-09 19:01:33
3056
原创 电源管理芯片PMIC的编程
市面上的高端PMIC芯片,功能都非常丰富,输出电压可调节、故障监控、启动配置、MCU认证等,用户可以根据项目实际需求,进行灵活的配置,让PMIC芯片的功能最大限度的满足项目需求。PMIC芯片通常支持多种编程接口,如I2C、SPI等,这些接口使得PMIC芯片可以与MCU、DSP进行通信,向PMIC芯片内的寄存器写入配置数据,配置芯片的功能。本文介绍了PMIC芯片需要支持编程的原因,是为了适配项目需求,灵活性的扩展,以VR5510的I2C编程为例,说明了PMIC编程的一种方式,其他PMIC芯片类似。
2024-07-04 16:56:09
1255
原创 文章自动生成器
最近开始想写一些东西,脑子里也有不少想法,但是自己写又比较费时间,而且还要排版,精修,刚开始写的字数甚少,想法也是断断续续,不连贯,本想放弃,但是想到放弃就太可惜了,自己又是程序出身,最近AI写作不是很流行么,于是萌发了自己搞一个类似AI写作的工具,辅助自己写作。
2024-04-08 16:51:18
398
原创 UDS on CAN的ADAS刷写BootLoader上位机开发
另外,采用多线程的方式,将报文接收、界面响应、刷写流程等部分分为线程,异步接收和发送,最大程度的避免由于软件处理不及时导致的丢帧问题,这点在实车测试时显得很重要,也是为什么很多上位机在实验室可以刷写,但在实车环境成功率就非常低。界面的设计比较简洁,干技术的审美也只能这样,大家不要吐槽,取消了按钮式的选择和操作方式,整体效果偏蓝色,启动和关闭设备借鉴了CANoe的按钮,各个部分进行分割,然后就成了现在这个样子。文件选择部分包括应用文件和驱动文件,应用文件时必须的,驱动文件是可选的,文件类型是S19或hex。
2022-11-13 12:19:46
3574
原创 云服务器https配置和ssl申请
近日,为了开发去水印的微信小程序的后台,花重金购买了腾讯云服务器,接下来就是一顿配置,为了省钱和简单,直接用云服务器安装好的系统,配置项目为:1.服务器软件安装,这里用的是wampserver2.x版本2.域名申请和实名认证、域名备案3.SSL证书申请和绑定,用的是免费版的SSL4.云服务器配置,包括打开安全组规则的443接口5.SSL在服务器的配置重点记录一下SSL的配置过程:1. 在SSL证书申请下来后,在云服务器的控制在找到SSL证书,2.下载下来,下载后的文件是一个压
2021-09-17 15:51:53
591
原创 OSEK网络管理
3.1.1概述首先弄明白一点,为什么车上的控制器需要做网络管理?因为在目前的整车电子电器架构下,整车的部分ECU是需要一直供电,从整车下线到车辆报废,它都一直在工作,想想你的使用情况就明白了,你在任何时候按下遥控寻车,你的车都能作出反应,这是因为ECU它是一直在工作的。既然ECU一直在工作,它就需要耗电呀,咱们车上就一个蓄电池(商用车是两个),如果你长时间不开车,车上的ECU一直在费电,时间长了,你的车是不是就启动不了了,所以为了规避这个问题,整车厂都给常电供电的ECU都加入了网络管理的功能,比如OS.
2021-06-14 20:13:27
10261
1
原创 OSEK_NM2.5.3协议的实现
经过两个多月的学习,实现了OSEKNM2.5.3协议,设计了跨平台的结构,目前只实现了stm32f407平台的驱动详细内容见github:https://github.com/sydyg/OSEK_NM
2019-01-28 17:26:15
3170
原创 linux输入子系统
1.概述 linux的input子系统用来管理所有的输入类设备,对所有的输入类设备进行抽象,以便更简单的编写输入类设备的驱动程序。2.应用/*向内核注册一个只有4键的小键盘*/static int keyboard_init(){ /* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device...
2018-08-10 10:51:46
329
原创 ubuntu14 安装tensorflow
1.概述TensorFlow是谷歌开发的人工智能平台,用于语音识别或图像识别等多项机器学习和深度学习领域。2.安装本文基于python2.7安装。注意:TensorFlow只能安装在64位的ubuntu上。安装pipsudo apt-get install python-pip python-dev更新pipsudo pip install --upgrade p...
2018-08-09 16:14:01
270
原创 linux定时器的使用
1.概述 定时器(Timer)本来是硬件资源,但是由linux接管了所有的CPU资源,并对这些资源进行了抽象,那么我们对Timer的使用就应该按照linux的要求,使用linux提供的接口来使用Timer。2.使用初始化static struct timer_list buttons_timer;//内核定时器结构体static int Timer_init(){ ...
2018-08-09 11:48:13
271
原创 linux的阻塞非阻塞文件读写
1.概述 对于设备文件,我们可以用阻塞和非阻塞的方式读写。在阻塞方式下,若设备不可读写,则该进程休眠,释放CPU资源;若设备文件可读写,则对设备文件进行读写。在非阻塞方式下,若设备不可读写,进程放弃读写,继续向下执行;若设备文件可读写,则对设备文件进行读写。2.使用及实现原理 使用: 要使用非阻塞方式读写设备文件,则在调用open()函数时,添加O_NO...
2018-08-09 10:38:07
7926
原创 linux的同步和异步
1.同步 笔者在本文只分析poll同步机制,首先看poll函数的用法: #include <poll.h> int poll(struct pollfd fds[], nfds_t nfds, int timeout); struct pollfd { int fd; /*文件描述符*/ short ev...
2018-08-08 15:50:04
2169
原创 对linux源码树中arch/arm/目录的理解
1.概述 linux是可以支持很多平台的,比如x86、MIPS、ARM,linux要支持这些不同的架构,就必须有各种架构相关的模块代码,这些不同模块代码的实现了对架构硬件资源的管理,而linux内核本身只关注进程调度、内存管理、网络管理、文件系统、设备驱动等内容,内核实现上述功能需要的数据结构,由arch/xxx目录下的程序来构造和注册到内核,arch/xxx目录下的程序使用标准的...
2018-08-07 17:51:29
7874
2
原创 嵌入式linux中断浅解
本文简单理一下嵌入式linux对于ARM系列SoC的中断管理。 我将嵌入式linux的中断分为了3个级别,分别是: 1. CPU级: 嵌入式linux只使用了ARM的IRQ中断,当发生一个IRQ时,CPU会自动执行0x00000018(低端向量模式)或0xffff0018(高端向量模式)处的指令,此处一般放置了一条跳转指令b add...
2018-08-07 16:03:20
946
原创 Linux系统启动过程
注:袁帅+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 linux内核分析的第三课:Linux系统启动过程首先从计算机上电是说起,对于X86CPU,bios会首先把磁盘硬盘的第一个扇区的内容(即bootloader)读到内存,然后把CPU控制权交给
2017-03-11 16:05:53
691
去水印小程序源码.rar
2021-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人