BACnet tutorial | What is BACnet

This BACnet tutorial page covers BACnet protocol stack basics. The BACnet protocol layers include physical layer, link layer, network layer, application layer and BACnet security layer.

As we know BACnet is the short form of Data Communication Protocol for Building Automation and Control Networks. BACnet is one of the popular automation and control protocol used in products of leading industry vendors such as Johnson Controls Inc., Siemens building technologies, KMC Controls, Teletrol Systems etc.

BACnet was developed from beginning as independent open standard automation protocol. Several BACnet protocol stacks are available for free for the community.

BACnet applications are very vast. BACnet applications include lighting control, security, fire control, alarm, HVAC (Heating, Ventilating, Air-Conditioning and interfacing to utility companies.

BACnet International takes care of conformance testing services as well as development and adoption of the BACnet standard. BACnet technology should interwork with other technologies such as KNX and Zigbee. The interoperability specifications between these technologies have also been developed for these systems to coexist.

BACnet protocol stack

BACnet protocol stack Figure: BACnet protocol stack

The figure depicts BACnet protocol stack. As shown it consists of physical, link, network and application layers. BACnet protocol is a collapsed version of OSI stack. The transport and session layers are not used. Application layer takes of functions of these two layers. Refer How BACnet protocol works page which explains various headers used at BACnet protocol layers.

BACnet Physical Layer

BACnet upper layers do not depend on physical layer. BACnet Physical layer makes it possible for BACnet to be implemented on different networks. BACnet physical layers have been specified for following:
• Ethernet
• IP tunnels
• BACnet/IP
•  RS-232
• RS485
• Lonworks/LonTalk

RS232 is for point to point communication. RS485 supports upto 32 nodes with distance of 1200 m at 76Kbps.

BACnet Protocol Link Layer

BACnet can be implemented directly using LonTalk / IEEE802.2 link layers. It specifies PTP (Point To Point) data link layer for RS232 connections. It specifies MS/TP data link layer for RS-485 connections.

The standard specifies BVLL ( BACnet Virtual Link Layer) which mentions all the services (e.g. broadcast) needed by BACnet device at this link layer.

IP BVLL encapsulates needed control information in a header of BACnet virtual link control information. Due to IP BVLL BACnet devices can communicate directly over IP networks without the need of any router device.

BACnet uses BBMD concept which implements the needed broadcast requirements of the desired link layer. BBMD stands for BACnet broadcast management device. As per this, BACnet broadcast message is converted to IP based multicast/broadcast messages.

BACnet Network Layer

The BACnet network layer specifies the network addresses needed for routing. BACnet network composed of one or more segments. These BACnet segments are connected using bridges when they use same LAN technologies. If they use different LAN protocols they are connected/interfaced using routers.

BACnet Application Layer

BACnet does not segregate presentation and application layers. It takes care of reliability and segmentation/sequencing mechanisms usually associated with transport and session layers.

BACnet features devices as objects which exchange service primitives. These service primitives are described using ASN.1 syntax and are serialized using ASN.1 BER.

BACnet Security Layer

Let us understand the BACnet security concept. BACnet device-A can request a session key from key server in order to establish secure communication with device-B. This key is delivered to device-A and device-B by key server. The key is referred as 'SKab'. BACnet protocol uses 56-bit DES encryption.

The device-A and device-B authenticate each other by way of exchanging challenges (i.e. random number encryption with session key). The challenge message includes identifier (i.e. InvokeID). This is used for all the future transactions which are to be authenticated.

IoT Wireless Technologies

THREAD    ➤EnOcean    ➤LoRa    ➤SIGFOX    ➤WHDI    ➤NFC   ➤Lonworks   ➤CEBus   ➤UPB  

RF Wireless Tutorials