While waiting for experts to respond I did some research on this interesting topics ...
On 06/06/2015 01:19 PM, Philipp Burch wrote: > Hi everyone, > > when we're talking about buses and interfaces, I'd like to bring up > another topic concerning me recently: We're building some kind of PLC > and motion controller mainly for internal uses, which is built around > FPGAs. Our FPGA configs are crafted specifically for what the devices > need to do, so there is no softcore or other microcontroller around. We > now have a simple serial interface connecting multiple boards using > differential pairs (RS-485-like) for RX and TX, transmitting frames of > some 64 bits each. This works, but is obviously completely proprietary. > Nothing wrong with being proprietary if nothing else out there suits your needs. However, when it comes to communications between logical devices you have to pay the price. Either you need to increase complexity for more reliable connections or use simpler protocols for lower HW costs. Ethernet interface chips are low cost these days, many hobby SBCs come with it. Benefits in using them is in their power to handle the TCP/IP connection without more than dumping bytes in and out of it's registers something most microcontrollers can easily do these days. > Hence the question: Are there standard interfaces (call them buses if > you like, I don't mind) of similar complexity with open specifications > around? I personally like the idea of the summation frame method > (Summenrahmenverfahren in German) as is used by EtherCAT, but this > interface is overkill for us and also not "open" unless you are some > kind of "member". I found Interbus which seems to fit quite ideally, > but, again, is not as open as I'd like it to be and it also looks to be > kind of obsolete. > > Rough requirements would be: > - Usable for daisy-chaining (no common bus) Wouldn't failure in any single link bring everything down? Fibre channel Arbitrated loop (FC-AL) and Tokenring work fall in that category. Each host has to pass the message along the line so there is a delay between the first and last host. > - Data rate somewhere in the range 1Mbps .. 10Mbps > - Serial with exactly one RX and one TX pair in each link What's the max distance between the hosts? What are electrical characteristics for connections between the hosts? There are other considerations that need to be looked at: how many units are connected in the chain? How do you implement the communication part? Microprocessor? ASIC? Do you need isolation between them? CAT-6 cabling would likely fit the job as far as physical connections and relative distance go. Low cost, easy to connect to hubs or switches. Advantage of ethernet is in possibility to wrap any protocol into TCP/IP and route it elsewhere. Not deterministic of course but possibly good enough for remote troubleshooting or monitoring. On the other hand, nobody prevents you to write your own version of network protocol. UDP came to mind first but because it's not reliable I did additional research and found Reliable User Datagram Protocol https://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol It's not a formal standard or widely used but the description is available https://tools.ietf.org/html/draft-ietf-sigtran-reliable-udp-00 It seems very simple to me so it would not be too hard to write a driver I think. > - Suitable for deterministic cyclic transfers with some tens of bytes each Not sure how you can do that without a dedicated clock line. > Any ideas, hints, comments? > > Regards, > Philipp If nothing else, just searching around and reading responses from others I learned a lot. -- Rafael Where's my floppy disk? ------------------------------------------------------------------------------ _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users