Difference between revisions of "BACnet MS/TP"

From BACnet Wiki
Jump to: navigation, search
Line 28: Line 28:
 
|-
 
|-
 
| Data CRC LSByte || if len non-zero
 
| Data CRC LSByte || if len non-zero
 +
|-
 +
| Optional EOF (0xFF) || if USART cannot indicate outgoing shift register clear)
 
|}
 
|}
  
Line 34: Line 36:
 
[[NSDU]]max = max ( [[APDU]]ms/tp, [[RPDU]] ), and Prior to Revision ** (prior to 135-2006), was 480 bytes.  
 
[[NSDU]]max = max ( [[APDU]]ms/tp, [[RPDU]] ), and Prior to Revision ** (prior to 135-2006), was 480 bytes.  
  
[[NPCI]]max = 9 + 6 byte MAC + 7 byte MAC = 22
+
[[NPCI]]max = 9 + 6 byte MAC + 6 byte MAC = 21
  
So [[NPDU]]max = [[NSDU]]max + [[NPCI]]max =  480 + 22 = 502
+
So [[NPDU]]max = [[NSDU]]max + [[NPCI]]max =  480 + 21 = 501
  
And so [[MPDU]] = [[NPDU]]max + 10 (above) = 512
+
And so [[MPDU]]max = [[NPDU]]max + 10 (above) = 511
  
  

Revision as of 12:01, 19 November 2018

BACnet "Master-Slave/Token-Passing" is the optional, RS-485 based physical layer for BACnet. It is based on cheap, relatively slow, serial communications.


Starting with Addendum 135-2008ab, 9600 and 38400 are the required baud rates and all of the others (19200, 57600, 76800, and 115200) are optional


MS/TP Frame Format
0x55 Framing 1
0xFF Framing 2
Frame Type
Dest MAC
Src MAC
Len MSByte
Len LSByte
Header CRC
Data This is the NPDU, if len non-zero
Data CRC MSByte if len non-zero
Data CRC LSByte if len non-zero
Optional EOF (0xFF) if USART cannot indicate outgoing shift register clear)


NSDUmax = max ( APDUms/tp, RPDU ), and Prior to Revision ** (prior to 135-2006), was 480 bytes.

NPCImax = 9 + 6 byte MAC + 6 byte MAC = 21

So NPDUmax = NSDUmax + NPCImax = 480 + 21 = 501

And so MPDUmax = NPDUmax + 10 (above) = 511




Keyword List
APDU BBMD BVLC BVLL DADR DNET Encoding I-Am LSAP MAC NPCI NPDU NSAP NSDU SA SADR SNET

Device Profiles

Edit this box.

Glossary