WSN_2 Node Architecture

Node Architecture

节点是 WSN 中的基本元素。每个节点由感知、处理、通信、能量等系统组成。

其中 processor subsystem 处理子系统是最主要的,也决定了整个系统的效率和灵活性。

其他系统以自己的方式与控制系统相连,如传感系统可能以 ADC 的方式(并不适用于高频信号,因为会产生过多的干扰降低信噪比),通信系统可能采用 SPI 串行通信,电源系统一般采用直流,可能带有晶振、放大器等使得供电与其他原件相适应。

image-20230320100047558

传感系统 Sensing subsystem

早期传感器并不常用,如张衡发明的地震仪。普及主要是因为微机电系统 (MEMS)使得传感器变得便捷、廉价。

ADC 传感器是一种典型的传感器。它的转化需求有两点:

  1. 量化。根据信号的频率和大小,以及可用的处理和存储资源,把连续信号量化为合适的离散值。这一部是为了量化误差。
  2. 采样频率。通常由奈奎斯特速率决定,不过 WSN 系统中由于噪音,奈奎斯特速率并不够,我们还需要过度采样。这一部是为了处理混叠。

处理系统 Processor Subsystem

尽管现在有很多成熟的处理器系统,但大多数时候我们的需求是动态可变的,复杂的。

我们现在使用的处理子系统一般采用微控制器,除了能解决上面说的问题,还可以开发节能通信协议和信号处理算法。

通常处理器子系统采用3种基本架构之一:

  1. 冯诺依曼结构

    有一根总线使得处理器可以和数据、指令通信,效率较低。

  2. 哈佛结构

    两根总线分别直接连接数据和指令。效率较高些,但是不能实现虚拟内存和内存保护。

  3. 超级哈佛结构

    在哈佛结构的基础上,一方面处理器内部有数据缓存,可以不用太频繁地去内存中存取数据,也可以临时存放待调度的数据,提高效率;另一方面处理器可以通过内存从 IO 口获取数据,支持芯片外部 IO。

微控制器

简单集成电路组成的小型电脑。通常由 CPU 和一些外设组成。比如电梯里就含有微控制器。

组成:

  • CPU
  • RAM
  • ROM 或 EPROM 或 EEPROM 或闪存。
  • 并行 IO 串口。
  • 不连续的输入输出位。
  • 时钟。
  • ADC 转换器。
  • 串行通信接口。
  • 用于互联系统外围设备的网络。

微处理器灵活,成本低,功耗低,可编程。但是肯定是不如 DSP 或 FPGA 等定制处理器强大。此外,应对一些简单但需要大规模部署的任务(如活火山状态检测)杀鸡焉用牛刀,只需要一些简单的传感器即可。

DSP

通过一些简单的假发起、乘法器和延迟组件,执行复杂的数学运算,来处理离散信号。

DSP 可以实现强大而复杂的数字滤波器,但是无法执行一些非数值操作的任务(如网络管理、自组织等)。而且协议可能定期升级,网络重新编程的灵活性需求也很重要。

ASIC

特定应用集成电路,可以针对特定应用进行定制。

半定制:利用一些已有的电路器件,按某种特定的规则连接。

全定制:可能重新设计一些电路器件,重新设计连接方式进行连接。

最终的一些编程操作还是交给用户处理,减少上市时间和设计风险。

ASIC 相比微控制器,可以轻松设计和优化,以满足特定客户需求。缺点可能在于设计困难、可重新配置性差、开发成本高。

ASIC 和 微控制器、DSP 之间不是取代关系,而是互补关系。

FPGA

以前 FPGA多用于验证 ASIC 的可行性,我们选定一些器件进行验证。后来通用器件成本降低以及 ASIC 成本增加,且 FPGA 编程更加灵活。

相比 DSP,FPGA 可以处理浮点,可以把处理速度展示给开发者,方便调试;但 FPGA 更复杂,成本相对更高。

比较

微控制器灵活性最好,DSP 速度更快一点,但成本也高,常用数字信号处理。FPGA 处理能力更上一层楼,速度也更快,当然成本也更高。ASIC 因为是专门设计的电路,体积最小,性能最好,但是成本十分高昂。

通信接口

SPI 串行外设接口

高速,全双工。

SPI 总线定义了四个位:MOSI (主出从入),MISO (主入从出),SCLK,CS(芯片选择)。

SPI 是单个主总线,因此微控制器默认是其主总线。组件之间不能直接相互通信,只能通过微控制器间接发送。

image-20230320100029445

主从之间形成了一个移位寄存器。因此哪怕只有少数几个从节点要用,也必须全部发送数据。也就是说不参与传输的节点可能要发送伪字节 。

SPI 支持同步通信,这需要主从服务器在时间和一些属性上达成一致(如决定高活动模式还是低活动模式的 CPOL 和决定何时读取,何时写入数据的 CPHA。

image-20230320100016319

I2C

半双工,使用两条双向通信线。

image-20230320100003111

早期各个设备在总线上有自己的7位地址用于其他设备寻址。后来改为10位。

a 图为7位通讯方式。主服务器先发送一个字节(从结点的7位地址+读/写),随后收到从节点的 ACK 数据后再继续发送数据位字节,每发送一个等待一次 ACK。

b 图为10位通讯方式,先发送前导位 11110(7位接收到这个开头,就会知道这个是10位通讯方式了,就会自动忽略掉这个信号),第一个字节的后2位和第二个字节的8位组成10位地址。

这里可以参考博主的51单片机学习笔记:51单片机学习笔记_8 IIC&AT24C02 芯片的应用_灰海宽松的博客-CSDN博客。为了提高一点效率,我们让数据每次写入1个字节,即 SCL=0 时允许数据变化,SCL 置1时发送数据。

I2C 可能因为多个设备同时通信而冲突。

猜你喜欢

转载自blog.csdn.net/jtwqwq/article/details/129661597