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 characters from a serial port for MS/TP, or to handle specific service requests.

 


The FreeRange 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, ARCNET and BACnet/IP are handled by MAC layer drivers that interface with the FreeRange 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 four 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 Client-Server (VSBCS) implements a larger set of server functions and also provides some client functionality.

 

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 multi-device (VSBMD) contains a different internal device model that is a virtual network of many logical BACnet devices with "routing" between the virtual network devices and a single physical BACnet LAN type. This is very useful in gateways and other types of BACnet implementations that wish to host what appear to be many BACnet virtual devices.

 

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

nameinitiateexecute
Who-IsCX
I-AmXC
Who-HasHC
I-HaveCH
ReadPropertyCX
WritePropertyCX
ReadPropertyMultipleCC
WritePropertyMultipleCC
DeviceCommunicationControl X
TimeSynchronizationCX
UTCTimeSynchronizationCC
ReinitializeDevice X
UnconfirmedPrivateTransferHH
ConfirmedPrivateTransferHH
SubscribeCOV C
Confirmed/UnconfirmedCOVNotificationC 
Unsubscribed COVNotificationCC
Confirmed/UnconfirmedEventNotificationC 
GetAlarmSummary C
GetEventInformation C
AcknowledgeAlarm C
AtomicReadFile X
AtomicWriteFile X
CreateObject H
DeleteObject H
all versions X
VSBCS, VSBHP, VSBMD C
VSBHP H

 

Ultra Lean Implementation for Freescale HC12
There is a special version of server-only that is only available for Freescale HC12 family processors. FreeRange ASO™ is similar to VSBSO but implemented entirely in HC12 assembly language. This very lean implementation has a Flash footprint in the 6K range.

 

Specifications

Operating System:
Operating System-Independent (multi-threading OS or "main loop")
8, 16 or 32 bit Processor, 1ms timer resolution Recommended

LANs:
BACnet/IP, MS/TP, Ethernet 8802-3

Licensing:
FreeRange VSB is licensed on a one-time fee basis. The license provides for the unrestricted use of the development libraries, and their code components, for the development of BACnet products to be resold in binary form. The development libraries, and components, may not be resold or sublicensed or redistributed. License fees include fully commented source code, documentation, and one year warranty on all code produced by PolarSoft.