Port ANSI-C CANopen Driver Package

The CANopen Driver Packages are the driver modules of the CANopen Library by port. The Driver Packages are the keys for the usage of the target system independent protocol library. They are designed for both target systems with and without operation systems.

The CANopen Driver Packages (DP) provide access to the hardware of the CANopen Library of port. The Driver Packages are the keys for the usage of the target system independent of CANopen Library. They are designed for target systems with and without operation systems.

While the largest part of the CANopen protocol stack is written in 100% portable ANSI-C, there is still the driver package, which is partly tailored to be used with specific compilers and tool chains. This is caused by different methods of acessing the hardware or defining interrupt service routines.

In order to increase synergies, accelerate development cycles and offer better services to our customers port has strategic company partnerships on different levels with chip manufacturers and compiler manufacturers in order to increase our capabilities and customer benefit.

  • Atmel
  • Cosmic
  • Freescale
  • Infineon
  • ST Microelectronics
  • Tasking, port partner page at Tasking, partners page at port
  • Texas Instruments
  • RENESAS
  • TI 
  • Spansion
  • XILINX
  • XMOS

The tables below, listing our supported hardware, will refer to these partners.

The CANopen Driver Packages provide all necessary functions for

  • initialization of the hardware
  • controlling the CAN Controller
  • message filtering
  • message buffering and
  • provision of a timer period

by means of a well defined interface. A CANopen Driver Package is comprised from a CPU- (DP/CPU), a CAN- (DP/CAN)and where applicable a driver for an operating system (DP/OS). These drivers can be used in any combination.

The following table shows hardware combinations of CPU and CAN drivers that are often used by our customers.

All drivers are available as documented ANSI-C source code. This allows easy and quick adoption to system specific hardware and trouble-free compilation with all ANSI-C compliant ANSI-C compilers.

 

 

Configuration possibilities

The driver provides access to the CAN controller by several means:

  • Memory Mapped Mode
    (addressing the CAN controller via the address space of the CPU)
  • I/O Mapped Mode
    (addressing the CAN controller via the I/O address space of the CPU)
  • Latched Mode
    (addressing the CAN controller via address latches)

The used access method for accessing the CAN controller register depends heavily on the used hardware and can be adopted by means of access macros.

The driver for the FullCAN controller types provide the usage of

  • FullCAN-Mode
    filtering CAN messages in hardware for all channels available (1 channel for sending or receiving)
  • FullCAN mode with 1 transmit channel
    one transmit channel for all transmit messages 

all other channels are configured as receiving channels using the hardware filter

  • BasicCAN mode
    - 1 transmit channel for all CAN messages
    - 1 receiving channel for all CAN messages

The last two modes provide the possibility to use devices with FullCAN controller, that support more CAN objects as are provided from the hardware of the CAN controller. Many drivers do contain code for

  • step by step initial operation of the driver
  • quick error detection
  • extensions that have been added due to customer requests
  • 29 Bit extented CAN Frames, besides the 11 Bit Base-Frame format

that can be enabled via appropriate compiler defines. Besides the drivers for processors with multiple CAN controller there are several other drivers that support configuration for multi-line usage with the CANopen Library. Thus there is a wide range of drivers that can be used for multi-line devices.

Please note that there are possible hardware constraints especially with older CAN controller. Configuration of the driver is done with the CANopen Design Tool, which is enclosed to the CANopen Library as light version.

Resources

All drivers normally transmit and receive interrupt driven and therefore require the integration into the interrupt system of the device. It also can be used in polling mode for special-purpose applications. 

The time base for the CANopen Library can either be provided by the CANopen Library itself by using a timer or the timer interrupt function is called cyclically by another system timer.

  • reviewed hardware/system driver (DP 0565/xx) for typical hardware configurations
  • freely selectable hardware driver CAN controller combinations (DP/CPU 0566/xx, DP/CAN 0567/xx)

We recommend the purchase order of pre-configured driver packages that in addition to the CPU and CAN driver contain ready to use examples. These have been prepared with project files for the compilers and configurations we use.

For application of the CANopen Library with operating systems like Windows™ or LINUX™ port provides drivers for active and passive PC cards, parallel dongles, PCMCIA cards, USB interface and external Ethernet to CAN converter (EtherCAN).

0565/100

DP  TI Concerto F28MX35x

0565/94

DP AT32UC3C0512

0565/35

DP Atmel AT90CAN128

0565/47

DP Atmel AT91SAM7A3/SAM7X(C)

0565/83

DP Atmel AT91SAM9263

0565/112

DP ATMEL ATSAM4E

0565/146

DP ATMEL ATSAM4E FreeRTOS

0565/10

DP Atmel T89C51CC01/02/03

0565/46

DP Beck IPC@CHIP 1x3

0565/03

DP C167C

0565/50

DP can4linux connector

0565/17

DP CAN-AC2 Windows

0565/53

DP CANopen SocketCAN Connector

0565/91

DP Cortex A8

0565/13

DP CPC-Windows

0565/88

DP FPGA XILINX - Proof of Concept

0565/07

DP Freescale HCS12(X)

0565/122

DP Freescale K1x/K6x

0565/128

DP Freescale K1x/K6x µC/OS-II

0565/121

DP Freescale K2x

0565/136

DP Freescale Kinetis KE06 Family (MKE06Z128)

0565/04

DP Freescale MC09S08

0565/118

DP Freescale MC56F827xx

0565/48

DP Freescale MC56F8323

0565/90

DP generic driver

0565/70

DP horch Linux (TM)

0565/144

DP Infineon Aurix TC23x

0565/34

