Main Content

can.Channel 属性

can.Channel 对象的属性

使用以下属性检查或配置 CAN 通道设置。使用 canChannel 创建一个 CAN 通道对象。使用 configBusSpeed 设置定时参数。

注意

并非所有位定时属性对所有供应商和协议模式都适用。请参阅位定时属性初始值

设备信息

全部展开

DeviceVendor 属性指示设备供应商的名称。

使用 canChannelj1939Channel 函数配置通道时,将自动定义值。

数据类型: char

此 属性 为只读。

对于 National Instruments™ 设备,Device 属性显示硬件上的设备编号。

对于所有其他供应商,Device 属性显示有关 CAN 或 J1939 通道所连接的设备类型的信息。

使用 canChannelj1939Channel 函数配置通道时,将自动定义值。

数据类型: char

此 属性 为只读。

DeviceChannelIndex 属性指示已配置指定的 CAN 或 J1939 通道的通道索引。

使用 canChannelj1939Channel 函数配置通道时,将自动定义值。

数据类型: double

此 属性 为只读。

DeviceSerialNumber 属性显示连接到 CAN 或 J1939 通道的设备的序列号。

使用 canChannelj1939Channel 函数配置通道时,将自动定义值。

数据类型: double | char

此 属性 为只读。

ProtocolMode 属性指示为 CAN 通道配置的通信协议,可以是 CANCAN FD

该值是在使用 canChannel 函数配置通道时定义的。

数据类型: char

状态信息

全部展开

此 属性 为只读。

Running 属性通过下列值指示 CAN 或 J1939 通道的状态:

  • false(默认值)- 通道处于离线状态。

  • true - 通道处于在线状态。

使用 start 函数将通道设置为在线状态。

数据类型: logical

此 属性 为只读。

MessagesAvailable 属性显示 CAN 通道可接收的报文总数。当没有可用报文时,该值为 0

数据类型: double

此 属性 为只读。

MessagesReceived 属性指示自上次启动通道以来收到的报文总数。当没有收到报文时,该值为 0,并随通道接收的报文数递增。

数据类型: double

此 属性 为只读。

MessagesTransmitted 属性指示自上次启动通道以来传输的报文总数。当没有发送报文时,默认值为 0,并随通道传输的报文数递增。

数据类型: double

MessageReceivedFcn 配置为在可用报文达到所需数量时运行的回调函数,指定为字符向量、字符串或函数句柄。

MessageReceivedFcnCount 属性定义要触发所配置的 MessageReceivedFcn 运行需要达到的可用报文数。

例如,如需指定要执行的回调函数,请键入:

canch.MessageReceivedFcn = @Myfunction;

数据类型: char | string | function_handle

MessageReceivedFcnCount 配置为触发 MessageReceivedFcn 回调函数所需达到的可用报文数。

默认值为 1。您可以为 MessageReceivedFcnCount 指定一个正整数。例如,要指定触发回调所需的报文计数,请键入:

canch.MessageReceivedFcnCount = 55;

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

此 属性 为只读。

InitializationAccess 属性根据下列值指示配置的 CAN 或 J1939 通道对象是否具有对设备通道的完全控制权限:

  • true - 具有对硬件通道的完全控制权限,可以更改属性值。

  • false - 不具有完全控制权限,不能更改属性值。

仅当对象具有对硬件通道的完全控制权限时,您才能更改硬件通道的某些属性值。

注意

只有在设备上创建的第一个通道会被授予初始化访问权限。

数据类型: logical

此 属性 为只读。

InitialTimestamp 属性指示通过 start 函数将通道设置为在线状态的时间或通道收到其启动触发信号的时间。对于 National Instruments 设备,该时间从设备驱动程序获得;对于其他供应商的设备,该时间从运行 MATLAB 的操作系统获得。

数据类型: datetime

此 属性 为只读。

指示报文接受过滤器的设置,以字符向量形式返回。此属性指示由函数 filterAllowOnlyfilterAllowAllfilterBlockAll 实现的设置。

示例: 'Standard ID Filter: Allow All | Extended ID Filter: Allow All'

数据类型: char

通道信息

全部展开

此 属性 为只读。

