Sunday, December 28, 2008

Timekeeping Cont'd

As the idea has been rolling around in my head I've thought up some logical extensions. Both timekeeping units - master and slave - could be implemented in programmable logic, probably a CPLD. The slaves could have an internal delay oscillator (several inverters in a row) which would be the basis of measurement of the incoming clock signal. The slaves could also do clock doubling or tripling of the incoming clock signal to provide a fast clock to whatever programmable logic or microcontroller is their client. That would be accomplished by use of the internal timer/counter in the timekeeping slave unit - determine how many ticks the external period is in your internal clock, then divide by 2,4,8,16, whatever and get a faster clock that OUGHT to be fairly correct compared to the incoming clock signal. The unit could also provide the bare external clock signal (suitably buffered) for use with an RTC timer/counter on the client device.

I was also thinking that due to all of that transmission line stuff that I try to ignore it might be better to transmit the clock signal as a sine wave. Doing that with programmable logic would be harder, but it might be required in certain circumstances. Certainly a differential signal is probably necessary in most environments. I would say that repeaters might be necessary, but repeaters will introduce delay. It might not be too much but it wouldn't be consistent. You may hook one slave up after a single repeater, and hook another up after 10 repeaters, and the signal will be more delay for the second slave.

I'm beginning to wonder if this is patentable. In my miniscule experience (<2 years in the controls field) I haven't seen anyone use this system, nor have I seen anyone attempt to synchronize different subsystems to this degree. Usually if you want everything to be on the same clock you put it in the same unit - programmable logic, microcontroller, whatever. For hard real time applications that's pretty necessary. The question is whether people have thought of this but ignored it, not thought of it, or not thought it practical?

No comments: