在高性能物联网端点中使用查找表时,外部闪存具有优势

随着物联网(IoT)网络变得更加复杂,物联网端点正在边缘执行更复杂的处理。这可能需要使用具有更快时钟速度,更多内存和更强大处理器内核的微控制器的系统来升级现有端点。
这还需要具有高精度的传感器和模数转换器(ADC),并且可能需要定期校准。使用公式可以轻松补偿线性误差。然而,非线性误差不遵循与传感器读数的设定偏差模式,因此不能容易地在数学上进行补偿。通常,补偿固件中的非线性错误的最简单方法是使用数据查找表将所需的校正数据存储在存储器中。
本文将简要介绍传感器和ADC错误,并讨论使用数据查找表来纠正此类错误的优势。然后,它将解释如何使用外部安森美半导体LE25S161PCTXG串行外设接口(SPI)闪存芯片在基于STMicroelectronics STM32L496VG微控制器的系统中实现实用且经济高效的数据闪存查找表。

传感器错误

检测模拟条件(如温度,压力和电压)的传感器可能存在非线性误差。在项目开发阶段,重要的是测试传感器的准确参考值,并将参考值与传感器的数字输出进行比较。这允许开发人员尽早确定任何传感器偏离参考值的性质,以及在给定应用要求时偏差是否可接受。然后,开发人员可以决定是否有必要补偿任何偏差,如果是,则是否应该在硬件或固件中补偿偏差。
一些传感器错误可能是可预测的线性错误。补偿这些误差可以像添加或减去传感器输出的常数值一样简单。有时这些误差可能会随传感器规模而变化。例如,从零到三分之一的满量程,可能需要添加一个常量; 从三分之一比例到二分之一比例,可能需要不同的常数。
这些错误是可预测的,显然很容易纠正。但是,与准确读数的偏差可能会随时间而变化。此外,由于暴露于极端温度,高环境湿度或传感器老化等原因,以后可能会出现新的传感器错误。是否需要纠正这些错误始终取决于应用程序。可能有必要在极端的温度,压力和湿度下测试系统,以确定传感器的行为。某些应用需要进行这些环境测试,例如汽车,军事和一些工业系统。然而,许多新的物联网端点正在进行之前没有传感器的地方,因此传感器测试可能是一项新要求。
像这些ADC这样的通用微控制器模拟外设也可以像任何模拟传感器一样定期进行系统内校准。ADC错误并不总是可预测的,即使可以使用算法校正初始错误,错误也可能随着时间的推移而发生变化,可能会以一种无法通过算法轻松纠正的方式。这可能导致系统无法再以所需的精度运行,从而导致昂贵的更换成本。

使用数据查找表进行模拟传感器纠错的优点

