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 . . .");

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仍然会连接到相同的硬件。
因此,使用参数来帮助检测正确的硬件。下面的参数用于识别要连接的物理硬件,例如,当多个设备可用于连接时。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ruoyo176

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值