Building the
Internet of Everything
David
E. Culler
Department of Electrical Engineering and
www.eecs.berkeley.edu/~culler
The goal of this material is to provide faculty, students, and practitioners interested in wireless embedded sensor networking with a hands-on understanding of the foundations of the field and the practical application of the technology. The material focuses on modern, robust systems and networking software for integrating ubiquitous instrumentation of the physical world with leading-edge IP networking and Web Service capabilities. It emphasizes the use of open standards at several levels - including the TinyOS 2.0 embedded operating system, IEEE 802.15.4 radio, 6LoWPAN adaptation, IPv6 networking, routing, and configuration, UDP/TCP transport, HTTP, REST/SOAP application layers – as they apply to ubiquitous embedded network devices and applications.
Basic knowledge of networking, operating systems, and machine structures. C programming skills highly recommended. We work directly with the I/O and ADC capabilities of microcontrollers, but will rely only an understanding of conventional microprocessors. We write socket-level code and use higher-level networking tools. Familiarity with HTML/XML and some Web development tools is encouraged.
· Lecture 1: Overview of Wireless Embedded Internetworking (WEI)
o Technology trends and application domains that drive the field.
o History of the field – research and industrial perspective
o Technical elements: Motes, TinyOS, Meshes, Routing, Sensing, Power
o Relationship to automation, instrumentation, and IT.
o Application domains and their characteristics
· Lecture 2: WEI Hardware Technology – Motes and beyond
o Mote architecture and development
o Microcontroller design issues and trade-offs
o Low Power CMOS radios: IEEE 802.15.4
o Storage and its implications on algorithm design
o Sensing, sampling, and control
o Industrial offerings and their use in research
· Lecture 3: WEI Operating Systems Design
o TinyOS and alternatives
o Structured event-driven processing
o Hardware abstraction, modularity, robustness, and optimization
o Embedded OS subsystem design
· Lecture 4 – TinyOS Programming
o Interaction of concurrency model and storage model
o Role of threads and events
o Design of an embedded network kernel
o Programming language support
o Safety and Reliability
o Socket and Embedded Socket Programming
· Lecture 5: Embedded Processing – Triggers, Actuation, and Sensing
o Interacting with the physical world
o Impact of Storage and power
o Role of connectivity
o Limited visibility
o Scheduling, Interrupts, Atomicity
o ADC design and use
o Calibration, conversion, local signal processing
o Integrating physical information with data processing
o Representation, electronic data sheets
· Lecture 6: 6LoWPAN – enabling IPv6 over IEEE 802.15.4
o RFC4944, Compression
o Implications and open issues.
· Lecture 7: Low-Power Wireless Link Media Management
o Media management protocols
o Reliability
o Idle listening
o Burst bandwidth, delay, and low-power optimization
o Topology formation and link estimation
o Scheduling techniques
· Lecture 8: Reliable, Low-Power Routing
o Workloads and traffic patterns
o Collection, dissemination, and point-point
o Multipath for reliability
o Limited storage complexity
o Update rate and consistency
o Impact of link characteristics
· Lecture 9: Density Aware Protocols – Trickle
o Mesh routing, dissemination, collection and aggregation
o Trickle – simple robust consistency mechanisms
o Time synchronization
o Hierarchy
o Defensive protocol design for reliability
o Security
· Lecture 10: Extending IPv6 to WEI
o Address assignment, scope, translation, and management
o Auto-configuration and unattended operation,
o ICMPv6, ND
o Routing and forwarding
o Role of multicast
· Lecture 11: Industrial instrumentation to Embedded Web Services
o Automation, Process control, Industrial monitoring, home, lighting
o HTML, XML, REST and SOAP for wireless embedded applications
o Extending the internet Service Oriented Architecture
o Zigbee ZCL, HART, BACnet, CIP, LonWorks
o Dynamic Web pages from Physical Content
o Databases for physical information
o Integrating events and alarms with Web services
o Rethinking instrumentation standards in an XML world
· Lecture 12: Micro-Power Design
o Micro-power: storage, generation, and regulation
o Power sources, energy storage, regulation
o Capacity planning and modeling
o Application / Power subsystem co-design
· Epic Interface Board and related technical documentation
· Lab 1: IP and IPv6 Network Programming – Socket and Services
· Lab 2: Embedded Internetworking over IEEE 802.15.4
· Lab 3: Event-driven Programming in TinyOS
· Lab 4: Triggers and Actuators
· Lab 5: Embedded Sockets Programming
· Lab 6: Embedded UDP/IP Reporting
· Lab 7: Sensing
· Lab 8: Embedded TCP/IP
· Lab 9: Embedded SensorWeb
· Lab 10: Internet Thing
· Lab 11: Server Tier
· Lab 12: Smart Client
· Lab 13: Embedded Peer-to-peer
·
Lab 14: Open project