BusStatus 属性显示有关 CAN 总线或 J1939 总线状态的信息。

  • 'N/A' - 供应商不支持此属性。

  • 'ErrorActive' - 节点在检测到错误时传输主动报错标志。注意:此状态并不表示错误一定实际存在,而是指示错误是如何处理的。

  • 'ErrorPassive' - 节点在检测到错误时传输被动报错标志。

  • 'BusOff' - 节点不在总线上传输任何内容。

数据类型: char

根据下列值指定通道是否以静默方式运行:

  • false(默认值)- 通道处于正常或活动模式。在此模式下,通道既可以正常传输和接收报文,也可以在网络上执行其他任务,例如确认报文和创建错误帧。

  • true - 通道处于静默模式。您可以观察网络上的所有报文活动并执行分析,而不影响网络状态或行为。在此模式下,您只能接收报文而不能传输任何报文。

清除并重新创建 Kvaser 通道时,其 SilentMode 设置将保留。如果您在不支持 SilentMode 的设备上指定该模式,将会导致错误。

数据类型: logical

此 属性 为只读。

TransceiverName 指示设备收发机的名称。设备收发机将进出总线的数字位流转换为总线上存在的实际电信号。

数据类型: char

如果 CAN 或 J1939 收发机允许您控制其模式,则可以使用 TransceiverState 属性设置模式。

每种模式的数值属性值由收发机制造商定义。请参阅 CAN 收发机文档以了解适当的收发机模式。通过数值代表的可能模式有:

  • high speed

  • high voltage

  • sleep

  • wake up

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

此 属性 为只读。

ReceiveErrorCount 属性指示自上次启动通道以来报文接收期间的错误总数。默认值为 0,并随错误数递增。

数据类型: double

此 属性 为只读。

TransmitErrorCount 属性指示自上次启动通道以来报文传输期间的错误总数。默认值为 0,并随错误数递增。

数据类型: double

此 属性 为只读。

BusSpeed 属性指示传输报文的速度(位/秒)。默认值由供应商驱动程序分配。

您可以使用 configBusSpeed 函数将 BusSpeed 设置为支持的比特率,从而指定通道名称和比特率值作为输入参数。例如,要将 CAN 通道对象 canch 的总线速度更改为每秒 250,000 位并查看结果,请键入

configBusSpeed(canch,250000);
bs = canch.BusSpeed

数据类型: double

此 属性 为只读。

SJW 显示位时间段的同步跳转宽度。为了调整芯片上的总线时钟,控制器可以将位的长度缩短或延长整数个时间段。这些位时间调整的最大值称为同步跳转宽度或 SJW

注意

该属性不适用于 National Instruments CAN 设备。通道将显示 NaN 值。

数据类型: double

此 属性 为只读。

TSEG1TSEG2 属性分别指示通道重新同步或补偿网络延迟时间可延长和缩短采样时间的时间量(以位时间段为单位)。配置 CAN 通道的总线速度时,将继承该值。

注意

该属性不适用于 National Instruments CAN 设备。通道将显示 NaN 值。

数据类型: double

此 属性 为只读。

NumOfSamples 属性是位定时参数,它指示在网络中进行一次位读取时执行的位采样数。该值是基于通道的驱动程序设置的一个正整数。

注意

该属性不适用于 National Instruments CAN 设备。通道将显示 NaN 值。

数据类型: double

所选设备的仲裁总线速度,以每秒位数为单位。默认速度由所选设备分配。

所选设备的数据总线速度,以每秒位数为单位。默认速度由所选设备分配。

(仅限 PEAK-System。)指定仲裁比特率的预分频器。

指定仲裁同步跳转宽度(即重新同步时的位时间调整)的最大限制。该值必须为正整数,表示位时间量子段的数量。由所选的总线速度设置来确定默认值。

指定采样点之前的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 ArbitrationTSEG2 进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。

指定采样点后的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 ArbitrationTSEG1 进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。

(仅限 PEAK-System。)指定数据比特率的预分频器。

指定数据同步跳转宽度(即重新同步时的位时间调整)的最大限制。该值必须为正整数,表示位时间量子段的数量。由所选的总线速度设置来确定默认值。

指定采样点之前的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 DataTSEG2 进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。

