Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi...
-
Upload
marshall-price -
Category
Documents
-
view
212 -
download
0
Transcript of Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi...
![Page 1: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/1.jpg)
Component-Based Development of Networked Embedded Applications
Peter Volgyesi and Akos Ledeczi
Institute for Software Integrated Systems, Vanderbilt University{peter.volgyesi, akos.ledeczi}@vanderbilt.edu
Euromicro 2002 Dortmund
![Page 2: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/2.jpg)
Outline
• Background
• What we did
• How we did it
• Conclusions
![Page 3: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/3.jpg)
What is a Networked Sensor ?
• Autonomous computer based system – CPU, memory, power
• Sensors– temp, light, etc.
• Actuators• Comm. Channels
– radio, UART
• Ad-hoc network
Sensor 1
Sensor 3
Sensor 2
Base Station
![Page 4: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/4.jpg)
Networked Sensor Characteristics
• Resource constraints– power, size, memory, speed
• Concurency– capturing sensor info, processing data, transmit
to base station, maintain routing information
• Diversity in design and usage– OS must provide high level of modularity
• Shared and unreliable comm. channels
![Page 5: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/5.jpg)
The MICA hardware platform
• UC Berkeley• Name: Mote• ATmega 103L MCU
– 6Mhz RISC, 128kB Flash, 4kB EEPROM, 4kB SRAM
– 8 A/D channels, UART, SPI
• Coprocessor– 4Mbit EEPROM
• RFM– 900Mhz, 50kBit/s, bit-level
interface (on/off keyed), 4-5 meters
• LEDs• 2 AA batteries
![Page 6: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/6.jpg)
Sensors
• Microphone / Tone decoder
• Buzzer (4kHz)• Temperature• Photo sensor• Accelerometer (2D)• Magnetometer (2D)
• A/D ports, PWR lines, control lines (I2C)
• Unused components can (should) be turned off
![Page 7: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/7.jpg)
TinyOS System Architecture
• An application is a network of components
• The whole application is configured and linked at compile time (no dynamic reconfiguration)
• The OS components are also compiled and linked to the application (no permanent SW code on the MOTEs)
• No dynamic memory allocations, no “real” multitasking
![Page 8: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/8.jpg)
TinyOS components
HANDLEDEVENTS
SIGNALED EVENTS
HANDLED COMMANDS
USEDCOMMANDS
FRAME TASKS
![Page 9: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/9.jpg)
TinyOS Components
• Frame is a static data structure for state info• Event and command handlers are functions• Events and commands are functions to be called
(#define-based wiring)• Tasks are functions to be called (these function
pointers can be placed in the queue of the scheduler)
• Commands must not signal events• Only events can interrupt tasks
![Page 10: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/10.jpg)
Case study: BLINK
include modules {MAIN;BLINK;CLOCK;LEDS;
};
BLINK:BLINK_INIT MAIN:MAIN_SUB_INITBLINK:BLINK_START MAIN:MAIN_SUB_START
BLINK:BLINK_LEDy_on LEDS:YELLOW_LED_ONBLINK:BLINK_LEDy_off LEDS:YELLOW_LED_OFFBLINK:BLINK_LEDr_on LEDS:RED_LED_ONBLINK:BLINK_LEDr_off LEDS:RED_LED_OFFBLINK:BLINK_LEDg_on LEDS:GREEN_LED_ONBLINK:BLINK_LEDg_off LEDS:GREEN_LED_OFFBLINK:BLINK_SUB_INIT CLOCK:CLOCK_INITBLINK:BLINK_CLOCK_EVENT CLOCK:CLOCK_FIRE_EVENT
MAIN
BLINK
CLOCKLEDS
BLINK.desc
![Page 11: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/11.jpg)
Case study: BLINKTOS_MODULE BLINK;
ACCEPTS {char BLINK_INIT(void);char BLINK_START(void);
};HANDLES {
void BLINK_CLOCK_EVENT(void);};USES {
char BLINK_SUB_INIT(char interval, char scale);char BLINK_LEDr_on();char BLINK_LEDr_off();char BLINK_LEDy_on();char BLINK_LEDy_off();char BLINK_LEDg_on();char BLINK_LEDg_off();
};SIGNALS {};
TOS_FRAME_BEGIN(BLINK_frame) {char state;
}TOS_FRAME_END(BLINK_frame);
char TOS_COMMAND(BLINK_INIT)() {TOS_CALL_COMMAND(BLINK_LEDr_off)();. . .VAR(state) = 0TOS_CALL_COMMAND(BLINK_SUB_INIT)
(tick1ps);return 1;
}
char TOS_COMMAND(BLINK_START)(){return 1;
}
Void TOS_EVENT(BLINK_CLOCK_EVENT)() {VAR(state) = (VAR(state) + 1) % 2;if (VAR(state)) TOS_CALL_COMMAND(BLINK_LEDr_on)else TOS_CALL_COMMAND(BLINK_LEDr_off)
}
BLINK.comp BLINK.c
![Page 12: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/12.jpg)
Gratis Model of BLINK
![Page 13: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/13.jpg)
Visual Programming Environment:Motivation/Requirements
• Problems with redundant information (eg.: interface points)
• Need for (good) visual representation of the wiring (hierarchical components)
• Visual Browser for the OS components• Error checking, constraints• Must support two way translation between
graphical representation and the source files:– TinyOS parsing tool (written in Python)– Builds all possible applications/components/wiring– Extensive consistency checks
![Page 14: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/14.jpg)
Further Motivation
• Domain-Specific Design Environments (Simulink, LabVIEW, Rose, etc.):– Modeling
– Analysis
– Simulation
– Synthesis
• Problem: High cost of development• Challenge: Rapid and cost-effective creation of
domain-specific design environments like Gratis
![Page 15: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/15.jpg)
• Configurable (i.e. metaprogrammable)• Highly modular architecture• Extensibility: Standard interfaces (COM, XML, UML, OCL)• Built-in constraint manager• User-defined visualization• Model database (object store)
Freely available at:
http://www.isis.vanderbilt.edu/Projects/gme/default.html
Generic Modeling Environment GME 2000
![Page 16: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/16.jpg)
Gratis Metamodel
![Page 17: Component-Based Development of Networked Embedded Applications Peter Volgyesi and Akos Ledeczi Institute for Software Integrated Systems, Vanderbilt University.](https://reader035.fdocuments.us/reader035/viewer/2022072016/56649ee95503460f94bfa9f7/html5/thumbnails/17.jpg)
Conclusion
• Domain-specific modeling and code generation environments are a natural fit for component-based software development
• Applying metaprogrammable environments such as GME 2000 makes their creation feasible :– Gratis, a fully functional, sophisticated graphical
development environment was about a 1 man-month project!
• Thanks for DARPA IXO for their support