车载以太网 - SomeIP - SomeIP-SD订阅&应答 - 08

        前面已经说到服务的查找和服务的提供,在两个ECU互相知道各自的需求和提供的服务后,那我们如果想要在Server端的服务数据变化后或者周期的传递对应信息给Client,这个将如何实现呢?如果以类似于CAN信号的广播形式发送,这将占用很大带宽,无法达到理想的效果;而今天我们要介绍的订阅功能将很好的解决这个问题;通过订阅将Server和Client绑定,这样就能够使用专用的连接将需要的信息进行传递,下面我们就来一起看下。

Subscribe Service - 订阅服务 

 报文结构

        相较于服务提供,我们看下差异点:

1、Entry Type:在服务提供中值为0x01,而订阅服务中的值为0x06

2、Entry Minor Version:在服务提供报文中占用4个byte;在订阅服务中使用Entry Resvered、Entry Counter、Entry EventGroup代替;

3、Entry Resvered:服务订阅专有,默认值使用00

4、En

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CAPL仿真是一种基于Vector公司的CANoe工具,用于独立自主的编写仿真环境的脚本语言工具。而SomeIP是一种常见的用于络通讯的协议。因此,本文将会介绍如何使用CAPL仿真来实现SomeIP SD的相关功能。 首先,针对SomeIP SD的特性,我们可以设计出如下的代码框架: on start { // SomeIP SD Initialization } on timer 1 ms { // Message sending and receiving } 根据这个框架,我们可以编写相应的CAPL脚本程序,实现SomeIP SD的仿真。 在实现SomeIP SD Initialization的过程中,我们需要定义相应的SomeIP SD报文。例如: message ETHERNET_FRAMES txFrame; txFrame.FRAME_ID = 0x3EB; txFrame.LENGTH = 9; txFrame.DATA = "\x00\x00\x00\x00\x00\x00\x00\x00\x00"; 使用以上代码,我们可以定义一条长度为9字节的框架报文,并将其发送出去。 对于如何实现Message sending and receiving的功能,我们可以使用以下的代码: message ETHERNET_FRAMES rxFrame; if (CANoe_GetValue("SysTimingTest.Testcases_StartStopValues.vehicleSpeed", &value) == 1) { // Message receiving } if (this.simTime > myLastMsgTime + 100) { // Message sending } 使用以上代码,我们可以通过CANoe的时间同步机制来实时获取车速数据,并进行SomeIP SD协议的消息收发。 总之,通过使用CAPL仿真技术,我们可以在CANoe系统中实现SomeIP SD协议相关的仿真测试,验证相应的程序算法、模型和硬件电路设计等方面的可行性和有效性,因此可以提高产品的可靠性和稳定性,同时也能节约开发时间和开发成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值