PCAN二次开发教程
- 虹科智能互联
- 2月 4, 2024
- 4:17 下午
- 二次开发
本站所有技术文档均为虹科技术工程师所编写和更新,如果您发现任何错误,欢迎扫码下方二维码联系我们进行更正,万分感谢。
如果您需要定制的项目服务或教程培训,请联系虹科获取报价
虹科PEAK系列所有型号的PCAN卡
链接:https://peak-system.com.cn/driver/
(全选)
任何通信相关问题建议在PCAN-View或PCAN-Explorer6测试无误后再转移至PCAN-API进行开发
任何程序相关的不确定性可以通过官方例程进行验证:
所有的API开发包中均包含例程讲解,不同开发包包含的例程不同(C#、Python、Java、C/C++等,实际以开发包内容为准)
特别说明:PCAN-BasicAPI的Labview例程需要额外收费,包含PCAN-BasicAPI中所有函数接口,请联系虹科获取!
本说明以PCAN-BasicAPI进行说明
请结合API开发包中的API帮助文档(PCANBasic_enu.chm)
PCAN通道:PCAN-BasicAPI中对于USB接口和PCI/PCIe接口的设备分别开辟了16个PCAN通道,也就是说一台上位机最多可连接16个USB接口的PCAN和16个PCI/PCIe接口的PCAN板卡。详情请参考API帮助文档中PCANHandleDefinitions
PCAN波特率:
对应API中函数CAN_Write和CAN_WriteFD,每次调用发送一帧报文,周期发送需要结合Timer等处理方式,以下几点需要注意:
参数TPCANMsgFD中的报文长度为DLC而不是Length,详情请参考API帮助文档中TPCANMsgFD
参数TPCANMessageType为报文类型,其中CANFD的BRS开关需要单独设置,详情请参考API帮助文档中TPCANMessageType
对应API中函数CAN_Read和CAN_ReadFD,每次调用函数会从硬件的缓存中读取最早的一帧,也就是缓存队列的队头,缓存容量为32767帧。
建议:接收报文可以通过检查TPCANStatus是否为PCAN_ERROR_QRCVEMPTY来判定缓存队列是否为空,详情请参考API帮助文档中CAN_Read和CAN_ReadFD
对应API中函数的CAN_SetValue,详情请参考API帮助文档的TPCANParameter
断开连接即为设备去初始化,详情请参考API帮助文档中CAN_Uninitialize
总线状态监控:对应API中函数CAN_GetStatus,主要检测总线状态是否正常、高负载、宕机等
总线状态复位:通过CAN_SetValue函数中传参PCAN_BUSOFF_AUTORESET设置,而CAN_Reset只是清除对应通道的收发缓存队列。当然,也可以通过CAN_Reset+断开重连完成总线复位
通过传参PCAN_ALLOW_ERROR_FRAMES打开错误帧接收,错误帧对应具体情况见API帮助文档中ErrorFrames
对应API中函数CAN_FilterMessages,其中参数TPCANMode可选择标准帧或扩展帧, 该函数可以多次调用,详情请参考API帮助文档中CAN_FilterMessages
开发包中暂无现成DBC数据库加载接口
更多汽车干货
更多工业干货
加入交流群