Connected Systems PPT复习
Ch1. Connected systems (overview)
1.1 What connected systems are?
连接系统指的是一组相互关联的组件或设备,它们共同工作以实现一个共同的目标或目的。这些系统旨在相互通信和共享数据,通常通过网络或一系列相互连接的接口来实现。
1.2 The types of applications that use connected systems?
按照占比排名:
- manufacturing/industrial: 连接系统在制造业和工业中的应用非常广泛。这些系统可以用于监测和控制生产线上的机器和设备,从而提高生产效率和质量。通过使用连接系统,工业设备可以实现自动化控制和远程监控,从而降低维护成本和提高生产效率。
- Transportation: 连接系统可以用于跟踪交通工具的位置和状态,优化路线,监测交通流量并提高安全性。在公共交通领域,连接系统可以帮助旅客获得实时的交通信息,从而减少等待时间并提高乘客体验。
- Energy: 连接系统可以用于监测和控制能源的使用和分配。这些系统可以提高能源利用效率,降低能源浪费,并减少对传统能源的依赖。在智能家居领域,连接系统可以帮助家庭管理能源的使用,以节省能源成本。
- Retail: 连接系统可以帮助零售商监测库存和销售情况,提高运营效率并优化供应链。通过使用连接系统,零售商可以实时地监测销售数据并做出及时的决策,以满足消费者需求。
- Cities: 连接系统可以用于监测和控制城市基础设施,例如交通、供水、排水和垃圾处理等。这些系统可以提高城市的可持续性,并改善公共服务的质量。例如,通过使用连接系统,城市可以优化垃圾收集路线并降低废物处理成本。
- Healthcare: 连接系统在医疗保健中用于远程监测患者并向医疗保健专业人员提供实时数据。
...
其中增速最快的是Retail, 负增长的是Cities & Buildings.
1.3 Benefits and disadvantages of IoT systems
-
Benefits
- Information and analysis 信息分析
- Tracking behavior: 行为追踪, IoT设备可以跟踪和记录用户或物体的行为和位置,生成数据并提供实时反馈。🌰: 根据地点的广告与支付
- Enhanced situational awareness: 通过与环境交互和收集数据,IoT设备可以提供更精确和及时的信息,帮助用户更好地理解和响应周围环境。🌰: Sniper detection using direction of sound to locate shotters.
- Sensor-driven decision analyticsL: IoT设备可以收集和分析传感器数据,从而提供更深入的见解和支持决策。🌰: Oil field site planning with 3D visualization and simulation.
- Antomation and control 自动化控制
- Process optimization 过程优化: IoT设备可以通过自动化和优化各种过程,提高效率和减少资源浪费。 🌰: Maximization of lime kiln throughput via wireless sensors.
- Optimized resource consumption 优化资源消耗: IoT设备可以通过实时监测和优化能源、水资源等消耗情况,从而减少浪费和成本。 🌰: Smart meters and energy girds.
- Complex autonomous systems 复杂自主系统: IoT设备可以与其他设备和系统进行交互,并使用人工智能和机器学习算法来自主控制和管理各种复杂任务和流程。🌰: Clean up of hazardous materials through the use of swarms of robots.
- Information and analysis 信息分析
-
Disadvantages: Insecurity
记忆逻辑,宏观到底层;交互到独立
宏观层面:
- Insecure default settings (不安全的初始化设置)
- Lack of secure update mechanism (缺乏安全的更新机制)
- Insecure data transfer and storage (不安全的数据传输和储存)
交互层面:
- Lack of device management (缺乏设备管理)
- Insecure or unneeded network services; (不安全或者不需要的网络)
- Insecure ecosystem(生态系统) interfaces; (不安全的生态接口)
独立层面:
- Lack of physical hardening(IoT设备的物理安全性不足)
- Weak, guessable, or hardcoded passwords (容易破解的密码)
- Use of insecure or outdated components (过时或者不安全的设备)
1.4 Cloud platform
-
use of the cloud (benefits and advantages):
- On-Demand Service: 云计算提供了按需服务,可以根据需要弹性地增加或减少计算和存储资源,以适应物联网系统的需求变化。
- Lots of connectivity options: 物联网中使用的设备和传感器可能有多种连接方式和协议,云计算平台提供了多样的连接选项,如Wi-Fi、蓝牙、Zigbee等,以确保连接的可靠性和稳定性。
- Resource pooling, Elasticity - you get what you need: 计算平台可以将多个物联网设备的计算和存储资源汇聚在一起,实现资源共享和最优化利用。
- Measured Service - get what you pay for: 云计算提供了按量付费的服务模式,用户只需按实际使用量支付费用,避免了过度投入和浪费。
-
Functions of the cloud (specific tasks or capabilities):
- IoT Device Management
- Ingestion
- Information Distribution
- Storing Data
- Processing
- Analytics
- Presentation
-
云计算的三种服务模式
- Software-as-a-Service (SaaS):云服务提供商向最终用户提供应用程序,用户不需要担心应用程序的安装、维护和升级。用户可以通过互联网或私有网络访问应用程序,按照使用情况付费。一些常见的SaaS应用程序包括电子邮件、在线办公套件、客户关系管理软件等。
- Platform-as-a-Service (PaaS):云服务提供商为用户提供一个开发和运行应用程序的环境。这个环境可以包括操作系统、数据库、Web服务器、开发工具等。用户可以使用这个环境来开发、测试和部署自己的应用程序,而无需关心基础设施的管理和维护。
- Infrastructure-as-a-Service (IaaS):云服务提供商提供硬件和软件资源,以支持用户构建自定义的计算环境。用户可以通过网络访问这些资源,根据需要进行配置、管理和维护。IaaS包括虚拟机、存储、网络等服务,用户可以按照使用量付费。
1.5 A typical connected system
基础架构是物联网系统的基本组成部分。它包括传感器Sensor、执行器Actuator、网关Gateway、路由Router、云端Cloud Services和应用程序。这些组件通过网络Internet连接在一起,形成一个端到端的系统。
- Things
- CPU / Microcontroller
- Sensor / Actuator
- Wireless connection
- Infrastructure and Gateway
传感器接收数据以后,经过处理,通过无线信号传递给网关和路由,经过互联网交给云端进行存储和处理。
- Star/ Mesh Network Topology
注意右上角gateway的结构,相当于多个设备连接同一个Gateway进行连接,设备之间不通信,这属于星形结构;如果要是网状结构,则可能是设备间互相传输信息,再传输给网关。
因此,这也决定了网状网络拓扑中每个设备都直接连接到其他设备,数据可以从多个路径传输,从而提高了网络的容错性和可靠性。网状网络可以在较大的区域内使用,并且在数据传输方面比星型网络更灵活。而星形网络拓扑则更简单易用、性能高(因为跳转节点少)、灵活性高(可以灵活的添加和删除设备)
1.6 Embedded Systems
-
Embedded Systems - Issues (嵌入式系统的问题和要求)
- Size: 更小型化、高度集成的传感器和执行器
- Power: 低功耗的电源系统
- Connectivity: 可靠的连接
- Cost: 低成本
- Robust: 高稳定性
- Scalable: 海量设备的扩展性和普及性
-
Embedded Systems - Operation Types (嵌入式系统的操作类型)
- Event detection (event classification): 节点本地检测事件(可能与附近节点一起),将这些事件报告给感兴趣的汇聚点。同时进行事件分类。
- Periodic measurement: 周期性测量某些参数。
- Function approximation: 使用传感器网络来逼近空间和/或时间函数(例如温度图)。
- Edge detection: 找到边缘(或其他结构)(例如,零度边界线在哪里?)
- Tracking: 报告(或至少了解)观察到的入侵者的位置。
Ch2.Sensors and actuators (collecting data)
2.1 Characteristics of Sensors
- Range (量程): 传感器可以正常工作的最大和最小值范围。传感器在这个范围之外可能也能正常工作,但需要进行额外的校准,否则输出可能不再是线性的。
- Accuracy (精度): 指传感器在绝对意义上测量环境的能力,也就是当与一个公认的标准进行比较时,数据有多好。
- Resolution (分辨率): 指传感器能够看到读数中的小差异的能力。
- Repeatability (重复性): 传感器在同样的环境下进行测量时能否重复得到相同的结果,这通常与精度有关,但传感器可以不精确而仍然具有重复性。
- Drift/Stability(漂移/稳定性): 传感器在长时间使用后是否出现漂移,即输出随时间而变化,这通常与传感器元件或参考标准的老化有关。
- Hysteresis (滞后性): 传感器输入信号由低到高,输出曲线与由高到低时不同,导致一种“滞后”的效果。
- Response time (响应时间): 传感器对信号变化的反应速度。
- Output (输出): 指传感器测量参数变化时所给出的输出。
- Power Consumption (功耗): 指传感器所需的电力,通常用电流值来规定。
- Settling time (稳定时间): 指传感器开机后需要多长时间才能进行有效的测量。
- Sampling time: 指的是传感器开启后,需要多长时间才能稳定地测量并输出有效数据的时间。
- Sampling time required (采样时间): 指为了得到准确的测量结果,我们需要多久进行一次测量。这取决于被测量现象的特性以及需要多少时间才能观察到足够的变化。
2.2 Sampling the output of sensors
2.2.1 Nyquist Sampling Theorem
Nyquist采样定理,也被称为Nyquist-Shannon采样定理,是数字信号处理中的一个基本概念,它描述了准确捕捉连续信号所需的最低采样率。
该定理指出,为了从采样版本准确重构连续信号,采样率必须至少是信号中存在的最大频率的两倍。换句话说,Nyquist频率等于信号带宽的两倍。
这意味着,如果采样率过低,信号的高频成分将丢失,重构的信号将失真。这种失真被称为混叠,它发生在由于采样不足而导致信号的高频成分被反射回低频范围的情况下。
Nyquist采样定理在音频和视频处理、通信和数据压缩等数字信号处理应用中非常重要。它确保信号在被采样和数字化后能够被准确重构,这对许多现代技术非常关键。
This minimum sampling frequency is called the Nyquist Rate .
参考资料 *[1]blog.csdn.net/daduzimama/…
2.3 Types of Sensor
- Quantisation step size (for n bits per sample):
, 其中 - Peak Signal power: (这个V是peak amplitude)
- The maximum possible error
- The peak quantisation noise power is:
- The peak signal to quantisation noise ratio is:
(这里一定注意,, 因为这个V是Quantiser range而非peak amplitude) - RMS value (均方根) of the quantization error voltage is:
2.4 Encoding
Encoding dedicates a binary code to each of these levels. So, we can allocate a code to each time sample corresponding to the amplitude level within that time slot. This will produce a regular binary data stream (相当于二进制编码给每级分配一个,从而形成一个二进制数据流)
思考题:Look at the PCM encoding, it shows the increasing amplitude levels being encoded by increasing binary values {000, 001, 010, ... 111}. Why might it be advantageous to encode the increasing amplitude levels using the following sequence of codes: {000, 001, 011, 010, 110, 111, 101, 100}?
- Reduced error rate: The sequence of codes is designed to minimize the probability of errors occurring during transmission. This is because adjacent codes differ by only one bit, so a single-bit error is less likely to result in a large change in the decoded signal.
减少误码率:该编码序列被设计为最小化传输过程中误差发生的概率。由于相邻的编码只相差一个比特,因此单比特误差不太可能导致解码信号的大幅变化。 - Improved signal-to-noise ratio: When a PCM signal is transmitted, it can be subject to noise and interference that can degrade the signal quality. The sequence of codes is designed to maximize the signal-to-noise ratio, which means that it can help minimize the impact of noise on the transmitted signal.
改善信噪比:PCM信号在传输过程中可能会受到噪声和干扰的影响,从而降低信号质量。该编码序列被设计为最大化信噪比,可以帮助最小化噪声对传输信号的影响。
使用 {000,001,011,010,110,111,101,100} 这个编码序列可以改善信噪比,即增加有用信号和噪声之间的差距,从而降低噪声对信号的影响。
举个例子,假设一个音频信号的振幅范围为0到10V,采用简单的二进制编码进行PCM编码,那么每个编码代表的振幅范围是相等的,比如最小编码000代表的振幅为0V,最大编码111代表的振幅为10V,中间每个编码代表的振幅范围都是10/7≈1.43V。
而如果采用 {000,001,011,010,110,111,101,100} 这个编码序列进行PCM编码,每个编码代表的振幅范围则是不等的,比如最小编码000代表的振幅仍然是0V,但最大编码100代表的振幅为8.75V,中间每个编码代表的振幅范围也不同,最大的编码范围是110代表的2.5V。由于这个编码序列是经过优化的,使得相邻编码的振幅范围之间差距较小,而相隔较远的编码则代表较大的振幅范围,从而增加了有用信号和噪声之间的差距,提高了信噪比,降低了噪声对信号的影响。
Ch3.Micocontrollers (on-device processing)
3.1 What do we look for in a microcontroller?
3.1.1 Key design considerations
- Processing Power / Memory
- I/O ports
- Interrupts
- Programming
- Power Management
3.1.2 Microcontroller Types 微处理器的类型
微处理器分为微控制器和微处理器两种类型。微处理器通常是通用型的,而微控制器则通常带有额外的硬件模块,例如模数转换器等。它们通常采用8位、16位或32位体系结构,并可采用哈佛或冯·诺依曼结构。微控制器内置振荡器和时钟,并且大多数采用精简指令集计算(RISC)。它们通常使用3.3伏电源(也有5伏、2.5伏和一些1.6伏的型号),具有可变的时钟速度和用户可编程的引脚。
3.1.3 Integrated peripherals 集成外设
微处理器的集成外设是指在微处理器芯片内部集成的电子器件。
集成外设和芯片的连接是通过总线来实现的,而不是直接与CPU核心、寄存器或内存相连。集成外设通过芯片的总线接口与CPU核心和其他部件进行通信,以实现各种功能。在程序运行过程中,CPU核心可以通过总线与集成外设进行交互,从而控制和管理外设的操作。
微处理器的集成外设和外接设备的区别在于集成外设直接与芯片集成在一起,而外接设备则需要通过某种协议与芯片通信,并通过引脚与芯片连接。
- 模数转换器(ADC):通常是一个单独的ADC设备,具有多个切换输入。(见上面结构图)主要将将模拟信号转换成数字信号。例如,当我们需要将传感器测量的温度、压力或光强等连续变化的模拟信号转换成数字信号,以便在数字电路、微处理器或计算机中进行处理和存储时,就需要使用ADC。
- 数模转换器(DAC):将数字信号转换成模拟信号的电子器件。例如,当我们需要将数字音频信号转换成模拟音频信号以供扬声器播放时,就需要使用DAC。
- 实时时钟(RTC):可编程报警功能。
- 看门狗定时器(WDT):当软件出现问题时,控制重新启动。
- 直接内存访问(DMA)控制器:可以在不需要CPU的情况下传输数据。
- 通用输入输出(GPIO):可以配置为输入或输出,并连接到中断。
- PWM:脉冲宽度调制输出。
- USART(UART、SPI、I²C):通用同步/异步接收/发送,用于与其他设备通信。
- USB:直接实现USB协议。
3.1.4 Non-integrated peripherals 非集成外设
非集成外设通常是指与微处理器芯片不在同一芯片上,而是作为单独的电路板或芯片附加在微处理器系统上的外部设备。在MKR 1010 WiFi板上,还有一些非集成外设,它们可以通过标准接口(如SPI、I2C、UART等)连接到微处理器系统,从而实现与微处理器芯片的通信和控制。通过使用这些非集成外设,用户可以扩展系统的功能和性能,同时保持芯片的小尺寸和低功耗特性。
3.1.5 Processing Power 处理功率
不同的微处理器具有不同的处理能力和特性,包括指令集复杂度、处理速度、内存大小、ADC数量、I/O总线数等等。根据不同应用的需求,可以选择合适的微处理器来实现特定的功能和性能。
其中主要的衡量标准有:
- No. Bits: 通常指的是处理器的数据位宽,即处理器可以处理的二进制数据的位数。位宽越大,处理器在一次运算中可以处理的数据量越大,因此可以更快地完成复杂的运算。同时,较大的位宽还可以提高处理器的准确性和精度,例如可以更准确地表示小数或浮点数。
此外,位宽还决定了处理器可以寻址的最大内存空间大小,即处理器可以访问的最大RAM或ROM容量。例如,一个8位处理器最多只能寻址256个内存地址,而32位处理器可以寻址更大的内存空间。 - Memory Architecture: havard 哈佛结构 和 Von Neumann 冯 诺伊曼结构。
- Instruction set: 通常用来衡量指令复杂度, 其中使用较少的指令集合称为“精简指令集计算”(RISC)架构,而使用较多指令集合的架构称为“复杂指令集计算”(CISC)架构。在给定的架构下,指令的位宽、寻址方式和执行速度等因素也会影响指令复杂度。
- Clock Speed: 决定了微处理器每秒钟能够执行多少个指令,因此也是衡量微处理器运行速度的一个重要指标。具有更高时钟速度的微处理器能够在更短的时间内完成更多的计算和处理任务。
- RAM: RAM则用于存储程序和数据。当微处理器需要执行指令时,它将从存储器中读取指令,执行该指令,并将结果存储回存储器中。RAM是微处理器中最常见的存储器类型之一,它提供了快速的随机访问能力,并且可以被读写。因此,RAM通常被用于存储变量、数组、堆栈和其他程序数据,以及用于缓存和暂存器。
- ADCs: 它可以将来自传感器的模拟信号转换为数字信号,以便微处理器可以对这些数据进行分析和处理。因此,ADC通常与输入/输出(I/O)引脚一起使用,以便从外部世界获取数据并将其转换为数字格式。
- External Bus:通常指的是微处理器用于与外部设备进行通信的总线,它可以是数据总线、地址总线和控制总线的组合。它通常是用来连接外部存储器、外设、以及其他微处理器和芯片等。External Bus通常用于高速数据传输,用于连接大量的外部设备。
- I/O Lines: I/O lines指的是微处理器用于输入和输出数据的管脚数目。这些管脚可以被配置为数字输入/输出,模拟输入/输出,中断输入等。 I/O lines的数量可以影响微处理器的外部连接能力,通常用于连接少量的输入/输出设备,例如按钮、LED、传感器等。
3.2 Accessing External Device 接入外部设备
3.2.1 轮询 Polling
轮询是指处理器定时地查询外部设备是否有输入事件发生。
- 缺点:
在轮询模式下,处理器需要不断地查询外设,从而占用大量的处理器时间。
轮询会导致大量的处理器时间浪费,而且处理器无法进入低功耗模式。 - 优点:
容易运行和侦错
3.2.2 中断 Interrupts
中断模式下处理器是被外设发出的中断请求唤醒的。当外设发生输入事件时,它会向处理器发送中断请求,从而立即唤醒处理器进行处理。
- 缺点:
侦错困难 - 优点:
避免轮询带来的效率问题
能够使处理器进入低功耗模式,以节约能源。
使用中断允许MCU检测外部动作,例如按钮按下、来自收发器的数据包到达、振荡器故障和其他异常情况。中断通常是任何引发CPU从按指令顺序执行指令的路径中偏离的触发器。当发生中断时,CPU会保存当前状态并进入中断处理程序/中断服务例程(如果存在的话)。
中断是一种CPU控制机制,它可以让CPU在正常执行程序的过程中随时停下来去执行中断服务程序(ISR),然后再回到原来的程序位置继续执行。
在一个MCU中,中断分为三类:
- 系统复位中断 System Reset Interrupts: 系统复位中断是一种硬件中断,当MCU电源上电时,或者通过软件控制进行复位时,系统复位中断会发生。
- 不可屏蔽中断 Non Maskable Interrupts:通常是一些关键事件,例如振荡器故障和Flash访问违规,无法通过软件屏蔽。
- 可屏蔽中断 maskable Interrupts: 通常是由MCU的GPIO、定时器和外围设备发出的中断,可以通过设置GIE(全局中断使能)位来开启或关闭。
MCU指的是“微控制器单元”(Microcontroller Unit). Different interrupts can have different priorities.
中断的执行过程:
- 先执行当前正在执行的指令;
- 把当前指令的下一条指令地址(The Programme Counter PC)压入堆栈;
- 把状态寄存器(Status Register SR)的值压入堆栈;
- 如果在上一条指令执行期间有多个中断发生且仍在等待处理,则选择优先级最高的中断;而其他中断请求将保持挂起状态,等待最高优先级中断处理完后再处理。
- 单源中断请求标志会自动重置;
- 状态寄存器被清除,这会终止低功耗模式,并禁止后续中断的发生(因为GIE位被清除);
- 中断向量的内容被加载到PC中,程序继续执行中断服务程序。
*[2]: 当前指令的下一条指令地址被压入堆栈,这是为了在中断服务程序执行完毕后,能够正确地回到原来被中断的指令处继续执行。
*[3]:状态寄存器 SR 的值被压入堆栈,这是为了在中断服务程序执行期间,能够保存当前程序的状态信息。状态寄存器包含了许多标志位,用于指示当前程序的运行状态,比如运算是否溢出、是否发生了中断、中断优先级等等。在中断服务程序执行完毕后,需要从堆栈中恢复状态寄存器 SR 的值,以保持程序的正确运行。(先保存到堆栈再清除)
*[5]: 单源中断请求标志是指单一中断源产生的标志,当中断服务程序开始执行后,该标志会自动重置,表示该中断已经被处理完毕,可以响应其他中断请求了。
*[6]: 当中断发生时,需要从低功耗模式中唤醒,所以要将状态寄存器清除,以确保系统能够正常地响应中断。同时,GIE位也会被清除,这是为了避免在执行中断服务程序时又被其他中断打断,保证中断服务程序的执行。 GIE 是 Global Interrupt Enable 的缩写,它是一个控制中断开关的位。当 GIE 位被设置为 1 时,允许所有中断请求,MCU 可以响应任何中断请求。当 GIE 位被清除为 0 时,MCU 将无法响应任何中断请求,即使中断请求被触发也不会执行相应的中断服务程序。因此,通过控制 GIE 位可以方便地开启或关闭 MCU 的中断功能。
3.2.3 RETI
中断服务例程以指令RETI(从ISR返回)结束,返回中断需要执行一些CPU周期以执行以下操作:
- 带有所有先前设置的SR从堆栈中弹出。无论在中断服务例程中使用的设置如何,现在都会生效,包括GIE、CPUOFF等设置。
- PC从堆栈中弹出并开始在中断中断的地方执行。
3.2.4 RTOS
Real Time Operating System(RTOS)是一种能够处理多个中断并行执行、具有可预测性(通常被描述为确定性)执行模式、为每个执行线程分配用户优先级、可扩展以适应内存占用等特点的操作系统。它还能处理多个中断并充分利用可用的省电模式。
3.3 Digital Interfaces
3.3.1 两种通讯总线
- SPI:代表“串行外围接口”(Serial Peripheral Interface),是一种用于连接微控制器和外部设备的串行通信总线。SPI总线使用4根线(时钟、数据输入、数据输出和从机选择线)来连接微控制器和外部设备,支持全双工通信,具有高速率和低成本等优点。(左图)
- I2C: “Inter-Integrated Circuit”,即“集成电路之间互连总线”,是一种串行通信总线,由Philips公司开发。I2C总线只需要两根线(串行数据线SDA和串行时钟线SCL)即可连接多个设备,具有简单、低成本、可靠的特点,常用于连接微控制器和各种外设。
3.4 How do we keep power consumption low?
3.4.1 Power Management
Power draw increases with:
- Vcc
- Clock speed
- Temperature
微控制器中被打开的元素会影响功率。大多数微控制器都有多种低功耗模式。
3.4.2 SAMD 21 low power
- STANDBY模式 - 微控制器处于关闭状态,除非有需要(例如RTC和其通用时钟)。
- IDLE模式 - 微控制器进入休眠状态,需要更少的时间恢复到活动状态。其中,APB和AHB是外围设备使用的时钟。
- IDLE 2模式:所有时钟关闭除了主时钟,但RAM处于正常模式(恢复时间比STANDBY模式短)。
- IDLE 1模式:主时钟和APB时钟(分频)打开。
- IDLE 0模式:主时钟、APB时钟和AHB时钟(不分频)打开,但CPU时钟关闭。
- MKR 1010 WiFi power modes
- Deep sleep模式
- 使用STANDBY模式,只有RTC或特定唤醒中断可以唤醒,CPU处于关闭状态,不执行任何处理。
- Sleep模式
- 选择的外围设备处于打开状态,唤醒时间更快。
- Idle模式
- 特定模块/时钟可以禁用以进一步降低功耗。 此外,NINA WiFi模块可以处于低功耗模式或关闭状态。WiFi操作是主要的功耗来源。
3.4.3 Design rules for low power
- 如果您的应用程序可以等待GPIO引发中断,并且不需要活动时钟,请使用较低的功耗模式,避免轮询。
- 对于UART、SPI、I2C以及其他模块的所有低级驱动程序尽可能使用中断。构建您的应用程序以异步方式运行。
- 避免使用CPU执行任何可以使用外设完成的操作,包括计时和其他操作。
Ch4. Transport (transport over a network and collecting data in the cloud)
4.1 Network Architecture
4.2 The Internet
4.2.1 IP /DNS (Domain Name System)
-
IP address:
IPv4的地址长度是32位(或4个八位组),通常用点分十进制表示法表示。E.g.:10000001 00111000 01011001 00011110 is 129.56.89.30
IPv6的地址长度为128位,通常用十六进制表示法,将地址拆分成8个16位的组,每组用冒号分隔。E.g.:AE96:001F:0001:0000:0010:001F:8138:591E -
DNS:
DNS(Domain Name System)是一种用于将域名解析为 IP 地址的分布式命名系统。在互联网上,每个计算机都必须拥有唯一的 IP 地址以便于通信。
DNS 使用一个层次化的命名系统,类似于文件系统的目录结构。域名被分为若干级别,每个级别之间用点号(.)分隔,例如 "www.example.com" 最高级别是根域名(.),下面分别是顶级域名(例如 .com、.org、.net 等)、二级域名(例如 example.com)和子域名等。
当用户在浏览器中输入一个域名时,操作系统会向本地 DNS 服务器发出请求,如果本地 DNS 服务器缓存了这个域名对应的 IP 地址,则直接返回给用户;否则,它将向根域名服务器发送请求,获取下一级域名服务器的地址,以此类推直到获取到该域名的 IP 地址,最终将 IP 地址返回给用户。整个过程是自动进行的,用户无需关心具体的 DNS 查询过程。
4.2.2 Mac /ARP
- Mac:
是一个唯一标识网络设备的地址,通常是一个48位的十六进制数字,如 01:23:45:67:89:AB。在以太网中,每个网络设备都有一个唯一的MAC地址。这个地址在设备生产时被分配,并通常不会改变。 - ARP:
ARP(Address Resolution Protocol)是一种用于解析MAC地址的协议,将网络层的IP地址映射到数据链路层的MAC地址。ARP使用广播方式查找MAC地址,即发送一个ARP请求,所有在同一广播域内的设备都会收到这个请求,但只有与请求中的IP地址匹配的设备会响应,并将其MAC地址返回给请求者。一旦请求者知道了目标设备的MAC地址,它就可以直接通过以太网发送数据包。 - 🌰:
假设在局域网中有一台计算机 A,它需要向另外一台计算机 B 发送数据包。由于计算机 A 只知道目标计算机的IP地址,不知道它的MAC地址,因此需要进行地址解析。计算机 A 发送一个 ARP 请求,包含目标IP地址(B的IP地址)。在同一广播域内的所有计算机都会收到这个ARP请求,但只有计算机 B 会响应,把它的MAC地址返回给计算机 A。一旦计算机 A 得到了计算机 B 的MAC地址,它就可以直接发送数据包给计算机 B,而不需要发送广播请求了。这样,ARP协议就起到了解析MAC地址的作用,实现了计算机之间的通信。
4.2.3 Circuits and Packets(Routing & Switching)
- Routing
- 路由是在网络层实现的
- 决定了数据包从源地址到目的地址的传输路径, 根据路由表将数据包从一个网络转发到另一个网络。路由器通常是跨越不同物理网络的边界进行通信的关键设备。
- 路由是一种在单个自治系统中动态路由的协议。它们用于构建路由器中的路由表,并旨在找到最短/最佳路径上的下一跳。最短路径优先算法是现在普遍使用的算法,包括OSPF(开放式最短路径优先)和RIP(路由信息协议)。
- BGP是应用于路由(IP)的协议,它是一种在不同自治系统(AS)之间交换路由信息的协议,被用来实现Internet上的全局路由选择。
- DHCP是应用于IP地址分配的协议,它在局域网中被用来为计算机分配IP地址、子网掩码、默认网关等网络配置信息,使得计算机能够通过IP地址互相通信。
- Switching
- 交换是在数据链路层实现的
- 根据MAC地址将数据包从一个端口转发到另一个端口,从而使数据包仅在目标设备之间传输,而不会在网络中传播。
- ARP(地址解析协议):用于查找给定IP地址对应的MAC地址,以便将IP数据包传输到正确的目标。
4.2.4 Internet design philosophy
- End-to-end argument:
Important functions (error control, encryption, delivery acknowledgement, etc.) should be implemented by the end systems - Fate Sharing:
If one puts functionality in the end system, then that functionality only breaks if the end system breaks which would make the communication useless anyway.
4.2.5 TCP & UDP
| TCP | UDP |
|---|---|
| Reliable Transport | Unreliable Transport |
| Controlled rate of transmission | Uncontrolled rate of transmission |
| Complex | Very simple |
TCP:
- 分解复用(Demultiplexing)
TCP使用端口号来识别不同的进程,以便正确地将数据包传递到目标进程。 - 可靠性(Reliability)
TCP对数据传输进行可靠的控制,确保数据被正确地传输并且没有丢失。为了实现这一点,TCP使用确认、重传和序列号等机制来确保数据的可靠传输。 - 拥塞控制(Congestion Control)
TCP还具有拥塞控制功能,它可以监测网络的拥塞程度,并相应地调整发送数据的速率。这可以防止网络拥塞,提高数据传输的效率和可靠性。
4.2.6 HTTP
HTTP is the foundation of the client-server model used for the Web. Device as a client, not a server.
- GET instructs the server to transmit the data identified by the URL to the client.
- PUT is used to create or update the resource identified by the URL. Doesn’t say how.
- DELETE deletes the resource identified by the URL
- POST is used when the processing on the server should be repeated
4.2.7 IoT Specific Protocols
- MQTT: 是开放标准/比HTTP更适合受限环境/提供异步通信机制/在IP上运行/有多种实现方式。
在通信模式上很灵活,纯粹作为二进制数据传输的通道。 - CoAP: 专门设计用于与Web互操作。
4.3 The Cloud
4.3.1 What is the cloud
Services containing applications and databases.
4.3.2 Use of the cloud
云服务的基本特性:
- On-Demand Service
- Lots of connectivity options
- Resource Pooling, Elasticity - you get what you need
- Measured Service - get what you pay for
云服务的服务类型:
- Software-as-a-Service (SaaS) 软件即服务
provides applications to the cloud’s end user - Platform-as-a-Service (PaaS) 平台即服务
provides environment for users to develop and run own application - Infrastructure-as-a-Service (IaaS) 基础设施即服务
provides the hardware and software for user to build a customised computing environment
4.3.3 Functions of cloud
- IoT devices management
- Ingestion
- Information distribution
- Storing data
- Processing
- Analytics
- Presentation
4.3.4 Support
- a variety of hardware and software 提供各种硬件和软件
- cloud protocols (RESTful, MQTT, CoAP) 支持多种云协议
- secure remote firmware upgrades 支持安全的远程固件升级
- web-based and mobile applications for data presentation 提供基于Web和移动应用的数据展示
- Pricing (per device, transaction, data type, bandwidth usage, storage usage, subscriptions) 提供多种计费方式
- Sandboxing 提供沙箱环境: 隔离不同用户之间的应用程序,保护用户的数据和隐私。
- High-throughput event processing 支持高吞吐量事件处理
Ch5. Wireless standards (wireless connectivity)
5.1 Overall
- Wireless PAN(个人局域网):它是一种面向个人的无线网络,用于在非常短的距离内进行无线通信,通常不超过10米。它通常用于连接个人设备,例如笔记本电脑,智能手机,耳机等。蓝牙技术是一种常见的个人局域网技术。
- Wireless LAN(局域网):它是一种覆盖范围较大的无线网络,用于在建筑物内或相邻建筑物之间进行通信。通常,无线局域网的覆盖范围不超过100米,其速度和可靠性通常比个人局域网要高得多。Wi-Fi技术是一种常见的无线局域网技术。
- Wireless WAN(广域网):它是一种用于跨越较大区域进行通信的无线网络,可以覆盖数十公里到数千公里。无线广域网通常使用诸如蜂窝网络和卫星通信等技术,用于提供移动电话和互联网访问等服务。
Considerations:
- Wireless range
- Data rates
- Power consumption, lifetime requirements
- Interfaces, support for higher layer protocols/applications
5.2 BLUETOOTH AND ZIGBEE
蓝牙是一种短距离无线通信技术,连接的收发设备可以分为主设备和从设备。主设备可以同时连接最多7个从设备。所有设备在同一个网络中通信,由主设备的设备ID决定跳频方式,从而实现同步跳频。
传统的蓝牙是面向连接的。当设备连接时,即使没有数据流,也会保持链路。
-
嗅探模式(sniff mode)允许设备通过间歇性地检查传输来保持同步。设备在特定时间间隔内仅在一部分时间内接收和发送数据,其余时间设备处于低功耗状态。这种工作模式可以最大限度地延长设备的电池寿命,同时保证了设备与其他设备之间的通信同步性。
-
休眠(Park)模式允许设备通过仅以预设间隔收听“信标”来保持同步。蓝牙设备在完全不需要进行数据传输的时候进入休眠状态,只在预设的时间间隔内唤醒以接收其他设备发出的信号或者广播。在这种模式下,设备会消耗更少的电量,并能够在需要时保持与其他设备之间的同步性。
-
待机模式(Standby mode)-蓝牙设备在没有加入到任何蓝牙网络中时所处的状态,此时设备只保持时钟运行,其余硬件均处于关闭状态,功耗最低。当设备需要与其他设备建立连接时,它可以进入其他工作模式以实现数据传输。
ZigBee采用网状网络,蓝牙和Wi-Fi采用点对多点。Zigbee主要用于传感器连接。