利用FreeMASTER控制实时数据——转帖

2020-02-20 20:38发布

我在之前写过一篇使用freemaster完成飞思卡尔DSC调试的博客,最近有朋友提了一些相关问题,顺便写了这个博客,希望对大家有帮助。飞思卡尔freemaster主页:http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=FREEMASTER,关于该工具的详细信息以及使用教程都可以在这里找到。第一次接触freemaster是迫于飞思卡尔的codewarrior for dsc调试工具不怎么给力,无法在线实时观测变量,所幸有这么一个调试工具,总算把问题解决了,用过几次之后,逐渐发现了他的好处,现在已是爱不释手。FreeMASTER对于各位来说可能不是非常熟悉,但是,的确它被列入飞思卡尔开发工具已经很多年了。可是这么多年来飞思卡尔并未对其做大量的宣传,只是在飞思卡尔的一些参考设计中能看到他的身影,不知道freescale是作何考虑。FreeMASTER是一种实时调试监控器。下面详细说明它可以解决的问题。你可以编写实时系统软件,例如运行电器的电机、汽车发动机控制系统、安全气囊中的传感器、飞机控制界面或任何含有反馈回路的系统(飞思卡尔在这些方面都用freemaster做过许多例子,可以到freescale网站上下载例程研究)。现在,对动态系统进行实时调试。有的时候你需要停止系统运行研究它的状态。不仅需要观察系统的动态运行,还需要进行一些干预,了解工作过程中为什么出错!对于常规调试器来说这是做不到的,FreeMASTER恰恰可以解决这个问题,that‘s right。采用FreeMASTER,你可以建立一个调试对象的通信通道;可以按照自己确定的采样率来实时监测感兴趣的变量;可以实时修改这些变量,即将数据送入调试对象的管道中,动态修改系统的行为。FreeMASTER采用示波器显示本地数据。可以显示多种变量,示波器含有所需的各种控制选项。图1所示FreeMASTER跟踪两个简单变量。一个是上升到最大,然后下降至零的短值。另一个采用表中读取的数据生成正弦波。我将步进增量改变到一半,为的是证明可以将数值送入调试对象。图 1: FreeMASTER跟踪显示实时变量值。
freemaster的扩展性也是非常好的,显示区可通过HTML任意扩展。一旦掌握了FreeMASTER,就可以添加各种第三方基于ActiveX的仪器“widget”,将其嵌入显示区中,可以按照示波器工作方式编写变量,读取和/或改变数值。从而根据测试或演示的系统创建或简洁或复杂的仪表板。这种开放式设计使FreeMASTER成为极为灵活且强大的工具。图2示例是飞思卡尔官方例程:发动机发生爆震以及采用基于Power Architecture技术的Qorivva MCU进行反馈控制的截屏。图 2: FreeMASTER工具的数据可视区可任意扩展。不仅仅是这些,你可以嵌入幻灯片、演示文本、数据表或产品或问题的整包信息,不信你就试试。freeMASTER的塔式系统汽车传感器项目就是一个实际的例子。数据表、电路图和预制的所有传感器全部内置在一个FreeMASTER项目。FreeMASTER还配有数据跟踪功能,称作Recorder。Recorder采用目标缓冲器保存数据读数,然后将缓冲器下载到数据显示器。它可采用比示波器更高、更可靠的采样率(约10微秒分辨率)捕获数据。显然,这对应用的实时性可能会产生一定影响,但数据捕获对于分析的价值是无法估量的。您可以确定需要捕获的变量(最大八个),规定目标缓冲器的尺寸。
我们还可以规定启动采样的触发事件。采用示波器进行“实时”分析可看到发生的情况。相对于数据可视化的详细程度,这实际上是一个比较粗略的视图。您不能以精细的粒度缩小放大数据进行分析。采样率也不能恰好一致。采样间隔过程中会发生很多情况。例如,如果以高步进增量“实时”提取同一正弦波数据,结果非常难看。图3中很难看出完整的正弦波图形,取决于数据变化速度,这种显示结果显然是不够的。图 3: 示波器实时有限。记录器分辨率相当精细,以微秒为单位。采用同样高步进增量跟踪数据如图4所示。从图中可以看出,以微秒为单位的分辨率正弦波形相当平滑。图 4: 数据记录器以精细时间分辨率捕获数据。即使如此,凡事都是相对的。如图5所示,放大数据。以微秒分辨率观察数据时,可以看到,我们从数值表中提取数据时产生的递增变化。图 5: FreeMASTER缩放功能概念演示。所有这些证明,可以采用FreeMASTER按照应用所需的详细程度研究数据。还可以将数据捕获到文本文件中,供今后采用其他工具进行分析。设置数据跟踪一般需要配置FreeMASTER中的记录器,规定需要跟踪的变量。如果想改变默认的缓冲器尺寸,可以修改标头文件,非常简单。平台支持和连接实时数据监控不可能不在一定程度上影响性价比。读取或保存数据,然后将其推送到管道中需要一个过程。但FreeMASTER具有多种通信方法,其中有些侵扰非常低,如OSBDM。其他工具则需要目标驱动器。下表汇总了平台支持和连接协议。BDM连接对运行中软件的侵扰几乎为零。我们前面谈过的数据跟踪需要目标驱动器。表 1: FreeMASTER使用环境和方法。硬件在环仿真改变数据输出目标也许是这种工具最令人兴奋的功能。与数据可视化引擎的设计一样,数据流本身不限于FreeMASTER。数据可通过ActiveX接口供任何使用ActiveX服务的应用访问,如MATLAB®、Excel、Internet Explorer、PERL、VBScript、Jscript等。至于您如何使用完全取决于您的想象。FreeMASTER数据输入MATLAB或Simulink是两个高水平用例。您可以输入实时、实际环境下的数据,而不是理论数据进行复杂模拟,观察模型的表现。另外,也可以采用相同的输入,同时在处理器和模型中运行,采用FreeMASTER输出处理器的结果。对比两个系统的结果,观察模型在实际环境下的运行情况,确定模型是否有效,如果有效,条件是什么。FreeMASTER支持在高度复杂的动态和非线性系统环境下测试模型。这种方法的确很爽。如果深入了解,我想您一定会对freemaster感到着迷。不过,这种灵巧的工具还有更神奇之处。FreeMASTER可与CodeWarrior工具轻松集成。由于一般需要目标驱动器,因此往往需要添加源码并将其整合到项目中。如前所述,这样可以提供灵活性,在改变缓冲器尺寸等处理时很容易。配置FreeMASTER支持可视化显示时,可以将信息保存到FreeMASTER项目文件中。利用拖放功能将FreeMASTER项目文件加入相关的CodeWarrior项目中。在CodeWarrior工具内双击,即可启动FreeMASTER。就这么简单,不需要任何其他处理。这个工具的确实现了我们的支持理念,您不需要使用特定的开发环境。FreeMASTER是一个单独的应用。您可以在此处下载这个工具以及所需的通信驱动器软件。您可以将它们部署在其他开发环境下,如IAR工具。说了这么多,可能有的朋友不相信或者心理有疑惑,一句话,用用试试就知道了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。