ASYNC

Top  Previous  Next

This is sometimes (incorrectly) referred to as RS-232 or generally as a 'SERIAL' port.  It is characterized by a BAUD rate setting and a lack of a clock signal.  Symbols (Bytes or Characters) of data are sent as a start bit (0), followed by a pre-configured number of data bits, an optional parity bit and a stop bit (1).  Bits are blindly sampled at the BAUD rate.  The symbol is 'framed' by a 0 start bit and a 1 stop bit.  Note that this use of the term 'framing' refers to framing a single symbol and is different than our use as a protocol frame. 

 

A protocol frame would consist of one or more of these symbols.  There is no defined protocol framing at the pre-processor level.  In essence, this pre-processor is acting like a UART and your plug-in acts like the software/firmware that gathers data from the UART and interprets it, possibly into higher levels of framed data.

 

Configuration Options provided by the pre-processor

 

Data
Selects which physical channel to assign to the DATA bus
 
Baud Rate:
Selects from a list of standard BAUD rates or 'use custom'
 
Custom Baud (bits/sec):
The BAUD rate to use if BAUD RATE is set to 'use custom'
 
Data Bits
Selects the number of data bits in a character
 
Parity/9bit Address flag
Selects from odd,even,one,zero,non standard parity settings.
Also allows selection of 9bit addressing mode with and address
field flagged with a '1' or with a '0'
 
Glitch Filter (% of bit)
Select noise filter setting of none-10% of a bit width
 
Sync (skip transitions)
Specifies how many transitions to ignore at the start of the buffer.
useful for syncing up when capture starts mid-character
 
MSb First:
Specifies that bits are received in MSB first order (VERY rare)

Events

This pre-processor uses event flags to indicate which events occurred.  The data event occurs at the middle of the start bit time and also includes any parity or framing error flags.  Additional parity and/or framing events occur later at their respective times.  In the built-in post processor, we handle the data event first (ignoring any additional parity or framing errors) and then handle any error events as they occur, allowing us to show each as a separate field at their respective timestamps.  Setting the flags during the data event allows your plug-in to decide whether to display the corrupt data or not.

 
Event Format:
byte[0] = data (during data event..else ignore)
byte[6] = event flags:  (Break,End,Parity,Frame,X,X,Address,Data)

Data

Indicates that byte[0] holds a complete data byte.  The timestamp marks the middle of the start bit time.  NOTE: any parity or framing errors associated with this byte are flagged as well.  They can be ignored if desired because any such errors will be reported later as independent, timestamped events at their respective bit times.

Address

Indicates the parity bit position matched the user defined '9-bit address mode' level and that byte[0] holds the gathered address byte.  The timestamp marks the middle of the start bit time.  NOTE: any framing error associated with this byte is flagged as well.  It can be ignored if desired because any such error will be reported later as an independent, timestamped event at the STOP bit time.

Framing Error

Indicates the middle of the STOP bit position was low.  The timestamp is the middle of the stop bit time. 
NOTE this reference to FRAMING has nothing to do with our use of the word as defined in the TERMINOLOGY section above.  This is referring to timing framing of the character.  When you receive these framing errors, it means that the baud rate or one of the other low level parameters is set wrong, or the transmitter and receiver (us) are out of sync.

Parity Error

Indicates the parity calculation did not match the user's selection.  The timestamp is the middle of the parity bit time.

End

Indicates the timestamp of the end of the character. Typically used to send an ENDFIELD type field back.

Break

Indicates that the line was held low for greater than a character time