我正尝试通过Usb2Can之类的产品直接挂接到汽车的CAN总线上。这基本上是假设直接连接到CanHigh和CanLow引脚(OBD2端口的引脚6和#14),并处理CAN总线消息,例如具有11位ID和8字节数据。我打算为此使用SocketCan和can-utils。
我不知道的是-如何在该CAN总线上“说出” OBD2协议。即我想嗅/听/发送“原始” CAN消息,但我也想保留例如读取诊断代码(Pxxxx),清除检查灯等,就像Elm327适配器一样。那些售价不到20美元的适配器提供串行通信,但我认为它们只是抽象化了低级CAN消息。
维基百科文章提到OBD2通信协议中有10种竞争模式。但是我找不到有关如何仅使用CAN总线和SocketCan实现所有细节的更多细节。也许为此已经有一些库了?
请向我指出方向,但不要指向那些具有隐秘语言且需要数周时间才能理解的“官方标准文档”。
简单:如何连接到CAN总线(通常为OBD2端口)并同时具有BOTH功能:发送/接收原始CAN消息,并“说”类似于Elm327的高级OBD2通信协议提供usb-to-obd2电缆。