I have two PXIe-7966 modules, a few Analog cards, and a PXIe-8135 controller. I'm looking for some ideas on how to apply a timestamp across all of these using a common system clock (Probably itself NTP sync'd to an external source).
The 7966 boards, through NI-1483 CameraLink interfaces both act to retrieve video frames. I would like to time stamp the first pixel of each frame as it arrives.
I also need to timestamp incoming Ethernet packets to within about 100us of their arrival (My spec says <=1ms, but that is probably too much jitter).
Analog data (Maybe 8 channels at 10kHz) must also be timestamped.
I don't have a timing and sync card and would prefer not to have to go down that route. But I am hoping for timestamp accuracy in the microsecond range (Not millisecond).
It sounds like there are two parts to your problem: the first is that you need all of your measurments synchronized, and the second is that you need to add timestamps to them.
For synchronization, you just need to make sure that you start all of your acquisition at the same time, and that everything is using the same clock from your PXI chassis's backplane. Your FlexRIO can access the triggering and clock lines on your PXI chassis directly.
For the timestamp issue, the easiest way is probably to have your real-time controller timestamp when all of the acquisitions start, giving you the timestamp of your first sample. Then, from your sampling rate, you can calculate the timestamp of each subsequent sample as they come in on your FIFOs. Here is an example of someone doing something similar on a cRIO.
FPGA Timestamp Sync