普通的网络管理有很多人已经讲过了,配置也比较简单,PNC网络管理,也称之为局部网络管理,稍微复杂一些,CSDN里面很多讲这个的都收费,而且都是基于ETAS工具的,无奈只能硬着头皮自己配置了一遍,下面把自己配置过程分享给大家,工具有一部分是不能自动生成的,需要手动去建相关的PDU,先也要弄清楚各个模块的逻辑关系:
各个模块之间的数据交互图:
从图中可以看出,网络管理报文比普通报文中间多了一个CanNM模块,CanNm需要跟PduR进行交互,但是导入DBC后,发送的路径是完整的,工具能够自动生成,接收的CanNM跟PduR交互不起来,这时候就需要自己去创建相关的IPDU了,主要的难点也在这里,很多人会卡在这里不知道怎么弄,工具其实是不会给你自动生成的,好了,讲了一下主要的坑点,下面就讲一下怎么一步一步配置PNC网络管理.
第一步,需要创建网络管理报文,Byte0和Byte1是普通的网络管理一样的,PNC网络管理重点在Uer data这几个字节
图都是网上获取过来的,懒得去重新画了,把重点放在怎么一步一步创建上来,首先修改DBC,创建两个网络管理报文,一收一发:
修改报文属性,有的CanDela里面没有NmAsrMessage属性,需要自己去添加,怎么添加,网上搜索一下,很简单的,还有网络管理相关的参数也需要添加,可以参考达芬奇里面的帮助文档,网络管理对DBC的要求,一条一条的添加即可我们是用于测试的,报文就随便建了一个,发送和接收一样的,PNC相关的UserData占用3个字节,这个后续配置时是有用到的
导入DBC后,达芬奇工具会自动生成相关模块的基础配置,就是给你当做普通的网络管理来成成,PNC相关的,需要自己手动去修改配置项:红色框是需要自己手动去配置的
Pn Eira Rx NSdu Ref这个选项里面的报文需要自己去EcuC里面创建,发送和接收都需要建,注意长度要跟dbc里面的匹配,我们前面说了PNC相关的UserData是3个字节,这里面长度设置成3,发送和接收都是一样的。
打开Pn开关,网关的和非网关的不一样,详细不同可以参考其它文章
创建CanNmPnInfo,Pn Info Length为DBC中创建的,设置为3,Pn Info Offset偏移量为2,意思是Pn信息是整个报文的第3个字节开始,就是Pn信息在DBC中位置,前面Ecu创建的报文长度要跟这里匹配,否则会报错。
设置MaskByte,这个需要跟用户需求匹配,看你的PN信息需要取哪些位置的
到此为止,CanNM里面的东西设置完成,下面就看Com里面设置,PDUR收到以后,要往Com送,所以Com里面也得建一个报文,先建ComSignals,长度会自动生成是24,这条报文也是CanNm模块里面关联的报文,
然后再把创建的信号关联到ComIPdus上,后面PDUR会传到这个上面
Com模块配置已经完成,最后,需要配置PDUR模块,需要把CanNM<->PDUR<->Com这个双向路径打通,导入DBC它只自动生成到了CAN->CANif->CanNM,所以这一通路需要我们自行创建打通。发送路径会自动给你生成,我们只需要把接收路径打通就行,只需要在路由表里面创建一条报文即可。
至此,所有配置基本完成,其实主要就是要打通上面的路由路径就可以了,不知道为什么导入后不自动生成接收路径,需要自己去创建,这就增加了配置的难点,配置完成后,可以到Network Management里面去检查一下,看看路径是不是都通的。
补充一点,ComM还需要配置,就是关联两个创建的信号:
接收是我们创建的报文,需要关联进来
发送是自动生成的报文,也需要关联
所有的配置应该都齐活了,收费的内容太多了,找不到免费的,只能自己动手,丰衣足食了,给同行的伙伴们一点参考,不对的地方,还请指正。