型号: PXF3276
CAN Software
Our Controller Area Network (CAN) Device Driver provides a simple application program interface (API) for sending and receiving CAN messages. The CAN device driver abstracts away the technical details and complexity associated with interfacing to the CAN peripheral. This increases the simplicity of your application software, improves your reliability, and shortens your product s time to market.
Simma Software has been designing CAN device drivers for 15 years and has deployed numerous drivers into automotive embedded systems. Simma Software s CAN drivers have been validated to withstand 100% bus utilization on multiple CAN networks simultaneously and have been shown to be 800% faster than other drivers.
CAN, which stands for Controller Area Network, is a high-speed, half-duplex, differential, serial communications protocol invented by Bosch. CAN was designed to be a multi-master network for connecting ECUs in a vehicle. It is now widely used in all light, medium, and heavy duty vehicles. Due to its popularity, it has spread to aircraft, marine, all terrain vehicles, and industrial automation.
A CAN bus has a network speed ranging from 33 Kbps to 1 Mbps. CAN uses a non-destructive method for bus arbitration and collision detection. Because bus collisions are non-destructive, it is possible to achieve 100% bus load.
Non-destructive arbitration is achieved by defining a 0 to be electrically active, known as a dominate bit, and a 1 to be electrically passive, known as a recessive bit. A dominant bit, is when CAN_H has a potential 200mV higher than CAN_L. A recessive bit is when the difference is less than 200mV.
When a node transmits, it verifies it s transmitted value is present on the bus. If the value it is transmitting is not the value currently on the bus, it stops transmitting. Because a 0 is dominate, if a 0 and 1 are transmitted by two different controllers at the same time, the bus will always be 0. When the 1 sending node detects the 0, instead of its sent value of 1, it immediately stops it s transmission with the 0 sending node continuing.
CAN is rarely used without a higher level protocol specifying how information is exchanged. Light duty vehicles use ISO 15765-4, while medium and heavy duty use SAE J1939. The marine industry uses NMEA2000, which is based on J1939, and Agricultural equipment uses ISO 11783, which is also based on J1939. Industrial automation applications, like robotic arms, use DeviceNet or CANopen software (CiA 301).
A frame consists primarily of the CAN identifier, data length code, and data field. The ID represents the priority of the message. The data length code is a 4-bit value from 0 to 8 indicating how many bytes are present in the data field. The data field is the actual data for that CAN frame.
CAN Ports
Our CAN device drivers, ssCAN, are hard real-time drivers with low interrupt latency and are written in the ANSI C programming language. They are completely interrupt driven and feature configurable FIFO sizes. Our CAN device drivers implement all target specific details for a given microcontroller.
Together ssCAN and one of our high level protocols form a complete ported system allowing customers to be up and running almost immediately. Our ssCAN device driver has been ported to over 40 different microcontrollers. Below is the list of available ports. Please contact us if you are interested in a port or device driver for a hardware platform that is not listed.