Know all about CAN Bus Interface to USB

In computing,  CAN interface may be a shared boundary across the two separate parts of a system conversation information. The conversation can be done between computer hardware, software, humans, peripheral devices and combinations of these. Some hardware devices of a computer like a touchscreen because; a touch screen can share and receive information through the interface, whereas other devices like a microphone, mouse are only one way. Interfaces are mainly in two types such as hardware interfacing and software interfacing. Hardware interfaces are used in many of the devices like input, output devices, buses and storage devices. This CAN interface can be defined by the logic signals. A software interface can be available in a wide range at different levels. An OS may interface with different parts of the hardware. The programs or applications on the OS may need to communicate through streams and in object oriented programming, objects in any application need to communicate through methods.

CAN to USB Interface


The CAN bus was developed in the year 1983 at Robert Bosch GmbH. This protocol was released in the year 1986 at the SAE Congress (Society of Automobile Engineers) in Detroit, Michigan. The first CAN protocol was produced by Philips and Intel and released on the market in the year 1987. But the BMW series-8 was the first vehicle to feature a CAN protocol based multiplex wiring system.


The full form of the CAN is a controller area network. It is a one kind of vehicle bus mainly designed to allow various devices and microcontrollers to interact with each other without a host computer. This protocol is based on a message and mainly designed for electrical wiring in automobiles. Bosch published various versions of the CAN and in the year 1991 the latest CAN 2.0 was published.

CAN consists of two parts mainly such as part A and Part B where, Part A is an 11-bit identifier and it is in the standard format. Part B is a 29 bit identifier, and it is in the extended format. A CAN which uses 11-bit identifiers are called AN 2.0A and a CAN which uses 29-bit identifiers it is called CAN 2.0B

Interfacing of CAN to USB

Interfacing of CAN to USB is a simple device, used to monitor the CAN bus. This device uses the NUC140LC1CN 32 K Cortexes-M0 microprocessor. It has both CAN and USB peripherals.

The main features of interfacing CAN to USB are

  • It is very simple to design
  • Well-matched with the protocol LAWICEL CANUSB
  • Exposing itself as a device like FTDI USB
  • It supports CAN 2.0B 29-bit and CAN 2.0A 11-bit frames
  • It consists of an internal message buffer (FIFO CAN)
  • It powers from USB port
  • For firmware updates a mass storage device (Flash-resident USB) is used

Schematic Diagram

The circuit configuration of the Interfacing of CAN to USB is shown below. A CAN transformer is used to enable the NUC140 CAN device to interact with the CAN bus. The chip TJA1051T solves the purpose from NXP. The microprocessor NUC140 is capable of working with a 5V power supply; there is no necessity of an extra 3.3V voltage regulator. This convenient arrangement makes a simple task implementing CAN to USB interface.

Schematic Diagram
Schematic Diagram

The circuit is built with three status LEDs namely D1, D2 and D3.

  • Here the status of the D1 diode says that USB connected to the host
  • Here the status of the D2 diode says that activity of CAN bus
  • The errors of the CAN bus can be indicated by D3 diode

The NUC140 microprocessor doesn’t have an integrated boot loader and the best way to program is only used Nuvoton ICP programmer and ARM SWD (Serial Wire Debug) interface. If the boot loader is previously dumped with a program it could be triggered. Connecting the JP1 before powering the interface will trigger the boot loader.

Boot Loader

The flash memory of the NUC140LC1 microprocessor is separated into two sections. They are executing user program code and boot loader. The size of boot loader and executing user program is 4K and 32K. Here the mass storage device(MSD) boot loader from Nuvoton is used to build a fully functional USB boot loader. The boot loader will activate by connecting a JP1 jumper. So finally, a removable drive must be visible in the host file system with a 32KB size. Just copy and paste the update of CAN to USB firmware to the boot loader drive. Disconnect the USB cable, disconnect the jumper and plug it in again. The update of new firmware should now be running.

Boot Loader
Boot Loader

CAN to USB Interface Programming and NuTiny-SDK-140

Programming of microprocessor NUC140 needs Nuvoton ICP programming application and Nuvoton’s Nu-Link programmer. But here the NuTiny-SDK-140 (NUC140 demo board) is available from Digi-Key. It consists of two parts such as Nu-Link programmers and the part with NUC140 chip. This board is even perforated to separate the part of the Nu-Link. Actually, you can design this device exclusively around the NUC140 demo board, the only an extra CAN transceiver chip will be essential.

NUC140 Board
NUC140 Board

Thus, this is all about CAN interface with USB includes, CAN bus, interfacing CAN to USB, schematic diagram, boot loader and NUC140 microprocessor. We hope that you have got a better understanding of this concept. Furthermore, any queries regarding this article please give your valuable suggestions by commenting in the comment section below. Here is a question for you, what are the applications of of CAN interface?

Photo Credits: