设想一个总线可以使用stm32适配器

时间:2017-03-22 15:45:38

标签: qt usb can-bus

所以这就是问题,我想设想一个通用的BUS CAN适配器使用stm32和桌面接口使用Qt。 仍然处于构思阶段,我想知道如何将来自stm的帧处理到PC GUI,天气1)作为USB帧;在这种情况下,如何将它们封装和解封装成CAN帧,并且有一个Qt库来促进这项工作,或者2)作为一个CAN帧,在这种情况下,我发现QCanBusDevice和QCanBusFrame类似乎是如此有用但在此例如,在创建对象期间必须指定CAN插件。所以我该怎么做?

1 个答案:

答案 0 :(得分:0)

你所做的并不重要,因为你正在设计一个搭载USB的自定义协议。在这里,您可以选择实现USB通信类设备,这样您就不需要自定义驱动程序也不需要libusb - 特别是考虑到Unix上libusb的性能非常糟糕。

数据可供用户空间使用后,您可以使用QSerialPort访问该数据。您必须以某种方式构建CAN帧,因为串行端口是面向流的传输,并且不知道任何数据包。最简单的是,您可以使用RFC 1662 HDLC octet-stuffed framing封装帧。您可以使用其中一个字段以相同的方式将命令封装到您的设备及其响应中,例如: ADDRESS字段,用于复用CAN数据和命令/响应。

如果您现在希望将此设备公开给Qt串行总线框架,则必须write a custom CAN plugin才能访问它。

要了解这是多少代码:对于概念验证,Qt代码和微控制器代码的总数应该远低于1500行。一个最小的演示可能是&lt; 400行的Qt代码和<400行的STM32代码。