数据查找表可以是一种实用且有效的方法,可以快速执行一些像三角函数一样复杂的常见计算,或者像字节位反转或将字节转换为格雷码一样简单。使用256字节的查找表进行字节位反转比在固件中执行位反转要快得多。将此查找表存储在程序或数据闪存中是安全的,因为它占用的空间很小而且永远不需要更改。
数据查找表也是用于存储传感器校准数据的非常实用的方法。像内置ADC这样的微控制器模拟外设可能需要使用与模拟传感器完全相同的方法进行定期校准。大多数微控制器中的ADC可精确到±2或±3个最低有效位(LSB)。虽然这些对于大多数应用来说已经足够,但对于要求高精度的系统,定期校准ADC是有意义的。
用于校正24位数据的部分校准查找表可能类似于表1。
传感器读数   传感器校正值
:   :
01 AB 24h   00 01从21h
01从25h起   00 01从22h
01从26h起   00 01 AB 24h
:   :
表1:24位校准数据的数据查找表示例的摘录。原始输入值是需要针对错误进行纠正的源读数。然后将该原始值用作24位地址,并用于查找相应的32位校正值,其中最高有效字节始终为00h。(表数据来源:Digi-Key Electronics)
在此示例中,原始输入值是需要针对错误进行更正的源读数。然后将该原始值用作24位地址,并用于查找相应的32位校正值,其中最高有效字节始终为00h。如果查找表不是从地址零开始,则可以将偏移添加到原始输入值。
在决定存储查找表的位置之前,确定查找表需要多大以及是否需要重写是很重要的。两者都很重要。如果永远不需要重写,那么适合微控制器可用片上闪存的查找表就很有意义。但是,如果传感器需要定期重新校准,这意味着重写内部闪存,要求整个闪存扇区与表一起被擦除和重新编程。
如果Flash扇区与程序存储器共享空间,则可能需要重新编译代码。即使查找表位于其自己的专用扇区中,内存要求可能会在以后更改或扩展,从而导致重新调整一些查找表扇区空间以用于其他代码。这使现场的传感器校准变得复杂,并且可以通过要求通过网络下载重新编译的代码来防止IoT端点的独立自校准。如果涉及多个传感器,则问题进一步复杂化。
用于校准24位数字数据的大型查找表(例如16,777,216条目表)对于片上闪存程序存储器来说是不切实际或不可能的。如果仅存储每个其他条目,则查找表的大小可以减半,并且基于现有表数据对缺失条目的结果进行插值。这导致性能损失小,可能损失±1 LSB的精度。但是,即使这个8,388,608条目查找表也不可能存储在内部Flash中。
基于微控制器的系统中这些大数据查找表的最佳解决方案是外部闪存。这提供了一种添加多兆字节查找表的简便方法,而不会牺牲内部闪存程序存储器。这也允许系统轻松地重写查找表,而不会干扰微控制器的内部闪存。
对于高性能系统,添加外部并行闪存对于程序和数据存储器扩展都很常见。但是,这需要带有外部数据总线的微控制器。附加的地址和数据总线以及所需的控制信号可以使用微控制器的36个或更多引脚。此要求限制了可用于应用的微控制器。这些外部总线也会占用额外的印刷电路板空间,并可能增加系统的电磁干扰(EMI)。
对于大多数系统,最佳解决方案是使用外部串行数据闪存,该闪存使用串行外设接口(SPI)进行数据传输。这可能只需要微控制器上的四个引脚。
这种闪存器件的一个很好的例子是安森美半导体的LE25S161PCTXG。这是一个16兆位(Mbit)串行闪存器件,支持70兆赫兹(MHz)的SPI时钟。但是,它还支持双SPI模式,允许它以140 Mbits / sec的最高速度传输数据。内部状态寄存器用于配置器件的读,写和低功耗模式。
LE25S161PCTXG具有用于时钟,数据和片选的通常SPI信号(图1)。它还有两个额外的引脚。WP \是低电平有效写保护信号,可防止写入器件的状态寄存器。这可用于防止低优先级固件任务被未经授权重写设备。HOLD \暂停正在进行的数据传输。如果微控制器在数据传输过程中必须服务中断,这将非常有用。数据传输可以暂停,直到中断服务,然后从中断处继续。
安森美半导体LE25S161PCTXG串行闪存图
图1:安森美半导体LE25S161PCTXG串行闪存采用8引脚UDFN封装,具有超小的3 x 4毫米(mm)占位面积,并具有用于时钟,数据和片选的通常SPI信号。(图片来源:安森美半导体)
读取存储在此设备中的简单两列查找表的最简单方法是获取传感器读数,添加内存偏移量,然后读取该地址位置的内存内容。该地址处的存储器内容表示校正的传感器读数。
高性能物联网端点需要快速时钟速度,高性能处理器和灵活的SPI。对于这些应用,意法半导体提供高性能STM32L4微控制器系列。例如,微控制器STM32L496VG是运行在80兆赫和具有所述STM32L4产物家族的一个成员 ®Cortex®-M4芯具有浮点单元(FPU)。它有8 Mbits的闪存和320 KB的SRAM。它支持1.71至3.6伏的工作电压,与安森美半导体LE25S161PCTXG的工作电压1.65至1.95伏特重叠。
STM32L496VG具有用于高性能物联网端点的全系列外设,包括带日历的实时时钟(RTC),每秒3个5兆采样(MSPS)ADC,双通道数模转换器(DAC),两个控制器局域网(CAN)接口和四个I 2 C接口(图2)。它还有三个标准SPI接口和一个四SPI接口。
基于80 MHz Arm Cortex-M4的STMicroelectronics STM32L496微控制器图(点击放大)
图2:STM32L496微控制器基于带有FPU的80 MHz Arm Cortex-M4,具有完整的外设阵列,包括40 MHz四SPI接口。(图片来源:STMicroelectronics)
STM32L496G-DISCO发现板支持STM32L496VG的开发(图3)。它是物联网终端的全功能开发板,包括立体声微机电系统(MEMS)麦克风,8位摄像头连接器,8个LED,4向操纵杆和240 x 240像素彩色LCD。ADC输入,四路SPI引脚和大多数I / O可在连接器引脚上使用。
STMicroelectronics STM32L496G-DISCO发现板的图片
图3:STM32L496G-DISCO发现板是ST32L496VG硬件和固件开发的完整评估环境。(图片来源:STMicroelectronics)
STM32L496VG上的四SPI支持最大40 MHz的SPI时钟,支持标准和存储器映射的SPI模式。四SPI支持双SPI模式,允许最大80 Mbits / sec的数据传输。
意法半导体的四SPI为串行数据闪存器件提供了快速接口。在标准SPI模式下,所有操作均使用SPI寄存器执行。通过读写SPI数据寄存器来传输数据。收到数据时会产生中断。这与STM32L496VG上的三个标准SPI的工作模式相同。标准SPI模式支持单,双和四数据传输。安森美半导体LE25S161支持单SPI模式和双SPI模式,可在双SPI模式下轻松与STM32L496VG接口(图4)。
STMicroelectronics STM32L496VG的四SPI串行端口图
图4:STMicroelectronics STM32L496VG的四SPI串行端口可以在双SPI模式下与安森美半导体LE25S161连接,允许沿着SIO0和SIO1双向传输数据,采用40 MHz SCLK,速率为80 Mbits / sec。(图片来源:Digi-Key Electronics)
由于安森美半导体和意法半导体的元件选择,在这种情况下实现数据查找表变得简单,从而实现了简单的实现。四SPI还具有FIFO,可用于批量数据传输。但是,对于一次只需要访问一个内存位置的查找表,建议在不需要时禁用FIFO,甚至可能添加不必要的延迟。

