Realtime Propeller Network over Ethernet or "the propeller between propellers"
In the past I used the two obvious possibilities for ethernet communication from the propeller object exchange library with the propeller. There was first the driver from Harrison Pham for the microchip enc28j60 and then the Wiznet W5100 driver written by Timothy D. Swieter. I used modules from sparkfun electronics for both in combination with the propeller boards and then the spinneret web server from parallax. Both chips are well documented by microchip and wiznet and are used in many microcontroller projects (aside the propeller).
My wish is not to give up the propeller because it is the best controller I ever used for ad hoc experiments in measurement and process control (a few years back it was the SX!). For me it is the hell to deal with interrupts and inter task communication in parallel processing. The propeller lets me do 8 processes in parallel and the "propeller inside the propeller" synchronizes them for me without headache and it can go fast with easy to integrate assembly code and using the counters.
But what I need is the possibility to a better time controlling of the Ethernet communication. It must not fulfill the EtherCAT specifications but the idea of an Ethernet controller that processes Ethernet frames "on the fly" with an accurate time synchronization would be the right thing.
So in my words I would need an Ethernet frontend for the propeller that could realize the "propeller between propeller chips". The communication protocol could be compatible to EtherCAT or not. This would be a propeller network over Ethernet (based on Ethernet frame only or UDP/IP datagram) that has the capabilities to accurate synchronize the global rams of several propeller chips in the way the cogs inside the propeller are synchronized by the Hub. The ram above the Hub ram could be that of the Ethernet chip?
Must it be an EtherCAT-ASIC (like the Beckhoff ET1100)? Or are there "normal" Ethernet controller chips that can do the same work slower but fast enough for the propeller? And are they documented and available (perhaps on a breakout board)?
My wish is not to give up the propeller because it is the best controller I ever used for ad hoc experiments in measurement and process control (a few years back it was the SX!). For me it is the hell to deal with interrupts and inter task communication in parallel processing. The propeller lets me do 8 processes in parallel and the "propeller inside the propeller" synchronizes them for me without headache and it can go fast with easy to integrate assembly code and using the counters.
But what I need is the possibility to a better time controlling of the Ethernet communication. It must not fulfill the EtherCAT specifications but the idea of an Ethernet controller that processes Ethernet frames "on the fly" with an accurate time synchronization would be the right thing.
So in my words I would need an Ethernet frontend for the propeller that could realize the "propeller between propeller chips". The communication protocol could be compatible to EtherCAT or not. This would be a propeller network over Ethernet (based on Ethernet frame only or UDP/IP datagram) that has the capabilities to accurate synchronize the global rams of several propeller chips in the way the cogs inside the propeller are synchronized by the Hub. The ram above the Hub ram could be that of the Ethernet chip?
Must it be an EtherCAT-ASIC (like the Beckhoff ET1100)? Or are there "normal" Ethernet controller chips that can do the same work slower but fast enough for the propeller? And are they documented and available (perhaps on a breakout board)?
Comments
Does the sync' _have_ to be over Ethernet?
http://upload.wikimedia.org/wikipedia/commons/1/1f/EthercatOperatingPrinciple.svg
There are no collisions and the ethernet frame would not be received and sent in the classic manner. The frame passes the hardware without a significant delay time.
I beleive this is going to be a scratch build for the Propeller since you require control over the ethernet packet. Give these guys a shot too Netburner .
Good luck with your project.
If I understand right you have some measuring devices that should collect data in a synchronised way.
Are these devices connected to a standard netweork with a lot of other PCs? or do these devices build their own network with nothing else but these measuring-devices
inside the network?
If yes how about using RS485 connected through standard RJ45 jacks and standard twisted pair cables and have a master-propeller collecting all the data adding timestamps
and sending them to the PC over just one ethernet-connection MasterProp---PC?
You should tell us the timing requierements and other details of how the whole system should work.
best regards
Stefan
(I will be selling my 485Plug's after UPEW, I have them in stock)
http://www.beckhoff.com/default.asp?ethercat/et1100_et1200.htm
Example for an industrial Ethernet Module for EtherCAT from IXXAT:
http://www.ixxat.com/industrial-ethernet-module_en.html
My intention is to find a solution (hardware) between the enc28j60 or w5100 and the above mentioned hardware. If a controller like the w5100 would have the possibility to receive and send Ethernet frames without copying the data from receive to send buffer and would send received frames autonomous to a predefined address (the next slave) we would have a much shorter duration of stay for the packet in one slave.
@Mike Green: Blimey; I'd forgotten all about ARCNET! My first job was working with Datapoint kit - ah the memories.
Can you take a single ethernet physical interface and split the pairs apart so the TX goes to one node and the RX goes to another? Implement your unidirectional point-to-point network this way? I've never heard of that done before, but it would be an interesting way to approach the problem.
The alternative is a star configuration, with a managed switch in the middle, using VLANs to effectively turn a star network into a virtual point-to-point network.
Ethernet just doesn't feel like a good fit for this, without specialized hardware. RS485, on the other hand, feels like a natural fit. A cog could pipe the RS485 data through the prop in a deterministic manner with low guaranteed latency. RS485 links would be point-to-point and unidirectional so no collision detection needed. Maybe develop a hybrid ethercat/RS485 gateway, that would be interesting.
Scott