С помощью протокола CAN можно подключить ведущий модуль XCP к ведомому модулю. Это позволяет использовать события и получать доступ к измерениям на подчиненном модуле.

В этом примере показано, как создать соединение канала CAN XCP и свойства канала доступа. В примере также показано, как разблокировать подчиненное устройство с помощью защиты начального ключа.
Доступ к файлу A2L, описывающему подчиненный модуль.
a2lfile = xcpA2L('C:\work\XCPSIM.a2l')a2lfile =
A2L with properties:
FileName: 'XCPSIM.a2l'
FilePath: 'C:\work\XCPSIM.a2l'
SlaveName: 'CPP'
ProtocolLayerInfo: [1×1 xcp.ProtocolLayerInfo]
DAQInfo: [1×1 xcp.DAQInfo]
TransportLayerCANInfo: [1×1 xcp.TransportLayerCANInfo]
TransportLayerUDPInfo: [1×1 xcp.TransportLayerUDPInfo]
TransportLayerTCPInfo: []
Events: {'Key T' '10 ms' '100ms' '1ms' 'FilterBypassDaq' 'FilterBypassSt'}
Measurements: {1×45 cell}
Characteristics: {1×16 cell}
EventInfo: [1×6 xcp.Event]
MeasurementInfo: [45×1 containers.Map]
CharacteristicInfo: [16×1 containers.Map]
AxisInfo: [1×1 containers.Map]
RecordLayouts: [41×1 containers.Map]
CompuMethods: [16×1 containers.Map]
CompuTabs: [0×1 containers.Map]
CompuVTabs: [2×1 containers.Map]Создайте канал XCP с использованием Vector virtual CAN channel 1.
xcpch = xcpChannel(a2lfile,'CAN','Vector','Virtual 1',1)
xcpch =
Channel with properties:
SlaveName: 'CPP'
A2LFileName: 'XCPSIM.a2l'
TransportLayer: 'CAN'
TransportLayerDevice: [1x1 struct]
SeedKeyDLL: []В этом примере показано, как настроить канал для разблокировки подчиненного устройства с помощью библиотеки DLL, содержащей алгоритм безопасности начального уровня и ключа, когда модуль заблокирован для операций стимуляции.
Создайте канал XCP и установите его SeedKeyDLL собственность.
xcpch.SeedKeyDLL = ('C:\work\SeedNKeyXcp.dll')xcpch =
Channel with properties:
SlaveName: 'CPP'
A2LFileName: 'XCPSIM.a2l'
TransportLayer: 'CAN'
TransportLayerDevice: [1x1 struct]
SeedKeyDLL: 'C:\work\SeedNKeyXcp.dll'