Back to Specification

Register Abstraction Model

Byte wide bit registers are a central part of the VSCP specification. All nodes Level I as well as Level II should be possible to be configured by reading/writing these registers. Some of the register are the same for all nodes and are also the same between Level I and Level II nodes. The difference is that Level II can have a lot more registers defined.

Registers 0×00 – 0x7f are application specific. Registers between 0×80-0xff are reserved for VSCP usage. If the node has implemented the decision matrix it is stored in application register space.

With Node control flags (0×83) the node behavior can be controlled. The startup control is two bits that can have two values, binary 10 and binary 01. All other values are invalid and are translated to binary 10. If set to binary 10 it will prevent the initialization routine of the node to start before the initialization button on the node has been pressed.

Bit 5 of the node control flags write protects all user registers if cleared ( == 1 is write enabled).

The page select registers (0×92/0×93) can be used if more application specific registers are needed. The page is selected by writing a 16-bit page in these positions. This gives a theoretical user registry space of 128 * 65535 bytes (65535 pages of 128 bytes each). The upper part of each page is always the reserved registers.

0×98 Buffer size for device is information for control nodes of limitations of the buffer space for a Level II node. Level I nodes should have eight (8) in this position. Level II nodes that can accept the normal Level II packet have 0 which indicates 512-25 bytes or can have some number that represent the actual buffer.

The Page read/write, boot events etc can handle more then eight data bytes if the buffer is larger than eight and the implementor whishes to do so. This even if the event is a Level I event.

The VSCP registers are defined as follows:

Address Access Mode Description
0×00 – 0x7f Device specific
128/0×80 Read Only Alarm status register content (!= 0 indicates alarm). Condition is reset by a read operation. The bits represent different alarm conditions.
129/0×81 Read Only VSCP Major version number this device is constructed for.
130/0×82 Read Only VSCP Minor version number this device is constructed for.
131/0×83 Read/Write Node control flags
bit 7 –Startup control
bit 6 – Startup control
bit 5 – r/w control of registers below 0×80. (1 means write enabled)
bit 4 – Reserved
bit 3 – Reserved
bit 2 – Reserved
bit 1 – Reserved
bit 0 – Reserved

Startup control set to 01xxxxxx means initialized
132/0×84 Read/Write User ID 0 – Client settable node id byte 0.
133/0×85 Read/Write User ID 1 – Client settable node id byte 1.
134/0×86 Read/Write User ID 2 – Client settable node id byte 2.
135/0×87 Read/Write User ID 3 – Client settable node id byte 3.
136/0×88 Read/Write User ID 4 – Client settable node id byte 4.
137/0×89 Read only Manufacturer device ID byte 0.
138/0x8a Read only Manufacturer device ID byte 1.
139/0x8b Read only Manufacturer device ID byte 2.
140/0x8c Read only Manufacturer device ID byte 3.
141/0x8d Read only Manufacturer sub device ID byte 0.
142/0x8e Read only Manufacturer sub device ID byte 1.
143/0x8f Read only Manufacturer sub device ID byte 2.
144/0×90 Read only Manufacturer sub device ID byte 3.
145/0×91 Read only Nickname id for node if assigned or 0xff if no nickname id assigned.
146/0×92 Read/Write Page select register MSB
147/0×93 Read/Write Page Select register LSB
148/0×94 Read Only Firmware major version number.
149/0×95 Read Only Firmware minor version number.
150/0×96 Read Only Firmware sub minor version number.
151/0×97 Read Only Boot loader algorithm used. 0Xff for no boot loader support. Codes for algorithms are specified here VSCP Specification Class 0 for Type = 12
152/0×98 Read Only Buffer size.
The value here gives an indication for clients that want to talk to this node if it can support the larger mid level Level I control messages which has the full GUID. If set to 0 the default size should used. That is 8 bytes for Level I and 512-25 for Level II.
153/0×99 Read Only Number of register pages used.
154/0x9A-207/0xcf Reserved for future use. If not implemented one page is assumed.
208/0xd0-223/0xdf Read Only 128-bit (16-byte) globally unique ID (GUID) identifier for the device. This identifier uniquely identifies the device throughout the world and can give additional information on where driver and driver information can be found for the device. MSB for the identifier is stored first (in 0xd0).
224/0xe0-255/0xff Read Only Module Description File URL. A zero terminates the ASCII string if not exactly 32 bytes long. The URL points to a file that gives further information about where drivers for different environments are located. Can be returned as a zero string for devices with low memory. It is recommended that unimplemented registers read as oxff.
For a node with an embedded MDF return a zero string. The CLASS1.PROTOCOL, Type=34/35 can then be used to get the information if available.

The page select registers can be used to switch pages for the lower 128 byte. Its important that an application that uses the page functionality switch back to page 0×0000 when its ready. Applications can use the registers as a Mutex which is signaled when not zero.

Level II - Register Abstraction Model

The level II abstraction model is the same as Level I but covers a much wider address space.

The registers are layed out in an flat 32-bit address space with the standard Level I register map on the top (0xffffff80 - 0xffffffff). The page register has no effect.

Level II also has a configuration model where data for a node can be read and written in XML format. Its up to the design of the node which method to use as long as the required registers are implemented. It is however recommended that both methods are present so a register read/write could be used as a last resort to configure also a high end device.

vscp_specification_register_abstraction_model.txt · Last modified: 2010/08/19 01:55 (external edit)
Public Domain www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0