Catalogue
目录
一、媒介
1.1 Socket CAN
二、Socket CAN使用教程
2.1 系统环境配置
2.2 库文件上传
2.3 使能vcan
2.4 测试设备双通路相互通讯
三、问题Q&A
3.1 sudo: ./sockettscan: command not found
3.2 cannot open shared object file
一、媒介
Preface introduction
1.1、Socket CAN
SocketCAN是由Linux内核守护的CAN和谈栈,能够使用Linux内核提供的Socket API进行CAN总线的读写操作,用户只必要使用C说话实现与Socket API通讯,就能够节造CAN总线上的节点,实现数据的发送与接管。
若是想要利用SocketCAN节造TSCAN的设备,有一个解决步骤是利用Linux自带的虚构SocketCAN。我们利用人生就是博官网提供的Linux库libTSCANApiOnLinux.so,实现一个vcan在本机的server法式,用于把SocketCAN的报文和libTSCAN进行互转。
这种方式配置人生就是博官网硬件的波特率,以及查看信息都必要在sockettscan法式中。由于vcan自身不支持波特率配置,我们也无法把统计信息奉告vcan。
逻辑图如下:
二、Socket CAN使用教程
Socket CAN Using Toturials
2.1、系统环境配置
若是电脑自身的系统就是Linux系统,则这个步骤能够忽略。
1) 通过http://releases.ubuntu.com/18.04/能够下载Ubuntu系统镜像。
2)在虚构机中导入映射文件:虚构机 ->编纂虚构机设置 -> CD/DVD ->使用ISO 映射文件。
2.2、库文件上传
1)在桌面新建一个文件夹vcan。
?
2)通过U盘将文件夹里的文件上传到当前文件夹。
3)将libTSCANApiOnLinux.so、libTSH.so、sockettscan、sockettscan.cpp、TSCANDef.hpp这5个文件的属性批改为:Permissions处的Access全数选择Read and write,Group选择sudo,勾选Execute。
4)在vcan文件夹下,将libTSCANApiOnLinux.so和libTSH.so这两个库文件复造到/usr/lib/蹊径下。
2.3、使能vcan
1)vcan指令装置步骤。
2)测试vcan是否装置成功,用指令ifconfig -a查看信息,看到带有vcan0的信息就代表装置成功。
3)装置can调试工具,sudo install can-utils 。
4)运行sockettscan法式。
绑定到设备0的1通路,波特率500k-2M,使能终端电阻。这样通过socketcan挪用vcan0就能够把报文同步到TSCAN设备中了。-b暗示仲裁波特率,-d暗示数据波特率,-v暗示硬件的下标(下标从0起头),-c暗示通路的下标(下标从1起头)。
能够通过sudo ./sockettscan -h显示援手信息
2.4、测试设备双通路相互通讯
1)硬件TC1034
1-1、必要将TC1034的CAN1和CAN2通过杜国线进行衔接,通过上述步骤成立vcan0和vcan1两个通路。
利用sockettscan绑定两个通路:关于多通路使用必要把稳,每一个sockettscan用来衔接单个TSCAN硬件。多个通路能够写屡次(vcan0名称必要在最前面),多个硬件设备,能够在多个终端挪用sockettscan实现。
1-2、通过cansend和candump测试虚构can数据收发。别离打开两个终端,别离掌管数据接管和发送。
先启动接管指令candump,它会阻塞期待数据。而后cansend发送数据,成效如下:
2)硬件TC1034和TC1016P
2-1、必要将TC1034的CAN1和TC1016P的CAN1通过杜国线进行衔接。
利用sockettscan绑定两个通路。
绑定通路1。
绑定通路2。
2-2、通过cansend和candump测试虚构can数据收发。别离打开两个终端,别离掌管数据接管和发送。
三、问题 Q&A
3.1 sudo: ./sockettscan: command not found
1)选择sockettscan文件,打开Properties窗口。
2)在Permissions处的Access全数选择Read and write,Group选择sudo,勾选Execute。
3.2 cannot open shared object file
在vcan文件夹下,将libTSCANApiOnLinux.so和libTSH.so这两个库文件复造到/usr/lib/蹊径下。
再次运行衔接硬件的号令。



颁发回复
您必须 在内颁布评论。