鼾声鼾语
汽车行业研发,人工智能领域及汽车电气自动化工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
autosar的alarm配置
Alarm报警,主要实现的是定时功能,在预定时间到达时候触发相关操作,例如:设置事件,激活任务,进行回调等操作,创建不同的OsAlarm原创 2021-07-21 14:14:27 · 1516 阅读 · 0 评论 -
操作系统的中断是什么?中断函数怎么调用的
中断函数是硬件或者操作系统自动调用的。。也就是说只要满足触发条件,就会自动调用中断函数(此时主函数是停止的)。当中断函数执行完毕,又返回主函数继续执行主函数。然后这样不断的循环,反正只要是触发中断的条件一满足。就会自动进入中断(前提是你的中断的配置是正确的)中断中断就是MCU停止当前的执行,做好现场保护。去临时执行中断要求的响应,返回通俗点就是:你正在图书馆看书,突然尿急了(中断条件满足,置位)。你要记下你在哪个位置,书看到多少页(现场保护),然后你去尿尿(响应中断),尿完了你不再有尿意(清原创 2021-07-15 16:04:46 · 4703 阅读 · 1 评论 -
在J1939中多帧数据如何发送,它是通过TP.CM_BAM和TP_DT报文发送
1,多帧报文是通过专门的多帧发送报文来传递发送的,其中常见的由DM1报文(故障读取的报文)RC报文(缓速器扭矩特性报告的报文)还由ETC7(AMT相关的报文)2,那么这些多帧是如何发送到总线上的?这个时候就要用到TP.CM_BAM和TP_DT报文了首先如果是单帧报文,那么他们用各自的ID直接发送到总线上如果是多帧数据就需要用到TP_DT了,例如:DM1多帧发送故障数据到总线,那么发送的过程是如下:首先发送TP.CM_BAM,其中包含的信息有:ID :18ECFF10 + Contro原创 2020-12-29 15:50:57 · 9356 阅读 · 9 评论 -
嵌入式底层实现思路:用程序刷写举例说明
1,下面详细阐述接受数据和发送数据的过程目前根据芯片的寄存器容量,我们将接受到的数据按照ID的不同,进行了划分,基本上就是一个ID对应一个寄存器,这个寄存器能够存储该ID的所有的数据。这种寄存器和收法数据一一对应的方式,在嵌入式的开发过程种,尤其是汽车行业还是比较流行的。2,CPU的执行利用任务调度器来实现任务的切换我们定义10ms轮询一次,即就是cpu进行轮询,去查看寄存器中的值是否有...原创 2020-03-05 09:32:54 · 620 阅读 · 0 评论 -
Rxjava实现车辆Can中的uds功能思路
1,之前我是用多线程+锁的方式来实现了UDS,但是这种方式不够简洁,所以现在提出了利用Rxjava来实现uds的方法2,Rxjava作为响应式编程的方法,在这一方面有一定的优势,但是也不是绝对优势,目前没有看到比较好的方法,只能自己写,通过rxjava响应式编程,可以替代多线程,而且在其中添加一些数据处理的函数也是特别的方便,首先说一下思路,实现的话可能要放到以后了:思路如下:observer+锁uds的实现:关于实现UDS应该有两个observable,第一个observable是主动发射数据,原创 2020-08-14 11:16:09 · 316 阅读 · 0 评论 -
autosar工具链讲解
CANdelaStudio——诊断需求定义工具,诊断协议开发软件 CANdelaStudio用于定义ECU的诊断功能,并且生成诊断数据库(CDD文件)来优化整个诊断开发过程,为“CANdela方法”提供了强力支持。 CANdelaStudio支持文档模板,可以满足不同厂商对同一个标准工具的各种特殊要求。在内容上一个文档模板对应于一种诊断.CANoe.Diva基于CANoe.DiVa的诊断协议、刷写和诊断应用的自动化测试,CANoe.Diva可以通过导入cdd或odx文件,自动生成全面的测试用例;再在CAN原创 2020-12-02 09:30:34 · 4023 阅读 · 0 评论 -
Autosar实战篇_配置工具的使用
Autosar项目工程名称:TC27x_Project11,文件目录介绍ld文件夹:运行时配置文件src\config文件夹:它包含所有模块的配置文件,比如:OSconfig、Xcpconfig、Mcalconfig、Comconfig等等src\config\OS_Cfg文件夹:它保存OS的配置文件config\Mcal_Cfg文件夹:它保存Mcal的配置文件2,开发常用配...原创 2019-04-10 10:45:13 · 14098 阅读 · 1 评论 -
autosar的ECUM讲解二
1,整个过程EcuM_Init->StartPreOS-> EcuM_CommonPreOS()(EcuM_AL_DriverInitZero和EcuM_AL_DriverInitOne做底层驱动初始化)->StartOS->Os_InitSystem()->( Os_InitTask()和Os_InitAlarm()等)->Task_Init,调用EcuM的EcuM_StartUp模块的EcuM_StartupTwo方法,初始化BswM_init();2,解释:原创 2021-08-28 18:19:10 · 1140 阅读 · 0 评论 -
汽车UDS工具链实现自动化测试
1,用can dela生成cdd文件即诊断数据库2,用diva生成测试用例3,用canoe软件工具以及硬件工具进行自动会测试,生成测试报告原创 2020-09-30 14:48:50 · 2171 阅读 · 1 评论 -
tp.cm和tp.dt报文说明,为什么计算的pgn不对,1939里的GPN如何计算,什么时候的报文没有目标地址。
ISO 11989只规定了CAN总线的物理层和链路层协议,在实际应用中,为保障不同厂家设备的兼容性,需要统一CAN总线的应用层协议。常见的应用层协议有:SAE J1939、CANOpen和DeviceNet。SAE J1939SAE J1939基于CAN2.0B,通信速率250kbit/s,最多可带30个设备,最大总线长度可达40 m,节点线最长1米。SAE J1939定义了29位Indentifier和数据域的使用方法。定义协议数据单元(PDU = Indentifier+数据域),PDU格式:原创 2021-02-19 18:49:11 · 2301 阅读 · 3 评论 -
1939中DM1故障解析PGN65226
DM1PGN65226ID:18FECAXXdm1中前两个字节规定了故障灯的状态,按照各种位去规定接下来的连续的三个字节规定了SPN 和FMI最后两个字节规定了:故障的SPN和FMI发送的方式是大端还是小端的方式 最后一个字节故障总次数说明:SPN和FMI对应了故障解析的DTC表,具体某一个SPN和FMI对应的灯的状态是什么,由主机厂自行定义,定义好DTC之后,再按照这个规则向前两个字节发送故障灯状态。...原创 2021-02-22 15:38:10 · 7381 阅读 · 0 评论 -
利用simulink的stm32工具箱开发需要注意的地方
1,注意输出后数据类型的转换,out需要时unit82,待补充原创 2021-03-19 14:36:57 · 292 阅读 · 0 评论 -
wait线程同步异常,Java中线程出现Exception in thread “Thread-0“ java.lang.IllegalMonitorStateException异常
Java中线程出现Exception in thread “Thread-0” java.lang.IllegalMonitorStateException异常修饰变量和修饰this的区别:1,synchronized修饰的变量不能改变其值,2,其他的作用是一样的,所以如果这个变量需要改变,我们尽量使用this好一点。修改上边这个问题,我们需要注释掉result++;或则用另外一种方式来写,如下:synchronized(this);...原创 2021-04-26 17:34:25 · 639 阅读 · 0 评论 -
UDS的DTC和J1939的SPN和FIM的区别
标准故障码字符所属系统00 P Powertrain 动力系统故障01 C Chassis 底盘故障10 B Body 车身故障11 U Network 网络故障DTC故障码表示是通过UDS请求,获取到的故障,服务是19,和参数读取其实类似的过程。这个时候替换掉U=11即可以得出136330365=U10 06 0B(十进制和十六进制的关系)J1939的SPN以及FMI码,是通过...原创 2020-02-24 17:41:08 · 11363 阅读 · 4 评论 -
pin和port的区别
pin翻译为引脚,port翻译为端口。看英文文献有点不懂两者区别,很容易混淆。尤其是在集成电路硬件中有何区别?当然也可以说说软件中有何不同?pin 是单个的. 如一个IC有32pin,那么就是32个引脚.port并非单个引脚. 如: USB port,那是4或5个引脚. 再来8bit的单片机,port A那是有8个引脚.这样举例,是否更清楚明了了呢?是否可以认为多个pin构成portKO以吧...原创 2021-03-10 14:08:16 · 11686 阅读 · 1 评论 -
自定义map的方法,能够实现了一个数据,对应多个字符,进行选择输出
测试代码: byte []bbbb=String2bits2("1111000011110000"); System.out.println(getStatus(bbbb));输出结果:EBC1_SA_00离线EBC2_SA_00离线EEC2_SA_00离线EEC2_SA_31离线EEC1_SA_00在线EEC1_SA_31在线TCO1_SA_EE在线TCO1_SA_17在线TSC1_SA_0B离线TSC1_SA_27离线TSC1_SA_2A离线TSC1_SA_31离原创 2021-04-21 16:56:44 · 172 阅读 · 0 评论 -
Autosar中的Ecum的功能讲解一
1,在main函数初始化ecu的时候,调用的就是EcuM的EcuM_StartUp模块的EcuM_Init。2,然后通过启动操作系统内核,初始化**(步骤6. Init os. )System_Init模块**,最后通过初始化Task_Init,调用EcuM的EcuM_StartUp模块的EcuM_StartupTwo方法,初始化BswM_init时序图如下: 总结:我们遵循电子控制的单元的整个初始序列,为了初始化ECU硬件,和外围驱动程序,ECU状态管理器模块被初始化,此外,EcuM首先执行明确定义原创 2021-08-28 15:46:54 · 900 阅读 · 0 评论 -
android和java实现uds的xml解析
1,xml文件,放的位置在Assets文件夹下,这个文件夹在main文件夹下<?xml version="1.0" encoding="utf-8"?><servicelist> <serviceisoft> <serviceName>10_DiagnosticSeesionControl</serviceName> <request>1003</request>原创 2021-03-29 16:06:11 · 448 阅读 · 0 评论 -
autosar的操作系统中的堆栈
数据结构中,堆 (数据结构):最小堆或者最大堆;栈:后进先出。操作系统上,只有栈的概念,没有堆的概念。栈用来记录过程调用、保存数据等。栈分内核栈和用户栈,用户栈就是下面3中所说的栈。编程语言层面(不管是汇编还是 C),栈是 esp 指向的内存区域,堆是程序 data 段的一部分。栈的作用还是「记录过程调用、保存数据」,堆的作用是保存栈中放不下的数据或者生命周期不固定的数据。堆是部分操作系统提供的特性,在 POSIX 中使用 sbrk / brk 系统调用实现。而栈是 CPU 提供的特性之一。...原创 2021-07-21 08:56:41 · 1070 阅读 · 0 评论 -
UDS的10诊断会话控制
(编程会话是不能够由默认会话跳转到编程会话的,只能由扩展会话跳转到编程会话。但ECU处于默认会话的时候,执行了10 02 编程会话的请求,ECU会回复7E NRC的否定响应。SID 1001:默认会话模式03:拓展会话模式02:编程会话模式...原创 2021-04-19 16:32:35 · 2416 阅读 · 1 评论 -
英飞凌cpu中断信号中包括哪些属性,autosar开发中的中断的讲解
TC275中:中断函数:优先级SRPN校验ECC、中断节点号SRN index中断服务函数:IFX_INTERRUPT(isr, vectabNum, prio)isr:ISR表示中断所在的地址vectabNum为向量表号,也就是cpu内核,275有3个内核所以该参数为0、1、2,通常取0即可;prio为优先级,0-255共有256个优先级,可以根据需要自行定义中断的配置在回头看一下中断的配置,中断的配置无非是配置SRC寄存器,包括中断优先级、中断服务者选择以及中断使能。其具体流程为:原创 2021-08-19 09:11:43 · 2772 阅读 · 0 评论 -
传统的cv算法和训练数据的自动驾驶工具链方法优缺点
自动驾驶工具链的优缺点:传统方法:传统cv的方法各种变态的case基本很难调到满意。数据训练:所以就有另外一种思路,直接标好数据,告诉机器想要什么,让机器去学,这就是机器学习的思路了。不过标记数据确实又很费功夫。跟做其他机器学习的项目其实有点像,你如果没有训练数据,暴力人工去撸规则是最快的,但只能解决一大部分case,corner case( 极端情况; 边界情况)基本都要跪。...原创 2021-12-06 11:37:12 · 606 阅读 · 0 评论 -
AutoSAR开发基础与实践(OS)1.1-OS基础模块
AutoSAR开发基础与实践(OS)1.1-OS元素交互一、AutosarOs操作系统的演化二、AutosarOs的基本类型三、AutosarOs模块配置项3.1、CoresNumber芯片核数量配置3.2、ScalabilityClass类型配置3.3、OSStatus状态返回3.4、OSHook异常返回3.5、StackMonitoring堆栈监控返回总目录一、AutosarOs操作系统的演化AUTOSAR OS的前身是OSEK OS,由于OSEK OS得到了业界的高度认可,所以在后来发展的AUT原创 2021-09-03 22:55:14 · 715 阅读 · 0 评论 -
AutoSAR开发基础与实践-前言
AutoSAR开发基础与实践-前言前言一、AutoSAR的背景和发展历程1,AutoSAR的合作伙伴及发展历史2,AutoSAR优势及框架结构二、涉及到的基础知识和工具1,基本编程语言及硬件基础知识2,AutoSAR开发需要用到工具三、收获学习及联系方式1、可以学习到的知识2、博主联系方式前言返回总目录目前整个国内汽车行业与国外相比,标准化、模块化、框架构建等还是很落后,国外的汽车品牌基本都已经使用了AutoSAR,ISO26262等,而国内还在起步阶段。本人一直从事汽车行业工作的研究与开发,之前零原创 2021-09-03 01:35:33 · 498 阅读 · 1 评论 -
AutoSAR开发基础与实践-总目录
AutoSAR开发基础与实践-总目录一、AutoSAR开发基础与实践-OS模块二、AutoSAR开发基础与实践-EcuM控制器管理模块(待更新)三、AutoSAR开发基础与实践-BswM基础软件管理模块(待更新)四、AutoSAR开发基础与实践-ComM通讯管理模块(待更新)五、AutoSAR开发基础与实践-Wdg看门狗模块(待更新)六、AutoSAR开发基础与实践-NVM内存管理模块(待更新)七、AutoSAR开发基础与实践-NetworkManagement网络管理模块(待更新)八、AutoSAR开发基原创 2021-09-03 00:01:21 · 495 阅读 · 0 评论