Main Content

canChannel

构造连接到指定设备的 CAN 通道

说明

canch = canChannel(vendor,device,chanindex) 返回连接到指定供应商提供的设备的 CAN 通道。

对于 Kvaser 和 Vector 产品,device 是字符向量或字符串,它在同一参量中将设备模型和设备索引组合在一起(例如 'VN1610 1''VN1610 2')以区分不同设备。您还可以在两个 MathWorks® 虚拟设备中进行选择,每个设备都有两个虚拟通道。

示例

canch = canChannel(vendor,device) 返回连接到 National Instruments™ 或 PEAK-System 设备的 CAN 通道。

对于 National Instruments,vendor 是字符向量 'NI'devicenumber 是在“NI 测量变量和自动化通信管理器”中定义的接口编号。

对于 PEAK-System 设备,vendor 是字符向量 'PEAK-System'devicenumber 是为通道定义的设备编号。

示例

canch = canChannel(___,'ProtocolMode','CAN FD') 返回连接到支持 CAN FD 的设备的通道。默认 ProtocolMode 设置为 'CAN',表示标准 CAN 支持。为 'CAN' 配置的通道不能传输或接收 CAN FD 报文。

示例

示例

全部折叠

为多个供应商创建 CAN 通道。

canch1 = canChannel('Vector','VN1610 1',1);
canch2 = canChannel('Vector','Virtual 1',2);
canch3 = canChannel('Kvaser','USBcan Pro 1',1);
canch4 = canChannel('NI','CAN1');
canch5 = canChannel('PEAK-System','PCAN_USBBUS1');
canch6 = canChannel('SocketCAN','can0');
canch7 = canChannel('MathWorks','Virtual 1',2)
canch7 = 

  Channel with properties:

   Device Information
            DeviceVendor: 'MathWorks'
                  Device: 'Virtual 1'
      DeviceChannelIndex: 2
      DeviceSerialNumber: 0
            ProtocolMode: 'CAN'

   Status Information
                 Running: 0
       MessagesAvailable: 0
        MessagesReceived: 0
     MessagesTransmitted: 0
    InitializationAccess: 1
        InitialTimestamp: [0×0 datetime]
           FilterHistory: 'Standard ID Filter: Allow All | Extended ID Filter: Allow All'

   Channel Information
               BusStatus: 'N/A'
              SilentMode: 0
         TransceiverName: 'N/A'
        TransceiverState: 'N/A'
       ReceiveErrorCount: 0
      TransmitErrorCount: 0
                BusSpeed: 500000
                     SJW: []
                   TSEG1: []
                   TSEG2: []
            NumOfSamples: []

   Other Information
                Database: []
                UserData: []

在 MathWorks 虚拟设备上创建一个 CAN FD 通道。

canch6 = canChannel('MathWorks','Virtual 1',2,'ProtocolMode','CAN FD')
canch6 = 

  Channel with properties:

   Device Information
            DeviceVendor: 'MathWorks'
                  Device: 'Virtual 1'
      DeviceChannelIndex: 2
      DeviceSerialNumber: 0
            ProtocolMode: 'CAN FD'

   Status Information
                 Running: 0
       MessagesAvailable: 0
        MessagesReceived: 0
     MessagesTransmitted: 0
    InitializationAccess: 1
        InitialTimestamp: [0×0 datetime]
           FilterHistory: 'Standard ID Filter: Allow All | Extended ID Filter: Allow All'

   Bit Timing Information
               BusStatus: 'N/A'
              SilentMode: 0
         TransceiverName: 'N/A'
        TransceiverState: 'N/A'
       ReceiveErrorCount: 0
      TransmitErrorCount: 0
     ArbitrationBusSpeed: []
            DataBusSpeed: []

   Other Information
                Database: []
                UserData: []

输入参数

全部折叠

CAN 设备供应商,指定为 'MathWorks''Kvaser''NI''PEAK-System''SocketCAN''Vector'

示例: 'MathWorks'

数据类型: char | string

通道所连接的 CAN 设备,指定为字符向量或字符串。有效值取决于指定的供应商。

示例: 'Virtual 1'

数据类型: char | string

CAN 设备通道端口或索引,指定为数值。

示例: 1

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

输出参量

全部折叠

CAN 设备通道,以具有 can.Channel 属性can.Channel 对象形式返回。

提示

  • 使用 canChannelList 获取可用设备列表。

  • 在同一 NI-XNET 或 PEAK-System 设备通道上只能配置一个 canChannel

  • 您不能使用同一变量连续创建多个通道。在使用同一变量构造新 CAN 通道之前,请清理任何正在使用的通道。

  • 您不能创建 CAN 通道对象数组。您创建的每个对象必须作为其自己的单个变量存在。

版本历史记录

在 R2009a 中推出