模拟硬件设备

时间:2012-10-10 11:44:42

标签: c# c++ .net emulation

我被分配了一个任务,我将模仿我公司的一个硬件设备。

我将使用非托管C ++编写的设备固件不一定是所有代码,但通信协议之类的东西在设备中完美运行,我想重用该代码。

我主要在C#.NET 4中编写软件。

我很难破解这个坚果。至少,我想知道从哪里开始这项任务。

我非常了解C#,而且我也使用过C ++。

固件运行在设备的芯片上,该芯片具有相当复杂的操作系统。没有显示一些代码就很难解释,但我不能这样做。

无论如何,我很乐意看到一些意见。此外,我不确定是否应该写一个simulator or an emulator

硬件有不同的接口,包括RS-232,GSM数据包和蓝牙。 最重要的是使RS-232和GSM工作。

硬件代码写得很好,分层和结构化,所以我想可以用我自己的代码替换通信API。

TLDN :我要复制/模拟/模拟硬件设备的行为,但它似乎是一个非常大的项目,我不知道从哪里开始。非常感谢输入。谢谢。

3 个答案:

答案 0 :(得分:3)

我的想法基本上是分离和提取设备的逻辑层,并考虑在仿真环境中将它们编译为可执行文件。你需要做更高和更低级别的硬件部分和通信部分。通信部分可能很简单,只需实现界面并让模拟器用户与模拟设备进行交互。对于硬件设备仿真部分,如果它们是通用的,您可以考虑使用现有的项目模型,如QEMU设备。

简而言之,更重要的工作是了解公司特定逻辑和常见设备逻辑是什么,然后您就知道在哪里可以找到要重用的代码。之后,将它们粘在一起。

答案 1 :(得分:2)

这将完全针对项目。基本思想是找到在每个设备上绘制线条的正确位置。您不希望实际模拟实际的RS-232位,然后必须测量它们以获取数据。通常,对于您必须编码的任何内容,请尽可能使用实际代码。但是任何只需要撤消的代码,都不要使用。如果可能的话,在干净的接口处绘制线,然后只需在线的“向下”侧重新实现代码(或硬件)。

答案 2 :(得分:0)

  

固件运行在设备的芯片上,该芯片相当复杂   操作系统。没有展示一些,有点难以解释   代码,但我做不到。

您知道该设备的工作原理。您知道给定输入的输出是什么。您需要确定需要复制的功能。

  

硬件具有不同的接口,包括RS-232,GSM数据   数据包和蓝牙。最重要的是制作RS-232和   GSM工作。

首先创建一个可以通过RS-232和GSM协议进行通信的应用程序。完成此操作后,您可以使用已编写的库函数来获得预期的输出。

  

无论如何,我很乐意看到一些意见。我也不确定   我应该写一个模拟器或模拟器。

你需要确定你的老板究竟想要什么。我们无法帮助您根据您为我们概述的模糊要求做出此决定。