具有内存映射模式的Quad-SPI

四SPI还支持存储器映射模式。这将外部串行闪存映射到微控制器的程序或数据存储空间。这使得微控制器固件可以访问外部SPI闪存,就好像它是微控制器自身存储器的一部分一样,从而导致对固件透明的四SPI操作。
如果不经常进行查找表访问,则与标准SPI模式相比,实现具有存储器映射模式的查找表可能没有除简化应用程序固件之外的任何显着优点。但是,如果应用程序是频繁的中断环境,则可能会重复暂停SPI传输以为其提供服务。如果一个四元SPI查找操作被中断另一个,则这可能会更复杂。
与标准SPI模式相比,频繁查找表访问和高中断环境的组合可以快速使存储器映射模式更有效。它简化了固件,防止了由于同时进行不同优先级的四SPI访问而导致的问题,并减少了中断冲突。
然而,实现存储器映射查找表的一个缺点是污染数据高速缓存的可能性。虽然STM32L496没有数据缓存,但一些针对高性能实时应用的微控制器却具有这种功能。访问查找表很可能导致缓存未命中。这是因为对于大多数应用程序来说,在同一个线程或子例程中需要两次访问相同的查找表位置的可能性非常低。因此,查找表数据最初不被高速缓存,并且高速缓存数据可导致从数据高速缓存中移除重要数据。虽然这只是极高性能应用程序中的一个问题,但正是这些高性能应用程序首先需要数据缓存。
查找表对数据高速缓存污染的解决方案是有限的。如果硬件允许,则可以将查找表区域标记为不可缓存。另一种解决方案是在访问查找表之前和之后禁用然后重新启用数据高速缓存。如果打开和关闭缓存的性能损失是可接受的,这可能是可以接受的。某些数据高速缓存支持体系结构特定的高速缓存控制指令,可以为防止高速缓存污 在配置数据高速缓存以找到特定应用程序的最佳方法时,对系统性能进行基准测试非常重要。
串行闪存应布置在印刷电路板上,使得迹线不超过120毫米(mm)。为避免干扰,SPI时钟信号路径应至少为印刷电路板宽度的三倍,远离其他信号。两个双向数据信号应彼此相距10毫米以避免偏斜。

结论

外部SPI闪存设备可以是在物联网端点中实现大数据查找表的有效解决方案。它易于在系统内重新编程,易于升级,并且使用最少的微控制器资源。

用户喜欢...

时间敏感网络:工业物联网的银弹?

工业物联网与以太网的作用 物联网并非严格意义上的面向消费者的现象。对于自动化行业而言,类似于物联网 - 物联网的物联网的构建模块,因为它已在某些圈子中被标记为区别于其更普遍的...


如何快速安全地将物联网应用程序连接到Google Cloud

