知乎上看到rs官方账号的点赞和评论,备受鼓舞,又有了写东西的动力。平时一直在使用rs家的信号源、频谱仪等,确实功能很强大。
进入正题:
某年某月某日...
数据记录的必要性
在程序基本功能已经实现的情况下,项目转入集中测试与排故阶段时,这个时候一般来说就会测试出各种各样的问题。作为一个完整的通信系统或通信设备,往往集成了多个模块软件,遇到问题的时候,如果仅从现象出发,往往比较难定位。
然后呢,各个软件开始抓包,抓取问题数据进行分析,如果是fpga的话可能需要重新抓取数据,而编译时间又较慢,一次抓取分析不出来,可能又要再抓取新的数据,再去编译,如此下来,一天时间可能就过去了,如果问题又是偶发出现的,则复现问题又要耗费大量的时间。
这个时候,数据记录就很有必要性了,在各个软件中,考虑各自软件想要记录的信息,加入数据记录逻辑,并加入数据记录相应的接口,通过相应的线路传输至数据记录硬件模块,存入存储器。
在设备运行过程中,记录下各个时间的状态信息,最终通过解析数据记录,回溯出问题时候的状态,以此分析问题原因,省去了抓取数据、编译程序、挂仿真器等步骤,更方便高效。
基于ram的数据记录
从上述方式可以看出,完备的数据记录系统,需要多个软件协同,设计好数据记录的内容和格式,设计好数据传输路径,有数据记录硬件模块,有数据记录解析软件。
这里我想说的一种情况,也是我之前实际遇到的,也就是在项目比较着急的情况下,来不及规划数据记录系统时,该怎么办呢?
当时想到一种基于ram的数据记录方式,具体操作就是,例化一个深度较大的ram,将想要记录的信息作为ram的数据输入,可以拼接不同的信息变量输入,也可以单独输入。
ram的写使能用事件触发,或者周期触发,比如每次发送的时候记录一次即写一次,或者每隔100ms记录一次即写一次。
那么怎么把数据记录内容取出来呢?可以同时加一个vio和ila,ila同时抓取vio的输出和ram的输出,通过vio输出信号的上升沿触发,并在vio输出信号变高时从ram中读出数据,触发后导出数据分析即可。
举一反三
其实不仅数据记录,在某些难以一次性抓取数据的场景下,都可以用这个方法,将想要抓取的数据,在特定条件下写入ram,不写其他无用的数据,最终触发后读出即可。
tips
汽车产业军备竞赛下半程 丰田已做好准备
几个移动电源设计方案
RF元件和系统的测试
强强联手,紫光展锐与利尔达合力突破5G新应用
好用性价比高的真无线蓝牙耳机,5.0以上就选这几款
一种数据记录方式
研究人员开发出电子断开装置,能够隔离车辆电气系统中的故障
stm8单片机的SWIM模式引脚复用
那些年中国互联网顶流的BAT(百度、阿里、腾讯)所踩的坑
阿里云游戏——用云原生和低代码打造边缘计算的元宇宙
英飞凌马来西亚建新厂,推进实施“工业4.0”
上海一特斯拉刹车失控撞墙 太原5G室内分布式Massive MIMO试点完成
虚拟仿真港珠澳大桥,大湾区综合管理信息系统
小米6评测:称7年工艺探索之作,小米6手感到底怎么样?
索尼推出新品 有望在CES上亮相
国轩高科“三连签”!
RS-422/RS-485 与 RS-232相比有哪些优势?
电力监控系统在园区项目的应用
便携式高性能的大疆御2飞行器
区块链能为供应链带来哪些潜在的利益