From: Oliver Hartkopp <socketcan@hartkopp.net>
To: bruce bushby <bruce.bushby@gmail.com>
Cc: linux-can@vger.kernel.org
Subject: Re: serial can or socket can ?
Date: Tue, 12 Jun 2012 15:44:11 +0200 [thread overview]
Message-ID: <4FD747AB.70406@hartkopp.net> (raw)
In-Reply-To: <CAHvj1qaxr-Zo4oteEhvrMXG00if3CBrPSL8+QYrQyJu=NUfnzg@mail.gmail.com>
On 12.06.2012 14:55, bruce bushby wrote:
> Hi
>
> I wanted to confirm my understanding of "socketcan" in terms "slcan0" and "can0"
>
Ok, let's go ...
> I've been playing with a Beaglebone board the a usb-can adaptor from
> mictronics.de:
> http://www.mictronics.de/projects/usb-can-bus/
> Purchased from:
> http://shop.greenstage.co.nz/product/usb-can-bus-interface
>
> 1. Is my understanding correct that "slcan" will ALWAYS be used when
> connecting a USB based CANBUS adapter?
No.
The slcan driver provides a CAN network device for CAN interfaces that are
controlled by the ASCII protocol first brought up by LAWICEL (www.can232.com,
www.canusb.com). The slcan driver converts the ASCII frames to struct
can_frame which is used in the Linux CAN subsystem (aka SocketCAN).
You may have a CAN device supporting the SLCAN protocol on RS232, USB-serial
adapters, whatever.
See
http://lxr.linux.no/#linux+v3.4.2/drivers/net/can/Kconfig#L13
and
http://lxr.linux.no/#linux+v3.4.2/drivers/net/can/slcan.c#L99
There are CAN USB drivers in the tree, that do not use the SLCAN protocol:
http://lxr.linux.no/#linux+v3.4.2/drivers/net/can/usb/Kconfig
>
> I am able to bringup slcan0 using the following commands:
Use this
> # slcan_attach -o -s6 /dev/ttyUSB0
> attached tty /dev/ttyUSB0 to netdevice slcan0
OR this
> # slcand ttyUSB0
!
Running slcand and slcan_attach together doesn't make sense.
> # ifconfig slcan0 up
> # ifconfig slcan0
> slcan0 Link encap:UNSPEC HWaddr
> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
> UP RUNNING NOARP MTU:16 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:10
> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>
> #
>
>
> 2. AM335x has an internal D_CAN, but the Beaglebone is missing any CAN
> transceiver...would the lack of the transceiver prevent the kernel
> from creating the "can0" device?
No. A missing CAN transceiver is not detected (so far).
I assume you need a platform driver specification for your board to find and
access the CAN controller. If you have it, the CAN controller can be accessed
and initialized => can0 appears.
>
>
> # lsmod
> Module Size Used by Not tainted
> d_can 5470 0
> can_raw 3679 0
> can_dev 4414 1 d_can
> can 16648 1 can_raw
> slcan 3437 1
> ftdi_sio 24056 1
> usbserial 18026 3 ftdi_sio
>
> # ip link set can0 up
> ip: SIOCGIFFLAGS: No such device
>
> # ifconfig can0
> ifconfig: can0: error fetching interface information: Device not found
As expected: Not platform definition => no hardware access => no device
>
> # ifconfig -a
> eth0 Link encap:Ethernet HWaddr D4:94:A1:89:BC:FF
> inet addr:192.100.1.13 Bcast:0.0.0.0 Mask:255.255.255.0
> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
> RX packets:70 errors:0 dropped:0 overruns:0 frame:0
> TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:1000
> RX bytes:21678 (21.1 KiB) TX bytes:1392 (1.3 KiB)
> Interrupt:40
>
> lo Link encap:Local Loopback
> inet addr:127.0.0.1 Mask:255.0.0.0
> UP LOOPBACK RUNNING MTU:16436 Metric:1
> RX packets:3 errors:0 dropped:0 overruns:0 frame:0
> TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:0
> RX bytes:166 (166.0 B) TX bytes:166 (166.0 B)
>
> slcan0 Link encap:UNSPEC HWaddr
> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
> UP RUNNING NOARP MTU:16 Metric:1
> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:10
> RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
>
> #
>
>
> FYI: This is probably a better board if you want to play with CANBUS:
> http://www.ti.com/tool/tmdxice3359
>
>
> Cheers
> Bruce
Regards,
Oliver
next prev parent reply other threads:[~2012-06-12 13:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-12 12:55 serial can or socket can ? bruce bushby
2012-06-12 13:44 ` Oliver Hartkopp [this message]
2012-06-12 13:53 ` Marc Kleine-Budde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FD747AB.70406@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=bruce.bushby@gmail.com \
--cc=linux-can@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.