Tel: +1-617-350-7550

BACnet Protocol Stack tutorial Part 1

BACnet Protocol Stack tutorial Part 1

August 20, 2019

Let’s start with a basic. 

What is BACnet? 

BACnet is an ISO, ANSI, and ASHRAE standard network protocol for building automation. BACnet was developed by the American Society of Heating, Refrigerating, and Air-Conditioning Engineers (ASHRAE), and it was originally approved as an ASHRAE standard in 1995. The BACnet standard is maintained by ASHRAE committee SSPC 135.


BACnet is one of the most popular automation and control protocols used in products of leading industry vendors such as Honeywell, Johnson Controls, Siemens, Schneider, Trane, Azbil, and more. A new market research study indicates BACnet’s global market share has continued to rise over the last five years and now exceeds 60%.  


BACnet was designed to allow communication of building automation and control systems for applications such as heating, ventilating, and air-conditioning control (HVAC), lighting control, access control, and fire detection systems and their associated equipment. The BACnet protocol provides mechanisms for computerized building automation devices to exchange information regardless of the particular building service they perform. It can be used by computers, general-purpose direct digital controllers, and application-specific or unitary controllers with equal effect. One of the major advantages of this protocol is that it was developed from the beginning as an independent open standard automation protocol. More history you can find here.  


BACnet was originally developed to improve interoperability between building automation equipment, but its data definitions and flexible architecture makes it usable in a wide range of distributed control applications. 


BACnet is an object-oriented protocol. BACnet Objects are used to represent network-accessible control equipment. BACnet defines several standard object types, including: Accumulator, Analog Input/Output/Value, Averaging, Binary Input/Output/Value, Calendar, Command, Device, File, Life Safety Point, Life Safety Zone, Loop, Multi-state Input/Output/Value, Notification Class, Event Notification, Program, Pulse Converter, Schedule and Trend-Log. Each object contains a list of properties whose values indicate the current state of the control equipment. The BACnet standard specifies mandatory and optional properties for the standard object types, as well as mandatory behavior associated with some properties. 


A BACnet Server maintains a collection of Objects, including one Device Object, which describes the BACnet capabilities of the Server, and, starting with BACnet revision 17, one or more Network Port Objects, which describe the configuration and properties of network ports of the device. A Server will respond to BACnet service requests to read and manipulate its Objects. A BACnet Client generates service requests to monitor and control BACnet Servers. Some service requests that Servers will commonly respond to are Who-Is, Read-Property, and Write-Property. Servers can also generate service requests, such as I-Am and the service requests used to report events and alarms. Many BACnet controllers and workstations have both Client and Server functionality. Starting with BACnet revision 17, all BACnet devices have to provide the minimal server functionality as it is defined in the corresponding BACnet profile.


For transmission of packets, BACnet makes use of three popular LAN technologies: Ethernet™, ARCNET™, and LONtalk™. BACnet devices may also be directly connected to IP networks. BACnet includes an RS-485 master/slave data link layer and a point-to-point data link layer that were specially developed for BACnet. A BACnet internetwork can be formed from several BACnet LANs employing similar or different LAN technologies using BACnet-compliant routers.


The main references for BACnet are: 

  • ANSI/ASHRAE Standard 135-2016 “BACnet” (ISSN 1041-2336). The standard is available in book form or as an electronic document from ASHRAE
  • Direct Digital Control of Building Systems, by H. Michael Newman (ISBN 0-471-51696-1). This book, which was published in 1994, contains one chapter on data communications and one chapter describing BACnet prior to its approval as a standard. 1 Chapter 1. Introduction 
  • BACnet Gebäude-Automation 1.4, by Hans R. Kranz (ISBN 3-922420-02-8). This German-language book was published in 2005. 
  • Various articles about BACnet have been published in the ASHRAE Journal and elsewhere. The BACnet bibliography contains references for many of these articles. 

What is BACnet Protocol Stack?

BACnet is based on a four-layer collapsed architecture that corresponds to the physical, data link, network, and application layers of the OSI model as shown in the figure below. 

BACnet Architecture

What is the OSI model?

As Shengwei Wang specified in his book Intelligent Buildings and Building Automation there is an international standard that defines a model for developing multi-vendor computer communication protocol standards called The Open System Interconnection (OSI). The OSI model addresses the general problem of computer-to-computer communication and breaks this very complex problem into seven smaller, more manageable sub-problems, each of which concerns itself with a specific communication function. Each of these sub-problems forms a "layer" in the protocol architecture. 

BACnet layers

Why does it use only four layers? As the BACnet standard explains, this configuration was chosen after careful consideration of the particular features and requirements of BAC networks, including a constraint that protocol overhead needed to be as small as possible. 

BACnet Physical Layer

The physical layer provides a means of connecting the devices and transmitting the electronic signals that convey the data. The protocol defines rules for electrical signaling, addressing, error checking, network access, flow control, presentation, and message format. BACnet supports several data links:

  • Ethernet LAN
  • Arcnet LAN
  • MS/TP Token passing LAN
  • PTP Point-To-Point
  • LonTalk LAN
  • Data Link Layer

BACnet Data Link Layer

The data link layer organizes the data into frames or packets, regulates access to the medium, provides addressing, and handles some error recovery and flow control. 

Cimetrics BACstac protocol stack supports several standard BACnet data links. Some of these data links require lower-level operating system components to be installed. The BACnet/Ethernet data link uses the WinPCap interface. The BACnet/IP data link uses the TCP/IP protocol stack through the Windows Sockets API. The BACnet/PTP data link layer uses an unoccupied serial port. If your PTP DL is modem-configured, it will be capable of dialing and receiving calls. You can have any number of BACnet/Ethernet, BACnet/IP, Virtual, and BACnet/PTP ports.

BACnet Network Layer

Functions provided by the network layer include translation of global addresses to local addresses, routing messages through one or more networks, accommodating differences in network types and in the maximum message size permitted by those networks, sequencing, flow control, error control, and multiplexing. 

BACnet Application Layer

This layer handles the actual interface with the user’s application program. It also takes care of reliability and segmentation/sequencing mechanisms usually associated with transport and session layers. 



Leave a comment

Comments will be approved before showing up.


Also in Cimetrics News

October, 2019 Newsletter - New Deal for Buildings, Cybersecurity Summit, BACnet Consulting for Facility Managers/Building Owners and more..
October, 2019 Newsletter - New Deal for Buildings, Cybersecurity Summit, BACnet Consulting for Facility Managers/Building Owners and more..

October 31, 2019

Read More

CyberSecurity Recap October 2019
CyberSecurity Recap October 2019

October 18, 2019

New Deal Cybersecurity Summit, Future of Cybersecurity, National Security Awareness month, Security Vs Security, Cyberattacks affecting smart buildings and more..

Read More

BACnet for small platforms
The best way to implement BACnet on your small platform

October 09, 2019

Adding BACnet to small platform devices.

Read More