Programmable HVAC Controller Using Flash Execution With Minimal RAM
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Many programmable controllers, including HVAC controllers, require substantial RAM resources to execute software programs, especially when using an interpreter engine, leading to increased manufacturing costs due to the expense of RAM memory.
Innovation Solution
A programmable HVAC controller design that utilizes a function block engine resident in non-volatile memory, referencing a block execution list, with minimal RAM usage, allowing for field programmability and efficient execution of complex software programs with limited RAM resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If an interpreter engine is used to execute software programs, then the controller can execute complex software programs, but the RAM memory requirement increases substantially
Solution Approach 1:
The patent extracts the software program execution functionality from RAM-dependent interpreter engines and implements it through a state machine architecture where the program code is stored in non-volatile memory and executed with minimal RAM for only the essential execution state. This separates the program storage function (in non-volatile memory) from the execution function (in minimal RAM), resolving the contradiction between program complexity and RAM requirements.
Solution Approach 2:
The patent uses a minimal amount of RAM memory that is reused and overwritten for each execution cycle, rather than allocating large permanent RAM space. The RAM serves as temporary working memory for the state machine execution, being cleared and repurposed between program executions, thus reducing the overall quantity of RAM needed while maintaining the ability to execute complex programs.
2Adaptability or versatility
If substantial RAM memory is used in the controller, then complex software programs can be executed, but the manufacturing cost increases
Solution Approach 1:
The patent extracts the program storage function from expensive RAM memory and places it in cheaper non-volatile memory (such as EEPROM or flash memory). The controller executes programs by loading only the necessary execution state into minimal RAM while keeping the bulk of the program code in non-volatile memory, thereby reducing manufacturing costs while maintaining program execution capability.
Solution Approach 2:
The patent replaces expensive permanent RAM allocation with cheaper non-volatile memory for program storage, using only minimal RAM as temporary working memory during execution. This substitution of memory types significantly reduces the cost of goods sold while preserving the ability to execute complex software programs through the state machine architecture.
3Ease of manufacture
If a microcontroller with limited on-board RAM is used, then the controller cost is reduced, but the ability to execute complex software programs is limited
Solution Approach 1:
The patent segments the memory system into two distinct parts: non-volatile memory for storing the complete software program and configuration data, and minimal RAM for holding only the execution state during runtime. This segmentation allows the use of a low-cost microcontroller with limited RAM while still supporting complex software programs by keeping the program code external to the limited RAM space.
Solution Approach 2:
The patent adds a temporal dimension to memory usage by implementing a state machine execution model where program code is fetched from non-volatile memory as needed during execution cycles, rather than requiring all code to be simultaneously available in RAM. This temporal loading approach enables complex program execution on controllers with minimal on-board RAM.
Data Source
AI summary
A programmable controller and method of operating a programmable controller are provided. In one illustrative embodiment, the programmable controller may have non-volatile memory and random-access memory (RAM), which, in some cases, may be implemented in a single microcontroller. The illustrative programmable controller may include a function block engine resident in the non-volatile memory, a block execution list being resident in the non-volatile memory, and a parameter and/or variable storage space being resident in RAM. The function block engine may execute a program according to a list of function blocks identified in the block execution list. In some cases, the program can be executed from the non-volatile memory, which in some cases may be FLASH memory. Additionally, in some cases, the non-volatile memory may include a firmware portion and a user programmable portion. The block execution list may be stored in the user programmable portion, allowing field programmability and configuration of the function blocks.


