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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).