指定采样点后的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 DataTSEG1 进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。

此 属性 为只读。

BusLoad 属性提供有关 Kvaser 设备上的报文流在 CAN 网络上形成的负载的信息。CAN 网络上的当前报文流表示为 0.00%100.00% 之间的一个百分比。

数据类型: double

OnboardTermination 属性指定 NI-XNET 设备是否使用其 CAN 总线的板载终端。有关特定设备的行为和特征的详细信息,请参阅其供应商文档。

数据类型: logical

StartTriggerTerminal 属性指定同步触发信号连接,以在连接的源终端上启动 NI-XNET 通道。

要配置 NI-XNET CAN 模块(例如 NI 9862)以在外部机箱终端提供的外部信号触发事件发生时开始数据采集,请将 CAN 通道 StartTriggerTerminal 属性设置为适当的终端名称。将 NI MAX 实用工具的机箱名称与触发信号终端名称进行组合,形成属性值字符向量;例如,'/cDAQ3/PFI0'

注意

此属性只能配置一次。分配完毕后,该属性即为只读,不能再更改。要将其设置为其他值,唯一的方法是对通道对象执行 clear,使用 canChannel 重新创建通道,并配置其属性。

示例

在终端 /cDAQ3/PFI0 上配置 NI-XNET CAN 模块启动触发信号。

ch1 = canChannel('NI','CAN1')
ch1.StartTriggerTerminal = '/cDAQ3/PFI0'
start(ch1)  % Acquisition begins on hardware trigger

使用硬件触发配置时,InitialTimestamp 值表示触发 CAN 通道采集的绝对时间。收到的 CAN 报文的 Timestamp 值相对于触发时刻。

ch1.InitialTimestamp
messages = receive(ch1,Inf);
messages(1).Timestamp

数据类型: char | string

其他信息

全部展开

Database 属性存储有关所连 CAN 数据库的信息。如果您的通道报文未连接到数据库,则属性值为空结构体 []。您可以编辑 CAN 通道的 Database 属性,但不能编辑 CAN 报文的 Database 属性。

要查看 CAN 报文所连数据库的相关信息,请键入:

message.Database

要将 CAN 通道上的数据库信息设置为 C:\Database.dbc,请键入:

channel.Database = canDatabase('C:\Database.dbc')

提示

包含非字母数字字符(如等号和 & 符号)的 CAN 数据库文件名与 Vehicle Network Toolbox™ 不兼容。您可以在数据库名称中使用句点。在使用任何 CAN 数据库文件之前,请使用非字母数字字符对其重命名。

数据类型: struct

使用 UserData 属性输入要存储在 CAN 报文或 J1939 参数组、通道或数据库对象中的自定义数据。保存指定了 UserData 的对象时,会自动保存自定义数据。加载指定了 UserData 的对象时,会自动加载自定义数据。

提示

使用 UserData 保存和加载对象时,为避免出现意外结果,请以简单数据类型和构造指定自定义数据。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell | function_handle | categorical | datetime | duration | calendarDuration | fi
复数支持:

提示

位定时属性初始值

下表指示总线速度和位定时属性的初始值或默认值,具体取决于供应商和协议模式。

协议模式供应商初始值
CAN

MathWorks

PEAK-System

NI-XNET

    BusSpeed: 500000

Vector

Kvaser

    BusSpeed: 500000
         SJW: 1
       TSEG1: 4
       TSEG2: 3
NumOfSamples: 1
CAN FD

MathWorks

NI-XNET

Kvaser

 ArbitrationBusSpeed: 500000
        DataBusSpeed: 2000000
Vector
 ArbitrationBusSpeed: 500000
      ArbitrationSJW: 2
    ArbitrationTSEG1: 6
    ArbitrationTSEG2: 3

        DataBusSpeed: 2000000
             DataSJW: 2
           DataTSEG1: 6
           DataTSEG2: 3
PEAK-System
ArbitrationPrescaler: 5
      ArbitrationSJW: 1
    ArbitrationTSEG1: 5
    ArbitrationTSEG2: 2

       DataPrescaler: 2
             DataSJW: 1
           DataTSEG1: 3
           DataTSEG2: 1

版本历史记录

在 R2009a 中推出