标定和测量应用的焦点XCP
时间:09-17
来源:互联网
点击:
通用、可扩展并节约资源
一个,并且是同一个XCP驱动代码可以应用于所有的通信过程。它可以用于从低端控制器和接口发送仅仅几个字节的数据,比如集成了串行接口的8位处理器。同样的代码也可用于通过高速的网络(比如以太网)使用32位处理器发送兆字节量级的数据。XCP驱动是由强制功能和可选功能组成的,驱动的大小可以根据可用的ROM/Flash的大小进行调整。在ECU中,通过是否具有高数据吞吐量或低处理器负载和RAM尺寸来表征资源用量。
对于总线负载,主要考虑传输信号的数目相比总线带宽。总之,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从设备中数据被创建的时刻。这样就消除了由于传输延迟而引起的不确定性(比如在总线带宽不足或者高负载情况下都会产生)。
优化特性曲线和特性图
除了基于数学模型的控制算法,ECU还要使用由离散插值点组成的特性曲线和特性图。为了达到预期的系统行为,通常通过试验方法(比如台架试验)建立和优化这些特性值表。A2L文件是用来描述测量变量和标定参数的。描述的选项覆盖了从简单标量参数到复杂数值表的范围。其中,描述内容包含了数据类型、原始值和物理值间的转换规则、特性map图的存储方案以及更多的功能。Vector Informatik公司提供的CANape及类似的高性能标定工具可以在屏幕上通过图形图表或数值表格的方式清晰地显示特性曲线和map图。
使用CANape和XCP进行快速原型
在ECU开发过程中,经常会频繁地将重要功能导出到外部仿真系统,这样可以花最小的代价来计算这些功能。直到仿真模型中的算法达到一定的成熟度,开发者才会从这些算法生成代码,这些代码可与其它ECU代码一起编译并烧写到ECU中。然而,在此之前,可以使用一种被称作“旁通”的技术(该技术耦合了真实ECU及其模型),通过旁通可以在开发初期不依赖硬件进行测试和优化工作。
在使用XCP的旁通技术中,XCP主设备使用DAQ从ECU中读取数据,将这些数据作为输入值发给模型并且使用STIM将模型返回的结果发送回ECU。值得注意的是,使用运行MCD工具CANape的普通PC机平台就足以满足旁通和建模的要求。这是个好消息,因为基于特殊实时硬件的解决方案可能会贵好多倍,而且在开发部门中这类设备也可能为数不多。CANape作为一个高度优化的XCP主设备,可以同时处理与真实ECU的通信和与在PC上运行的模型之间的通信(图6)。ECU参数和模型参数都可通过CANape和XCP进行标定。
通过XCP进行flash编程
XCP同样为进行ECU编程的用户提供了便利。ECU flash内存中的数据只能使用特殊的预定的flash程序进行改写,这些预定的程序也必须驻留在ECU中。原则上,可使用两种方法:第一种方案,flash程序被永久存储在flash中;首先,这样会浪费内存,其次会遇到交付车辆的安全问题。第二种方案,在需要重新编程的时候,仅使用PC工具通过XCP将flash内核下载到微控制器的RAM中。除了包含用于擦除flash内存和重写数据的flash程序外,flash内核也包含自己的总线和SCP驱动,它们用于通过总线接口与PC工具进行通信。
一个,并且是同一个XCP驱动代码可以应用于所有的通信过程。它可以用于从低端控制器和接口发送仅仅几个字节的数据,比如集成了串行接口的8位处理器。同样的代码也可用于通过高速的网络(比如以太网)使用32位处理器发送兆字节量级的数据。XCP驱动是由强制功能和可选功能组成的,驱动的大小可以根据可用的ROM/Flash的大小进行调整。在ECU中,通过是否具有高数据吞吐量或低处理器负载和RAM尺寸来表征资源用量。
对于总线负载,主要考虑传输信号的数目相比总线带宽。总之,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从设备中数据被创建的时刻。这样就消除了由于传输延迟而引起的不确定性(比如在总线带宽不足或者高负载情况下都会产生)。
优化特性曲线和特性图
除了基于数学模型的控制算法,ECU还要使用由离散插值点组成的特性曲线和特性图。为了达到预期的系统行为,通常通过试验方法(比如台架试验)建立和优化这些特性值表。A2L文件是用来描述测量变量和标定参数的。描述的选项覆盖了从简单标量参数到复杂数值表的范围。其中,描述内容包含了数据类型、原始值和物理值间的转换规则、特性map图的存储方案以及更多的功能。Vector Informatik公司提供的CANape及类似的高性能标定工具可以在屏幕上通过图形图表或数值表格的方式清晰地显示特性曲线和map图。
使用CANape和XCP进行快速原型
在ECU开发过程中,经常会频繁地将重要功能导出到外部仿真系统,这样可以花最小的代价来计算这些功能。直到仿真模型中的算法达到一定的成熟度,开发者才会从这些算法生成代码,这些代码可与其它ECU代码一起编译并烧写到ECU中。然而,在此之前,可以使用一种被称作“旁通”的技术(该技术耦合了真实ECU及其模型),通过旁通可以在开发初期不依赖硬件进行测试和优化工作。
在使用XCP的旁通技术中,XCP主设备使用DAQ从ECU中读取数据,将这些数据作为输入值发给模型并且使用STIM将模型返回的结果发送回ECU。值得注意的是,使用运行MCD工具CANape的普通PC机平台就足以满足旁通和建模的要求。这是个好消息,因为基于特殊实时硬件的解决方案可能会贵好多倍,而且在开发部门中这类设备也可能为数不多。CANape作为一个高度优化的XCP主设备,可以同时处理与真实ECU的通信和与在PC上运行的模型之间的通信(图6)。ECU参数和模型参数都可通过CANape和XCP进行标定。
通过XCP进行flash编程
XCP同样为进行ECU编程的用户提供了便利。ECU flash内存中的数据只能使用特殊的预定的flash程序进行改写,这些预定的程序也必须驻留在ECU中。原则上,可使用两种方法:第一种方案,flash程序被永久存储在flash中;首先,这样会浪费内存,其次会遇到交付车辆的安全问题。第二种方案,在需要重新编程的时候,仅使用PC工具通过XCP将flash内核下载到微控制器的RAM中。除了包含用于擦除flash内存和重写数据的flash程序外,flash内核也包含自己的总线和SCP驱动,它们用于通过总线接口与PC工具进行通信。
- CAN总线系统测试技术(05-11)
- 可以处理6.4Gbps以上数据率的创新型串行总线测试方法(06-23)
- 基于CAN总线的GaAs光电阴极制备测控系统(07-27)
- 基于LabVIEW的智能开关综合保护装置的数据获取与处理(03-09)
- 基于1一Wire总线的嵌入式测温系统设计(04-08)
- 单片机系统RAM的测试方法研究(07-12)