Skip to content
/ LIN Public
forked from gandrewstone/LIN

The LIN protocol implemented over Arduino APIs (Serial and Digital IO)

Notifications You must be signed in to change notification settings

Oluwatoni/LIN

This branch is 2 commits ahead of gandrewstone/LIN:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Oluwatoni Ogunmade
Jan 5, 2017
b882ed8 · Jan 5, 2017

History

5 Commits
Dec 1, 2015
Dec 1, 2011
Nov 24, 2011
Jan 5, 2017
Dec 1, 2015

Repository files navigation

This is a LIN (http://en.wikipedia.org/wiki/Local_Interconnect_Network) protocol
master implementation that supports LIN 1.X or LIN 2.X frame types.  

It is built on top of the "Arduino" Serial and digital IO APIs.  These 
"underface" APIs form a useful abstraction layer for any chip.  So its better to
implement them for your new microcontroller and then get LIN for free using this
library than to implement LIN over a raw register set.

The library supports injection of immediate LIN frames, or a "skew heap" based
schedule table.  The skew heap schedule table differs from what is suggested
by the LIN specification (which defines a linked list of LIN frames and time
intervals between them).  This implementation provides a similar "pile" of 
LIN frames, but instead of being a static list, the skew heap essentially 
dynamically sorts the frames to find the next scheduled frame.  This allows
frames to be easily inserted and removed from the schedule, and frame interval 
periods (the time between 2 issues of the same frame) to be changed
dynamically.  It also means that the frame interval period does not depend on
the total length of the schedule table (as it does for the specced linked list
implementation) which eliminates an unnecessary interaction between otherwise
independent LIN devices.

The library was tested on a Lightuino 5 (Arduino Duemilanove/Uno compatible 
board) using a LIN slave LED of unknown provenance.  So you will have to change
the test code to generate frames for whatever LIN device you have on hand.

About

The LIN protocol implemented over Arduino APIs (Serial and Digital IO)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 57.2%
  • Other 37.3%
  • Makefile 5.5%