本文介绍了一个更大的模块化传感器系统的以太网连接子系统,专为工业或智能家居传感和监控而设计。我们将讨论为此应用程序开发的自定义传感器子系统。
为家庭或自动化创建定制传感器解决方案通常需要大量定制。可能来自几个制造商的各种传感器被收集在电路板上,必须设计固件,并创建用户界面或仪表板。这不是非常困难的工作——但它可能相当乏味和耗时。在许多用例中,定制方面也可能使其成本过高。
这个项目背后的想法是创建一个“超级简单的传感器系统”,允许各种各样的输入和输出节点通过一个通用协议连接在一起,尽可能减少电线数量和低升级/更换成本。该子系统有望在您的设计中激发创造力,但它不是一款可上市的产品。
灵感来自设计精美的儿童益智玩具Makeblock Neuron系列。多个传感器和输入(温度、湿度、操纵杆、按钮等)与各种输出和接口(LED 显示器、蜂鸣器等)相连,所有设备都通过磁性弹簧式 pogo-pin 连接器连接。
我项目中的每个节点都内置了一个廉价的微控制器。传感器或机械输入数据通过适合传感器的接口( SPI、I2C、CAN、4-20mA 等)发送到微控制器,然后微控制器转换数据到一个公共接口(UART、USB 等)以传输到相邻节点。
在这种情况下,我选择UART作为通用总线协议。从左侧的相邻节点读取数据,将当前传感器的数据添加到流中,然后将所有数据传递给右侧的相邻节点。
每个输入节点都添加到数据流中,可能带有一个字节标识数据长度、一个节点标识字节和数据。希望扩充系统的设计者只需要设计一个节点;这保留了设计的模块化,并允许快速轻松地连接一系列设备。
数据以菊花链方式不断地从一个节点传递到下一个节点,直到到达输出节点。在那里,输出设备(闪烁警报、LCD 显示器、蜂鸣器等)读取数据流以获取与其相关的信息并采取相应行动——始终传递数据。
这对于具有一条 UART 总线的三线接口(VDD、GND、数据)来说已经足够好了,但是需要将所有输入节点放置在输出节点之前。通过添加第二个 UART 总线,可以传递双向信息,并且可以在任何配置中添加节点。或者,第二行可能用于微控制器软件更新,作为心跳监视器,或保留以备将来使用。
通过在设计中使用磁性弹簧针连接器,您可以让生活更轻松。
如方框图中所示,Tx/Rx 线(用于 UART0 和 UART1)延伸到电路板的相对两侧。这是出于几个原因。
首先,也许是重要的,这允许同时编程/调试和使用。微控制器编程接口与 UART0 共享引脚(即,编程信号和 UART 信号都路由到同一个物理引脚),因此测试接收和发送序列,发生在电路板的相对两侧,同时连接到调试器, 要求 UART1 的两个数据引脚之一位于电路板的任一侧。
其次,它允许在三线配置中使用单个 UART 总线(即电源、接地、Tx 在一侧,电源、接地、Rx 在另一侧)。
,它可以简化固件,允许使用同一总线接收和传输数据,而不是每次进入节点时都将数据从接收总线复制到单独的传输总线。
随着时间的推移,工厂车间的传感器和显示器往往会被忽略。数据必须从工厂车间转移到建筑物的中央位置,或者可能穿过城镇转移到监控位置。为了满足这一要求,我选择使用有线以太网连接。Cat5 和 Cat6 布线通常已经安装在一个位置,可以在 LAN 中远距离传输数据,当连接到 WAN 时,可以在世界任何地方移动数据。MQTT 协议专为 M2M(机器对机器)通信而设计,可以轻松建立 MQTT 代理以将数据从接口节点移动到接口节点,同时始终使用 TLS1.3 进行保护。
一旦数据到达 LAN 或 Internet 中的目的地,程序员就可以捕获数据以创建图形用户界面,有时称为“仪表板”,供管理人员和控制人员查看。不幸的是,随着时间的推移,这些显示也往往会逐渐被忽略。自动化的当前趋势是创建可以直接发送给员工的自动文本、电子邮件或其他警报,然后如果员工没有及时纠正错误情况,通知员工的直接主管。
这个项目的关键部分要求我有两个独立的 UART 总线和一个以太网接口。对于以太网接口,我选择了WizNET W5500。这种高度集成的 IC 实现了 TCP/IP 堆栈、10/100 以太网 MAC(媒体访问控制)和 PHY(物理层)。我对 TCP/IP 堆栈、UDP、ARP、ICMP 等没有太多经验,而这个 IC 允许我在 SPI 上使用多达 8 个套接字——我熟悉的一种协议。
我选择了MSP430FR2633作为微控制器。虽然 MSP430FR2433 也能够控制 W5500,但我知道我会有一些未使用的 GPIO 引脚,而且我喜欢在未来创建低成本电容式触摸控制面板的选项。2433不支持电容触摸,所以我选择了2633。项目中使用的所有其他IC都支持W5500和MSP430FR2633。
系统中的每个节点共享一个公共 5VDC 轨。5V 电源由用作整个网络电源的一块板产生,然后每块板使用两个TLV757P LDO 将 5V 轨调节至模拟电路的 3.3V 和数字电路的 3.3V。这是一个四层板,顶层和底层用于信号,第 2 层和第 3 层分别用于 AVDD 和 GND。
AVDD 和 DVDD 线路的布线为这块 4 层电路板带来了挑战。AVDD(在下面的洋红色中显示)被选为电源平面网络,因为这种安排似乎会导致更简单、更清晰的布线。DVDD 必须在第 1、2 和 4 层之间移动,这并不理想。在每次转换时,使用多个过孔来化阻抗。
几乎所有通过硬接线连接到互联网的设备都有一个 8P8C RJ45 插孔。内置在插孔中或非常靠近插孔的地方有一个脉冲变压器。脉冲变压器将集成电路与电缆电隔离。隔离提供了针对直流故障条件的保护,并消除了与发射器和接收器的地电位差异相关的问题。该变压器还用作差分接收器,可抑制共模噪声,例如大功率设备产生的电磁干扰,并等量耦合到两条紧密绞合的信号线中。
电路集成的两个选项是带有外部脉冲变压器的 RJ45 插孔,或带有集成脉冲变压器的 RJ45 插孔。集成选项通常称为“MagJack”,通常更易于使用,但价格稍贵。您只需访问四对电线中的两对即可进行 10/100 通信。另外两对根本不用!当我为这个项目选择零件时,我没有想到这个想法,我拒绝了几个提议的 MagJacks,因为它们只提供两对电线的接入,并且有六针足迹——我需要一个 8P8C 插孔,带两个 LED (每个 LED 都有单独的阳极和阴极引脚),所以我正在寻找十二引脚或更大的脚印。糟糕!仅使用八根导线中的四根。这个故事的寓意是:如果你不打算使用所有八个导体,
如下所示,R7-R10 是阻尼电阻。我根据其他参考设计估算了它们的值。它们是防止电路中的过冲和振铃所必需的。测试必须揭示线路是否过度/不足/临界阻尼以及相应调整的值。发送对通过 49.9Ω 电阻上拉至 DVDD,中心抽头通过 10Ω 电阻连接至 DVDD,并通过 22nF 电容去耦接地。接收对穿过阻尼电阻器并遇到两个电容器。根据制造商的建议,这对通过两个 49.9Ω 电阻器连接到一个 0.01 μF 去耦电容器——它们通过变压器绕组的中心抽头进一步上拉至 DVDD。
从硬件的角度来看,WizNet W5500 是对电路的一个非常简单的补充。必须包括一个外部晶体振荡器,并且需要六个左右的模拟去耦电容器——每个 AVDD 引脚一个。引脚 43-45 用于选择网络模式。如果有必要使用默认配置以外的东西,我包括焊桥焊盘(事实证明我不需要更改模式)。
晶体振荡器制造商建议去除晶体正下方的铜。我使用接地注入来尝试将晶体的输出与 W5500 SCLK 输入线隔离开,尽管这可能没有必要。
MSP430FR2633 是我一直在使用的微控制器,我现在已经将它用于几个项目(包括这个电容式触摸项目)。如果您在使用它时遇到问题,我发现 Texas Instruments 在其E2E 论坛中为工程师提供支持,应用工程师可以在其中回答大多数问题/请求。
MCU 使用MSP-FET 编程器和调试器通过 GCC、IAR 或Code Composer Studio进行编程。我喜欢使用此 MCU 的原因之一是因为它具有专用的电容式触摸输入引脚。这意味着可以将按钮/开关/滑块添加到控制面板,只需额外 PCB 的成本,或者如果电容式触摸元件、MCU 和其他所需组件集成到单个 PCB 中,则无需任何成本。有关详细信息,请参阅我关于 MSP430FR2633 的另一篇文章。
MCU 在 PCB 上的实现相当简单——只需要几个去耦电容器和一个复位电路。复位开关上的去抖动电路遵循数据表建议。
虽然并非必要,但我向从 MSP430 引出的 UART 数据线添加了两个逻辑电平转换器。由于进入电路板的电源电压为 5V,我也选择将数据线信号设为 5V。这是一个有点武断的选择,可以很好地证明将它们保持在 3.3V(这是 MCU 使用的电源电压)。
除了 MagJack 和电源 LED 外,所有部件都放在电路板的顶部。MagJack 远离其他组件,并且 MagJack 下面的铜已从电路板的所有层移除,因此插孔内的磁性不会影响电路的任何其他部分。差分对在尽可能短的距离内布线到设备的占地面积之外。
Wiznet W5500 及其所有支持电路位于电路板的中央,三个未使用的焊桥焊盘位于丝印台的上方和左侧。MSP430FR2633 与接头 J2 一起位于 WizNet 的右侧,接头 J2 提供四个电容式触摸引脚、一个 DVDD 引脚和三个 GPIO 引脚。这些用于未来的用户界面面板,该面板包含四个电容式触摸板和三个 LED。除差分走线外,每条数字信号线都提供了测试焊盘。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。