- 博客(27)
- 收藏
- 关注
原创 BootLoader—基于CAN的FBL详解
如果没有外部重编程请求,且APP有效,这时候就进入APP里的默认会话,在APP默认会话里请求10 03进入扩展会话,扩展也可以请求10 01进入默认会话,但是扩展会话请求10 02以后,就会把外部重编程位置1,也就是外部重编程有效,这时候再进行Reset操作,Reset相当于是一个开关,然后流程重新开始,外部重编程有效,进入BT里面的编程会话,就开始升级操作,升级完成后然后进行reset。如果没有外部重编程请求,再检查APP是否有效,如果APP有效,就跳到APP默认会话;#34 请求下载APP。
2025-12-02 23:01:33
467
原创 UDS诊断-31服务
在某些情况下2F服务的基本功能也是能够通过31服务来实现,可以理解2F实现的功能31服务均可以实现,不过如果能够用2F实现的功能来用31服务,未免大材小用,因此31服务则是用于更为复杂的输入输出控制场景。在技术员“扭动”所有受试系统线束接头时,间歇性的不断测试(尽可能快的)所有输入和输出信号。客户端通过将 suppressPosRspMsgIndicationBit(抑制肯定响应消息指示位)(子功能参数的第 7位)设置为“FALSE(假) ”(“0”)来请求响应消息。即有无sub-function的区别。
2025-12-01 22:30:35
687
原创 UDS诊断-28服务
绝大多数情况下应用在刷写ECU的过程中,即在预编程条件下执行28服务功能寻址便可以抑制总线应用报文与网络管理报文的发送与接收,释放CAN总线资源,确保诊断报文独占通信通道,提高ECU下载效率,同时刷写结束后也要执行28服务使能对应控制报文的发送与接收,在此过程中一般会配合85服务一起使用。看起来比较简单,格式比较固定,只要是Negative Response,第一字节就是0x7F,第二字节照抄原来的SID,第三个字节是错误响应码,指示具体错误响应的原因。要注意,第一个字节是由SID和0x40的和构成。
2025-11-30 21:39:45
930
原创 UDS诊断-85服务
85服务,即 ControlDTCSetting(控制 DTC 设置)服务,该服务用于停止或继续ECU中 DTC 状态位的更新(是否记录DTC)。可以使用 ControlDTCSetting(控制 DTC 设置)请求消息来停止个别ECU或一组ECU中 DTC 状态位的更新。只有当enable condition满足并且抑制DTC上报的开关为FALSE的情况下,上报的故障事件才能够得到进一步处理;Parameter可以是DID,可以是输入参数,可以是自定义的值,字节数视具体要求而定。
2025-11-24 22:35:19
389
原创 UDS诊断-10服务
除了发送请求可以使服务器切换会话,如果您进入了一个非默认会话的状态,一个定时器会运转,如果一段时间内没有请求,那么到时间(S3Server)后,诊断退回到默认会话01(最低权限)。NRC78:表示请求报文被正确接收到,请求报文中所有的参数均是有效的,但是所执行的动作未完成,ECU还未准备好接收另一个请求,返回否定响应NRC=0x78,同时启动一个定时器,在P2。UDS扩展会话(Extended Session)是UDS诊断协议中用于访问高权限诊断功能的会话模式,通过0x10服务激活,子功能代码为0x03。
2025-11-24 21:49:27
925
原创 SENT协议详解
与上一种情况不同的是,此情况下使用18帧SENT报文组合来传输附加信息,起始标志是Status/Com字段bit3连续为1111110,并且要求Status/Com字段bit3组合的第13和第18位都为0。12~768Ticks,早期的SENT协议无此字段或者一个固定长度Ticks,SENT2010之后,部分通过此功能可以动态调节TICKS的个数,实现整个SENT协议是同一个固定长度TICKS。,也就是确定数据的识别基数,ECU收到同步脉冲后,除以56,来识别后面的数据。,而Status/Com字段。
2025-10-29 23:13:06
848
原创 UDS诊断详解(一)UDS帧类型、NRC、常见服务
(在其他会话状态下进行的一些操作,比如安全解锁,扩展会话下请求#28服务禁止通信,只要一回到默认会话,在其他会话状态下进行的一些操作就不存在了,比如禁止通信就不存在了)上电/远程ECU初始化后,完成初始化的ECU默认启动默认会话模式,在其他会话状态(扩展会话、编程会话),如果需要保持在扩展/编程会话,需要通过3E服务去保持,如果3E服务超时(相当于刷新定时器的作用),会自动跳回到默认会话,默认会话下不需要任何诊断应用程序的在线服务(#3E)保持此模式激活——相当于基础状态;寻址这指的是消息传输的方式。
2025-09-07 20:47:56
883
原创 CAN总线详解(四)CANFD报文结构
此外,基于CANFD的ECU相对于传统CAN的ECU,在硬件方面的改动较小,首先CANFD沿用改动较小的CAN的物理层,同样使用双绞线通信,物理电平与数字信号的转换与传统高速CAN的物理层是一致的,如果原先的CAN的收发器,它能够支持较高速率通信的话,就不需要进行更换,而CANFD在协议层面与传统的CAN有所变动,这是。,FD报文中CRC场的长度和校验内容与传统CAN是不相同的,首先,由于CANFD报文中数据场的长度有很大的变化区间,CANFD会根据数据场长度的变化而使用不同的CRC校验公式,
2025-08-25 23:48:41
2701
原创 CAN总线详解(五)CAN总线错误检测机制
*处于主动错误状态的节点其实就是正常工作的状态**,可以该发发,该收收,没有任何影响,但是**对于处于被动状态的发送节点,在CAN协议里面规定,是不允许在3个bit的帧间隔之后总线进入空闲,必须要额外等待8个bit的延迟之后,才允许往总线上发送数据**,所以对于一个被动错误状态的节点,在这8个bit的等待过程中,如果有其他主动节点请求访问总线,这个主动节点就会优先发送数据,这也相当于对进入被动错误状态节点的一个小小的惩罚措施,毕竟当一个节点进入被动错误状态,或多或少说明这个节点存在一些问题。
2025-08-24 22:55:49
1664
原创 CAN总线详解(二)位定时、位同步机制
位时间为100ns(一个bit的时间,波特率的倒数,包含同步段、传播段、相位缓冲段),Tq为100ns(CAN时钟的周期),即每个bit为10个Tq,而同步段固定为1个tq,由于CRA的建议,一般采样点配置在75%~80%的位置,其余的位定时参数根据它们的范围和要求进行取值,传播段至少应为延迟的两倍,我们设置为6Tq,相位缓冲段1为1个Tq,相位缓冲段2为2个Tq,SJW为1个Tq,这样就可以控制采样点的位置是位时间的80%并且取值在合理的范围内。,则冲突信号或应答信号的最大往返时间为2t。
2025-08-19 23:46:56
1451
原创 逻辑电平转换技术详解
D1和D2两个二极管起到了钳位的作用,它既可以抑制输入端出现的负极性脉冲,又能限制电流,起到保护作用,TTL逻辑电路的优点是速度快,但有一个缺点使它无法大规模集成,那就是三极管的静态电流损耗非常大。下图是一个CMOS与非门,它的作用和上面讲的TTL与非门一摸一样,它里面的半导体器件都是MOS管,因为MOS管的静态功耗几乎接近于0,所以它可以在芯片里面大规模集成。,下图是一个RTL与非门电路,只有在两个三极管同时导通时,它的输出才是0,否则它的输出为1,但是。当T5导通,T4截止时,Y输出的为低电平,
2025-07-11 23:49:13
723
原创 MOS管的工作原理详解
所谓N沟道,就是N型半导体之间的沟道,由于此时N沟道取代了原来P型半导体中的空穴,使得原来半导体之间的PN结不复存在,为了便于理解,此时我们可以把这个区域看作一整块N型半导体,所以在栅极施加电压之后,它就导通了,当我们把栅极电压去掉,N沟道就消失了,此时MOS管必然会截止。,这是因为有绝缘层的存在,它几乎完全关闭了电子的通道,造成它的输入电阻可达上亿欧姆,所以说它的输入几乎无电流,这就是为什么现在的芯片内部集成的几乎都是MOS管。,所有的NMOS都有,这是制造工艺的问题,无法避免,
2025-07-08 22:25:16
5919
原创 SPI中FIFO和双缓冲区的应用分析
SPI通信中,FIFO(先进先出队列)和双缓冲区(Double Buffering)是两种不同的数据缓冲机制,其选择取决于具体应用场景、硬件支持及性能需求。高吞吐量:支持连续大数据传输,例如GD32H7的SPI FIFO深度达16级,可缓存16*32位数据,避免数据丢失。不支持全双工:部分SPI控制器(如F2833x)的发送操作不支持双缓冲,需等待当前数据发送完成才能写入新数据。双缓冲+FIFO:在DMA传输中,双缓冲管理DMA缓冲区,FIFO管理SPI控制器内部数据流,实现高效协同。
2025-04-23 22:54:15
645
原创 SPI中的FIFO模式特点
在SPI的FIFO模式中,传输和接收是同时进行的,这是由SPI的全双工协议和FIFO的缓冲机制共同实现的。在SPI(串行外围设备接口)中,FIFO模式的传输和接收是同时进行的,这时由SPI协议的全双工特性和FIFO的工作机制共同决定的。跨时钟域问题:在异步系统中,需使用异步FIFO(如格雷码同步)协调不同时钟域的数据传输,但SPI本身通常运行在同一时钟域下,无需额外处理。例如,在GR55xx芯片的SPI/QSPI模块中,DMA可以同时处理发送FIFO的数据写入和接收FIFO的数据读取,实现高效的数据流。
2025-04-22 22:09:16
790
原创 波特率发生器的工作原理详解
接着,分频器根据预设的参数对原始时钟信号进行分频处理,生成符合特定波特率要求的时钟信号;最后,控制器对生成的时钟信号进行实时监控和调整,以确保其稳定性和准确性。**在整个过程中,波特率发生器需要不断根据外部环境的变化进行调整和优化,以确保通信的顺畅进行。波特率发生器的主要功能就是产生稳定且精确的时钟信号,以确保数据在传输过程中保持恒定的速率。振荡器负责产生原始的时钟信号,分频器则根据需要将原始时钟信号进行分频,以产生符合特定波特率要求的时钟信号。总结来说,波特率发生器是确保数据通信稳定可靠的关键组件。
2025-04-20 21:20:29
370
原创 锁相环基本工作原理
锁相环(Phase-Locked Loop,PLL)是一个能够比较输出与输入相位差的反馈系统,利用外部输入的参考信号控制环路内部震荡信号的频率和相位,使震荡信号同步至参考信号
2025-04-10 22:42:24
1022
2
原创 奇偶校验、CRC校验原理详解
随着技术的发展,更复杂的错误检测和纠正算法被开发出来,但奇偶校验仍然是计算机科学教育和初级通信系统中的重要组成部分。2、无纠错能力:奇偶校验只能检测错误,但不能确定错误的具体位置,更不能修正错误,需要更高级的错误检测和纠正方法(如CRC、Hamming码等)。2、接收方:重新计算校验位,并与接收到的校验位比对。1、无法检测多位错误:奇偶校验无法有效检测两位或多位的错误,因为两个错误可能会互相抵消,使得校验位看起来仍然正确。两维奇偶校验:在数据块的每行和每列都进行奇偶校验,能提供更强的错误检测能力。
2025-04-06 20:14:54
941
原创 FIFO模式及其作用
FIFO设置读,写地址指针,FIFO初始化的时候 读指针和写指针都指向地址为0的位置, 当往FIFO里面每写一个数据,写地址指针自动加1指向下一个要写入的地址。其实可以把FIFO比作一个单向行驶的隧道,隧道两端都有一个门进行控制,FIFO宽度就是这个隧道单向有几个车道,FIFO的深度就是一个车道能容纳多少辆车,当隧道内停满车辆时,这就是FIFO的写满状态,当隧道内没有一辆车时,这便是FIFO的读空状态。同步FIFO在实际应用中比较少见,常用的是异步FIFO,但基于学习的目的,下文对两种FIFO都进行讲解。
2025-04-01 21:56:17
1183
原创 SPI通信协议详解
SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线。采用同步、全双工的通信方式,有四根通信线,分别为SCK(串行时钟线)、MOSI(主机输出,从机输入)、MISO(主机输入,从机输出)、SS(从机选择)。通信方式简介:MOSI和MISO,就是分别用于发送和接收的两条线路。
2025-03-13 21:53:08
3045
转载 二进制如何转十进制,十进制如何转二进制
转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;1、 正整数转成二进制。要点一定一定要记住哈:除二取余,然后倒序排列,高位补零。 也就是说,将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就OK咧。哎呀,还是举例说明吧,比如42转换为二进制,如图1所示操作。42除以2得到的余数分别为010101,然后咱们倒着排一下,42所对应二进制就是101010.如图2所示更直观的表达。计算机内部表示数的
2021-09-14 23:28:36
4212
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