Networking and Communications


purposes
   location
   parallelism
   modularity
   interference

serial bus
   asynchronous
      RS-232, RS-422, RS-485
      components video
      hello.bus.45.bridge.cad board traces interior
      hello.bus.45.node.cad board traces interior
      hello.bus.45.c makefile
   I2C
      TWI master slave
      USI master slave
      software master
      library bit-bang video
      hello.I2C.45.bridge.cad board traces interior
      hello.I2C.45.node.cad board traces interior
      components programming
   SPI
      library
      SD memory cards
         specification FAT
         hello.uSD.44.py board components traces interior
         hello.uSD.44.read.c make output
   CAN
   USB
      hardware
         AVR LUFA
      software
         V-USB

OSI layers
   7: application (HTTP)
   6: presentation (SSL)
   5: session (RPC)
   4: transport (TCP, UDP)
   3: network (IP)
   2: data link (MAC)
   1: physical (PHY)

physical media
   capacity
      bandwidth * log_2 (signal/noise)
   wired
      single-ended, differential, powerline
      open collector, open drain
      transmission (pass) gate, tri-state
      transmission line
      waveguide
      TIA RS232, 422, 485
      802.3 ethernet
         chip module
      SONET optical fiber
   wireless
      RF
         FCC Part 15 ISM
         802.11 Wi-Fi
         802.15 ZigBee 6LoWPAN
         Bluetooth BLE GATT GAP UUID Services app stack
      optical
         transmitter receiver LiFi
      acoustic

modulation
   PCM: Pulse-Code Modulation
   PPM: Pulse-Position Modulation
   OOK: On-Off Keying
   FSK: Frequency-Shift Keying
   BPSK: Binary Phase-Shift Keying
   QAM: Quadrature Amplitude Modulation
   OFDM: Orthogonal Frequency-Division Multiplexing
   FHSS: Frequency-Hopping Spread Spectrum
   DSSS: Direct-Sequence Spread Spectrum
   UWB:  Ultra-WideBand

channel sharing
   ALOHA
   Master-Slave
   Token Ring
   TDMA: Time-Division Multiple Access
   FDMA: Frequency-Divsion Multiple Access
   CSMA: Carrier-Sense Multiple Access
      CD: Collision Detection
      CA: Collision Avoidance
      1-persistent: transmit when clear
      nonpersistent: random backoff
      p-persistent: probability to transmit
   CDMA: Code-Division Multiple Access
   MIMO: Multiple-Input Multiple-Output
   "PDMA": Physical-Division Multiple Access

errors
   detection, correction
   block, convolution codes
   parity, checksum, Hamming, Reed-Solomon, Turbo

networking
   Internet protocols
      RFCs
      IPv4, IPv6
      DNS DHCP NAT private
      UDP, TCP
      HTTP
      BGP AODV ROLL
      sockets
         udpsnd.js udprcv.js video
         udpsnd.py udprcv.py
         udpsnd.c udprcv.c
      Wireshark
      SLIP
         slattach route
         hello.bus.45.SLIP.c makefile udp_slip.py video
      Internet 0
   APA

RF
   radios
      oscillator, mixer, PA, LNA, IF, I/Q, demod, baseband, filters
   antennas
      Q, antenna gain, impedance matching
      FabFi
   single-chip
      RN4871 (2.4 GHz Bluetooth)
         chip module commands
         hello.RN4871.ftdi.cad board components traces interior video
      CC2541 (2.4 GHz Bluetooth)
         chip HC-08 HM-10 HM-11 commands
         hello.HM-11.ftdi.cad board components traces interior video
      nRF52 (2.4 GHz Bluetooth, ISM)
         chip module project project
      nRF24L01+ (2.4 GHz ISM)
         chip module library antennas
         hello.nRF24L01P.44.cad board components traces interior
      nRF905 (433/868/915 MHz ISM)
         chip module library
      ESP8266 (2.4 GHz Wi-Fi)
         chip module power
         hello.ESP8266-12E.ftdi.cad board components traces interior
         commands UDP TCP client server
      ESP32 (2.4 GHz Wi-Fi, Bluetooth)
         chip module board toolchain
         MicroPython JavaScript NodeMCU Lua RTOS FreeRTOS
      RN2903 (LoRA)
   software radio

assignment
   individual assignment:
      design, build, and connect wired or wireless node(s)
      with network or bus addresses
   group assignment:
      send a message between two projects