Hi Joerg,
Don Y wrote:
With calibrated radios that's a piece of cake to find out. Pulse-echo.
Or let the whole link oscillate.
With calibrate network interconnects, the problem wouldn't exist! :>
I'm trying to reduce the complexity of the measurement (verification?)
system to *a* device -- preferably something non-esoteric (so folks
don't have to buy a special piece of gear to verify proper operation
and diagnose problems).
The interconnects would calibrate themselves during the test. It doesn't
matter whether it's a radio link or a wired link.
You'd have to locate a piece of kit at each end of each link.
I.e., three devices (assuming a common reference point) to
test two links. (Or, hope nothing changes in the minutes
or fractional hours that it takes you to redeploy for the
"other" link)
[E.g., the timing protocol updates itself at ~1Hz just to deal
with things like drift in the local oscillator]
Yes, either that or you have to make it part of the standard on-board
equipment (which I understand you don't want). There is no other way.
The locations have to broadcast their timer ticks and that requires
hardware.
I think that last sentence is the key. The devices already have that
capability. And, already do it -- in a cryptic way (i.e., if you
examined the control packets for the protocol, you could infer
this information just like the "resident hardware/software" does
in each node.
So, maybe that's the way to approach it!
I.e., the "pulse" output that I mentioned is a software manifestation.
It's not a test point in a dedicated hardware circuit. I already
*implicitly* trust that it is generated at the right temporal
relationship to the "internal timepiece" for the device.
[This is also true of multi-kilobuck pieces of COTS 1588-enabled
network kit: the "hardware" that generates these references is
implemented as a "finite state machine" (i.e., a piece of code
executing on a CPU!)]
So, just treat this subsystem the same way I would treat a medical
device, pharmaceutical device, gaming device, etc. -- *validate*
it, formally. Then, rely on that "process" to attest to the
device's ability to deliver *whatever* backchannel signals I deem
important for testing!
At any time, a user can verify continued compliance (to the same
specifications used in the validation). Just like testing for
characteristic impedance of a cable, continuity, line/load
regulation for a power supply, etc.
Then, instead of delivering a "pulse" to an "unused" output pin
on the board, I can just send that "event" down the same network
cable that I am using for messages! (i.e., its a specialized
message, of sorts)
Except for very expensive test equipment that can
probably be programmed to do this job (the stuff that costs as much as a
decent car).
[E.g., the 'scope approach is great: set timebase accordingly;
trigger off pulse from device 1; monitor pulse from device 2; count
graduations on the reticule! This is something that any tech
should be able to relate to...]
But you need a link to each unit.
Yes. And, relies on a *wired* link (or equivalent hooks in a wireless
implementation)
Wired works, as long as the infrastructure in the wiring won't get in
the way too much (Hubs? Switches? Routers?).
These are almost always in "accessible" locations (the actual
*nodes* that are being tested may be far less accessible: e.g.,
an RFID badge reader *protected* in a wall.
And, for high performance deployments they are "special" devices
that are part of the system itself. E.g., the equivalent of
"transparent switches" and "boundary switches" -- to propagate the
timing information *across* the nondeterministic behavior of the
switch (hubs are friendlier in this sort of environment!).
Not really. How should an RF path change much in just a few minutes?
Unless someone moves a massive metal file cabinet near the antennas, but
you'd see that.
Can you be sure that you can get from point A to point B in
"just a few minutes"? (This was why I was saying you have to
deploy *all* the test kit simultaneously -- what if A is in
one building and B in another)
What if an elevator happens to move up/down/stops its shaft
(will you be aware of it?)
Since it seems you are not after picoseconds I don't see where the
problem is. You can do that simultaneously, it's not problem, but it
isn't necessary.
Take a look at SCADA softare. Something like this could be pieced
together and then all the tech would need to be told is "Hook all this
stuff to the units, plug this gray box into a USB port your laptop,
click that icon over here, wait until a big green DONE logo appears,
then retrieve all the stuff".
I'd *prefer* an approach where the tech could just use the
kit he's already got on hand instead of having to specially
accommodate the needs of *this* system (does every vendor impose
its own set of test equipment requirements on the customer?
Does a vendor who *doesn't* add value to the customer?)
That would be by far the best solution and if I were to make the
decision that's how it would be done.
See above (validation). I think that's the way to go.
I.e., how do you *know* that your DSO is actually showing you
what's happening on the probes into the UUT? :>
[I've got a logic analyzer here that I can configure to
"trigger (unconditionally) after 100ms" -- and, come back
to it 2 weeks later and see it sitting there still saying
"ARMED" (yet NOT triggered!)]
Define, *specifically*, how this aspect of the device *must*
work AS AN INVARIANT. Then, let people verify this performance
on the unit itself (if they suspect that it isn't performing
correctly)
Mostly this only samples at 44.1kHz, 48kHz or 96kHz, depending on the
sound hardware you use. Unless I misunderstand your problem at hand,
that isn't an issue. AFAIU all you are after is a time difference
between two (or maybe some day more) events, not the exact occurrence of
an event in absolute time. So if each event triggers a sine wave at a
precise time you can measure the phase difference between two such sine
waves transmitted by two different units. Combining it with a complex
FFT of sufficient granularity you can calculate the phase difference
down to milli-degrees. 1/10th of a degree at 10kHz is less than 30nsec
and to measure that is a piece of cake.
The "pulses" are currently just that: pulses (I am only interested in
the edge). Currently, these are really *infrequent* (hertz) -- though
I could change that.
You can get much more accurate than that. In fact, one of the big
projects I am involved in right now (totally different from yours) fully
banks on that and we have our first demo behind us. Since the system
aced it so well I tried to push it, measuring the phase shift in a
filter when a capacitor goes from 100000pF to 100001pF. It worked.
Yeah, I worked with a sensor array that was capable of detecting a few
microliters (i.e., a very small drop) of liquid (blood) in any of 60
test tubes for a few dollars (in very low quantities). It had to
handle 60 such sensors simultaneously as you never knew where the blood
might "appear".
Interesting when you think of unconventional approaches to problems
that would otherwise appear "difficult" and suggest "expensive"
solutions!