Week 1 What is IoT?
Lesson 1: Definition of the IoT
Lecture 1.1 IoT Example: The Refrigerator
- Basic functions
- Add computational intelligence
- Add a network connection
lecture 1.2 IoT Devices
- 21st century car - computer-based control system enable fuel injection anti-lock braking, etc.
- Internet access gives access to external computation and data ("the cloud")
- 1970's logistical tagging - barcode
- 21st century logistical tagging - intelligent RFID tags
lecture 1.3 IoT Devices vs Computers
- IoT devices have a main function
- Computers execute code
- IoT vs Computers
- computer are general-purpose
- IoT are special-purpose
Lesson 2: Trends in the Adoption of the IoT
Lecture 2.1 Trends in the adoption of IoT
- Convergence of several trends
- Cost of Hardware has decreased
- Hardware Size
- Computational Ability
- Internet Access
Lecture 2.2 IoT is Powerful and Pervasive
- Interface to the cloud
- Networking is Powerful
- IoT is Pervasive
- At home
- At work
- On your person
- Everywhere else
Lesson 3: The Importance of the IoT in Society
Lecture 3.1 Social Benefits of IoT
- Societal Benefits
- IoT makes life easier
- Independence from people
- Link to the world
lecture 3.2 Risks, Privacy, and Security
- Social isolation
- Dependence on technology and infrastructure
- Privacy and Security
- Observation by IoT devices is pervasive
- Data may be used to market to you
- Purchasing an IoT device may give the manufacturer permission to use or sell your data
- Data may be used by insurance agencies
- Data may not be held in a secure way
Week 2 Embedded Systems
Honey, I Programmed the Blanket
Lesson 1: Features and Constraints of Embedded Systems
Lecture 1.1 What are embedded systems?
- Computer-based systems that do not appear to be computers - complexity is hidden from the user
- Much more common than desktops or laptops
- They interact with users via simple interface
- Efficiency Rules!
- Tight Constraints
- Manufacturing cost
- Design cost
- Performance
- Power
- Time-to-market
- Very different from traditional software engineering
Lecture 1.2 More on embedded systems
- Application Specificity
- Embedded sys tend to be app-specific
- Design is focused on one app
- Higher design efficiency is possible
- Hardware/Software Codesign
- Hardware and software are often designed together
- More work for designers
Lecture 1.3 Generic embedded systems structure
IoTW2L1.3.png- IP (Intellectual Property) Core
- An integrated circuit that performs one function
- Cheap in high volume
- Very useful for common tasks
- Must interact with the microcontroller
- FPGA (Field Programmable Gate Array)
- Hardware that can be reconfigured via RAM
Lesson 2: Components of Embedded Systems
Lecture 2.1 Components of Embedded Systems
Microcontrollers
- Integrated circuit that executes a program
- Microcontroller vs microprocessor
- slower
- less memory,fewer features
- connected to other hardware components
- Sends commands and receives data
- Needs to be programmed
- Microcontroller vs microprocessor
Programming Microcontrollers
- Write code on a host machine
- Programming the microcontroller
Use a Programmer
- Programming hardware can be used to place program in microcontroller memory
Lecture 2.2 More on components of embedded systems
Using a Development Board
-
General Purpose Processors
- Used for any application
- Many features included
-
Digital signal Processors
- Made to support DSP functions
- Vector instructions
- Cheaper but more limited
-
Sensors
- Provide simple information
- More complicated data
-
Actuators
- Cause events to occur in the environment
- Simple actuators
- complex actuators
Lecture 2.3 Sensors and actuators
Lesson 3: Interacting with the Physical World
Lecture 3.1 Analogue/Digital conversion
-
Analogue to Digital Conversion
- Converts analogue data to digital data
- used to interface with analogue sensors
-
Digital to Analogue Conversion
- Converts digital signals to analogue signals
- Used to interface with analogue actuators
Lecture 3.2 Basic equipment
A development board with a microcontroller the center of most projects
- Connectors: USB, Ethernet cable, jumper wires
- Inputs: Potentiometer, Photoresistor, Keypad, Buttons
- Outputs: LEDs
- Others: Resistor, breadboard
Week 3 Hardware and Software
Lesson 1: Hardware Components
Lecture 1.1 Hardware and Software
IoT devices are a combination of hardware and software
Hardware and Software components must be designed together.
Datasheets give details of each hardware component
- Physical size
- Input/output pins
- Electrical Parameters(max current, etc.)
Lecture 1.2 Integrated Circuits
- Size specifications for manufacturing
- Electrical and thermal parameters
Integrated Circuits(ICs)
- A small electronic device made of a semiconductor material(Silicon,etc.)
- Chip is protected by a package
- Package has a set of pins to allow chip access
Lecture 1.3 Microcontroller Properties
Microcontroller Characteristics
Datapath Bitwidth
- Number of bits in each register
- Determines accuracy and data throughput
Input/output pins
- Need enough pins to support your app
Performance
- clock rates are slower than desktop
Other Microprocessor Features
- Timers
- Needed for real-time app
- Analog-to-digital converters
- Used to read input from analog sensors
- Low-power modes
- Power saving is key
- Communication protocol support
- Interface with other ICs
- UART, I2C, SPI, etc
Lesson 2: Microcontrollers and Software
Lecture 2.1 Microcontroller Components
AVR ATmega2560
- 8-bit microcontroller
- Up to 16MHz
- 256KB of flash memory
- 4KB EEPROM, 8kKB SRAM
- Peripherals
Microcontroller Components
- Storage elements
- Data stored in different components
- Speed/Cost(area) tradeoff
- Register: stores a single value
- Several special-purpose registers, used internally
- General-purpose registers, used by the program
Storage Elements
-
Register file: Stores many values
- A set of registers; each has an address
- Acts just like a memory
- Extremely fast, expensive
-
Instruction operands are here
add $r3, $r2, $r1
-
Can only read one or two registers at a time
-
May contain ~32 registers
Memories
- Cache: Stores many values
- Slower than a register file
- Cheaper than a register file
- Still fairly fast and expensive
- Data cache holds data that the program operates on
- Instruction cache holds program instructions
Main Memory
- very big: Gigabytes (Gb)
- Not in the CPU
- Connected to the CPU via system bus
- Memory access is slow
Lecture 2.2 Compilation and Interpretation
Software Translation
- Machine language: CPU instructions represented in binary
- Assembly language: CPU instructions with mnemonics
- Easier to read
- Like machine language
- High-level language: commonly used language(C,C++,Java)
- Easier to use
All software must be translated into the machine language of the microcontroller.
Compilation and Interpretation
-
Compilation: translate instructions once before running the code
- C, C++, Java(partially)
- Translation occurs only once, saves time
-
Interpretation: translate instructions while code is executed
- Basic, Java(partially)
- Translation occurs every execution
- Translation can adapt to runtime situation
Lecture 2.3 Python vs. C/C++
- Python is interpreted - a scripting language
- Python is easier to work with, if speed is not primary
vs.
- C and C++ are compiled
- C and C++ are more common for performance
Software Tool Chain
IoTW3L2.3.png- Software written on a host
- Transferred to the flash memory in the microcontroller
- Tool chain is the set of tools needed to process the software
Lesson 3: Operating Systems
Lecture 3.1 Operating Systems
Structure |
---|
User |
App |
OS |
Hardware |
Operating System
- Manages other programs
- Windows, Linux, IOS, etc.
- Allows many programs to be executed together
- Incorporates a nice user interface
- Needs processing power and memory
- Slowing down the system, makes development easier
Lecture 3.2 Task Support
Multiple Tasks
- Assume that one microcontroller is being used
- At least four different tasks must be performed
- Send video data: continuous while a user is connected
- Service motion buttons: whenever button is pressed, may last seconds
- Detect obstacles: continuous at all times
- Auto brake: whenever obstacle is detected, may last seconds
- Detect and auto brake cannot occur together
- 3 tasks may need to occur concurrently
Process/Task Support
- Main job of an OS is to support the Process(Task) Abstraction
- A process is an instantiation of a program;
it must have access to:- the CPU
- memory
- other resources
- I/O, ADC, timers, network, etc.
- OS must manage resources
- Give processes fair access to the CPU
- Give processes access to resources
Week 4 Networking and the Internet
Mobile networks prep for the Internet of Things
Security and the Internet of Things – are we repeating history?
Lesson 1: Networking Basics
Lecture 1.1 Why is Networking Needed?
- To enhance many devices
- Cars communicating to reduce traffic
- Online game play
- Access media libraries
- To access data or computational power outsider of the device
Client-Server Transactions
IoTW4L1.1.pngClient-server model is very common
- Single server, one or more clients
- Server provides a service for clients
- Server manages a resource
- Server responds to requests from the client
Computer Networks: LAN
Hierarchical system of computer-based devices which communicate
- Local Area Network(LAN) - spans a building or campus(Ethernet is most common)
Computer Networks: WAN
Wide Area Network(WAN) - Internet is best example
Computer Networks: MANET
-
Mobile Ad Hoc Network(MANET) - continually changing network built from wireless, mobile devices
- Typically short-range
- Most common for IoT devices
Lecture 1.2 WAN Structure
A small LAN
- Ethernet is a common LAN protocol
- Ethernet switch sends messages to the right input or output
A Larger LAN
- Spans a building or campus
- Smaller LANs connected by bridges which speak both LAN protocols
A Wide Area Network
- Multiple LANs connected by routers
Lecture 1.3 Networking Components(Lab Tour)
Lesson 2: Internet Protocol
Lecture 2.1 Internet Structure
Internet Structure
- Ad hoc interconnection of networks
- Unpredictable structure
- Can be changed by anyone at any time
- Messages travel from source to destination by hopping through networks
Internet Protocol: Solution
- Protocol software running on each host and router
- Common communication rules for all networks
- Implement protocol(set of rules)
- governs how hosts and routers should cooperate when they transfer data from network to network
- TCP/IP is the protocol for the global IP Internet
Lecture 2.2 Protocols
What does an Internet Protocol Do?
- Provides a naming scheme
- An internet protocol defines a uniform format for host addresses
- Each host(and router) is assigned at least one of these unique internet addresses
Protocol Model
- Rules that determine how computers will communicate
- CB radio protocol
- "Over" - I am done talking
- "Roger" - Data received
- Rules enable efficient communication
Network Protocols
- Many networking tasks to transmit and receive data
- Routing, flow control, arbitration
- OSI divides these tasks between network abstraction layers
- Each layer has its own responsibilities
- Each layer uses different data
- Routing requires network topology
- Arbitration may use message priorities
Lecture 2.3 Protocol Stack
OSI Layer Concept
- Message is received at each layer and decisions are made
- Assume layer R performs routing, transmission
- Message M is received by layer R
- Layer R identifies a route for message M
- Layer R ads routing information, creating M'
- Layer R passes message M' to the next lower layer
Encapsulation
- Communication tasks are confined to one protocol layer
- Protocol stack is the implementation(usually software) of each protocol layer
Encapsulation: Transmission
- Messages start at top layer and go down
- Message decisions are made at each layer
- Relevant information is added to the message at each layer(header or footer)
Encapsulation: Reception
- Messages start at bottom later and go up
- Relevant information is stripped at each layer
- New decisions are made, if necessary
Lesson 3: Network Layers and MATNETS
Lecture 3.1 TCP/IP Application Layer
- Transmission Control Protocol(TCP), Internet Protocol(IP)
- Protocol stack used in the Internet
TCP/IP |
---|
Application |
TCP/UDP |
IP |
Data Link |
- TCP/UDP used at Transport layer
- App-to-app
- IP used at network layer
- Host-to-host
- 4 layers total, unlike OSI's 7
Application Layer
- Protocols that directly support applications
- Information is application-specific
- Simple Mail Transfer Protocol(SMTP): email
- Hypertext Transfer Protocol (HTTP): web
- Line Printer Daemon(LPD): printing
HTTP response message transmitted in response to a request for a web page (GET)
Lecture 3.2 MANETs
Mobile Ad Hoc Network (MANET)
- Self-configuring network of mobil hosts/routers
- Connected by wireless links
- Often connected to a wired LAN via an Access Point
- Common for IoT devices
MANET Issues: Power Budget
- Mobil devices are power constrained
- Standard LAN protocols must be modified
- Battery is often the heaviest component
MANET Issues: Data Rate and Security
Data rate
- Wireless bandwidth is lower than wired
- Bandwidth costs power
Security
- Power is not available for complex security
- No encryption, anti-virus, etc.
Network Programming in Practice
- We write code at the application level
- Lower levels handled by library functions
- Ex:
- SendMessage() function creates a TCP/IP message and transmits it
- ReceiveMessage receives a TCP/IP message and returns contents
网友评论