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
Selects which physical channel to assign to the DATA bus
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'
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
Specifies that bits are received in MSB first order (VERY rare)
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.
byte = data (during data event..else ignore)
byte = event flags: (Break,End,Parity,Frame,X,X,Address,Data)
Data (bit 0 : 0x01)
Indicates that byte 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 (bit 1 : 0x02)
Indicates the parity bit position matched the user defined '9-bit address mode' level and that byte 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 (bit 4 : 0x10)
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 (bit 5 : 0x20)
Indicates the parity calculation did not match the user's selection. The timestamp is the middle of the parity bit time.
End (bit 6 : 0x40)
Indicates the timestamp of the end of the character. Typically used to send an ENDFIELD type field back.
Break (bit 7 : 0x80
Indicates that the line was held low for greater than a character time