Customer Profile
Invensys Building Systems offers the most extensive line
of controls and components available to today's market,
including valve bodies, valve assemblies, actuation devices
and sensors, as well as interfaces and automated systems
that link these products and other building systems together.
Invensys Building Systems produces various electronic HVAC
(heating, ventilation, and air conditioning) plant controllers
for large buildings that are networked together over an
ANSI-standard network known as BACnet (Building Automation
and Control networks).
The Project
Software developers at Invensys developed both application
and network layers to communicate with various plant controllers
on their BACnet network. What they lacked was the time required
to produce a customized data link that conformed to the
Master-Slave Token Passing (MS/TP) protocol from the BACnet
standard. In addition, the BACnet standard imposed additional
timing constraints to the physical layer, whose underlying
implementation utilized RS-485 for sending messages long
distances in large building systems. These timing constraints
required that updates be made to the underlying Linux kernel
code.
Invensys turned to SSI Embedded Systems Programming for
their knowledge of communication protocols and Embedded
Linux for a seamless integration of the data link layer
and the main application.
SSI’s Solution
SSI engineers responded quickly to the project deadlines
and worked diligently to produce a robust software solution.
SSI began the project by designing a plan to work from the
bottom up.
First, the kernel code affecting the timing requirements
at the physical layer was updated and proven out. Afterwards,
the MS/TP LAN protocol was implemented with two state machines.
The state machines were incorporated into a line discipline
that can be registered and de-registered with the Linux
kernel. This allowed two things. First, the data link layer
would work in the background and not affect other running
processes. Second, multiple applications could simultaneously
utilize the services of the line discipline.
Source code was provided and made extremely easy to read,
and final test documentation was provided upon conclusion
of the project.