Layers and Alternative Application Layers Malcolm Clarke September
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-Nu. Observed-Value Absolute-Time. Stamp Set Simple-Nu. Observed-Value Absolute-Time. Stamp 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 l This can be done asynchronously (Events) or by polling (Get) l Can also act on the object to update attributes (Set) or interact (Actions) l
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) l ACSE is responsible for association and messages are exchanged for Associate, Release and Abort l
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) l ROSE is responsible for providing METHODS to access and manage Objects and messages are exchanged for Get, Set, Event and Action l
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 l ACSE and ROSE constitute the Association Layer l 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 l Each object is referenced by its Handle and the type of the object is taken from the type attribute l Each attribute is accessed by using its nomenclature code (32 bits – 16+16) l The type of the attribute is defined by ASN. 1 and structured types fully defined down to basic types l This has the advantage of allowing multiple instances of the same object type l
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) l Zigbee defines the Zigbee Cluster Library (ZCL) l BT LE defines ATT and GATT l Could these alternative Association Layers support 11073 objects and methods? l
Zigbee Cluster Library l Supports l Discover Attributes l Read Attributes l Write Attributes l Report Attributes l Configure reporting l Min/Max time between reports l Min change between reports l Read Reporting Configuration
Zigbee Cluster Library l Defines l Attribute Clusters (eg General, Power configuration) l The collection of clusters defined as a profile l Attribute Sets in the cluster (eg Basic device information, basic device settings) l Attributes in the set Currently 12 bits used to identify the Attribute Set and 4 bits the attribute within the set l l Up 1000 addressable Attribute Sets (objects) each with up to 16 addressable attributes
Zigbee Attribute Reporting 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 Identifier Description 0 x 0000 Basic device information 0 x 0001 Basic device settings 0 x 0002 -0 xffff Defined in ZCL documentation Attributes of Basic Device Information Attribute Set Identifier Name Type Range Access Default Mandatory / Optional 0 x 0000 ZCLVersion Unsigned 8 -bit integer 0 x 00 – 0 xff Read only 0 x 00 M 0 x 0001 Application Version Unsigned 8 -bit integer 0 x 00 – 0 xff Read only 0 x 00 O Etc
Zigbee Cluster Library l Can we map 11073 devices to ZCL?
ZCL Object Layer – take an example Weighing Scale Attribute Set Identifier (Class) Description 0 x 0000 Basic device information 0 x 1000 MDS 0 x 1001 Metric 0 x 1002 RT-SA 0 x 1003 PM Store Attributes of Basic Mass Attribute Set Identifier Name Type Range Access Default Mandatory / Optional 0 x 0000 Type TYPE 0 x 0000 – 0 xffff Read only 0 x 0000 M 0 x 0001 Metric-Spec. Small 32 bit map 0 x 0000 – 0 xffff Read only 0 x 000000 00 M Etc
Metric Object Attributes Attribute Name Attribute Type Identifier Handle HANDLE Type/Supplemental-Types TYPE/Supplemental. Type. List 0000 Metric-Spec-Small Metric. Spec. Small 0001 Metric-Structure-Small Metric. Structure. Small 0002 Measurement-Status Measurement. Status 0003 Metric-Id/Metric-Id-List OID-Type/Metric. Id. List 0004 Metric-Id-Partition Nom. Partition 0005 Unit-Code OID-Type 0006 Attribute-Value-Map Attr. Val. Map Source-Handle-Reference HANDLE 0007 Label-String OCTET STRING 0008 Unit-Label. String OCTET STRING 0009 Absolute-Time-stamp/Relative. Time-Stamp/Hi. Res-Time-Stamp Absolute. Time/Relative. Time/H igh. Res. Relative. Time 0010 Measure-Active-Period FLOAT-Type 0011 Notes Unused Only one, type distinguishes
Numeric Object Attributes Attribute Name Attribute Type Simple-Nu-Observed-Value Simple. Nu. Obs. Value Compound-Simple-Nu-Observed. Value Simple. Nu. Obs. Value. Cmp Basic-Nu-Observed-Value Basic. Nu. Obs. Value Compound-Basic-Nu-Observed. Value Basic. Nu. Obs. Value. Cmp Nu-Observed-Value Nu. Obs. Value Compound-Nu-Observed-Value Nu. Obs. Value. Cmp 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 Enum. Printable. String Enum-Observed-Value Enum. Obs. Value Enum-Observed-Value-Partition Nom. Partition Number 0012 0013 Notes Only one, type distinguishes
RT-SA Object Attributes Attribute Name Attribute Type Number Sample-Period Relative. Time 12 Simple-Sa-Observed-Value OCTET STRING 13 Scale-and-Range-Specification Scale. Range. Spec 8 Scale. Range. Spec 16 Scale. Range. Spec 32 14 Sa-Specification Sa. Spec 15 Notes Only one, type distinguishes
MDS Object Attributes Attribute Name Attribute Type Number Handle HANDLE System-Type TYPE 0 System-Model System. Model 1 System-Id OCTET STRING 2 Dev-Configuration-Id Config. Id 3 Attribute-Value-Map Attr. Val. Map 4 Production-Specification Production. Spec 5 Mds-Time-Info Mds. Time. Info 6 Date-and-Time Absolute. Time 7 Relative-Time Relative. Time 8 Hi. Res-Relative-Time High. Res. Relative. Time 9 Date-and-Time-Adjustment Absolute. Time. Adjust 10 Notes == Basic Device Information
MDS Object Attributes Attribute Name Attribute Type Number Notes Power-Status Power. Status == Basic Device Information Battery-Level INT-U 16 == Battery Information Remaining-Battery-Time Bat. Measure = = Derive from battery information Reg-Cert-Data-List Reg. Cert. Data. List 11 System-Type-Spec. List Type. Ver. List 12 Confirm-Timeout Relative. Time 13
Limitations l Not instance based addressing
BT LE Attributes BT LE also defines 16 bit attribute identifiers l Provides Object Access Methods l Object. Attribute could be defined for each device and correspond to specialization (Config. Id) as per ZCL l Object. Attribute Sets in the cluster (MDS, Metric Objects) l Attributes in the object set defined per MDS or Metric Object l
Questions or Comments?
- Slides: 24