打印
[PIC®/AVR®/dsPIC®产品]

开发具有电平转换 I/O 的窗口安全节点 – 第 2 部分

[复制链接]
1072|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pzsh|  楼主 | 2023-10-17 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2023-10-17 14:22 编辑

简而言之,MVIO 是微控制器芯片上的内部电平转换器,允许一个 I/O 端口在与器件其余部分不同的电压域中运行。这减少了物料清单 (BOM) 和设计面积,同时提供比外部解决方案更大的灵活性。
本系列的第 2 部分将介绍应用程序中使用的 MVIO。它基于一个演示,该演示使用 3D 磁力计作为窗户安全传感器来检测窗户是打开还是关闭。
检测窗户是否打开的最简单方法之一是使用磁簧开关。**开关是一种带有电触点的简单装置,可通过磁场的存在来打开或关闭。通过将磁铁安装到窗户上并将开关安装到固定位置,可以通过触点的连续性来确定窗户的状态。然而,**开关有两个限制。
首先,它无法区分破裂的窗户和打开的窗户。如果使用警报器,则在不关闭警报器的情况下,窗户无法被**。其次,通过在附近放置第二块磁铁,**开关很容易被篡改。当窗户打开时,辅助磁铁将开关的触点固定到位。
为了提高防篡改能力和可用性,开发了一种使用磁力计的替代解决方案。与打开或关闭的**开关不同,磁力计测量磁场分量并将其数字化。通过监测磁场分量,传感器可以区分破裂的窗户和打开的窗户,并且对放置在传感器附近的磁铁具有更强的防篡改能力。
为了展示基于磁力计的解决方案的优势,我们与基于半导体的传感解决方案供应商 Melexis 共同开发了智能窗户安全传感器。它基于 AVR DB 系列的微控制器,这是第一个具有 MVIO 外设的微控制器。这里,MLX90392 3D 磁力计用于监测磁场强度。磁力计由 1.8 V 供电并通过 I 2 C进行通信。
该演示还使用MLX90632远红外 (FIR) 传感器来监测房间的温度。所选择的 FIR 传感器比本地温度传感器更好,因为节点会经历气流和阳光直射,这可能会导致测量误差。虽然 MLX90632 由 3.3 V 供电,但还有一个专为 1.8 VI 2 C 通信而设计的设备变体。
对于无线连接,为了简单起见,使用了RN4870蓝牙模块。这允许用户通过智能手机与演示进行交互,而不是定制开发的通信桥。然而,在生产应用中,我们建议为每个传感器节点切换到更简单且功耗更低的替代无线电解决方案,例如Sub-GHz无线电。源代码和文档链接在文章末尾。
原型设计和开发设置
在开发过程中,我们使用了用于Click 板的 Curiosity Nano 底座 (AC164162)AVR DB Curiosity Nano 开发板 (EV35L43A)。MikroElektronika 的 Click 板上提供 RN4870 蓝牙模块和 MLX90632 温度传感器RN4870 ClickIrThermo 3 Click)。MLX90392 磁力计由 Melexis 在MLX90392 的预组装评估板上提供。
经过初始传感器通信测试后,我们很快意识到需要一个测试夹具来控制磁铁和传感器的位置。利用我们潜在的艺术和工艺能力,我们用纸板和热胶组装了一个简单的测试夹具,如下所示。
图 1在此原型测试夹具和设置中,连接到夹具的小白盒来自现成的门开关。随附的磁铁用作用于测试目的的标准安全磁铁的示例。来源]微芯科技
磁力计
从概念上讲,该系统的窗口警报方面似乎是最容易实现的,但它比我们最初想象的要复杂得多。增加复杂性有几个原因。
首先,磁力计极其灵敏。磁铁或磁力计位置的微小差异都会使数字显着偏离。下图源自磁力计的原始值,未经校准或归一化(图 2)。在数据收集过程中,滑动机构来回滑动。
图 2该图显示了原始磁力计场分量强度。来源:微芯科技
我们没有直接监控每个组件的最大值和最小值(这将根据传感器的安装位置而变化),而是使用总磁场强度 (R = √(X 2 + Y 2 + Z 2 )。出于软件优化的原因,应用程序使用磁场强度的平方。下图显示了同一测试期间磁场的大小。在应用程序中,大小是根据归一化的 16 位值计算的,如图 3所示。
图3该图显示了测试过程中磁场强度的大小。来源:微芯科技
为了使系统整体更加灵敏,每个轴上的磁场值都进行了归一化。从显示的样本数据来看,Y 轴的幅度最大,其次是 Z,然后是 X。每个轴以不同的速率增加。这直观上是有道理的,因为磁通量在垂直方向上最高,在平行方向上最弱。为了标准化每个轴,微控制器通过右移结果来缩放每个轴,以适应带符号的 8 位值。在用户校准序列期间计算缩放因子,以使系统整体更加灵敏。
最初,该应用程序还打算计算 X/Y、X/Z 和 Y/Z 的角度比,以提高防篡改能力。但在测试中发现,由于场强差异很大,这种计算结果非常不可靠。这些角度增加了演示的内存使用量和活动时间。我们发现该应用程序在没有它们的情况下运行良好,并通过宏禁用了它们。根据早期数据计算出的角度比如下所示(图 4)。
图 4磁力计的 X/Y、X/Z 和 Y/Z 角比是根据早期数据计算得出的。来源:微芯科技
为了可靠地利用磁力计,我们开发了一个四步校准过程。此过程必须在初始设置期间执行,但如果需要,用户可以稍后重新触发它。校准应用程序的四个步骤是:
  • 归零
  • 正常化
  • 设置阈值
  • 确认
调零时,窗口完全打开,使磁铁尽可能远离传感器。为每个轴记录的平均值被定义为偏移值。接下来,关闭窗口,使磁铁非常靠近传感器。每个轴的场强在此位置进行平均。在设定数量的样本之后,微控制器计算每个轴的归一化因子。
接下来,用户将窗口打开到所需的打开/关闭阈值。当用户打开窗口时,应用程序正在监视记录的最大场强 (R 2 )。根据定位,最大场强应出现在或接近闭窗位置。
完成此步骤后,用户将关闭窗口。此时,系统正在检查窗户关闭时是否会触发警报。如果警报确实触发,则校准失败,应重复校准。另一方面,当校准成功时,这些值被写入内部EEPROM以供以后使用。
实施温度传感器
为了与 MLX90632 传感器连接,我们开发了一种新的轻量级 API,旨在利用微控制器特定的功能来提高性能。对于 MLX90632 温度传感器,我们实现了校准常数缓存系统,将传感器的工厂常数存储到微控制器的 EEPROM 中。这是由微控制器自动执行的。启动时,微控制器检查其 EEPROM,以确定传感器的常数是否已编程到内存中。为了验证常数,微控制器:
  • 将存储的序列号与传感器的序列号相匹配
  • ]如果任一检查失败,微控制器将重新获取传感器的常数,计算浮点等效值,然后将它们重写到 EEPROM 中。如果存储器被认为是有效的,则微控制器仅读取存储的常数,而不是重新获取和重新计算它们。