企业级云服务(如Google Cloud)为物联网开发人员提供了从可扩展虚拟机服务到交钥匙人工智能(AI)应用程序的各种功能。这些服务的基本要求是使用特定的安全方法来建立和维护物联网设备与...


OT与IT合并成定局拥抱工业物联网时代

工业物联网被视为下一代制造系统的骨干架构,透过OT与IT的串连,让制造系统中各环节的资讯可以被完整撷取并无缝串流,从而达到智慧制造愿景。 2011年德国总理梅克尔宣布启动工业4.0后,...


如何在零信任世界中保护医疗保健物联网设备

ISTOCK 目前全球安装了超过1亿台医疗保健物联网设备,到2020年增长到1.61亿,根据Statista的数据,在短短三年内实现了17.2%的复合年增长率(CAGR)。 据埃森哲2017年健康互联网称,医疗保健管理...


用工业物联网改变经济增长

由于世界正在努力留下需求疲软和生产率低下的时期,许多企业和政府领导人正在寻求下一波技术创新来振兴经济。工业物联网(IIoT)可能成为未来十年经济增长和就业的最大推动力。但由于...


物联网模块化采用M.2外形尺寸

考虑到所涉及的协议,接口和堆栈的数量,为物联网(IoT)提供节点可能具有挑战性。通常需要使用不同的连接选项组合来部署传感器套件。有时设备的数量非常大,因此能够降低成本和尺寸...


一个经过验证的工业物联网成功计划

今天的数据很像太阳能。它的数量非常庞大-每天创造超过250万太字节- 每个人都希望找到一种方法来利用其动力来进行操作。但这是一个复杂的过程,你现在的状况仍然可行,让其他人想出来...


多协议工业物联网如何破?这两款多协议交换方案是正解

selina 在 周四, 12/21/2017 - 11:16 提交 自动化必须考虑到——- IT 系统对于开放数据访问的需求;- 工业控制系统的实时要求。所以,我们非常有必要、清楚的知道工业网络的要求(例如可靠的数...


如何发展物联网战略

selina 在 周三, 05/31/2017 - 10:39 提交 亚马逊公司前高管约翰·罗斯曼分享他的清单,可以为组织开发物联网战略提供一定的参考。 物联网(IoT)可能是互联网时代曙光之后企业所面临的最大机会...


以不一样的视角看物联网协议

selina 在 周五, 05/26/2017 - 15:54 提交 嵌入式系统接入互联网形成一个物联网系统,协议是必不可少的关键技术。传统上以解决人机对话为目标的互联网协议遇到了物物相连的物联网系统,显得像...


物联网时代 企业需要什么样的人才?

selina 在 周四, 05/25/2017 - 10:31 提交 物联网(IoT)技术的大爆发时代即将到来,世界将进入真正的万物互联。据记者 了解,某科技公司高管明确表示,现在与客户所谈的项目全部是关于物联网。可...


如何设计杀手级的物联网产品或服务?

selina 在 周四, 05/11/2017 - 11:45 提交 我们都渴望创建人们想要购买和爱使用的杀手级产品或服务。实现这一梦想的关键在于要确保产品能够以一种吸引他们的方式来解决人们遇到的一个实际问题...


ADI这些器件让传感器充满“智能”,挑战物联网应用so easy

selina 在 周四, 05/04/2017 - 16:36 提交 谈不完的物联网在人类的日常生活中越来越重要,而随着人类的依赖我们将更多的数据交给云端处理,这样势必会对物联网应用造成“压”迫从而引起更多挑...


如何突破物联网应用挑战?从一个方案平台两个应用案例看端倪

selina 在 周四, 04/27/2017 - 09:45 提交 对于物联网来说,把所有数据都扔给云端处理,许多挑战便会接踵而至:带宽挑战——要把庞杂的原始数据上传到云端会占用不少带宽;处理性能瓶颈——海...


掌握了这三个特征,你就明白了物联网时代的传感器

selina 在 周三, 01/04/2017 - 11:50 提交 物联网时代的大背景下,传感器技术及传感器产业的重要度日趋凸显。特殊情况特殊分析,作为物联网感知层中的重要组成部分,物联网时代的传感器必定有...


采用极为弹性的系统架构来进行应用设计开发工业物联网

工业物联网(IIoT)应用范围遍及各种垂直产业,对产品需求各有不同,本质上属于高度客制化的应用。为了加快产品开发时程,业界正积极发展各种弹性化、标准化的感测器整合及联网解决方案,...