12-06-2005 03:44 PM
I would also suggest using a FPGA RIO board (78xx) running LabVIEW FPGA. You can implement one or more RS-232 ports on the FPGA and add the specific timing stamping you need. There are examples available on DevZone to get you started with the RS-232 code in LabVIEW FPGA.
http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=C1074FF79B533B59E034080020E74861
The DIO lines of the RIO boards are 3.3V TLL so you will need some signal level translators for the RS-232 voltage levels.
The FPGA RIO card with the LabVIEW FPGA personality can be accessed directly from LabVIEW Windows on a PCI or PXI system and you do not need to use LabVIEW Real-Time.
12-07-2005 11:01 AM
All,
The official word from Technical Support is:
"As far as doing this with NI's Serial hw/sw, there's not much we can do for this type of application. The Serial boards just aren't designed to time stamp data. As people have mentioned in the discussion forum you posted in, FPGA is probably your best bet for a solution to this project"
"There's no way to tell our UART to retain timestamps with the data based on when it receives the data.
Yes, this also applies to RTOS. The UART is too low level to try to program something like collecting timestamps with the data. The timestamps on the Read are your best bet, but they won'thave the accuracy you're looking for."This is a portion of the discussion with tech support but it can't be done with the accuracy I am looking for using standard serial hardware. Whoever thought in todays today's 64-bit Pentium timers and 3 GHz plus processors I couldn't get a 1 milliesecond millisecond time stamp of serial data traveling at the blazing speed of 19,200 BPS Even if you high speed poll the serial port you still can't time stamp the serial data. Seems we have lost touch of the serial hardware and no longer have the ability to take control and get the information we need. This is a sad day in Test Engineering.
On a happier note it seems my options appears to be FPGA or write my own serial driver. This will add substantial cost to the project along with a loooong delay in the schedule. I will probably look into replacing NI's serial drive or use an O'Scope to measuring the timing. Don't get me wrong, I would like to use the FPGA soultion but don't know if I have that kind of time and cash available to pull it off.
Matt
12-07-2005 11:10 AM
"Seems we have lost touch of the serial hardware and no longer have the ability to take control and get the information we need."
And it will only get worse. Most laptops come with a bunch of USB ports but serial ports are becoming rare.
Ben
12-08-2005 05:11 AM
Yep, the good ol' RS232 is a legacy port in modern PCs
Thats why we now have bunches of USB2RS232 converters to read instruments and that device mentioned above to timestamp our protocoll.
Elector has an article about that topic: http://www.elektor-electronics.co.uk/Default.aspx?tabid=27&art=52896
12-08-2005 10:06 AM
Need for high speed and/or reliable serial communication on one or more ports concurrently.
Need for multidrop protocol support (RS485).
Need for nine-bit protocol support.
Support for built in serial ports on motherboard(COM1, COM2, etc.).
Support for non-intelligent PCI & ISA multiport cards w/16x50 UARTs.
Need for support for the larger FIFOs of the 16650 family of UARTs.
Need for crisp support of hardware flow control built directly into UART.
Need for time stamping bytes with microsecond resolution.
Need callbacks on events including state of modem signals, line errors, break detection, and other events.
Need to have your 16 bit MS-DOS application run under Windows 2003, Windows XP, Windows 2000, or Windows NT.
So I am looking into an in house version of a Serial Drive that does microsecond time stamping of the data. If that does not work then I will give this product a try. Using an FPGA for this seems to be using a sledge hammer to drive a finishing nail. $300 verse $4,000 for FPGA (Software and Hardware) makes this solution look much more attractive.
Matt