电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于rfid的高并发数据处理模式研究

6页
  • 卖家[上传人]:小**
  • 文档编号:31362607
  • 上传时间:2018-02-07
  • 文档格式:DOC
  • 文档大小:194KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、基于 RFID 的高并发数据处理模式研究 刘中原 戴雯惠 苏州经贸职业技术学院机信学院 摘 要: 目前基于 RFID 的技术广泛应用于工程中的各种场合, 大部分的 RFID 应用中需要访问云数据, 相对于 RFID 数据的高速输出, 网络访问的速度则要慢很多, 采用常规的线性处理方式, 程序会因为高速并发的网络调用处理不及会很快卡死, 本文研究了一种基于定时器和队列的数据处理模式, 将高速数据经过排队后再进行时时的并发处理, 获取了较好的稳定性和较高的效率。关键词: RFID; 网络访问; 队列; 并发处理; 基金:院级项目基于身份证和二维码的景区云检票闸机的研发和应用 (编号:KY-ZR1611) RFID 射频识别是一种非接触式的自动识别技术, 它通过射频信号自动识别目标对象并获取相关数据, 识别工作无须人工干预, 可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个标签, 操作快捷方便。在一个典型的 RFID 应用场景中, 程序接收到 RFID 的数据输出以后, 需要将数据进行网络比对并根据返回结果进一步处理, RFID 设备通过串口连接接入主机, 数据输出一般都

      2、是毫秒级别的, 而网络服务在云端, 两者的速度对比就像高速公路中的10 车道的瞬间变成单车道, 如果任由司机自由通行, 那么在这个汇聚点肯定是要堵车的, 网络访问至少受到 3 个因素的限制:客户端的网络状况, 干线的网络拥堵状况和服务器端的带宽和处理能力, 在有诸多不确定性因素的前提下, 网络访问历来在任何系统中都是瓶颈, 如果处理不好高速输出的 RFID 数据和网络访问的瓶颈, 程序会很快耗尽内存和 CPU 的资源而卡死, 如果是在性能较高的PC 上, 一般程序会开始, 而如果是在性能较低的嵌入式应用中, 整个嵌入式系统则会瘫痪, 因此, 需要使用一种有效的数据处理方式来处理这种场景的应用, 本文以性能较低的嵌入式系统作为研究对象, 研究在性能有限的情况下如果更稳定和高效地处理并发数据和网路调用之间的关系。本文提出了一种基于定时器和队列的处理模型, 定时器的实质是线程, 主要用于处理网路请求, RFID 设备传输过来的高速数据首先都进入队列进行排队, 由定时器对队列里面的数据进行线性处理, 两者不直接产生调用关系, 这样便有效缓冲了 RFID 的高并发网络调用所导致的机器性能耗尽问题

      3、, 经过队列的数据调用变得有条不紊, 同时在网络调用中 1 个时间只有一个网络调用存在, 以有序方式进行的调用极大地提高了网路调用的效率和速度, 即是欲速则不达的一种解决方案, 整个数据处理模型如图 1 所示。图 1 队列定时器数据处理模型 下载原图RFID 设备通过串口连接主机, 主机可以是性能较高的工控机, 亦可是性能有限的嵌入式单片机或者 ARM, 但不管是哪种设备, 系统以满足最苛刻环境为实现目标, 即使放到最低性能的处理单元中, 处理速度只能是与处理单元的性能有关, 不能出现死机的情况, 按照这一标准, 允许硬件以最快的速度上传数据, 主机在串口数据的处理上采用每次收到数据后到读取到特定缓冲区中的做法, 且在一定时间内缓冲区不清空, 这样可以有效保证数据的连贯性和完整性, 不至于使一帧数据拆成 2 部分, 但随着 RFID 读取数据的增加, 缓冲区存满时需要采用一定的策略进行清空, 但为了不妨碍数据的连贯和有效性, 需要在串口数据暂停输出时清空缓冲区, 为了能够捕获有效的清空时机, 串口在输出数据时, 处理单元需要设置加锁, 清空只能在非加锁的时候进行, 同时为了防止情况的时

      4、候串口有数据输出到缓冲区, 设置清空锁, 如果串口在数据输出时遇到清空锁即做一定的延时, 这个延时的时间在串口接收数据来说是可以接收的, 毕竟对于任何的系统都只是执行一句代码的时间。定时器是线程的一种, 以并发方式和主线程并行运行, 除单片机外, 凡是具有任何嵌入式操作系统的处理单元都支持线程的运行, 比如 Linux, Win CE, Android, 当然性能更高的工控系列更是不在话下, 系统在设计中还是遵循满足最低性能的处理单元为原则, 这样设计出的算法便具有最广泛的支持度, 本文以 ARM 为例进行性能设计, 在单核的 ARM 处理芯片中, 线程中的数据处理逻辑在进行最快速数据处理中, 切忌使 CPU 全负荷运转, 比如常见 while 循环, 如果在 while 循环中不做任何停顿, 等于该线程独占整个性能开销, 会导致别的线程分不到 CPU 的时间片, 特别是当有 RFID 数据需要时刻进行处理时, 这种做法更不可取, 经过实践证明, 较合理的做法是在线程循环中稍加停顿, 给其他的线程留下被 CPU 的处理时间, 即使是 100ms 的停顿, 别的线程在 CPU 的时间片轮

      5、询中便能得到处理机会, 定时器的处理逻辑设计原则如图 2 所示。图 2 定时器处理策略示意图 下载原图网络请求模式的设计以单一线程中循环进行多次网络请求和多个线程并发进行多个网络请求的性能对照结果而设定, 设计的原则同样是参照性能有限的嵌入式控制板作为运行环境, 在性能有限的 ARM 架构的处理器中, 经过实际的测试, 多个线程并发的网络请求由于每个线程都在争夺网络接口的使用, 致使线程的数量多于 10 个的时候出现假死的概率会变得很大, 从访问的时间上来看, 10个线程并发的网络访问在不出现卡顿的情况下, 所用的时长会低于在 1 个循环中的 10 次网络访问, 但随着并发量的提升, 多线程并发的网络请求逐步表现为网络请求的拥堵而变得性能显著下降, 而单循环的网络请求则表现稳定, 这个显而易见, 单循环的网络请求只要做好资源的回收利用, 运行可以一直持续下去, 而多线程并发的网路请求势必会随着线程并发数量的增加而最终达到性能极限, 相对于单循环的请求来说, 这样的请求模式不稳定而且也是不可持续的, 即使换到性能更高的平台, 其并发的数量会随着硬件性能的提升而有数增多, 但理论上来讲其仍

      6、存在一个上限, 经过对比, 单循环的网络请求是更加适合全平台的一种处理方法。按照上述的 RFID 物理数据处理方法、定时器的并发处理模式和网络请求的设计思路, 构建实际场景应用基于 RFID 的实验室物品防盗系统, 通过将实验室的在库物品粘贴抗金属 RFID 标签, 在实验室门口和大楼门口部署若干 RFID 天线和读卡器, 中控主机放置在门卫监控室, 当 RFID 天线感应到有实验室的登记物品从实验室带出时则自动报警并在监控电脑屏幕显示报警记录, 整个系统的部署示意图如图 3 所示。图 3 基于 RFID 的物品防盗部署示意图 下载原图本系统采用读卡器和天线一体机, 当一体机感应到 RFID 标签时, 系统会首先判断是否是实验室的登记物品, 如果是登记物品则触发报警器报警, 并在监控屏幕提示感应到物品的明细以帮助管理人员进行情况判定和识别, 一体机和监控主机由于部署距离较远通过 485 线进行连接, 监控主机不定时从云端下载已登记的实验室物品明细并在收到报警信号时提交报警数据和报警明细到云服务器进行存储, 在实际的测试场景中, 同时 20 个 RFID 标签被带离实验室可做到 90%的识别率, 通过增加天线的部署数量可以提高识别率, 系统运行稳定, 20 个标签的识别率可以满足日常使用需求, 证明该数据处理模式是有效的。参考文献1米志强.射频识别 (RFID) 技术与应用M.北京:电子工业出版社, 2015. 2刘同娟.RFID 与 EPC 技术M.北京:机械工业出版社, 2016. 3Christian Nagel.C#高级编程M.清华大学出版社, 2017. 4郭文夷.C#.NET 框架高级编程技术案例教程M.北京, 清华大学出版社, 2014. 5兰布里奇.嵌入式 ARM 开发实战M.北京, 清华大学出版社, 2015.

      《基于rfid的高并发数据处理模式研究》由会员小**分享,可在线阅读,更多相关《基于rfid的高并发数据处理模式研究》请在金锄头文库上搜索。

      点击阅读更多内容
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.