诊断中P2,P2*与S3三类定时器的介绍与总结

本文介绍了汽车诊断中P2定时器(P2CAN_Client, P2CAN_Server)与S3定时器的工作原理。在不同会话模式下,这些定时器控制着ECU与诊断仪之间的通信时序。例如,P2CAN_Client用于限制诊断仪等待ECU响应的时间,而S3定时器则确保ECU在非默认会话中维持连接。P3定时器则涉及到相邻两条报文的发送间隔。" 132792479,18206272,Vuex模块化管理:创建与拆分进阶实践,"['前端', 'javascript', 'vue.js', 'Vuex模块', '状态管理']
摘要由CSDN通过智能技术生成

个人总结,有问题的地方欢迎指正

一、P2定时器——P2CAN_Client,P2CAN_Server,S3

1、DefaultSession下采用物理寻址

  1. P2CAN_Client是用于诊断仪的定时器
    图1-P2CAN_Client 与 P2CAN_Server 定时器实现过程

P2CAN_Client:从诊断仪发送完一条完整的请求后,开启该定时器,诊断仪应在该定时器定时时间内接受到从ECU传输过来的相应。若在该定时器timeout前就接受到了ECU的响应报文,那么该定时器停止计时。
若ECU响应为单帧,诊断仪应接收完完整的一帧响应报文后P2CAN_Client定时器stop;
若ECU响应为多帧响应,诊断仪应接受完完整的一帧首帧报文后P2CAN_Client定时器stop;

  1. P2CAN_Server是用于ECU的定时器

P2CAN_Server:从ECU接收完一帧完整的请求后,开启该定时器,且ECU应在该定时器定时时间内发送响应报文。如果在该定时器timeout前ECU就开始发送响应报文,那么该定时器在ECU开始发送响应报文的时候停止计时。

步骤e的说明:对于多帧传输,在P2CAN_Server时间内应开始传输第一帧,对于单帧传输,在该定时器时间内,应该开始传输响应报文。

  • 41
    点赞
  • 204
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
以下是基于51单片机的TCS3200颜色识别传感器代码,不使用定时器实现: ``` #include <reg52.h> #include <stdio.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define S2 P2_1 #define S3 P2_0 #define OUT P3_2 sbit led = P1^0; // 用于指示程序是否正常运行 // 函数声明 void delay(uint t); void init(); uchar get_color(); void main() { uchar color; init(); led = 1; // 程序正常运行指示灯亮起 while (1) { color = get_color(); switch (color) { case 1: // 红色 // do something break; case 2: // 绿色 // do something break; case 3: // 蓝色 // do something break; case 4: // 白色 // do something break; default: // do something break; } } } // 延时函数 void delay(uint t) { uint i,j; for (i=0; i<t; i++) for (j=0; j<120; j++); } // 初始化TCS3200传感器 void init() { P2 = 0x03; // 初始状态下,S2和S3都为低电平,选择输出频率为2%。 P3 = 0xFB; // OUT引脚初始为高电平 } // 获取颜色 uchar get_color() { uchar color; S2 = 0; // 输出频率为2% S3 = 0; delay(10); // 延时等待传感器稳定 OUT = 1; // 开始采集 delay(100); // 等待采集完成 OUT = 0; // 停止采集 S2 = 1; // 输出频率为20% S3 = 1; delay(10); // 延时等待传感器稳定 OUT = 1; // 开始采集 delay(100); // 等待采集完成 OUT = 0; // 停止采集 P2 = 0x03; // 恢复初始状态 P3 = 0xFB; color = P1 & 0x07; // 取低三位,判断颜色 return color; } ``` 该程序,使用P2.0和P2.1两个端口控制TCS3200传感器的输出频率,并使用P3.2读取传感器输出的颜色值。程序通过交替设置传感器输出频率为2%和20%来完成颜色采集,不使用定时器。程序的delay()函数可以根据实际情况进行调整,以保证采集的数据准确性。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值