USB to CAN Adapter
Need to connect your CAN bus network to a PC? Just plug the compact and tough CANUSB into any PC USB Port and you have an instant USB CAN bus interface. CAN data is sent and received from your CAN bus network using standard ASCII format, either through a standard COM port or by using the DLL.
Using a COM port means that no drivers have to be installed, and existing serial port software can be used without changes. Installing the DLL package with its direct drivers gives higher CAN bus loads and faster communications, and we have made it surprising easy to do.
The free sample programs allow you to start seeing and transmitting CAN messages immediately using your PC USB port, without having to write any code!
Just plug the CAN bus USB interface into a standard USB port and it gives a USB to CAN DB9 male output to your CAN network. As the CANUSB draws its power from the USB bus, no external power supply is required. This USB to CAN bus interface conforms with CiA (CAN in Automation) recommendations, so its maximum current consumption is 100mA. Normal current consumption is less than 45mA, but this can depend on CAN cable errors, CAN bus load etc.
The CAN USB
operates on all Windows and Linux platforms. You can use the free virtual COM port
and your existing RS232/COM port software in Delphi, Visual Basic, C++ etc. for an instant CAN bus to USB connection.
Alternatively, you can use the DLL package or VB6 ActiveX control to access the CANUSB
which improves the performance of the CAN bus USB interface.
See Download page for CAN USB Software
If you already use CAN232, it is easy to migrate from CAN232 to CANUSB with some small software changes.
A free Windows threaded API DLL allows you to write applications for USB to CAN Bus connection in any language
- Compact size (Length: 55mm, Width: 36mm, Height: 16mm)
- 1m shielded USB lead
- Free Virtual Com Port software
- Free USB Drivers
- Firmware upgrades via USB
- Demos available in Visual Basic, C++ and Delphi
- Free sample programs available
- Free Direct Driver DLL
- CAN bit rate up to 1Mbit/s
- Industrial Temperature range -40C to +85C (since serial No: W700, previously 0C to +70C)
- Full Speed USB 2.0, using FTDI FT245RL
- Philips 82C251 CAN Tranceiver (Fully Compatible with ISO 11898-24V)
- Philips SJA1000 CAN Controller running at 16Mhz
- Supports both CAN 2.0A (11-bit CAN ID) and CAN 2.0B (29-bit CAN ID)
- RTR frames supported
- 32 CAN frames deep FIFO buffer for incoming frames in CANUSB firmware
- Incoming CAN frames can be Time Stamped in mS
- CiA DS102-1 standard CANbus connection
- Powered by USB
- Free Interface DLL and ActiveX controller or low level Ascii Commands via USB driver
- Free Linux driver availible
- Green LED shows CAN activity
- Red LED shows CAN error activity
- Firmware updates by USB
- FCC compliant and CE Approved
- RoHS & WEEE Compliant
CAN Pin Assignments
Pin assignment comply with CiA recommendations DS102-1.
The interface is powered from USB port, so there is no need to connect external power on pin 9. Only CAN_L (pin2), CAN_H (Pin7) and CAN_GND (pin3) need to be connected.
Sample Programs, Linux and Drivers
Sample Programs, Demos and Drivers
Linux driver information
Inside the adapter, you will find a high quality, dense 4-layer PCB with parts on both sides. Using a four layer PCB reduces noise, giving faster, more reliable data transfer, as well as improving EMC immunity and emission.
The firmware can be upgraded through the USB interface, so you can easily update the firmware when new improved software is released or new functions are added. It is CE certified, FCC compliant and RoHS compliant, which many other similar products are not.
More About CAN Networks
What is a CAN bus?
A Controller Area Network (CAN) refers to a network of independent controllers. It is a serial communications
protocol that efficiently supports distributed real-time control with a very high level of
security. The CAN bus standard was developed by Bosch and Intel and the version of the current standard has
been in use since 1990.
What is a physical layer, or an application layer?
The International Organization for Standardization (ISO) developed the Open System Interconnect (OSI) model in 1984 as a model of computer communication architecture. There are seven layers to the OSI
model: Physical, Data Link, Network, Transport, Session, Presentation, and Application. The intent is that protocols be developed to perform the functions of each layer as needed.
[Source: SAE J1939 Revised Aug 2003]
What does CAN 2.0B mean?
CAN was divided into different layers according to the ISO/OSI model in order to achieve design transparency
and implementation flexibility. CAN 2.0B refers to the specification that defines the Physical Layer and
the Data Link Layer for all CAN buses. It specifies a 29 bit CAN ID, which is the address of a module on
the CAN network. Older CAN 2.0A used 11 bit CAN IDs. CAN USB supports both CAN2.0A and CAN2.0B.
How do CAN bus modules communicate?
The CAN bus uses two dedicated wires for communication. The wires are called CAN high and CAN low. When the
bus is in idle mode, both lines carry 2.5V. When data bits are being transmitted, the CAN
high line goes to 3.75V and the CAN low drops to 1.25V, thereby generating a 2.5V differential between the lines.
Since communication relies on a voltage differential between the two bus lines, the CAN bus is NOT sensitive
to inductive spikes, electrical fields or other noise. This makes CAN bus a reliable choice for networked
communications on mobile and other equipment, especially vehicles which are electrically very noisy.
Powering the Bus
Power can be supplied through CAN bus, or a power supply for the CAN bus modules can be arranged separately.
The power supply wiring can be either totally separate from the CAN bus lines (using suitable size wiring
for each module) resulting in two 2-wire cables being utilized for the network, or it can be integrated into
the same cable as the CAN bus lines resulting in a single 4-wire cable. This cabling is available from
What is the differences between CAN Bus and CANopen or SAE J1939?
These protocols are higher level CAN bus protocols. They both use the CAN 2.0B standard for the physical and data link layer. Each protocol, however, has different standards for the higher layers in the OSI model, and thus the way in which data is transmitted and interpreted is unique to each. CANUSB does not support these higher level protocols, but a C++ project is available without support for CANOpen.
Are there master and slave modules on the bus?
The nature of CAN communications allows all modules to transmit and receive data on the bus. Any module can transmit data, which all the rest of the modules receive,allowing both peer-to-peer and
broadcast data transmissions. Each module is given a unique CAN ID, either 11 or 29-bits that it responds to. In CANopen, the bus normally includes one module acting as a network master which starts the bus communications, but a dedicated master module is not needed. In J1939, the master and slave concept is not used.
What is the practical limit of data throughput on the CAN bus?
CAN bus can use multiple baud rates up to 1 Mbit/s. The most common baud rates are 125 kbit/s (default CANopen) and 250 kbit/s (J1939). The communication enables loads of up to 100% (data being transmitted all the time and all nodes can transmit), allowing full usage of the nominal bit rate.
Are there distance limitations?
It is a synchronous network, where all receiving modules synchronize to the data coming from a transmitting module. The electrical characteristics of the cable restrict the cable length according to the selected bit rate. You can use cabling up to 250 metres with a baud rate of 250 kbit/s. The maximum bus length with a bit rate of 10 kbit/s is 1 km, and the longest with 1 Mbit/s is 40 metres.
Do I need expensive cabling?
In standard industrial environments, the CAN bus can use standard cabling without shielding or twisted pair wiring. If very low EMI is required, a twisted-pair cable is recommended. However, this will normally not be needed in most applications. The bus does need terminating resistors.
Is the number of nodes (modules) limited?
In CANopen, there are unique addresses available for up to 127 nodes on the bus. However the practical physical
limit of nodes is about 110 units per bus. In J1939, there are 253 unique addresses available for the bus.
Can I use units from different vendors in the same system?
Yes. If the same higher-level protocol such as CANopen or J1939 is used by all the modules on the bus, you can mix components from different vendors in the same control system without software changes.
How popular is CAN?
Currently there are hundreds of millions of CAN nodes in use in the world. It is being widely used in passenger cars,
buses, factory automation, work machines, agriculture, forestry and mining applications. The applications for
CAN are increasing all the time.
Where can I get more information about it?
The higher-level protocol support organizations provide information about CAN bus, protocols and keep a database of products. The CANopen protocol is developed by CiA (CAN in Automation) at
www.can-cia.org. SAE (Society of Automotive Engineers) can provide information about the J1939 protocol at www.sae.org.
CANUSB is the perfect USB to CAN bus interface, due to its small size, low price, fast throughput and ease of use.
The CAN to USB convertor you can trust.
Kanda blog post about CAN Bus