dev bus 0 linux,CANdevStudio

CANdevStudio

CANdevStudio.svg?branch=mastermaster?svg=truebadge.svgdownload.svgdownload.svgDoxygen-master-blue.svg

Overview

Most of automotive projects need to have an access to the Controller Area Network (CAN) bus. There are plenty of commercial frameworks that provides CAN stacks and hardware/software tools necessary to develop proper CAN networks. They are very comprehensive and thus expensive. CANdevStudio aims to be cost-effective replacement for CAN simulation software. It can work with variety of CAN hardware interfaces (e.g. Microchip, Vector, PEAK-Systems) or even without it (vcan and cannelloni) . CANdevStudio enables to simulate CAN signals such as ignition status, doors status or reverse gear by every automotive developer. Thanks to modularity it is easy to implement new, custom features.

f23fd6272814f25af9ffee01f5eb4143.png

Compatible CAN interfaces

Access to CAN bus is based on Qt framework. Current list of supported CAN interfaces can be found here.

Current list of devices compatible with SocketCAN (Linux only) can be found here.

Supported operating systems

Linux

Windows

macOS

Build instructions

CANdevStudio project uses Travis CI (Linux) and AppVeyor (Windows) continuous integration tools. You can always check .travis.yml and .appveyor.yml files for building details.

Linux

git clone https://github.com/GENIVI/CANdevStudio.git

cd CANdevStudio

git submodule update --init --recursive

mkdir build

cd build

cmake ..

make

To choose compiler

cd CANdevStudio/build

rm -rf *

export CC=clang

export CXX=clang++

cmake ..

make

Qt in CMake

If CMake failed to find Qt in your system:

cd CANdevStudio/build

rm -rf *

cmake .. -DCMAKE_PREFIX_PATH=/home/genivi/Qt5.8.0/5.8/gcc_64

make

ARCH Linux

Install AUR package: candevstudio-git

Windows

Visual Studio 2015

git clone https://github.com/GENIVI/CANdevStudio.git

cd CANdevStudio

git submodule update --init --recursive

mkdir build

cd build

cmake .. -G "Visual Studio 14 2015" -DCMAKE_PREFIX_PATH=C:\Qt\5.9\msvc2015

cmake --build .

Visual Studio 2015 Win64

git clone https://github.com/GENIVI/CANdevStudio.git

cd CANdevStudio

git submodule update --init --recursive

mkdir build

cd build

cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_PREFIX_PATH=C:\Qt\5.9\msvc2015_64

cmake --build .

MinGW

git clone https://github.com/GENIVI/CANdevStudio.git

cd CANdevStudio

git submodule update --init --recursive

mkdir build

cd build

cmake .. -G "MinGW Makefiles" -DCMAKE_PREFIX_PATH=C:\Qt\5.9\mingw53_32

cmake --build .

macOS / OS X

git clone https://github.com/GENIVI/CANdevStudio.git

cd CANdevStudio

git submodule update --init --recursive

mkdir build

cd build

cmake .. -GNinja -DCMAKE_PREFIX_PATH=/path/to/Qt/lib/cmake

ninja

Prebuilt packages

Binary packages are automatically uploaded by CI tools (i.e. Travis and Appveyor) to Bintray artifactory for every commit on master branch.

Download

Use Bintray badges above to dowload stable or develop version (each commit on master creates corresponding binary packege in Bintray)

Package naming

CANdevStudio-X.Y.ZZZZZZZ-SYS[-standalone]

X - major version number of previous stable version

Y - minor version of previous stable version

Z - SHA commit ID

SYS - either win32, Linux or Darwin

standalone - bundle version that contains Qt libraries and all relevant plugins.

Linux

All packages are being built on Ubuntu 16.04 LTS. You may experience problems with missing or incompatible libraries when trying to run the package on other distros.

To run standalone version use CANdevStudio.sh script.

Windows

Packages built with MinGW 5.3.

Standalone version contains Qt and MinGW runtime libs.

macOS / OS X

Package is a DMG installer.

Quick Start

General instructions to start your first simulation:

Build the latest master or release.

Run the application and start a new project

Drag and drop CanDevice and CanRawView components and connect them accordingly.

Double click on CanDevice node to open configuration window.

set one of supported backends (e.g. socketcan) link.

NOTE: List of supported backends depends on Qt version.

set name of your can interface (e.g. can0)

Start the simulation

Double click on CanRawView component to see CAN traffic

