
Signal Generator, Signal Capture & Token Ring project
Field
Embedded Systems
Institution
RIT
Year
2023
Individual
Course
Real-Time Embedded System
Keywords
freeRTOS, Signal Generation/Capturing, Token Ring, Real-Time Embedded System, Task Scheduling, Interrupt Handling, Oscilloscope Usage
This project in particular combines three incremental projects.
The first project involves signal generation; the second project further implements signal capturing; the third project is the token ring which include functions from the previous portions.
Signal Generation
This project lays the groundwork for signal generation using freeRTOS, focusing on the creation of various signal types across different frequencies and voltage ranges.
-
Real-Time Operating System: Utilizes freeRTOS for task management and signal generation.
-
Continuous Input Processing: Constantly receives and processes user inputs.
-
Dual Channel Signal Generation:
-
Channel 1: Manages logic and parameters for generating signals on the first channel.
-
Channel 2: Similarly handles signal generation for the second channel.
-
-
Data Processing: Transforms inputs into a 7-indexed uint32-t array for further processing.
-
Error Checking: Evaluates the processed data before proceeding.
-
Dynamic Signal Adjustment: Updates global variables based on validated inputs, affecting signal generation in real-time.
-
Decision Logic: Determines the appropriate channel for updating variables during command processing.
-
Lookup Tables: Uses predefined tables, scaling and remapping based on input to produce the desired signal output.

High level flow chart of the program

High level flow chart of the program with the additional logic highlighted
Signal Capturing
Building upon the established architecture of the signal generation project, the signal capture project enhances the system's functionality by adding the capability to accurately record signals. The primary challenge was configuring the environment to ensure precise data acquisition.
-
Sampling Frequency: Captures data at a fixed rate of 10KHz, irrespective of the input signal frequency.
-
Output Frequency: Allows the user to output the captured signal at a frequency of 0.5Hz, mirroring the input signal's characteristics.
-
Channel Specificity: Focuses on capturing input from channel 1, though the system has the capability to capture from both channels.
-
Capture Command Processing: Prioritizes capture commands, bypassing other conditions to process and set the specified channel's frequency.
-
Setup and Configuration: Emphasizes the importance of the correct system setup and register configurations to facilitate accurate signal capture.
Token Ring
The Token Ring project builds on the prior signal capturing functionality, introducing network communication through token ring logic. The core challenge was ensuring reliable data transmission and reception.
-
Enhanced Program Flow: Incorporates additional logic into the existing flow to enable token ring operations.
-
User Input Handling: Modifies the main task to continue accepting user input while facilitating the token ring process.
-
New Task Creation: Adds a new task dedicated to receiving input from the token ring network.
-
Interrupt-Driven Input: Utilizes interrupts to capture input character by character, storing them in a buffer.
-
Command Format Processing: Converts the buffer contents into a recognizable command format for processing.
-
Message Display and LED Control: Implements functions for user feedback, including message display and LED status indicators.
-
Error Management: Introduces error detection, providing alerts for unexpected inputs.
-
Destination ID Recognition: Allows users to receive messages addressed to their ID, forwarding others as per token ring protocol.

High level flow chart of the program with the additional logic highlighted
In summary, the interconnected projects on signal generation, signal capture, and token ring communication showcase advanced skill in embedded system programming, leveraging freeRTOS for real-time operations. These projects proved successful in generating diverse signals, accurately capturing data, and facilitating reliable network communication. Verified by academic authorities and practical testing, they highlight critical competencies in real-time input processing, system configuration, and robust communication protocols. The outcomes affirm the precision and adaptability of the embedded systems designed, underscoring the importance of meticulous timing and system integration in complex programming environments.