项目需求

cRIO配置了一张NI的NI 9862 CAN 卡,但是由于于外部设备通信的实时性要求,需要构建两路CAN总线,一路内部总线,实现不同芯片或不同板层的通信模式。同时需要开发单独的一路CAN实现与其他设备的CAN通信。

实现思路

鉴于成本及现有设备的原因,决定尝试在Veristand Linux平台下通过cRIO USB端口驱动周立功USB CAN ii+ CAN盒。

技术路线及实现

首先在cRIO中安装ZLG CAN盒驱动,然后通过labview 调用Linux系统下的由ZLG公司提供的.so驱动库进行二次开发。

具体实现

  1. 首先到ZLG官网下载【驱动库】Linux驱动 USBCAN-I_I+_II_II+_2A_I-MINI安装驱动
  2. 在win 平台下 解压文件,同时使用7z软件,将压缩包usbcan_libusb_x64_2018_10_15.tar.bz2文件逐层解压,获得图示文件

最重要的是libusbcan.so文件,将其通过winscp或者文件传输器传输到cRIO中。

这时可以在linux终端中通过test文件测试CAN盒是否能驱动,同时可以通过观察CAN盒的指示灯是否正常亮起。

labview读取文件.so文件并生成库调用的VI库函数。

Use LabVIEW to Call .so file in NI Linux RT Target - National Instruments

具体操作可以参考链接,值得注意的是controlcan.h文件与libusbcan.so文件是同步使用的,在labview中需要将预定义语句与函数定义语句拆分开。

已生成的库

这里的路径应该正常可以找到文件即可,但是为了后期方便起见,可以通过映射网络驱动器的形式将读取cRIO存储.h文件和.so文件。但是也可以是上位机PC的存储路径。

通过#define形式做的预定义语句需要填写到这一部分中,改写后的.h文件如图

改写完成后可以正常看到.so文件库中的所有子函数

可以生成如图所示的库,这样每一个子VI,代表了一个函数,具体每一个函数的使用可以通过zlg官网的demo进行编辑。

注意

生成子VI的路径一定需要与cRIO中存储库文件的路径相同,具有回调数据的函数调用方式一定要选为stdcall

4.编程实现open device、start can 、receive、transmit等子函数功能即可

5、注意labview rt支持的事件结构在Veristand平台中不支持,同时由于Veristand中本身存在一个定时周期循环的框架,在编写的程序中不能写While循环,如果写While循环会导致Veristand engine进入死循环而死机。

6、编写完成的LABVIEW程序可以正常通过接口工具生成veristand可以调用的so文件,同时需要注意生成的xml文件不能删除,一定要进行保留。

最后就不贴程序图了

通过cRIO 9047 USB端口自定义开发周立功CAN盒相关推荐

  1. 使用Qt二次开发周立功CAN(一)

    ** 使用Qt二次开发周立功CAN(一) ** 使用Qt二次开发周立功的CAN通信,第一步需要完成动态链接库的加载,成功加载之后才能调用其提供的接口函数.加载库需要注意的问题有两个:一是Qt版本和动态 ...

  2. linux 查看usb端口_linux开发:Linux下查看端口占用

    怎么查看linux系统中已经被占用的端口?下面我就统一给大家解释一下. 提到端口,那首先来回顾端口定义,为了区分一台主机接收到的数据包应该转交给哪个任务来进行处理,使用端口号来区别:我们知道TCP端口 ...

  3. 周立功CAN盒驱动C#调用方式

    #region CAN接受和发送数据定义         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] ...

  4. ecm工作原理 usb_“好玩具”来了!往你的USB端口里藏入一个小开发板...

    大家好,我是小月月,今天又带来新玩具啦. Tomu是一块可编程的小开发板,可以藏进USB端口.它可以自由编程,提供两个按键和两个LED灯,你能用它实现各种创意功能,比如自定义鼠标键盘.USB数据下载. ...

  5. 高通平台开发系列讲解(USB篇)USB端口的说明及切换方法

    文章目录 一.USB 启动 二.USB端口组合 三.USB端口组合脚本分析 四.USB切换命令usb_composition说明 五.USB function 节点功能说明 沉淀.分享.成长,让自己和 ...

  6. 可编程 USB 转串口适配器开发板专用工具 S2STool 介绍

    可编程 USB 转串口适配器开发板专用工具 S2STool 介绍   可编程USB转 UART/I2C /SMBusS/SPI/CAN/1 -Wire适配器USB2S  专用工具 S2STool 介绍 ...

  7. USB开发基础:USB设备的开发流程

    USB设备的开发一般包括主机端(上位机)驱动程序的开发(如果您的USB设备符合某一标准设备类且主机端已经提供了此类设备的驱动程序的话,则可以省掉此步骤)和USB设备端驱动程序的开发,有时还可能包括主机 ...

  8. Android USB转串口通信开发实例详解

    好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信,一直忙到最近,才慢慢闲下来,趁着这个周末不忙,记录下usb转串口通信开发的基 ...

  9. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

  10. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

最新文章

  1. 进程管理supervisor的简单说明
  2. 解决vue初始化数据时的闪烁问题
  3. 几种颜色模型的转换公式
  4. 五项管理行动日志_迈向学习型组织,企业必须具备五项修炼
  5. Python 33(1) UDP协议 数据报协议 socketsever模块
  6. oracle段管理方式设为自动,oracle自动段管理ASSM笔记
  7. mongodb3.0 性能測试报告 一
  8. java 多线程统计质数,Java 七 多线程计算某个范围内的质数
  9. 几时几分几秒怎么写_头总是一阵一阵眩晕是怎么回事?眩晕症该如何治疗?
  10. jsp代码编写简单的BBS论坛项目的总结
  11. teambition 还是jira_研发管理工具之 Id 比较(Jira/Teambition/TAPD/禅道)
  12. 必应缤纷桌面产品分析
  13. 系列课程 ElasticSearch 之第 9 篇 —— ELK (ElasticSearch、Logstash、Kibana)分布式日志收集和查看(完结)
  14. zemax光学设计高阶优化
  15. 国内头部高科技企业招聘:大数据方向
  16. webpack中各个模块归纳总结图
  17. html 爱心树,jQuery结合HTML5制作的爱心树表白动画
  18. 详解Minimax算法与α-β剪枝
  19. Error attempting to get column 'state' from result set
  20. 一个年轻化品牌的自我修养:打造人格化流量

热门文章

  1. gif动态加载图和动态表情包的制作
  2. 查看oracle操作历史,查看操作历史记录
  3. MATLAB解决线性最小二乘拟合
  4. 2018-PAT春季考试小结
  5. 荣耀手机wifi信号如何连接服务器,教你手机无限流量免费上网 荣耀WiFi实测
  6. AirServer无线手机投屏镜像mac电脑上面教程
  7. 机房怎么制作服务器,电信服务器机房服务器搬迁地网制作方法
  8. Pycharm中工程项目的多个python环境的管理使用方法的一点点理解
  9. 来势汹汹 两大版本 百公里加速最快小于3.5s 电动车最大黑马居然是TA!
  10. 使用 乐吾乐topology 遇到的问题解决方法汇总