Steps required to use specific CAN hardware or virtual interfaces require some additional steps listed in following sections.

CAN Hardware

The list below shows hardware that has been successfuly used with CANdevStudio.

Microchip CAN BUS Analyzer

Tested on Linux

Requires socketcan driver.

Officially supported in Linux Kernel v4.12+

Configuration:

Find your interface name (e.g. can0)

ip link

Configure bitrate

sudo ip link set can0 type can bitrate 1000000

Bring the device up

sudo ip link set can0 up

Optionally configure CAN termination

In GitHUB based driver

sudo ip link set can0 type can termination 1

In Linux 4.12+ driver

sudo ip link set can0 type can termination 120

CanDevice backend: socketcan

Lawicel CANUSB

Tested on Linux

Based on FTDI Serial driver

Requires slcand to "convert" serial device to SocketCAN.

Officially supported in Linux Kernel v2.6.38

Configuration:

Create SocketCAN device from serial interface

sudo slcand -o -c -s8 -S1000000 /dev/ttyUSB0 can0

Bring the device up

sudo ip link set can0 up

CanDevice backend: socketcan

PeakCAN PCAN-USB

Tested on Windows

CanDevice settings example:

backend: peakcan

interface: usb0

configuration: BitRateKey = 250000

PassThruCAN Plugin

Tested on Windows

CanDevice settings example for PEAK-PCAN:

backend: passthrucan

configuration: BitRateKey = 250000

interface: PCANPT32

CanDevice settings example for SIE_CANUSB:

backend: passthrucan

configuration: BitRateKey = 250000

interface: CANUSB

CANdevStudio without CAN hardware

CANdevStudio can be used without actual CAN hardware thanks to Linux's built-in emulation.

VCAN

Configuration:

sudo modprobe vcan

sudo ip link add dev can0 type vcan

sudo ip link set can0 up

CanDevice backend: socketcan

Cannelloni

A SocketCAN over Ethernet tunnel.

Examplary configuration:

8c5971b787109509dda5d0093eff9d40.png

Target configuration:

sudo modprobe vcan

sudo ip link add dev can0 type vcan

sudo ip link set can0 up

cannelloni -I can0 -R 192.168.0.1 -r 30000 -l 20000

PC configuration:

Install libqtCannelloniCanBusPlugin.so that is built along with CANdevStudio. You can either copy it manually to Qt plugins directory or use "make install" to do it automatically.

Create new project in CANdevStudio and add CanDevice node

Configure CanDevice:

backend: cannelloni

interface: 30000,192.168.0.2,20000 (local_port,remote_ip,remote_port)

Start simulation

Help

CAN Signals

CANdevStudio provides experimental support for CAN Signals (see signals branch). Currently only DBC format is supported as a description of database, but it shouldn't be hard to add new formats.

The work on moving components from signal to master branch is ongoing.

CanDevice configuration

CanDevice component can be confiugred using "configuration" property:

Format - "key1=value1;key2=value2;keyX=valueX"

Keys names are case sensitive, values are case insensitive

Configuration keys are taken from ConfigurationKey enum.

RawFilterKey and ErrorFilterKey are currently not supported

DataBitRateKey is available since Qt 5.9

Whitespaces are ignored

E.g.

BitRateKey=100000;ReceiveOwnKey=false;LoopbackKey=true

CanRawFilter

CanRawFilter component enables to filter (i.e. accept or drop) incoming and outgoing frames:

Qt regular expressions are used to match filter rules.

Rules are matched from top to bottom

Default policy is applied to frames unmatched by any filter

Examples:

match 0x222 and 0x333 frames only [id field]

222|333

match 0x200 - 0x300 frames only [id field]

^[23]..$

match empty payload (DLC 0) [payload field]

^$

match 2 byte payload (DLC 2) [payload field]

^.{4}$

Adding new components

Configure build to include templategen tool

cd build

cmake .. -DWITH_TOOLS=ON

make

Generate component (use -g option if you don't need component to have GUI)

./tools/templategen/templategen -n MyNewComponent -o ../src/components -g

CMake script automatically detects new components. It has to be invoked manually.

cmake ..

Build project

make

Your component is now integrated with CANdevStudio

You may want to modify src/components/mynewcomponent/mynewcomponentplugin.h to configure section name, color and spacing

Define component inputs and outputs in src/components/mynewcomponent/mynewcomponentmodel.cpp. Look for examples in other components.

Modify automatically generated unit tests src/components/mynewcomponent/tests

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值