• pcan二次开发文档 | PEAK-System Documentation


    PCAN 参数设置

    PCAN-Basic目前支持28个参数,可以使用CAN_GetValue / CAN_SetValue函数来读取/配置。并不是所有参数都可以配置,因为有些参数是只读参数。下面你会发现一个带有参数及其相关值的列表:
    • PCAN_DEVICE_ID 1
    • PCAN_5VOLTS_POWER 2
    • PCAN_RECEIVE_EVENT 3
    • PCAN_MESSAGE_FILTER 4
    • PCAN_API_VERSION 5
    • PCAN_CHANNEL_VERSION 6
    • PCAN_BUSOFF_AUTORESET 7
    • PCAN_LISTEN_ONLY 8
    • PCAN_LOG_LOCATION 9
    • PCAN_LOG_STATUS 10
    • PCAN_LOG_CONFIGURE 11
    • PCAN_LOG_TEXT 12
    • PCAN_CHANNEL_CONDITION 13
    • PCAN_HARDWARE_NAME 14
    • PCAN_RECEIVE_STATUS 15
    • PCAN_CONTROLLER_NUMBER 16
    • PCAN_TRACE_LOCATION 17
    • PCAN_TRACE_STATUS 18
    • PCAN_TRACE_SIZE 19
    • PCAN_TRACE_CONFIGURE 20
    • PCAN_CHANNEL_IDENTIFYING 21
    • PCAN_CHANNEL_FEATURES 22
    • PCAN_BITRATE_ADAPTING 23
    • PCAN_BITRATE_INFO 24
    • PCAN_BITRATE_INFO_FD 25
    • PCAN_BUSSPEED_NOMINAL 26
    • PCAN_BUSSPEED_DATA 27
    • PCAN_IP_ADDRESS 28
    • PCAN_LAN_SERVICE_STATUS 29
    • PCAN_ALLOW_STATUS_FRAMES 30
    • PCAN_ALLOW_RTR_FRAMES 31
    • PCAN_ALLOW_ERROR_FRAMES 32
    • PCAN_INTERFRAME_DELAY 33
    • PCAN_ACCEPTANCE_FILTER_11BIT 34
    • PCAN_ACCEPTANCE_FILTER_29BIT 35
    • PCAN_IO_DIGITAL_CONFIGURATION 36
    • PCAN_IO_DIGITAL_VALUE 37
    • PCAN_IO_DIGITAL_SET 38
    • PCAN_IO_DIGITAL_CLEAR 39
    • PCAN_IO_ANALOG_VALUE 40
    • PCAN_FIRMWARE_VERSION 41
    • PCAN_AVAILABLE_CHANNELS_COUNT 42
    • PCAN_AVAILABLE_CHANNELS 43
    • PCAN_ALLOW_ECHO_FRAMES 44
    • PCAN_DEVICE_PART_NUMBER 45

    为了划定不同参数的用途,将其分为5组:

    “硬件识别”参数

    PCAN_CHANNEL_CONDITION | 只读

    这个参数通过返回一个标志值来标识一个PCAN-Channel的使用状态。
    例如,只有当PCAN-Channel可用时,连接才可能,这意味着:
    • It is valid:PCAN-Channel是下面“Supported By”中列出的一种。
    • It is connectable:PCAN-Channel没有初始化,或者目前被PCAN-View使用。

    可用性

    从版本1.0.0开始提供。然而,自版本以来,可用性得到了显著的改进
    1.0.4,由于错误修复。在版本4.0.0中修改了该参数的行为。

    Supported By
    • PCAN-ISA (Channels PCAN_ISABUS1 to PCAN_ISABUS8).
    • PCAN-DNG (Channel PCAN_DNGBUS1).
    • PCAN-PCI (Channels PCAN_PCIBUS1 to PCANPCIBUS16).
    • PCAN-USB (Channels PCAN_USBBUS1 to PCAN_USBBUS16).
    • PCAN-PCC (Channels PCAN_PCCBUS1 to PCAN_PCCBUS2).
    • PCAN-LAN (Channels PCAN_LANBUS1 to PCAN_LANBUS16).
    Possible Values

    PCAN-Channel的条件可以是以下定义的值之一

    Defined ValueDescription
    PCAN_CHANNEL_UNAVAILABLE该通道没有连接/可访问。
    PCAN_CHANNEL_AVAILABLE可以使用该通道。
    PCAN_CHANNEL_OCCUPIED通道已经初始化。
    PCAN_CHANNEL_PCANVIEW该通道正在被PCANView使用,但它可以被初始化。

    PCAN_DEVICE_ID | 可读可写

    该参数用于区分同时连接到一台计算机上的两个或多个同类设备。设备标识符是存储在每个设备的闪存中的持久值,也就是说,在断开硬件连接后,该值不会丢失。
    注意,设备可以具有相同的标识符。由用户来保证所使用的设备配置了不同的标识符,以便通过这个值进行区分。
    这个参数以前被称为PCAN_DEVICE_NUMBER。后来改名为
    PCAN_DEVICE_ID从PCAN-Basic版本4.4.0开始。由于向后兼容的原因,PCAN_DEVICE_NUMBER仍然存在,但它被标记为已弃用。用户应该使用
    PCAN_DEVICE_ID代替。

    可用性

    它从1.0.0版本开始提供。PCAN_DEVICE_NUMBER。
    从4.4.0版本开始,无需初始化就可以读取它。

    Supported By

    PCAN-PCI (Channels PCAN_PCIBUS1 to PCANPCIBUS16).
    PCAN-USB (Channels PCAN_USBBUS1 to PCAN_USBBUS16).
    PCAN-LAN (Channels PCAN_LANBUS1 to PCAN_LANBUS16).
    注:
    PCAN-PCI:仅基于FPGA的设备。需要大于等于设备驱动版本号4.2.0.
    PCAN-LAN:仅支持固件版本大于等于2.8.2的设备。要求设备驱动版本不小于4.2.0。

    Possible Values

    根据PCAN-USB设备的固件版本,该值可以有一个字节(范围[0…255])或一个双字(范围[0…4294967295])的分辨率。

    Default Value

    如果之前从未设置此参数,则该值为所使用的分辨率的最大值,即255 (FFh)或429496729 (ffffffh)。

    Initialization Status

    Get:可以在初始化或未初始化的PCAN-Channels上读取。
    Set:只能在初始化的PCAN-Channels上设置。

    Application – Example of Use

    假设您想编写一个应用程序,从一个CAN-BUS读取数据,并响应另一个CAN-BUS(又称网关应用程序)。为此,您可以有一个PCAN-USB设备连接到每个CAN-BUS。您可以设置两个pcan - usb的设备号,以便您知道哪个总线用于写入(例如,number 1用于“写入”总线),以及哪个总线用于读取(例如,number 2用于“从”总线读取)。使用这个参数,您将能够知道是否两个通道都可用,以及使用哪个设备发送,哪个设备写入
    Native (C++)

    TPCANHandle channelsToCheck[] = { PCAN_USBBUS1, PCAN_USBBUS2 };
    DWORD deviceId;
    TPCANHandle readChannel, writeChannel;
    readChannel = writeChannel = PCAN_NONEBUS;
    for (int i = 0; i < 2; i++)
    {
     if (CAN_GetValue(channelsToCheck[i], PCAN_DEVICE_ID, &deviceId, 4) == PCAN_ERROR_OK)
     {
     if (deviceId == 1)
     {
     writeChannel = channelsToCheck[i];
     printf("The channel for writing (handle 0x%X) was found.\n", channelsToCheck[i]);
     }
     if (deviceId == 2)
     {
     readChannel = channelsToCheck[i];
     printf("The channel for reading (handle 0x%X) was found.\n", channelsToCheck[i]);
     }
     }
    }
    if ((readChannel != PCAN_NONEBUS) && (writeChannel != PCAN_NONEBUS))
    {
     printf("Both channels were found. Starting to work . . .");
     // Do work . . .
    }
    else
     printf("Error! Not all needed channels were found. Terminating . . .");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    PCAN_HARDWARE_NAME | 只读

    该参数用于从硬件中检索描述文本
    PCAN通道。该文本允许识别使用相同接口的设备型号,例如USB。普通的PCAN USB适配器将返回“PCAN-USB”,而新的双CAN/LIN FD通道适配器将返回“PCAN-USB Pro FD”。

    • PCAN_CONTROLLER_NUMBER
    • PCAN_CHANNEL_IDENTIFYING
    • PCAN_IP_ADDRESS
    • PCAN_AVAILABLE_CHANNELS
    • PCAN_DEVICE_PART_NUMBER

    关于信息的参数

    • PCAN_API_VERSION
    • PCAN_CHANNEL_VERSION
    • PCAN_CHANNEL_FEATURES
    • PCAN_BITRATE_INFO
    • PCAN_BITRATE_INFO_FD
    • PCAN_BUSSPEED_NOMINAL
    • PCAN_BUSSPEED_DATA
    • PCAN_LAN_SERVICE_STATUS
    • PCAN_FIRMWARE_VERSION
    • PCAN_AVAILABLE_CHANNELS_COUNT

    “影响行为”参数

    数据读取和流量控制参数

    “日志和调试”参数

    “CAN数据记录(跟踪)”参数

    电子电路(I/O引脚)”参数

    预处理参数

    在通道成功初始化之后,除了被分组为“日志记录和调试”的参数(这些参数不与特定的通道绑定)之外,在PCAN-Basic API内的参数配置是允许的。然而,在某些情况下,甚至需要在通道初始化之前进行一些配置。在通道初始化之前,可以在通道上配置以下参数。
    • PCAN_RECEIVE_STATUS
    • PCAN_LISTEN_ONLY
    • PCAN_BITRATE_ADAPTING

    识别硬件

    首先,考虑第一次识别发生在选择要使用的PCAN-Channel时。
    通道名称已经标识要使用的总线。
    在这里插入图片描述
    上面的名称告诉API PCAN硬件要连接,它使用哪种总线(USB),它是系统中注册的第一个(1)硬件。PCAN-Basic允许连接以下接口:
    • USB:通用串行总线。多达16个通道。
    • PCI:外设组件互连(包括ExpressCard硬件)。多达16个通道。
    • PCC:pc卡(PCMCIA),个人计算机记忆卡。多达2个通道。
    • LAN:虚拟PCAN-Gateway连接。多达16个通道。
    • DNG:并行端口适配器。多达1个通道。
    • ISA:工业标准体系结构。多达8个通道。
    注意,硬件在系统中注册的方式取决于它的控制器驱动程序和系统本身。当多个相同类型的设备安装在一个系统上(例如USB),默认情况下,不保证在系统重启后连接到PCAN_USBBUS1仍然会连接到相同的硬件。
    因此,使用参数来帮助检测正确的硬件。下面的参数用于识别要连接的物理硬件,例如,当多个设备可用于连接时。

  • 相关阅读:
    【ES6知识】Generator 函数 与 yield 关键字
    【SpringBoot项目中Knife4j在线API文档】
    使用IDEA画结构图
    单片机学习--->Keil多文件工程
    智能创意中的尺寸拓展模块
    磁盘原理简要分析
    山峰和山谷—BFS
    django建站过程(5)添加导入导出功能
    基于工程车辆/物流车辆/消防车辆远程通信的车队管理解决方案
    EntityUtils MapStruct BeanCopier 数据实体类转换工具 DO BO VO DTO 附视频
  • 原文地址:https://blog.csdn.net/qq_45490227/article/details/126654859