Networked Embedded Systems Sachin Katti EE107 Spring 2016 Lecture 1 Introduction
EE107: Networked Embedded Systems Goal: Provide a hands on introduction to the design of networked embedded systems Class will focus broadly on how to design a fully functional embedded system as well as use it for the function its designed
Logistics Instructors: Sachin Katti, Pengyu Zhang TAs: Manikanta Kotaru, TBD Lectures: Mon-Wed: 4:30-5:20 Lab Sessions: Fri: 4:30-5:20 Office hours: –Sachin: Gates 342 after Monday class –Pengyu: TBD –Mani: TBD Web: omehttp://ee107.stanford.edu
Lectures & Assignments Lecture slides will be accompanied by notes Lecture notes will be posted on the web Four assignments –Due every two weeks Assignments will be based on programming –Important to do them to keep pace in class
Project & Exams Assignments are designed to progress towards a fully functional embedded system whose goal is app power measurement & debugging Project will use that system for measuring and debugging the energy usage of popular apps on your phones (e.g: Chrome) –Done in groups of 2 Two exams in class –Midterm: May 2 in class –Finals: June 1 in class 5
Grading Logistics Overall Class Grade –Exams: 40% –Four Assignments: 30% –End quarter project: 30%
What is a networked embedded system? 7 Computing systems are everywhere Most of us think of “desktop” computers –PC’s –Laptops –Mainframes –Servers But there’s another type of computing system –Far more common...
Networked Embedded Systems 8 Networked embedded computing systems –Computing systems embedded within things/gadgets connected to the network –Hard to call out any one thing/gadget, nearly everything now has a chip and a radio in it –Billions of units produced yearly, versus millions of desktop/laptop units
Some common characteristics 9 Single-functioned –Executes a single program, repeatedly Tightly-constrained –Low cost, low power, small, fast, etc. Lives in the physical world –Usually measures and/or controls some external physical system
Typical Internal Structure 10
Examples 11
13
Project: Build and use an embedded system to solve a common, everyday problem Hands on introduction to embedded systems Learn concepts by building things that you will use to debug a problem that you face everyday –Why does my phone battery die so fast? Need to be comfortable with C As you build it, you learn –Design of a basic embedded computing system –Interfacing embedded systems with the physical world –Using the embedded system to measure a phone’s power consumption, evaluate which apps (or which OSes) are energy hogs, and suggest how to fix them
BattOr: Energy debugger for smartphones and laptops Power monitoring hardware –Connects directly to the device’s battery to collect observations Collects fine-grained details about how much power an app consumes –Energy consumed to render a frame on the GPU –Energy consumed to send packets over WiFi
What will you take away from this project? General knowledge of how an embedded system works –GPIO, Clocks, Interrupts DMA, ADC, SPI, I2C, UART, Power supplies Low-level firmware development in C –Device drivers –Digital signal processing –USB interface with PC Hardware testing (and building) –Reading circuit layout and schematics –Analog circuit measurement (Oscilloscope, Multimeter) –Digital logic observation (Digital Logic Analyzer) –Surface mount soldering (Extra credit – I strongly suggest it)
Why does BattOr matter? System workloads are increasing but battery capacity is relatively stagnant. –Electrical engineering and software development are beginning to shift focus to energy efficiency Example: BattOr used by Google’s Chrome team –Found and fixed significant (~30%) wasted energy in Chrome for Mac’s frame rendering code Affected all videos and animations in Chrome (YouTube, scrolling, gifs)
Class Goals & Philosophy At the end of the class, you should have the tools to design a gadget with an embedded system inside it Philosophy: Not enough to build an embedded system, we also have to use it for the purpose it was intended –“Eat our own dog food” 18
Course Description Correction Networked embedded systems are often hidden from our view, but they are a key component that enables our modern society. Embedded systems bridge our physical world with powerful digital measurement and control systems. The devices we use every day that are built with embedded systems increase every year, as we realize where computing capability is needed, and as our embedded systems decrease in size and cost to open up to more applications. Applications of today's embedded systems range from stabilization in drones authentication in credit cards, and even temperature control in toasters. In this class, students will learn about how to build an embedded system from the ground up. The lectures will focus on the key enabling components of embedded systems, including: Clocks, GPIO, Interrupts, Busses, Amplifiers, Regulators, Power supplies, ADC/DAC, DMA, and Storage. …. The projects will be centered around building a portable power monitor device that enables software developers to monitor the power consumption of their applications running on smartphones. At the end of the class they will use the power monitor they built to observe the power consumption of their favorite apps and they will write a public blog entry documenting the opportunities that exist for improvement. 19