Hi Steve, hi everyone!

On 03/02/2014 12:41 AM, Steve Blackmore wrote:> On Sat, 01 Mar 2014
18:15:29 +0100, you wrote:
>
>
>> When I've learned something about hardware interfaces and reliability
in the past two or three years then it is to stay as far away from USB
as possible whenever something else than a classical HID (Mouse,
keyboard, flash drive, etc.) should be connected to a computer.
>
> A bit of a sweeping statement :)

Of course, I always try to make sure that my point of view is clear ;D

>
> There are good USB based controllers out there that work perfectly well.
> All depends on good hardware design and how the software/firmware uses
> it. The majority are poorly implemented and poor PC setup also

Yeah, everything depends on if it has been done right. But consider the
isolation problem as an example: USB isolaters give "varying results"
(to cite someone else). Why is that? Well, USB uses a single twisted
pair for RX and TX, which makes it extremely hard to build an isolation
device that does not interfere with the traffic. Simple transformers (as
with Ethernet) don't work, because the data is transmitted NRZI-encoded,
so contains DC. An isolator most likely identifies itself as a hub, so
there is already additional traffic just to have working isolation.

You could now argue that the isolation should be done in the slave
device (such as the controller, just like it is usually done with
RS232/RS485) after the USB interface. Of course you can, but then you
have most likely much more complexity added than if you'd used Ethernet
in the first place.

Another thing that can hit you when using USB is the very limited length
of the cable (5m or something). If the interface is used locally on a
machine, then this MAY suffice, for anything remote it is almost always
too short.

> contributes a fair amount of problems. In windows most don't turn off
> hardware power saving and then moan when the USB port goes to sleep. In
> fact the majority aren't even aware it exists or where to find it! BTW -
> same applies to ethernet ports ;)

Software configuration is a completely different story. At least I never
had any such issues with an Ethernet port, but thanks for the hint. See
below for my statement concerning other software considerations.


On 03/02/2014 09:20 AM, Steve Blackmore wrote:
> On Sat, 01 Mar 2014 21:19:06 -0500, you wrote:
> 
>> I've had a number of problems when plugging into industrial devices that 
>> have a USB interface.   The lack of isolation is oftentimes a problem.
>> Othertimes my laptop will confuse the industrial device with another 
>> common USB device like a stick drive, even if the driver for the 
>> industrial device has been loaded.
>> I've never had similar issues with RS232 or Ethernet interfaces.
> 
> The idea behind USB is good but is often let down by OEM penny pinching
> on design, firmware and software. Many devices simply do not meet USB
> standards and the myriad of different things a USB device could be can
> make it a lottery sometimes. 
> 
> Laptops are particularly bad - hidden power saving that you can't
> disable, even via bios and half baked hardware, like you say with
> isolation, or alternately a lack of ground problem. I've seen the
> confusion problem too, not only with laptops. "Plug and pray" sometimes
> doesn't. Again, crappy hardware, power saving or driver problems.

Ok, (cheap) laptops probably aren't suited for an industrial environment
either ;) Except for some non-critical HMI maybe.

> 
> The most common fix is always install any supplied drivers WITHOUT the
> device plugged in. Also cycling the power by shutting down then removing
> batteries, and/or mains for a few minutes often fixes confused PC's.
> 
> RS232 is becoming rare on modern devices, it's slow and single ended and
> relies on a common signal ground between devices. That can introduce
> it's own problems. 
> 

RS232 has the advantage that it is so damn simple, you can debug almost
everything by just hooking a scope (or even just a pair of LEDs) to the
data lines. And it can easily be implemented in even the tiniest devices
that have something like a stable timebase. I like to have this
interface at hand (optionally with the electrical improvement of using
RS485) as a very basic debug interface. For this, it mostly even works
with a USB/RS232 adapter.
But again: Not for the process data itself during normal runs, but only
for development and debugging (probably initial configuration as well).

> Ethernet is complex and needs careful design to work at all - hence it's
> expensive.
> 
> See
> http://www.iebmedia.com/index.php?id=8777&parentid=74&themeid=255&showdetail=true

That depends. On the electrical side, see above. If isolation is
required (which is almost always required in an industrial context),
then Ethernet is no more complex than USB. Just have a look at some of
TI's Tiva microcontrollers: Those have an Ethernet MAC AND a PHY
integrated, so all you need externally is a connector with the
integrated transformers and a few passive components. That's still a bit
more expensive than the (non-isolated) USB variant, where you do not
need the transformers. But it is simply a question of routing two
differential pairs on the PCB with adequate termination, so no more
difficult than with USB.

The great advantage of Ethernet compared to USB is on the software side:
Have you ever needed a driver for any network-connected device (except
the NIC itself, obviously)? I haven't and therefore I also never had any
trouble with the following:

1. Buggy drivers
2. Unsupported platforms (OS version or entirely different OS)
3. Accessing the driver/interface from userspace

2. and 3. really make Ethernet (or another network connection) shine
compared to USB: No hassle with things like LibUSB, missing privileges
to install a driver, etc. Just create a socket, connect to the remote
host and there is your connection. And this is easy in almost every real
programming language on every platform.

The only thing that can be a bit difficult is to get an IP address into
the device (DHCP is a bad choice for anything working as a server). This
is where the debug interface is useful. Or it may just have a default IP
programmed, which can then be used for initial configuration.
Having a static IP address in the device also makes identification easy.
It just doesn't matter where it is placed or into which connector the
cable is plugged.

Ok, enough said. That's my point of view, but everyone may decide on
his/her own about which interface to use for anything. Just as a hint:
If you need to think more than 10 seconds about which USB class a device
fits in, then it's probably the wrong choice of interface ;)

Kind regards,
Philipp

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to