可以通过取消定义宏在软件中禁用此功能。或者,如果在应用程序加电时按住校准按钮,应用程序将以安全模式启动,该模式将 EEPROM 中的所有设置和值视为无效,并将重新获取/重新编程(如果启用)。
使用 1.8V 工作电压
在 1.8 V 电压下,串行通信必须比更常见的 3.3 V 或 5 V 类型更加小心地处理。例如,微控制器中的内部上拉电阻可能太弱,无法满足总线的时序要求。为了解决这个问题,我们在总线上添加了外部上拉电阻。
在早期测试中,我们尝试使用精密数字万用表直接测量外部 1.8V 电源的电流消耗。然而,万用表的负载电压刚好足以使总线在串行通信期间掉电。我们在原型中解决了这个问题,方法是在电源中添加一个大型储能电容器,以确保在仪表测量电流消耗时总线保持在欠压阈值之上。这在完整应用中不是问题,因为可以从电源输入测量电流,并且电源在电路板上而不是外部进行调节。
最终结果
一旦系统正常运行,我们就开始开发专用 PCB。下图是已开发的电路板(没有塑料外壳的情况下拍摄)。该原型系统将于6 月 27 日至 29 日在 Microchip 218 号展位举行的Sensors Converge 2022展会上展示。
图 5原型板已拍摄,没有塑料外壳。来源:微芯科技
连接混合电压域是许多设计的关键要素。在大多数情况下,必须使用外部电平转换器在电压域之间进行转换。MVIO 消除了该组件并将其集成到微控制器中,这使得开发人员几乎看不到它。许多可能的设计和应用都将受益于在系统中添加 MVIO 外设。
上述应用程序的源代码和文档可在以下位置获取:  


使用特权

评论回复
沙发
xinpian101| | 2023-10-17 21:06 | 只看该作者
这些板子看着真帅

使用特权

评论回复
板凳
tpgf| | 2023-11-2 16:26 | 只看该作者
请问窗口安全节点是什么意思啊

使用特权

评论回复
地板
coshi| | 2023-11-2 16:54 | 只看该作者
植入这种电平转换的硬件代价大吗

使用特权

评论回复
评论
pzsh 2023-11-14 14:46 回复TA
代码不多的,配置一下 
5
wiba| | 2023-11-2 17:23 | 只看该作者
现在都在宣传这个  应用成熟吗

使用特权

评论回复
6
kxsi| | 2023-11-2 17:45 | 只看该作者
coshi 发表于 2023-11-2 16:54
植入这种电平转换的硬件代价大吗

估计内部电路不好做 否则的话每个引脚都会有这个功能了

使用特权

评论回复
评论
pzsh 2023-11-14 14:46 回复TA
不是所有的I/O都可以的,是一部分管脚可以 
7
drer| | 2023-11-2 18:11 | 只看该作者
它的电平转换范围是多少呢

使用特权

评论回复
评论
pzsh 2023-11-14 14:47 回复TA
应该是1.8~5.5V 
8
qcliu| | 2023-11-2 18:36 | 只看该作者
我们可以通过搭建外部电路帮助其他引脚实现这个功能吗

使用特权

评论回复
9
Undshing| | 2023-11-12 18:55 | 只看该作者
转换范围怎么计算啊

使用特权

评论回复
10
Henryko| | 2023-11-14 10:59 | 只看该作者
这个有应用了吗

使用特权

评论回复
评论
pzsh 2023-11-14 14:47 回复TA
现在的SSD硬盘上面好像已经使用了这种端口技术 
11
Stahan| | 2023-11-16 14:21 | 只看该作者
方案成熟了吗

使用特权

评论回复
12
Jacquetry| | 2023-11-20 11:09 | 只看该作者
转换范围有多远?

使用特权

评论回复
13
Undshing| | 2023-11-21 08:50 | 只看该作者
新应用成熟了吗

使用特权

评论回复
14
AloneKaven| | 2023-11-21 09:04 | 只看该作者
1.8的电源电压

使用特权

评论回复
15
pzsh|  楼主 | 2023-11-21 12:03 | 只看该作者
应用算是成熟零吧,其中有一个就是单片机和SSD的side-band通讯,使用了MVIO

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

819

帖子

2

粉丝