Annex C: Timing and Resource Budgets
Document: SRS Annex C
Version: 1.0
Date: 2025-01-19
Purpose
This annex defines timing budgets, resource allocation limits, and performance constraints for the Sensor Hub software.
1. Timing Budgets
1.1 Sensor Acquisition Timing
| Operation |
Maximum Duration |
Justification |
| Single sensor sample (I2C) |
10ms |
I2C transaction time |
| Single sensor sample (SPI) |
5ms |
SPI transaction time |
| Single sensor sample (UART) |
20ms |
UART transaction time |
| Single sensor sample (Analog/ADC) |
1ms |
ADC conversion time |
| Filtering (10 samples) |
5ms |
Local filtering computation |
| Timestamp generation |
1ms |
System time access |
| Complete acquisition cycle (per sensor) |
100ms |
Total per sensor (worst case) |
| Complete acquisition cycle (all sensors) |
500ms |
5 sensors × 100ms (with overlap) |
1.2 State Transition Timing
| Transition |
Maximum Duration |
Justification |
[*] → INIT |
100ms |
Power-on initialization |
INIT → RUNNING |
5s |
Hardware init, secure boot, MC load |
INIT → BOOT_FAILURE |
2s |
Secure boot verification |
RUNNING → WARNING |
50ms |
Fault detection and state change |
RUNNING → FAULT |
50ms |
Critical fault detection |
RUNNING → OTA_PREP |
100ms |
OTA request processing |
OTA_PREP → TEARDOWN |
2s |
Readiness validation |
TEARDOWN → OTA_UPDATE |
500ms |
Data flush and resource release |
TEARDOWN → INIT |
500ms |
Data flush and reset |
OTA_UPDATE → RUNNING |
10 minutes |
Firmware transfer and flashing |
RUNNING → SERVICE |
100ms |
Debug session establishment |
SERVICE → RUNNING |
50ms |
Debug session closure |
RUNNING → SD_DEGRADED |
200ms |
SD failure detection |
1.3 Communication Timing
| Operation |
Maximum Duration |
Justification |
| Main Hub request processing |
100ms |
Data retrieval and response |
| Main Hub message transmission |
50ms |
Network transmission (local) |
| Main Hub message reception |
50ms |
Network reception (local) |
| Communication link failure detection |
30s |
Heartbeat timeout |
| OTA firmware chunk reception |
1s |
Network transfer per chunk |
| Peer Sensor Hub ping |
100ms |
Connectivity check |
1.4 Persistence Timing
| Operation |
Maximum Duration |
Justification |
| Sensor data write (SD card) |
50ms |
File write operation |
| Diagnostic event write (SD card) |
20ms |
Log append operation |
| Machine constants write (NVM) |
10ms |
NVS write operation |
| Data flush (all pending) |
200ms |
Complete flush operation |
| SD card failure detection |
500ms |
File system check |
1.5 OTA Timing
| Operation |
Maximum Duration |
Justification |
| OTA readiness validation |
2s |
System state and resource check |
| Firmware chunk reception |
1s |
Network transfer per chunk |
| Firmware integrity validation |
5s |
Cryptographic verification |
| Firmware flashing |
2 minutes |
Flash write operation |
| Complete OTA operation |
10 minutes |
End-to-end OTA process |
1.6 Diagnostic Timing
| Operation |
Maximum Duration |
Justification |
| Diagnostic event generation |
1ms |
Event creation and classification |
| Diagnostic event persistence |
20ms |
Log write operation |
| Diagnostic query processing |
50ms |
Log read and filtering |
| Fault escalation |
50ms |
Severity check and state transition |
2. Resource Budgets
2.1 Memory (RAM) Budget
| Component |
Allocation |
Peak Usage |
Monitoring Required |
| System (RTOS, ESP-IDF) |
80KB |
100KB |
Yes |
| Sensor Manager |
20KB |
25KB |
Yes |
| Event System |
10KB |
15KB |
Yes |
| Data Pool |
15KB |
20KB |
Yes |
| Communication Stack |
30KB |
40KB |
Yes |
| Diagnostics |
10KB |
15KB |
Yes |
| Persistence |
15KB |
20KB |
Yes |
| OTA Manager |
20KB |
30KB |
Yes |
| Security |
10KB |
15KB |
Yes |
| System Management |
10KB |
15KB |
Yes |
| HMI |
5KB |
8KB |
Yes |
| Total Allocated |
225KB |
283KB |
|
| Available (ESP32-S3) |
512KB |
512KB |
|
| Utilization |
44% |
55% |
|
| Safety Margin |
56% |
45% |
|
Note: Peak usage includes worst-case stack usage and temporary buffers. Actual runtime usage SHALL be monitored and maintained below 60% (307KB).
2.2 Flash (Program Memory) Budget
| Component |
Allocation |
Notes |
| Bootloader |
32KB |
ESP-IDF bootloader |
| Application Code |
1.5MB |
Main application firmware |
| OTA Partition 0 |
1.5MB |
Primary firmware partition |
| OTA Partition 1 |
1.5MB |
Secondary firmware partition (for updates) |
| NVS (Non-Volatile Storage) |
20KB |
Configuration and MC storage |
| SPIFFS/LittleFS |
500KB |
File system (if used) |
| Total Used |
5.052MB |
|
| Available (8MB Flash) |
8MB |
|
| Utilization |
63% |
|
| Safety Margin |
37% |
|
2.3 CPU Utilization Budget
| Task |
Priority |
CPU Usage (Normal) |
CPU Usage (Peak) |
Notes |
| Sensor Acquisition |
High |
15% |
25% |
Time-critical |
| Communication |
Medium |
10% |
20% |
Network I/O |
| Diagnostics |
Low |
5% |
10% |
Background |
| Persistence |
Medium |
5% |
15% |
Storage I/O |
| System Management |
High |
5% |
10% |
State management |
| HMI |
Low |
2% |
5% |
Display updates |
| Idle |
- |
58% |
15% |
System idle |
| Total |
- |
100% |
100% |
|
Requirement: CPU utilization SHALL NOT exceed 80% during normal operation (SWR-PERF-005).
2.4 Storage (SD Card) Budget
| Data Type |
Daily Write Volume |
Retention Policy |
Notes |
| Sensor Data |
50MB |
7 days (rolling) |
5 sensors × 1 sample/min × 24h |
| Diagnostic Log |
5MB |
30 days (circular) |
Bounded log with overwrite |
| Machine Constants |
1KB |
Permanent |
Updated only on configuration change |
| OTA Firmware |
2MB |
Temporary |
Deleted after successful update |
| Total Daily Writes |
57MB |
|
|
| SD Card Capacity |
32GB (typical) |
|
|
| Wear Level |
Low |
|
With wear-leveling |
Requirement: SD card writes SHALL be wear-aware to prevent premature failure (SWR-DATA-013).
2.5 Network Bandwidth Budget
| Operation |
Bandwidth |
Frequency |
Daily Volume |
| Sensor Data Transmission |
1KB/packet |
1 packet/min |
1.44MB/day |
| Diagnostic Reporting |
500B/packet |
On-demand |
Variable |
| Status Updates |
200B/packet |
1 packet/5min |
57.6KB/day |
| OTA Firmware Transfer |
2MB |
On-demand |
Variable |
| Total (Normal Operation) |
- |
- |
~1.5MB/day |
Note: OTA transfers are infrequent and excluded from daily normal operation budget.
3. Performance Constraints
3.1 Real-Time Constraints
| Constraint |
Requirement |
Verification Method |
| Sensor acquisition determinism |
≤ 100ms per sensor |
Timing measurement |
| State transition determinism |
≤ 50ms (except INIT, TEARDOWN) |
Timing measurement |
| Communication response time |
≤ 100ms |
End-to-end timing |
| Data persistence latency |
≤ 200ms |
Write operation timing |
3.2 Resource Constraints
| Resource |
Limit |
Monitoring |
Action on Exceed |
| RAM Usage |
60% (307KB) |
Runtime monitoring |
Enter WARNING state, reduce buffers |
| CPU Usage |
80% |
Runtime monitoring |
Reduce task priorities, throttle operations |
| SD Card Space |
10% free |
File system check |
Trigger data retention policy |
| Flash Usage |
70% (5.6MB) |
Build-time check |
Optimize code size |
3.3 Quality Constraints
| Constraint |
Requirement |
Verification Method |
| Power loss recovery |
< 1 second |
Power interruption test |
| SD card failure handling |
Graceful degradation |
SD card removal test |
| OTA failure recovery |
Rollback capability |
OTA failure injection test |
| Secure boot failure |
BOOT_FAILURE state |
Secure boot verification test |
4. Worst-Case Execution Time (WCET) Analysis
4.1 Critical Paths
Sensor Acquisition Path:
State Transition Path:
Data Persistence Path:
5. Traceability
- SWR-PERF-001: Sensor acquisition cycle timing
- SWR-PERF-002: State transition timing
- SWR-PERF-003: Data persistence timing
- SWR-PERF-004: OTA operation duration
- SWR-PERF-005: CPU utilization limit
- SWR-PERF-006: RAM usage limit
- SWR-PERF-007: Main Hub response time
- SWR-PERF-008: Communication link failure detection