FreeRange Very Small BACnet (VSB)
Embedded BACnet Stacks for Small Processors
If you're a developer of microcomputer-based equipment, with applications in commercial buildings, you
probably know about BACnet, the international standard for building
and control systems networking. Many of your customers are specifying BACnet for new equipment. If you've
looked at the BACnet standard, you know that even simple communications functions can present some daunting
problems, and you probably don't have the time to become that much of a BACnet expert. You may not have the
time or resources necessary to convert all of your existing products to BACnet, but you don't want to be
excluded from consideration just because your products don't yet support BACnet. You need a reliable platform
to help jumpstart the process of getting your existing products communicating with BACnet devices.
But you need a compact and efficient implementation with basic features that won't make too many demands on
your platform's limited resources.
You need FreeRange™ VSB.
PolarSoft FreeRange VSB (Very Small BACnet stack) is a modular software component that provides BACnet application layer, network layer and media access (MAC) layer communications services to embedded systems programs. FreeRange VSB is written entirely in the C language for ease of portability to various platforms.
FreeRange VSB interfaces with the embedded system through simple function calls. FreeRange VSB provides entrypoints that your application program must call periodically or under certain circumstances. Also, your application program must provide certain routines that FreeRange VSB may call when needed, for example to send and receive bytes from a serial port for MS/TP, or to handle specific service requests.
The VSB BACnet Stack implements generic handling for BACnet services, passing control to routines in your application program when particular services are requested.
MS/TP communication is handled completely within the FreeRange VSB stack. Other types of communications media, such as Ethernet 8802-3 and BACnet/IP are handled by MAC layer drivers that interface with the VSB stack. The diagram illustrates the relationship of these programs with each other.
FreeRange VSB automatically handles various services such as Who-Is, I-Am, and DeviceCommunicationControl execution. The FreeRange stack pre-qualifies ReadProperty and WriteProperty services and passes the parameters for these requests directly to your application. This allows your application to enforce whatever policies that you want on interpretation of BACnet object identifiers. The only exception is that most of the properties of the Device object are handled directly within FreeRange VSB.
The stack is available in two versions. FreeRange VSB Server-only (VSBSO) is the simplest and provides only a modest set of server functions. These are shown in the table below marked with an X.
FreeRange VSB high-performance (VSBHP) includes even more functionality as well as a high-performance MAC layer API that is fully queued and allows for asynchronous multi-threaded handling. Generally VSBHP is more suitable for use with high-performance networks such as BACnet/IP.
FreeRange VSB has been implemented on a wide range of processors including 8051, Rabbit 3000, 68HC11, H8, 80186, Atmel ATmega128/644 and even the PIC18F, as well as larger processors such as ColdFire/386EX/ARM7/ARM9 and Windows, OS/X and Linux PCs.
Supported Services
name | initiate | execute |
Who-Is | H | X |
I-Am | X | H |
Who-Has | H | H |
I-Have | H | H |
ReadProperty | H | X |
WriteProperty | H | X |
ReadPropertyMultiple | H | H |
WritePropertyMultiple | H | H |
DeviceCommunicationControl | X | |
TimeSynchronization | H | X |
UTCTimeSynchronization | H | H |
ReinitializeDevice | X | |
UnconfirmedPrivateTransfer | H | H |
ConfirmedPrivateTransfer | H | H |
SubscribeCOV | H | |
Confirmed/UnconfirmedCOVNotification | H | |
Unsubscribed COVNotification | H | H |
Confirmed/UnconfirmedEventNotification | H | |
GetAlarmSummary | H | |
GetEventInformation | H | |
AcknowledgeAlarm | H | |
AtomicReadFile | X | |
AtomicWriteFile | X | |
CreateObject | H | |
DeleteObject | H | |
all versions X | ||
VSBHP only H |
Specifications
8, 16 or 32 bit Processor, 1ms timer resolution Recommended
VSBHP MS/TP, BACnet/IP, Ethernet 8802-3