Will parallel Port comms ever be superceded?

More
02 Oct 2015 17:29 #63361 by Micromet
I fully understand the need for cnc instructions to be available for combined machine action and that the parallel port has been the way to do this for many years. But how much of this is just legacy? Fewer and fewer computer motherboards come with parallel port comms and individual parallel port cards will only be available while there is a market for such things (in their thousands). Once computer manufacturers stop parallel port options, we may be at the mercy of specialised board makers and this will be expensive.
Now I'm a newbie to cnc - so I probably don't know what I am talking about - please correct me in my delusions.

I'm also no computer engineer - but I do have experience of software coding down to Assembler and machine code (yes - I'm quite old) - but it seems to me that it is not too difficult to arrange for high speed USB 3.0 or SATA serial communication to be received by a simple integrated circuit and latched into a 25 position register that can then be output in the normal way via the standard parallel port socket. There are commercial 24bit serial to parallel ICs available. The latest USB 3.1 is capable of 10 Gbits/sec transfer - equivalent to supplying the 25 pin parallel port register at 0.4 Gbits/sec - surely fast enough for any cnc operation.

This is really just my curiosity why there has apparently been no action to bring this area of communication into line with modern computer hardware.

Please Log in or Create an account to join the conversation.

More
02 Oct 2015 20:25 #63369 by cmorley
wiki.linuxcnc.org/cgi-bin/wiki.pl?HardwareDesign

In a nutshell USB is horrible with latency, so one must buffer the input.
Buffered input is against Linuxcnc's basic design.
At the moment parports are not that difficult to find, finding a computer with good latency is arguably harder.
Ethernet seems to be the next interface that will be common - but yes will cost more money.
Nobody has ever suggested or tried SATA AFAIK I don't know if it is suited.

Chris M
The following user(s) said Thank You: Micromet

Please Log in or Create an account to join the conversation.

More
02 Oct 2015 20:47 - 02 Oct 2015 20:51 #63370 by PCW
For LinuxCNC (which requires real time access to the low level hardware) the parallel port is
easy and inexpensive (and still available both on many new motherboards and as plug-in PCI and PCIE cards)
People have been saying the parallel port is disappearing for at least 10 years but it is still with us :-)

Note that Linuxcnc needs low latency, not high throughput, so X Gbytes per second is not the issue.
The issue is whether LinuxCNC can read or write small amounts of data _NOW_, not when the
I/O hardware gets around to doing it. A parallel port can do this, USB cannot (at least currently)

USB3 requires rather special I/O chips and these chips are mainly intended for specific purposes
like SATA or Ethernet bridges and do not typically support real time operation. Also no one has written a working USB
real time driver as far as I know. This is not a trivial undertaking.

SATA is a possibility, as SATA -->> PATA bridge chips are available (at least for a while) and the PATA
interface gives you a simple parallel address/data based interface to I/O hardware.

Once you decide to use USB or SATA you need a purpose built interface to motion hardware
If you are going to the trouble to do this, Ethernet is actually a better interface for CNC equipment for a
couple of reasons:

1. Isolation and noise immunity

Ethernet was designed from the beginning to connect distant computers and so had to
deal with lack of common grounds and EMI issues. Its much more resistant to electrical noise
than USB (or ESATA) interfaces

2. Availability

Ethernet is available on most modern motherboards or as inexpensive PCI/PCIE add on cards
and unlike SATA is always available outside of the box

3. Sufficient bandwidth and decent latency

100BT Ethernet has sufficient bandwidth and low enough latency (when coupled with a RTOS like LinuxCNC uses)
for real time motion control (though not direct step generation)
Last edit: 02 Oct 2015 20:51 by PCW.
The following user(s) said Thank You: willysnowman, Micromet

Please Log in or Create an account to join the conversation.

More
02 Oct 2015 23:23 #63376 by Micromet
Thank yous to both PCW and Chris M for the detailed explanations. I didn't for one minute think that there wasn't a very good reason why Parallel Port comms had not been superceded - but I needed to ask the question in order to get the answer - and boy! did I get comprehensive answers - thanks again.

Please Log in or Create an account to join the conversation.

More
06 Oct 2015 19:47 #63492 by andypugh

I fully understand the need for cnc instructions to be available for combined machine action and that the parallel port has been the way to do this for many years.


This is something of a misconception. LinuxCNC does support the P-Port as it is cheap and easy and people tend to already have them, but most "serious" LinuxCNC conversions use PCI interface boards or Ethernet-connected peripherals.

wiki.linuxcnc.org/cgi-bin/wiki.pl?LinuxCNC_Supported_Hardware has a partial list.

Please Log in or Create an account to join the conversation.

Time to create page: 0.151 seconds
Powered by Kunena Forum