From 2cf6a1685f3ad53db6714c01d600492fe4bfc11b Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 28 Mar 2017 15:15:20 +0200 Subject: Improve documentation and added can samples This explicit use cases with virtual CAN device or Porter board CAN devices Also, it add a complete trip with "vehicle.speed" obd2 signal recurring requests. to be use with canplayer to replay a real car trip. Change-Id: I66c762fa23ed409c812765d6d82e78138edbd455 Signed-off-by: Romain Forlot --- docs/3-Usage.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/3-Usage.md b/docs/3-Usage.md index cc76f1f..73600a7 100644 --- a/docs/3-Usage.md +++ b/docs/3-Usage.md @@ -95,7 +95,7 @@ Once connected, launch `dmesg` command and search which device to use : [ 1872.809356] usbcore: registered new interface driver usb_8dev ``` -Here device is named **can0**. +Here device is named `can0`. This instruction assuming a speed of 500000kbps for your CAN bus, you can try others supported bitrate like 125000, 250000 if 500000 doesn't work: @@ -112,25 +112,59 @@ This instruction assuming a speed of 500000kbps for your CAN bus, you can try ot clock 16000000 ``` +For a Porter board, you'll have your CAN device as `can1` because `can0` already exists as an embedded device. + +The instructions will be the same: + +```bash +# ip link set can1 type can bitrate 500000 +# ip link set can1 up +# ip link show can1 + can0: mtu 16 qdisc pfifo_fast state UNKNOWN qlen 10 + link/can + can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0 + bitrate 500000 sample-point 0.875 + tq 125 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1 + sja1000: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1 + clock 16000000 +``` + ## Configure the binding -Configure the binding specifying in the JSON configuration file the CAN device\(s\) that it will to connect to. Edit file _/var/lib/afm/applications/low-can-binding/0.1/can\_buses.json_ and change the CAN device name to the one you have : +Configure the binding specifying in the JSON configuration file the CAN device\(s\) that it will to connect to. Edit file _/var/lib/afm/applications/low-can-binding/0.1/can\_buses.json_ and change the CAN device name to the one you will use : +Using virtual CAN device as described in the previous chapter: +```json +{ + "canbus": "vcan0" +} +``` + +Using real CAN device, this example assume CAN bus traffic will be on can0. ```json { "canbus": "can0" } ``` +On a Porter board there is an embedded CAN device so `can0` already exists. + +So you might want to use your USB CAN adapter plugged to the OBD2 connector, in this case use `can1`: +```json +{ + "canbus": "can1" +} +``` + If you have several specify CAN bus devices use an array: ```json { - "canbus": [ "vcan0", "can0" ] + "canbus": [ "can0", "can1" ] } ``` -> **WARNING:** Make sure the CAN bus\(es\) you specify in your configuration file match those specified in your generated source file with the [can-config-generator](http://github.com/iotbzh/can-config-generator). +> **CAUTION VERY IMPORTANT:** Make sure the CAN bus\(es\) you specify in your configuration file match those specified in your generated source file with the [can-config-generator](http://github.com/iotbzh/can-config-generator). ## Run it, test it, use it ! @@ -247,11 +281,33 @@ To watch watch going on a CAN bus use: # candump can0 ``` +Or for an USB CAN adapter connected to porter board: + +```bash +# candump can1 +``` + Send a custom message: ```bash # cansend can0 ID#DDDDAAAATTTTAAAA ``` +You can also replay a previously dumped CAN logfiles. These logfiles can be found in _can_samples_ directory under Git repository. Following examples use a real trip from an Auris Toyota car. +Trace has been recorded from a CAN device `can0` so you have to map it to the correct one you use for your tests. +Replay on a virtual CAN device `vcan0`: +```bash +# canplayer -I trip_test_with_obd2_vehicle_speed_requests vcan0=can0 +``` + +Replay on a CAN device `can0`: +```bash +# canplayer -I trip_test_with_obd2_vehicle_speed_requests can0 +``` + +Replay on a CAN device `can1` (porter by example): +```bash +# canplayer -I trip_test_with_obd2_vehicle_speed_requests can1=can0 +``` -- cgit 1.2.3-korg