对于总线负载,主要考虑传输信号的数目相比总线带宽。总之,XCP驱动容易实现,而且仅需要很少的几个变量。

事件驱动的周期性数据采集

ECU在离散的时间间隔上运行。可以将这样的一个时间间隔长度固定(比如10ms),或者定义其依赖于某种事件(比如发动机转一圈)。在固定时间间隔的情况下,时间片的结束是以定时器的溢出来标记的。从广义上讲,这种定时器溢出也是一个事件。ECU的任务是在一个特定的时间片内完成所有的计算和控制任务。为了从XCP从设备中获取相关的数据信息,使用了XCP协议中的DAQ机制。在该机制中,在测量开始前XCP主设备会先通知XCP从设备:特定的事件发生时需要测量哪些信号。如果现在事件发生了(如10ms定时器溢出),XCP从设备就从内存中读取这些先前定义的数据,并且将他们拷贝到受保护的RAM区,然后通过消息的方式发送给XCP主设备。这保证了数据值来自同一事件循环并且是相关的。

XCP主设备接收带有时戳的数据并且将其保存在相应的测量文件中。时戳要么通过XCP从设备作为数据发送,要么分配到消息中通过硬件接口(比如CANcardXL)发送。在测量文件中,所有数据参考XCP主设备的时间基准进行同步,然后被进一步处理,例如在一个统一的时间轴上对测量数据进行可视化显示(图5)。这就允许在一张图中一致地显示不同XCP从设备的多个数据通道。

图5 在同一个时间轴上显示不同信号源的各种信号

除了前面已经提到的XCP相对于CCP的优点,XCP还支持所谓的冷启动测量和用于循环数据采集的任务的内部ECU时戳。在冷启动测量中,可以配置ECU让它在被激活后就立即周期性地发送数据,而XCP主设备不需要明确地初始化该功能。如果使用了内部ECU时戳,该时戳就不是在测量和标定系统中与后期评估相关的数据接收时间了,而是在XCP从设备中数据被创建的时刻。这样就消除了由于传输延迟而引起的不确定性(比如在总线带宽不足或者高负载情况下都会产生)。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查