DP Infineon XC164CS

0565/69

DP Infineon XE164

0565/137

DP Infineon XMC4200

0565/149

DP Infineon XMC4300

0565/56

DP Infineon XMC4500

0565/126

DP Infineon XMC4800

0565/63

DP Kvaser

0565/73

DP Luminary LM3S2965

0565/92

DP Luminary LM3S5B91

0565/86

DP Luminary LM3S5Y36

0565/37

DP Microchip dsPIC30F6011/12/13/14

0565/123

DP Microchip dsPIC33EPxx

0565/124

DP Microchip dsPIC33EVxx

0565/19

DP Microchip dsPIC33F256

0565/43

DP Microchip PIC18F2680

0565/99

DP Microchip PIC32

0565/24

DP netX

0565/132

DP NXP LPC15xx

0565/95

DP NXP LPC1768

0565/134

DP NXP LPC1778_1788

0565/39

DP NXP LPC2129

0565/85

DP NXP LPC2368

0565/74

DP NXP LPC2468

0565/138

DP NXP LPC4078_4088

0565/120

DP NXP LPC43xx

0565/154

DP NXP S32K144

0565/15

DP Peak PCAN-Basic Windows

0565/65

DP Renesas (former NEC) PD70F3377 (V850/ES-Fx3)

0565/93

DP Renesas (former NEC) PD70F3476

0565/55

DP Renesas (former NEC) PD70F3577 (V850E2/Fx4)

0565/113

DP Renesas (former NEC) PD70F4022 (V850E2/ML4)

0565/64

DP Renesas M16C/6NK (embOS)

0565/21

DP Renesas M16C29

0565/114

DP Renesas R-IN32M3

0565/59

DP Renesas RL78F13

0565/119

DP Renesas RL78F14

0565/125

DP Renesas RX231

0565/108

DP Renesas RX62N

0565/96

DP Renesas RX63N

0565/116

DP Renesas RX64M

0565/130

DP Renesas Synergy

0565/33

DP SiLabs C8051F040

0565/80

DP SiLabs C8051F50x

0565/153

DP Spansion MB9BF15x

0565/78

DP Spansion/Fujitsu MB91F467

0565/66

DP Spansion/Fujitsu MB96F348

0565/109

DP Spansion/Fujitsu MB9BF524K

0565/79

DP ST Microelectronics STR91x

0565/104

DP Stellaris LM3S9DN6

0565/117

DP STM32F0xx

0565/72

DP STM32F103

0565/107

DP STM32F105/F107

0565/98

DP STM32F20x

0565/110

DP STM32F3xx

0565/106

DP STM32F4xx

0565/143

DP STM32F4xx FreeRTOS

0565/142

DP STM32F4xx Keil RTX

0565/148

DP STM32F4xx ThreadX

0565/133

DP STM32F7xx

0565/145

DP STM32F7xx FreeRTOS

0565/127

DP STM32L4xx

0565/139

DP STM32L4xx FreeRTOS CAN sleep

0565/101

DP TI AM335x (SYS/BIOS)

0565/129

DP TI AM427x IDK

0565/140

DP TI Tiva TM4C129X FreeRTOS

0565/152

DP TI TMS320DM6435 Sysbios + Autobaud

0565/150

DP TI TMS320F2803x

0565/32

DP TI TMS320F2806/2808/2812

0565/135

DP TI TMS320F28075

0565/57

DP TI TMS320F28335

0565/131

DP TI TMS320F28377

0565/151

DP TI TMS320F2837x SYS/BIOS

0565/147

DP TI TMS570LS Hercules

0565/81

DP VxWorks

0565/154

DP NXP S32K144

0565/153

DP Spansion MB9BF15x

0565/152

DP TI TMS320DM6435 Sysbios + Autobaud

0565/155

DP Renesas RX71M 

0565/147

DP TI TMS570LS Hercules

0565/157

DP TI TMS320F28379_with_MCP2517FD_Sysbios

0565/158

DP Renesas SH72544R

0565/159

DP Xilinx Zync7020

0565/160

DP Renesas RH850D1M

0565/161

DP Renesas RX65N FreeRTOS

0565/162

DP NXP S12Z

0565/163

DP STM32F413 

0565/164

DP Renesas RZ/T1 R4F (ARM Cortex-R4F core only)

0565/165

DP TI Tiva TMC4C mit FreeRTOS with Heap

0565/166

DP Vector XL Driver Library

0565/167

DP Renesas RX72M

0565/168

DP TI MSP432E401

0565/169

DP Xilinx ZYNC Ultrascale mit QNX

0565/170

DP TI Tiva TM4C123G (Baremetal)

0565/171

DP Renesas Synergy S5D9

0565/172

DP IXXAT VCI (under Windows)

0565/173

DP ST STM32G4xx

0565/174

DP ST STM32H7xx

0565/175

DP PEAK Basic Windows

0565/176

DP Microsemi SmartFusion2

0565/177

DP Infineon Aurix TC275

0565/178

DP Generic CANHAL Driver

Tecnologix offre supporto gestito direttamente dal Team di sviluppo.
Non esitare a metterti in contatto con i nostri esperti.
Basta chiedere qui

Hai bisogno di aiuto per sviluppare il tuo progetto?

Con più di 25 anni di esperienza nei servizi di ingegneria elettronica ed informatica, affiancati da consulenza e formazione, Tecnologix è il partner ideale per lo sviluppo di ogni tipo di applicazione nel settore industriale.
Clicca il pulsante qui sotto e inviaci la tua richiesta, il nostro staff ti risponderà il prima possibile.