20 KiB
System Requirements Specification (SRS)
ASF Sensor Hub (Sub-Hub) Embedded System
Document Type: System Requirements Specification
Version: 1.0
Date: 2025-01-19
Platform: ESP32-S3, ESP-IDF v5.4, C/C++
Domain: Industrial/Agricultural Automation (Smart Poultry Farm)
Standard: ISO/IEC/IEEE 29148:2018
1. Introduction
1.1 Purpose
This System Requirements Specification (SRS) defines the complete set of system requirements for the ASF Sensor Hub (Sub-Hub) embedded system. The document serves as the authoritative source for all functional and non-functional requirements that the system must satisfy.
1.2 Scope
The ASF Sensor Hub is a distributed sensing node deployed inside a poultry house for environmental monitoring and data collection. The system is responsible for:
- Acquisition of multiple environmental sensor data
- Local preprocessing and validation of sensor data
- Persistent storage of data and configuration
- Secure communication with a Main Hub
- Support for diagnostics, maintenance, and OTA updates
- Safe operation under fault conditions
Explicitly out of scope:
- Main Hub processing and control logic
- Cloud analytics and services
- Farm control algorithms
- Actuator management
1.3 Definitions and Acronyms
| Term | Definition |
|---|---|
| Sub-Hub | The ASF Sensor Hub embedded system (this system) |
| Main Hub | Central processing unit that coordinates multiple Sub-Hubs |
| MC | Machine Constants - persistent configuration data |
| DP | Data Persistence component |
| STM | State Manager component |
| SAL | Sensor Abstraction Layer |
| HMI | Human-Machine Interface (OLED display + buttons) |
| OTA | Over-The-Air firmware update |
| mTLS | Mutual Transport Layer Security |
| CBOR | Concise Binary Object Representation |
1.4 References
- ISO/IEC/IEEE 29148:2018 - Systems and software engineering — Life cycle processes — Requirements engineering
- IEC 61508 - Functional safety of electrical/electronic/programmable electronic safety-related systems
- ESP-IDF v5.4 Programming Guide
- System_Architecture_Documentation.md
- Cross-Feature Constraints.md
2. Overall Description
2.1 Product Perspective
The ASF Sensor Hub operates as an autonomous embedded system within a distributed poultry farm automation network. It interfaces with:
- Environmental sensors via I2C, SPI, UART, and analog interfaces
- Main Hub via encrypted Wi-Fi communication
- Peer Sub-Hubs via ESP-NOW for limited coordination
- Local operators via OLED display and button interface
- SD Card for persistent data storage
2.2 Product Functions
The system provides the following major functions:
- Multi-sensor data acquisition with high-frequency sampling and filtering
- Data quality assurance through calibration and failure detection
- Secure communication with Main Hub using encrypted protocols
- Persistent data storage with wear-aware management
- Over-the-air firmware updates with rollback capability
- Comprehensive diagnostics and health monitoring
- Local human-machine interface for status and diagnostics
- System state management with controlled transitions
- Security enforcement through hardware-based protection
- Power and fault handling with graceful degradation
2.3 User Classes and Characteristics
| User Class | Characteristics | System Interaction |
|---|---|---|
| Farm Operators | Basic technical knowledge, daily monitoring | Local HMI for status checking |
| Maintenance Engineers | Advanced technical knowledge, periodic maintenance | Debug sessions, diagnostic access |
| System Integrators | Expert technical knowledge, system configuration | Machine constants management, OTA updates |
2.4 Operating Environment
- Hardware Platform: ESP32-S3 microcontroller
- Operating System: FreeRTOS (via ESP-IDF)
- Development Framework: ESP-IDF v5.4
- Programming Language: C/C++
- Environmental Conditions: Industrial poultry house (temperature, humidity, dust)
- Power Supply: 12V DC with brownout protection
- Communication: Wi-Fi 802.11n (2.4 GHz), ESP-NOW
2.5 Design and Implementation Constraints
- Memory: 512KB SRAM, 8MB Flash (ESP32-S3)
- Real-time: Deterministic sensor sampling within 1-second cycles
- Security: Hardware-enforced Secure Boot V2 and Flash Encryption
- Reliability: 99.9% uptime requirement in normal operating conditions
- Safety: IEC 61508 SIL-1 compliance for sensor data integrity
- Environmental: IP65 enclosure rating, -10°C to +60°C operating range
3. System Requirements
3.1 Functional Requirements
3.1.1 Sensor Data Acquisition Requirements
SR-DAQ-001: Multi-Sensor Support
The system SHALL support simultaneous data acquisition from the following sensor types:
- Temperature sensors
- Humidity sensors
- Carbon Dioxide (CO₂) sensors
- Ammonia (NH₃) sensors
- Volatile Organic Compounds (VOC) sensors
- Particulate Matter (PM) sensors
- Light Intensity sensors
SR-DAQ-002: High-Frequency Sampling
The system SHALL sample each enabled sensor a minimum of 10 times per acquisition cycle to enable local filtering.
SR-DAQ-003: Local Data Filtering
The system SHALL apply configurable filtering algorithms (median filter, moving average) to raw sensor samples to produce representative values.
SR-DAQ-004: Timestamped Data Generation
The system SHALL associate each processed sensor value with a timestamp accurate to ±1 second of system time.
SR-DAQ-005: Sensor State Management
The system SHALL maintain operational state for each sensor (enabled/disabled, present/absent, healthy/faulty).
3.1.2 Data Quality & Calibration Requirements
SR-DQC-001: Automatic Sensor Detection
The system SHALL automatically detect the presence of sensors based on hardware detection signals during initialization and runtime.
SR-DQC-002: Sensor Type Enforcement
The system SHALL enforce sensor-slot compatibility to prevent incorrect sensor installation and usage.
SR-DQC-003: Sensor Failure Detection
The system SHALL detect sensor failures including communication errors, out-of-range values, and non-responsive sensors.
SR-DQC-004: Machine Constants Management
The system SHALL maintain persistent Machine Constants (MC) data including:
- Installed sensor type definitions
- Sensor calibration parameters
- Communication configuration parameters
- System identity parameters
SR-DQC-005: Calibration Parameter Application
The system SHALL apply calibration parameters from MC data to raw sensor readings to produce calibrated values.
3.1.3 Communication Requirements
SR-COM-001: Main Hub Communication
The system SHALL provide bidirectional encrypted communication with a Main Hub to:
- Send sensor data using CBOR encoding
- Send diagnostic information
- Receive configuration updates
- Receive firmware updates
SR-COM-002: Secure Communication Protocols
The system SHALL use mTLS 1.2 with X.509 certificates for all Main Hub communication.
SR-COM-003: On-Demand Data Broadcasting
The system SHALL transmit the most recent sensor dataset upon request from the Main Hub within 5 seconds.
SR-COM-004: Peer Communication
The system SHALL support limited peer-to-peer communication with other Sub-Hubs using ESP-NOW for:
- Connectivity checks
- Time synchronization support
- Basic status exchange
SR-COM-005: Communication Fault Tolerance
The system SHALL continue autonomous operation during Main Hub communication failures for up to 24 hours.
3.1.4 Persistence & Data Management Requirements
SR-DATA-001: Persistent Sensor Data Storage
The system SHALL store sensor data persistently on SD Card using FAT32 file system with wear-aware batch writing.
SR-DATA-002: Data Persistence Abstraction
The system SHALL provide a unified Data Persistence (DP) component that abstracts storage media access for all persistent data operations.
SR-DATA-003: Safe Data Handling During Transitions
The system SHALL ensure all critical data is safely persisted before:
- Firmware updates
- Configuration updates
- System teardown
- Reset or restart operations
SR-DATA-004: Data Integrity Protection
The system SHALL implement data integrity mechanisms including checksums and atomic write operations to prevent data corruption.
SR-DATA-005: Storage Capacity Management
The system SHALL manage storage capacity by implementing circular logging with configurable retention periods.
3.1.5 Firmware Update (OTA) Requirements
SR-OTA-001: OTA Update Negotiation
The system SHALL implement an OTA handshake mechanism with the Main Hub to acknowledge update availability and signal readiness.
SR-OTA-002: Firmware Reception and Storage
The system SHALL securely receive firmware images and store them temporarily on SD Card before activation.
SR-OTA-003: Firmware Integrity Validation
The system SHALL validate firmware integrity using SHA-256 checksums before activation.
SR-OTA-004: Safe Firmware Activation
The system SHALL implement A/B partitioning with automatic rollback capability for safe firmware activation.
SR-OTA-005: OTA State Management
The system SHALL coordinate OTA operations with the system state machine to ensure safe transitions and data preservation.
3.1.6 Security & Safety Requirements
SR-SEC-001: Secure Boot
The system SHALL implement Secure Boot V2 to ensure only authenticated firmware is executed.
SR-SEC-002: Flash Encryption
The system SHALL implement Flash Encryption using AES-256 to protect sensitive data and intellectual property.
SR-SEC-003: Certificate Management
The system SHALL manage X.509 certificates for mTLS communication with secure storage and validation.
SR-SEC-004: Security Violation Handling
The system SHALL detect and respond to security violations including:
- Boot verification failures
- Certificate validation failures
- Unauthorized access attempts
3.1.7 Diagnostics & Health Monitoring Requirements
SR-DIAG-001: Diagnostic Code Management
The system SHALL implement structured diagnostics with:
- Unique diagnostic codes (format: 0xSCCC)
- Severity levels (INFO, WARNING, ERROR, FATAL)
- Root cause hierarchy
- Timestamp information
SR-DIAG-002: Diagnostic Data Storage
The system SHALL persistently store diagnostic events in a circular log with configurable retention.
SR-DIAG-003: Diagnostic Session Support
The system SHALL provide diagnostic sessions allowing authorized engineers to:
- Retrieve diagnostic data
- Inspect system health status
- Clear diagnostic records
SR-DIAG-004: Layered Watchdog System
The system SHALL implement multiple watchdog levels:
- Task-level watchdogs for critical tasks
- Interrupt watchdog for system responsiveness
- RTC watchdog for ultimate system recovery
3.1.8 System Management Requirements
SR-SYS-001: System State Machine
The system SHALL implement a finite state machine with the following states:
- INIT, BOOT_FAILURE, RUNNING, WARNING, FAULT
- OTA_PREP, OTA_UPDATE, MC_UPDATE, TEARDOWN
- SERVICE, SD_DEGRADED
SR-SYS-002: State-Aware Operation
The system SHALL restrict feature operations based on current system state according to defined state transition rules.
SR-SYS-003: Controlled Teardown
The system SHALL execute a controlled teardown sequence that:
- Stops sensor acquisition
- Flushes all critical data
- Ensures storage consistency
- Prepares for target state transition
SR-SYS-004: Local Human-Machine Interface
The system SHALL provide local status indication using:
- OLED display (128x64, I2C interface)
- Three-button navigation (Up, Down, Select)
- Menu system for diagnostics and sensor status
SR-SYS-005: Engineering Access
The system SHALL support authenticated engineering sessions for:
- Log inspection
- Machine constants inspection and update
- Controlled debugging operations
3.1.9 Power & Fault Handling Requirements
SR-PWR-001: Brownout Detection
The system SHALL detect power supply brownout conditions and initiate controlled shutdown procedures.
SR-PWR-002: Power-Loss Recovery
The system SHALL implement power-loss recovery mechanisms to restore operation after power restoration.
SR-PWR-003: Fault Classification
The system SHALL classify faults into categories:
- Sensor faults, Communication faults, Storage faults
- Power faults, Security faults, Software faults, Hardware faults
SR-PWR-004: Fault Escalation
The system SHALL implement fault escalation procedures based on severity and frequency.
3.1.10 Hardware Abstraction Requirements
SR-HW-001: Sensor Abstraction Layer
The system SHALL implement a Sensor Abstraction Layer (SAL) that provides uniform interfaces for different sensor types.
SR-HW-002: Hardware Interface Abstraction
The system SHALL abstract hardware interfaces (GPIO, I2C, SPI, UART, ADC) through driver layers to enable portability.
SR-HW-003: GPIO Discipline
The system SHALL implement GPIO discipline with defined ownership and access control for hardware resources.
3.2 Non-Functional Requirements
3.2.1 Performance Requirements
SR-PERF-001: Sensor Acquisition Timing
The system SHALL complete sensor acquisition cycles within 1 second for all enabled sensors.
SR-PERF-002: Communication Response Time
The system SHALL respond to Main Hub requests within 5 seconds under normal operating conditions.
SR-PERF-003: Memory Usage
The system SHALL operate within 80% of available SRAM (409.6KB) and Flash (6.4MB) capacity.
SR-PERF-004: Storage Performance
The system SHALL achieve minimum 10KB/s write performance to SD Card for data logging.
3.2.2 Reliability Requirements
SR-REL-001: System Availability
The system SHALL achieve 99.9% availability during normal operating conditions.
SR-REL-002: Mean Time Between Failures
The system SHALL achieve MTBF of 8760 hours (1 year) under specified environmental conditions.
SR-REL-003: Fault Recovery
The system SHALL automatically recover from transient faults within 30 seconds.
SR-REL-004: Data Integrity
The system SHALL maintain data integrity with error rate < 1 in 10^6 operations.
3.2.3 Safety Requirements
SR-SAFE-001: Fail-Safe Operation
The system SHALL fail to a safe state (sensor data marked invalid) upon detection of critical faults.
SR-SAFE-002: Sensor Data Validation
The system SHALL validate sensor data ranges and mark out-of-range values as invalid.
SR-SAFE-003: Watchdog Protection
The system SHALL implement multiple watchdog mechanisms to detect and recover from software failures.
3.2.4 Security Requirements
SR-SEC-005: Authentication
The system SHALL authenticate all external communication using certificate-based mutual authentication.
SR-SEC-006: Data Encryption
The system SHALL encrypt all sensitive data at rest using AES-256 encryption.
SR-SEC-007: Secure Communication
The system SHALL encrypt all network communication using TLS 1.2 or higher.
SR-SEC-008: Access Control
The system SHALL implement role-based access control for engineering and diagnostic functions.
3.2.5 Maintainability Requirements
SR-MAINT-001: Diagnostic Accessibility
The system SHALL provide comprehensive diagnostic information accessible through local and remote interfaces.
SR-MAINT-002: Configuration Management
The system SHALL support field configuration updates through authenticated channels.
SR-MAINT-003: Firmware Updateability
The system SHALL support secure over-the-air firmware updates with rollback capability.
3.2.6 Portability Requirements
SR-PORT-001: Hardware Abstraction
The system SHALL abstract hardware dependencies to enable porting to compatible microcontroller platforms.
SR-PORT-002: Standard Interfaces
The system SHALL use standard communication protocols (I2C, SPI, UART) for sensor interfaces.
3.3 Interface Requirements
3.3.1 Hardware Interfaces
SR-HW-IF-001: Sensor Interfaces
The system SHALL provide the following sensor interfaces:
- 4x I2C interfaces for digital sensors
- 2x SPI interfaces for high-speed sensors
- 2x UART interfaces for serial sensors
- 4x ADC channels for analog sensors
SR-HW-IF-002: Communication Interfaces
The system SHALL provide:
- Wi-Fi 802.11n (2.4 GHz) interface
- Optional Zigbee/LoRa interface for backup communication
SR-HW-IF-003: Storage Interfaces
The system SHALL provide:
- SD Card interface (SPI-based)
- Internal NVM (encrypted)
SR-HW-IF-004: User Interface
The system SHALL provide:
- OLED display interface (I2C, 128x64 pixels)
- 3x GPIO inputs for buttons (Up, Down, Select)
3.3.2 Software Interfaces
SR-SW-IF-001: Main Hub Protocol
The system SHALL implement the Main Hub communication protocol using:
- MQTT over TLS 1.2 transport
- CBOR message encoding
- Defined message schemas for sensor data, diagnostics, and control
SR-SW-IF-002: Peer Communication Protocol
The system SHALL implement peer communication using ESP-NOW protocol with defined message formats.
SR-SW-IF-003: Diagnostic Interface
The system SHALL provide diagnostic interface supporting:
- Log retrieval commands
- System status queries
- Configuration inspection commands
4. System Architecture Requirements
4.1 Architectural Constraints
SR-ARCH-001: Layered Architecture
The system SHALL implement a strict layered architecture with dependency flow from Application → Drivers → OSAL → HAL.
SR-ARCH-002: Hardware Abstraction
Application logic SHALL NOT access hardware directly and SHALL use driver abstractions exclusively.
SR-ARCH-003: State-Aware Execution
All system features SHALL be aware of current system state and respect state-based operation restrictions.
SR-ARCH-004: Event-Driven Communication
Internal component communication SHALL use event-driven publish/subscribe mechanisms.
SR-ARCH-005: Data Persistence Abstraction
All persistent data access SHALL be performed through the Data Persistence (DP) component.
4.2 Component Requirements
SR-COMP-001: State Manager Component
The system SHALL implement a State Manager (STM) component responsible for:
- System state machine implementation
- State transition validation and coordination
- Teardown sequence management
SR-COMP-002: Event System Component
The system SHALL implement an Event System component providing:
- Publish/subscribe event bus
- Non-blocking event delivery
- Event type management
SR-COMP-003: Sensor Manager Component
The system SHALL implement a Sensor Manager component responsible for:
- Sensor lifecycle management
- Data acquisition scheduling
- Local filtering and validation
SR-COMP-004: Data Persistence Component
The system SHALL implement a Data Persistence (DP) component providing:
- Storage media abstraction
- Data serialization/deserialization
- Wear-aware storage management
5. Verification Requirements
5.1 Verification Methods
Each system requirement SHALL be verified using one or more of the following methods:
- Test (T): Verification by test execution
- Analysis (A): Verification by analysis or calculation
- Inspection (I): Verification by inspection or review
- Demonstration (D): Verification by demonstration
5.2 Verification Levels
- Unit Level: Individual component verification
- Integration Level: Component interaction verification
- System Level: End-to-end system verification
- Acceptance Level: User acceptance verification
6. Traceability
This SRS provides the foundation for:
- Software Requirements Specification (SWR-XXX requirements)
- Feature specifications (F-XXX features)
- Component specifications (C-XXX components)
- Test specifications and procedures
All system requirements SHALL be traceable to:
- Stakeholder needs and use cases
- Feature definitions in Features.md
- Architectural constraints in Cross-Feature Constraints.md
Document Status: Final for Implementation Phase
Next Review: After Software Requirements Specification completion