The term 'KNX stack' mainly describes the layers of the OSI/ISO reference model. And indeed that is the core of each stack implementation. On the application layer there are services like MemoryRead or PropertyValueWrite. But what does it mean to write to a dedicated memory location? This is covered by the device model. A device model in KNX defines which services have to be supported and how they are related. A device model specifies the required resources and describes the management procedures, that means, which telegram sequences are used to configure a device. In the KNX specification there are different device models for different media defined as so-called profiles. Each stack implementation of Weinzierl Engineering GmbH complies to one of these models and is certified according to. A device model defines mainly the S-Mode configuration, but may be combined also with Easy Mode.
The following device models are available:
This device model has been introduced by the BCU1 years ago. And still today a lot of devices are based on this model. Because of the simple management procedures the 0012 can be implemented with a very small footprint of about 10k of code and 1k of RAM. The drawback is the very limited resources of 256 byte of loadable memory and a maximum count of 36 communication objects.
This device model corresponds with the BCU2 technology. Today this device model is rarely used because it describes a complex management in conjunction with limited resources.
The 0705 today is the most used device model for new designs. The complexity of this model is similar to 002x but has not the rigid limitations. The 0705 supports up to 255 communication objects and a loadable area up to 30k. The 0705 is very similar to 0701 with some improvements. The footprint of this device model is about 25k of code and 1.5k of RAM.
System B is the most powerful device model and comes with huge resources. Using System B, devices with up to 65636 group objects can be developed. The loadable memory area is up to 1 MByte.
In addition System B offers some new features like Read-On-Init. This function allows group objects to be updated automatically at start-up.
System B is suited for the implementation of complex KNX devices with more than 255 group objects. Typically 32-bit embedded microcontrollers are used however operating systems such as Linux or Windows CE can additionally host the KNX stack and are fully supported. If used directly on a microcontroller the stack requires approximately 50k of flash and 4k of RAM.
For most devices it is favorable to program the application program ex factory. So in the field the ETS only writes the group addresses and the parameters. The benefit is a quite fast download. For special reasons (e.g. bug fixing or project business) it might be necessary to load a complete application program via ETS. For the Weinzierl KNX Stacks with device model 0701/0705 the loading of op-code is an available feature.