Layers
and
Alternative Application Layers
Malcolm Clarke
September 10, 2012
General Concepts of
Layers
Object Approach
Agent
Object
Handle
Type
Unit-Code
Manager
Proxy Object
Events
Actions
Handle
Type
Unit-Code
Get
Simple-NuObserved-Value
Absolute-TimeStamp
Simple-NuObserved-Value
Set
Absolute-TimeStamp
The object approach of 11073 is a general mechanism to update values of all
attributes from the object in the Agent to its proxy object in the Manager
This can be done asynchronously (Events) or by polling (Get)
Can also act on the object to update attributes (Set) or interact (Actions)
Layers - ACSE
Application Code
Object Layer
ROSE
(Service Layer)
ACSE
(Association layer)
APDU
Associate, Release, Abort
Transport
Network
This is achieved using physical connection and exchanging APDU between peer
entities in the ACSE (Association Control Service Element)
ACSE is responsible for association and messages are exchanged for Associate,
Release and Abort
Layers - ROSE
Application Code
Object Layer
Methods
PDU
APDU
ROSE
(Service Layer)
ACSE
(Association layer)
Get, Set, Event, Action
Associate, Release, Abort
Transport
Network
Once associated, PDU are exchanged between peer entities in ROSE (Remote
Operation Service Element)
ROSE is responsible for providing METHODS to access and manage Objects and
messages are exchanged for Get, Set, Event and Action
Layers – Object Layer
Application Code
Object Layer
Association
Layer
{
Parameters
PDU
Methods
PDU
APDU
ROSE
(Service Layer)
ACSE
(Association layer)
Transport
Network
ROSE operates on peer objects in the Object Layer
ACSE and ROSE constitute the Association Layer
Attribute values
Get, Set, Event, Action
Associate, Release, Abort
11073 Object Layer
Handle
Type
Observed value
Units
Methods (Get, Set, Event, Action)
Parameters (Attribute:Value)
Objects in 11073 are accessed indirectly
Each object is referenced by its Handle and the type of the object is taken from the
type attribute
Each attribute is accessed by using its nomenclature code (32 bits – 16+16)
The type of the attribute is defined by ASN.1 and structured types fully defined
down to basic types
This has the advantage of allowing multiple instances of the same object type
Alternative Association Layers
Alternative Association Layers
Several “transport” technologies now define and support an object oriented
approach and provide primitives to access and manage objects (methods)
Zigbee defines the Zigbee Cluster Library (ZCL)
BT LE defines ATT and GATT
Could these alternative Association Layers support 11073 objects and methods?
Zigbee Cluster Library
Supports
Discover Attributes
Read Attributes
Write Attributes
Report Attributes
Configure reporting
Min/Max time between reports
Min change between reports
Read Reporting Configuration
Zigbee Cluster Library
Defines
Attribute Clusters (eg General, Power configuration)
The collection of clusters defined as a profile
Attribute Sets in the cluster (eg Basic device information, basic device settings)
Attributes in the set
Currently 12 bits used to identify the Attribute Set and 4 bits the attribute within the set
Up 1000 addressable Attribute Sets (objects) each with up to 16 addressable attributes
Zigbee Attribute Reporting
Variable
Variable
Variable
Variable
ZCL Header
Attribute
Report 1
Attribute
Report 2
Attribute
Report n
2 Octets
1 Octet
Variable
Attribute Identifier
Attribute Data Type
Attribute Value
ZCL Object Layer – example
General Attribute Set
Attribute Set Identifier
Description
0x0000
Basic device information
0x0001
Basic device settings
0x0002-0xffff
Defined in ZCL documentation
Attributes of Basic Device Information Attribute Set
Identifier
Name
Type
Range
Access
Default
Mandatory
/ Optional
0x0000
ZCLVersion
Unsigned
8-bit integer
0x00 – 0xff
Read only
0x00
M
0x0001
Application
Version
Unsigned
8-bit integer
0x00 – 0xff
Read only
0x00
O
Etc
Zigbee Cluster Library
Can we map 11073 devices to ZCL?
ZCL Object Layer – take an example
Weighing Scale Attribute Set
Attribute Set Identifier (Class)
Description
0x0000
Basic device information
0x1000
MDS
0x1001
Metric
0x1002
RT-SA
0x1003
PM Store
Attributes of Basic Mass Attribute Set
Identifier
Name
Type
Range
Access
Default
Mandatory
/ Optional
0x0000
Type
TYPE
0x0000 – 0xffff
Read only
0x0000
M
0x0001
Metric-SpecSmall
32 bit map
0x00000000 –
0xffffffff
Read only
0x000000
00
M
Etc
Metric Object Attributes
Attribute Name
Attribute Type
Identifier
Handle
HANDLE
Type/Supplemental-Types
TYPE/SupplementalTypeList
0000
Metric-Spec-Small
MetricSpecSmall
0001
Metric-Structure-Small
MetricStructureSmall
0002
Measurement-Status
MeasurementStatus
0003
Metric-Id/Metric-Id-List
OID-Type/MetricIdList
0004
Metric-Id-Partition
NomPartition
0005
Unit-Code
OID-Type
0006
Attribute-Value-Map
AttrValMap
Source-Handle-Reference
HANDLE
0007
Label-String
OCTET STRING
0008
Unit-LabelString
OCTET STRING
0009
Absolute-Time-stamp/RelativeTime-Stamp/HiRes-Time-Stamp
AbsoluteTime/RelativeTime/H
ighResRelativeTime
0010
Measure-Active-Period
FLOAT-Type
0011
Notes
Unused
Only one, type distinguishes
Only one, type distinguishes
Unused
Only one, type distinguishes
Numeric Object Attributes
Attribute Name
Attribute Type
Simple-Nu-Observed-Value
SimpleNuObsValue
Compound-Simple-NuObserved-Value
SimpleNuObsValueCmp
Basic-Nu-Observed-Value
BasicNuObsValue
Compound-Basic-Nu-ObservedValue
BasicNuObsValueCmp
Nu-Observed-Value
NuObsValue
Compound-Nu-Observed-Value
NuObsValueCmp
Accuracy
FLOAT-Type
Number
0012
0013
Notes
Only one, type distinguishes
Enumeration Object Attributes
Attribute Name
Attribute Type
Enum-Observed-Value-Simple-OID
OID-Type
Enum-Observed-Value-Simple-Bit-Str
BITS-32
Enum-Observed-Value-Basic-Bit-Str
BITS-16
Enum-Observed-Value-Simple-Str
EnumPrintableString
Enum-Observed-Value
EnumObsValue
Enum-Observed-Value-Partition
NomPartition
Number
0012
0013
Notes
Only one, type distinguishes
RT-SA Object Attributes
Attribute Name
Attribute Type
Number
Sample-Period
RelativeTime
12
Simple-Sa-Observed-Value
OCTET STRING
13
Scale-and-Range-Specification
ScaleRangeSpec8
ScaleRangeSpec16
ScaleRangeSpec32
14
Sa-Specification
SaSpec
15
Notes
Only one, type distinguishes
MDS Object Attributes
Attribute Name
Attribute Type
Number
Handle
HANDLE
System-Type
TYPE
0
System-Model
SystemModel
1
System-Id
OCTET STRING
2
Dev-Configuration-Id
ConfigId
3
Attribute-Value-Map
AttrValMap
4
Production-Specification
ProductionSpec
5
Mds-Time-Info
MdsTimeInfo
6
Date-and-Time
AbsoluteTime
7
Relative-Time
RelativeTime
8
HiRes-Relative-Time
HighResRelativeTime
9
Date-and-Time-Adjustment
AbsoluteTimeAdjust
10
Notes
== Basic Device Information
MDS Object Attributes
Attribute Name
Attribute Type
Number
Notes
Power-Status
PowerStatus
== Basic Device Information
Battery-Level
INT-U16
== Battery Information
Remaining-Battery-Time
BatMeasure
= = Derive from battery
information
Reg-Cert-Data-List
RegCertDataList
11
System-Type-SpecList
TypeVerList
12
Confirm-Timeout
RelativeTime
13
Limitations
Not instance based addressing
BT LE Attributes
BT LE also defines 16 bit attribute identifiers
Provides Object Access Methods
Object.Attribute could be defined for each device and correspond to specialization
(ConfigId) as per ZCL
Object.Attribute Sets in the cluster (MDS, Metric Objects)
Attributes in the object set defined per MDS or Metric Object
Questions or Comments?
© Copyright 2026 Paperzz