can.Channel 属性
can.Channel
对象的属性
使用以下属性检查或配置 CAN 通道设置。使用 canChannel
创建一个 CAN 通道对象。使用 configBusSpeed
设置定时参数。
注意
并非所有位定时属性对所有供应商和协议模式都适用。请参阅位定时属性初始值。
设备信息
DeviceVendor
— 设备供应商名称
字符向量
Device
— 通道设备类型
字符向量
此 属性 为只读。
对于 National Instruments™ 设备,Device
属性显示硬件上的设备编号。
对于所有其他供应商,Device
属性显示有关 CAN 或 J1939 通道所连接的设备类型的信息。
使用 canChannel
或 j1939Channel
函数配置通道时,将自动定义值。
数据类型: char
DeviceChannelIndex
— 设备通道索引
双精度值
此 属性 为只读。
DeviceChannelIndex
属性指示已配置指定的 CAN 或 J1939 通道的通道索引。
使用 canChannel
或 j1939Channel
函数配置通道时,将自动定义值。
数据类型: double
DeviceSerialNumber
— 设备序列号
双精度值 | 字符
此 属性 为只读。
DeviceSerialNumber
属性显示连接到 CAN 或 J1939 通道的设备的序列号。
使用 canChannel
或 j1939Channel
函数配置通道时,将自动定义值。
数据类型: double
| char
ProtocolMode
— CAN 通道的协议模式
'CAN'
(默认) | 'CAN FD'
此 属性 为只读。
ProtocolMode
属性指示为 CAN 通道配置的通信协议,可以是 CAN
或 CAN FD
。
该值是在使用 canChannel
函数配置通道时定义的。
数据类型: char
状态信息
Running
— 指示通道的运行状态
false
(0
) | true
(1
)
此 属性 为只读。
Running
属性通过下列值指示 CAN 或 J1939 通道的状态:
false
(默认值)- 通道处于离线状态。true
- 通道处于在线状态。
使用 start
函数将通道设置为在线状态。
数据类型: logical
MessagesAvailable
— CAN 通道可接收的报文数
双精度值
此 属性 为只读。
MessagesAvailable
属性显示 CAN 通道可接收的报文总数。当没有可用报文时,该值为 0
。
数据类型: double
MessagesReceived
— CAN 通道接收的报文数
双精度值
此 属性 为只读。
MessagesReceived
属性指示自上次启动通道以来收到的报文总数。当没有收到报文时,该值为 0
,并随通道接收的报文数递增。
数据类型: double
MessagesTransmitted
— CAN 通道传输的报文数
双精度值
此 属性 为只读。
MessagesTransmitted
属性指示自上次启动通道以来传输的报文总数。当没有发送报文时,默认值为 0
,并随通道传输的报文数递增。
数据类型: double
MessageReceivedFcn
— 报文可用时运行的回调函数
函数句柄 | 字符 | 字符串
将 MessageReceivedFcn
配置为在可用报文达到所需数量时运行的回调函数,指定为字符向量、字符串或函数句柄。
MessageReceivedFcnCount
属性定义要触发所配置的 MessageReceivedFcn
运行需要达到的可用报文数。
例如,如需指定要执行的回调函数,请键入:
canch.MessageReceivedFcn = @Myfunction;
数据类型: char
| string
| function_handle
MessageReceivedFcnCount
— 指定触发回调需要达到的可用报文数
数值
将 MessageReceivedFcnCount
配置为触发 MessageReceivedFcn
回调函数所需达到的可用报文数。
默认值为 1
。您可以为 MessageReceivedFcnCount
指定一个正整数。例如,要指定触发回调所需的报文计数,请键入:
canch.MessageReceivedFcnCount = 55;
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
InitializationAccess
— 指示设备通道的控制权限
true
(1
) | false
(0
)
此 属性 为只读。
InitializationAccess
属性根据下列值指示配置的 CAN 或 J1939 通道对象是否具有对设备通道的完全控制权限:
true
- 具有对硬件通道的完全控制权限,可以更改属性值。false
- 不具有完全控制权限,不能更改属性值。
仅当对象具有对硬件通道的完全控制权限时,您才能更改硬件通道的某些属性值。
注意
只有在设备上创建的第一个通道会被授予初始化访问权限。
数据类型: logical
InitialTimestamp
— 指示通道的开始时间
日期时间
此 属性 为只读。
InitialTimestamp
属性指示通过 start
函数将通道设置为在线状态的时间或通道收到其启动触发信号的时间。对于 National Instruments 设备,该时间从设备驱动程序获得;对于其他供应商的设备,该时间从运行 MATLAB 的操作系统获得。
数据类型: datetime
FilterHistory
— 指示报文接受过滤器的设置
字符
此 属性 为只读。
指示报文接受过滤器的设置,以字符向量形式返回。此属性指示由函数 filterAllowOnly
、filterAllowAll
和 filterBlockAll
实现的设置。
示例: 'Standard ID Filter: Allow All | Extended ID Filter: Allow All'
数据类型: char
通道信息
BusStatus
— 总线状态
字符
此 属性 为只读。
BusStatus
属性显示有关 CAN 总线或 J1939 总线状态的信息。
'N/A'
- 供应商不支持此属性。'ErrorActive'
- 节点在检测到错误时传输主动报错标志。注意:此状态并不表示错误一定实际存在,而是指示错误是如何处理的。'ErrorPassive'
- 节点在检测到错误时传输被动报错标志。'BusOff'
- 节点不在总线上传输任何内容。
数据类型: char
SilentMode
— 指定通道处于活动状态还是静默状态
false
(默认) | true
根据下列值指定通道是否以静默方式运行:
false
(默认值)- 通道处于正常或活动模式。在此模式下,通道既可以正常传输和接收报文,也可以在网络上执行其他任务,例如确认报文和创建错误帧。true
- 通道处于静默模式。您可以观察网络上的所有报文活动并执行分析,而不影响网络状态或行为。在此模式下,您只能接收报文而不能传输任何报文。
清除并重新创建 Kvaser 通道时,其 SilentMode
设置将保留。如果您在不支持 SilentMode
的设备上指定该模式,将会导致错误。
数据类型: logical
TransceiverName
— 设备收发机的名称
字符
此 属性 为只读。
TransceiverName
指示设备收发机的名称。设备收发机将进出总线的数字位流转换为总线上存在的实际电信号。
数据类型: char
TransceiverState
— 指定收发机的状态或模式
数值
如果 CAN 或 J1939 收发机允许您控制其模式,则可以使用 TransceiverState
属性设置模式。
每种模式的数值属性值由收发机制造商定义。请参阅 CAN 收发机文档以了解适当的收发机模式。通过数值代表的可能模式有:
high speed
high voltage
sleep
wake up
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ReceiveErrorCount
— 报文接收期间的错误数
双精度值
此 属性 为只读。
ReceiveErrorCount
属性指示自上次启动通道以来报文接收期间的错误总数。默认值为 0
,并随错误数递增。
数据类型: double
TransmitErrorCount
— 报文传输过程中的错误数
双精度值
此 属性 为只读。
TransmitErrorCount
属性指示自上次启动通道以来报文传输期间的错误总数。默认值为 0
,并随错误数递增。
数据类型: double
BusSpeed
— 总线传输的比特率
双精度值
此 属性 为只读。
BusSpeed
属性指示传输报文的速度(位/秒)。默认值由供应商驱动程序分配。
您可以使用 configBusSpeed
函数将 BusSpeed
设置为支持的比特率,从而指定通道名称和比特率值作为输入参数。例如,要将 CAN 通道对象 canch
的总线速度更改为每秒 250,000 位并查看结果,请键入
configBusSpeed(canch,250000); bs = canch.BusSpeed
数据类型: double
SJW
— 位时间段的 CAN 同步跳转宽度 (SJW)
双精度值
此 属性 为只读。
SJW
显示位时间段的同步跳转宽度。为了调整芯片上的总线时钟,控制器可以将位的长度缩短或延长整数个时间段。这些位时间调整的最大值称为同步跳转宽度或 SJW
。
注意
该属性不适用于 National Instruments CAN 设备。通道将显示 NaN
值。
数据类型: double
TSEG1,TSEG2
— 允许延长和缩短 CAN 采样时间的位时间段数
双精度值
此 属性 为只读。
TSEG1
和 TSEG2
属性分别指示通道重新同步或补偿网络延迟时间可延长和缩短采样时间的时间量(以位时间段为单位)。配置 CAN 通道的总线速度时,将继承该值。
注意
该属性不适用于 National Instruments CAN 设备。通道将显示 NaN
值。
数据类型: double
NumOfSamples
— 每次读取的采样数
双精度值
此 属性 为只读。
NumOfSamples
属性是位定时参数,它指示在网络中进行一次位读取时执行的位采样数。该值是基于通道的驱动程序设置的一个正整数。
注意
该属性不适用于 National Instruments CAN 设备。通道将显示 NaN
值。
数据类型: double
ArbitrationBusSpeed
— CAN FD 仲裁比特率
数值
所选设备的仲裁总线速度,以每秒位数为单位。默认速度由所选设备分配。
DataBusSpeed
— CAN FD 数据比特率
数值
所选设备的数据总线速度,以每秒位数为单位。默认速度由所选设备分配。
ArbitrationPrescaler
— 比特率预分频器
整数
(仅限 PEAK-System。)指定仲裁比特率的预分频器。
ArbitrationSJW
— 允许的最大时间调整量
整数
指定仲裁同步跳转宽度(即重新同步时的位时间调整)的最大限制。该值必须为正整数,表示位时间量子段的数量。由所选的总线速度设置来确定默认值。
ArbitrationTSEG1
— 采样前的时间量子数量
整数
指定采样点之前的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 ArbitrationTSEG2
进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。
ArbitrationTSEG2
— 采样后的时间量子数量
整数
指定采样点后的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 ArbitrationTSEG1
进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。
DataPrescaler
— 比特率预分频器
整数
(仅限 PEAK-System。)指定数据比特率的预分频器。
DataSJW
— 允许的最大时间调整量
整数
指定数据同步跳转宽度(即重新同步时的位时间调整)的最大限制。该值必须为正整数,表示位时间量子段的数量。由所选的总线速度设置来确定默认值。
DataTSEG1
— 采样前的时间量子数量
整数
指定采样点之前的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 DataTSEG2
进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。
DataTSEG2
— 采样后的时间量子数量
整数
指定采样点后的位时间量子数量。该值必须为正整数。通常,此值的调整是通过对 DataTSEG1
进行对应的反向调整来实现的,因此其总和保持不变。由所选的总线速度设置来确定默认值。
BusLoad
— CAN 总线上的负载
双精度值
此 属性 为只读。
BusLoad
属性提供有关 Kvaser 设备上的报文流在 CAN 网络上形成的负载的信息。CAN 网络上的当前报文流表示为 0.00%
到 100.00%
之间的一个百分比。
数据类型: double
OnboardTermination
— 在设备上配置总线终端
true
(1
) | false
| (0
)
OnboardTermination
属性指定 NI-XNET 设备是否使用其 CAN 总线的板载终端。有关特定设备的行为和特征的详细信息,请参阅其供应商文档。
数据类型: logical
StartTriggerTerminal
— 指定启动触发信号的源终端
字符 | 字符串
StartTriggerTerminal
属性指定同步触发信号连接,以在连接的源终端上启动 NI-XNET 通道。
要配置 NI-XNET CAN 模块(例如 NI 9862)以在外部机箱终端提供的外部信号触发事件发生时开始数据采集,请将 CAN 通道 StartTriggerTerminal
属性设置为适当的终端名称。将 NI MAX 实用工具的机箱名称与触发信号终端名称进行组合,形成属性值字符向量;例如,'/cDAQ3/PFI0'
。
注意
此属性只能配置一次。分配完毕后,该属性即为只读,不能再更改。要将其设置为其他值,唯一的方法是对通道对象执行 clear
,使用 canChannel
重新创建通道,并配置其属性。
Examples
在终端 /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 数据库信息
结构体
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
— 自定义数据
任何数据
使用 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
复数支持: 是
提示
位定时属性初始值
下表指示总线速度和位定时 p 的初始值或默认值,具体取决于供应商和协议模式。
协议模式 | 供应商 | 初始值 |
---|---|---|
CAN | MathWorks Virtual PEAK-System NI-XNET | BusSpeed: 500000 |
Vector Kvaser | BusSpeed: 500000 SJW: 1 TSEG1: 4 TSEG2: 3 NumOfSamples: 1 | |
CAN FD | MathWorks Virtual 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 中推出
另请参阅
函数
外部网站
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)