| Electronics > Beginners |
| What's this protocol? |
| (1/2) > >> |
| viperidae:
I'm playing around with the radio/navigation/hvac in my car and probed the communication bus between the radio unit and the HVAC, which is the only interface for some of the controls. The two wires are labelled I-B-F and I-B-DATA on the radio PCB. I've attached a capture from sigrok PulseView, with a UART decoder set to 19200baud, even parity and 1 stop bit. It's the only combination that didn't result in parity or framing errors. There are at least 3 devices on this data bus, all of them connect via 4 pins of various microcontrollers. Each wire is connected via a 10k resistor to one pin and a diode and 100R resistor to another pin. Both lines are usually at ~5V and get pulled low by I assume the diode/resistor pins. It looks like when a device wants to communicate, it pulls I-B-F down low, then sends UART data on I-B-DATA, followed by letting I-B-F float high again. Has anyone seen this before? Does it have a name? Is it as simple as UART via open-collector and pull ups? For reference this is the navigation/cd changer system in a 2005 Japanese import Honda Accord. I think the HVAC module is the same in all the dual-zone A/C Hondas of the era. It has setting resistors on the PCB for various options. |
| MavMitchell:
I would say this is a manufacturer proprietary protocol. Generally the only commonly used automotive bus is based on (bosch I think)CAN at much higher speeds than you are seeing.. |
| Doctorandus_P:
Looks like some proprietary protocol over defacto UsARTs, with 10 or so stop bits. These could be intentional or quasi random with a slow uC. LIN is also used in car's (and works with (almost) standard Uarts, but it has a specific header and a "break" which is about 11 bit's long. the 10k resistor goes to the RxD input. The low value transistor and diode are are for output protection and diode or-ing / anding (depending on the direction). You can have a bit more certainty by zooming in more and looking if the flanks of the individual bits lign up properly with the decoded data. The next step is to figure out what those bits actually mean. I'm curious: What kind of hardware are you using with Pulseview/Sigrok, and how well does it work? I only have some Cypress CY7C68013 boxes and these only do digital, your first yellow trace has noise and looks very analog :) |
| viperidae:
I did zoom in and the bits almost perfectly align with 19200 baud The processors aren't slow, at least one is a 16bit fujitsu one, where the lines do go to UART pins. The diode is arranged so the Tx pins can only pull the line low. The limitation of my test gear right now is cheap multimeters, a cheap logic analyzer and a Hantek 6022, which is what I used with sigrok. I used the hantek software to figure out it looked like serial data, so downloaded sigrok for its protocol decoding. My car seems to be full of different protocols... CAN for the main ECU bus GM-LAN "single wire can" for the body network I think the OBDII connector has K-line IEBus for the audio/navigation system With the same module used in quite a few models I was hoping someone recognised it. This proprietary one for the HVAC. |
| Doctorandus_P:
OBD II connector seems to be able to have both CAN, K-line and more: https://en.wikipedia.org/wiki/On-board_diagnostics In Pulseview you can stack decoders on top of each other. If Pulseview knows your protocol you might get lucky, if not, it might be somewhere on the 'net :-// |
| Navigation |
| Message Index |
| Next page |