RT Comms at 625 us

I am porting an app that ran on a 20Mhz Transputer and talked over a
serial link to a transputer chain every 625 us. I have written some
code for a QNX app to use the parallel port to read and write to the
existing transputer chain, and this works (mostly).

What I am having trouble with is the speed. If I don’t talk reliably to
the transputer chain, then the system is not real time per my
requirements, but I cannot get it to do this reliably. I have set the
clock timer down to 500000 us, but I believe that the timeslice is now 4
times that, i.e. 2ms which is way more than my required 625 us.

I can actually tolerate some misses, so the system works, but when the
host program is also talking over the network to the GUI, then I get
some serious timing problems, and the loop which should take 32 cycles
i.e. 20ms, takes up to 60ms.

I am still looking into the exact mechanics of this, but can anyone tell
me if I am trying to do the impossible? I have looked into using an
interrupt, but for various reasons that is getting more complicated than
I want to.

I may have to re-design the interface to make the looptime (20ms)
comprise fewer cycles (than 32).



Simon Wakley
Visit our web site at <<www.cameracontrol.com>>