How do I listen to a CFLink bus for data? The said bus was implemented on top of RS485. I've tried hooking it up using an RS485 to serial adapter and RealTerm but I've got nothing returned even though the bus was having some activity.
1 Answer
You would just do that with a logic analyzer that you set to differential input to listen to both lines – or you'd use a high-input-impedance differential receiver IC (i.e. a comparator, essentially) to first convert to single-endedness.
That will give you the raw bits of the transmission. I don't know CFLink at all, but for all I can quickly google, it's a stupidly simple serial protocol with fixed fields, so you can probably just decode it as is.
Cheapest way: get a 5€ Cypress FX2 eval board, get Sigrok and the matching FX2lafw firmware, connect it up.
Personal remark: CFLink suffers heavily from "one more standard to end all standards" syndrome:
And, also personally, it's a bad architecture. While RS-485 is a fine choice for serial communications, the whole website doesn't mention how they are planning to implement arbitration – which very quickly becomes a very complex problem in both the ring and the star architectures. People that invented Token-Ring networks in the 1960's were very aware of that problem – and yet, 50 years later, CFLink acts as if it's not a problem.
All the con's of Ethernet that the wiki cites are either
- fabricated (Ethernet is far more flexible in cabling topologies, and the fact that you need a hub to have a multi-drop 10 or 100 Mbit ethernet link isn't different from the fact that you need to screw in multiple cables for "chained" CFLink devices) or
- wrong ("Ethernet needs special cable, but CFLink will run on anything with 5 wires" <- yeah, well, Ethernet will run on anything with 4 wires; point being that the speed you want to exchange data with sets requirements for cable bandwidth and eventually shielding, regardless of the standard) or
- really wrong (the cost argument – as if integrated ethernet equipment wouldn't cost less than small-run system-specific things) or
- very misleading ("CFLink is very reliable" <- I believe it is, but believe me, Ethernet in practice is more reliable, because a) does it, unlike CFLink come with error-detection and -correcting facilities (which is something, again, from the 1060s, dear CFLink), and b) is the hardware produced in the billions and has been optimized for decades).
-
\$\begingroup\$ Thanks for the enlightening reply, Marcus! Looks like I can't just use USB-to-RS485 adapter to listen to it. I've got Saleae Logic analyzer with me so I'll figure out how to do just that! \$\endgroup\$– ScottCommented May 25, 2017 at 9:18
-
\$\begingroup\$ The Saleae logic thingies work with sigrok, too, pretty well: Pulseview is your friend. But: if you've got an original Salaea analyzer (not a clone), you can use the Salaea software with it, which is pretty ok, too! \$\endgroup\$ Commented May 25, 2017 at 9:28
-
\$\begingroup\$ Fantastic! I gotta try with my Saleae and see if I can make sense of it. And yes, it's an original one. \$\endgroup\$– ScottCommented May 25, 2017 at 9:34