Chrysler SCI Gryphon driver...

Background - message based verses byte based SCI, etc

In the beginning a small basic generic 16550 type UART driver was quickly written for developmental and experimental use, and as a likely starting point for future UART based protocol projects.

Along came the Chrysler spec for a good simple message based protocol, entitled "CHRYSLER SCI Communication Data Link Specification. EQUIPMENT AND TOOL INSTITUTE RELEASE. June, 1998". For this is was decided to produce a dedicated SCI driver by modifying the generic UART driver to implement the message based SCI message delimitation instead of the time based message delimitation the generic UART driver currently provided. Also, being such a straight forward protocol, some of the functionality the generic driver might offer could be omitted.

Things changed with news of a seperate byte-based Chrysler UART protocol, also called 'SCI', for example as described in a Chrysler document entitled "SCI DIAGNOSTIC PROTOCOL FOR 2002MY POWERTRAIN CONTROL MODULES / Release 1.0 31-Jan-2001 / Michael M. Flaherty, Core Vehicle Diagnostics". This protocol likely uses the same hardware and physical layer as the message based SCI protocol but involves nodes interacting with each other on a byte by byte basis and thus fundamentally conflicts with the message based concept of message based SCI.

So unsure as to whether other Chrysler departments may chose to define additional protocols that make use of SCI hardware, it was decided to revert back to the original generic UART idea. Thus to date, the SCI driver, defaults to implementing Chrysler message based SCI, but the user application can switch to more generic behaivior with the use of ioctl calls. The driver offers the full functionality of the generic UART driver to assist the user software in implementing whatever protocol the user wants.

As a point of fact, the generic UART driver and the SCI driver are complied from the same source code, the only difference being the SCI driver defaults to Chrysler message based SCI message delimitation mode and the generic UART driver defaults to time based message delimitation. Maintaining one file for both yields many practical advantages. The main downside is the user may be faced with documentation for many more features, ioctls etc, than they actually need for their particular application.