Campbell Hausfeld manual Data Error Detection, Error Detection with the SDM-SIO4, Received Data

Page 57

Section 6. Data Error Detection

Error detection by checksum, CRC or signatures is a way of detecting errors in data, either transmitted or received. This section gives details on how to use filter strings together with datalogger program examples to implement error detection methods.

6.1 Error Detection with the SDM-SIO4

Error detection is carried out to provide confidence that critical data is received/transmitted correctly.

For example, some data may be transmitted through a noisy environment, which could introduce errors into the data. Thus the received data could be corrupted in some way – for instance a number might possibly be changed from ‘1000’ to ‘2000’. This change would not be detected if the numbers were both in the valid number range unless some error detection system was used.

Error detection usually takes the form of the transmitting device calculating a Checksum, CRC (cyclic redundancy checksum) or Signature for the data it is transmitting. This Checksum, CRC or Signature result is transmitted at the end of the data in some form. The receiving device is configured to calculate exactly the same Checksum, CRC or Signature on the data it receives (except for the checksum bytes). The two separate Checksums, CRCs or Signatures are then compared, and if the two match exactly then the data received should be error free.

6.2 Received Data

NOTE

No checksum will detect 100% of all errors. The more sophisticated

 

the algorithm the better the error detection.

 

 

The signature that the sensor returns can be in many different data types – for example ASCII decimal, binary or hexadecimal. Additionally, each of the data types can have differences; for example with binary you can have 8 bit, 16 bit, and 32 bit and also the most significant byte could be transmitted first or the least significant byte could be transmitted first. Because of the above the SDM-SIO4 has two error detection filters ‘gn’ and ‘Gn’. The first, ‘gn’, is used to set the signature type you want to use and ‘Gn’ is used to set the data type of the signature expected from the sensor/device. A full description of how these filters operate is shown below.

gn

This filter type can be put into the filter string to mark the start of a signature generation. When this happens the signature type determined by ‘n’ will be initialised ready to start signature calculation for all characters until filter Gn is encountered, which marks the end of the string (see below). The value of ‘n’ for filter gn can be in the range of 0-255. The signature types supported are below:

0No Signature type used.

1CRC16 standard. Polynomial x16+x15+x2+1.

2CRC16-CCITT standard. Polynomial x16+x12+x5 +1.

6-1

Image 57
Contents Issued Page Guarantee Page Contents Appendix A. Ascii Table Data Error DetectionIntroduction What is the SDM-SIO4?Datalogger Command Control SDM-SIO4 Serial Port Pin Configuration SpecificationsSerial Ports Serial Port BuffersSDM Port Power RequirementsCase Environmental Operating RangeOther Key Features Page Setting the SDM Address Installation and Hardware Set-UpAddress Settings Selector Block Settings SDM AddressSelecting RS232 or 5V Logic for Each Port Connections to the SDM-SIO4Transient Protection and Grounding Power-on Tests the Status LED Status LED Error CodesNo. of Flashes Description of error/status Page Understanding How the SDM-SIO4 Handles Data IntroductionMethod of Entering Special / Control Characters Input Filters Filter TypesSimple Filters Filter Strings Ibn8Ficn8F Simple Output Formatter Output FormattingPredefined Filter Strings Filter No Filter String UsedOutput Format Strings CR10X Program Example Fmtst 123 z261 f62 iBattery z257 f61z273Get panel temperature Get battery voltageCommand Line Operation and Structure Entering CommandsProgramming the SDM-SIO4 Basic Commands Advanced Commands Hexdump start address number of bytes ErrorresBytewr address byte WD n Wderr n Wdaddr nTestio returns Testio test#Page Instruction 113 Parameters Programming the DataloggerParameter 7 Values per Rep Commands and Options Parameters 4, 5Parameter 8 Starting Input Location Parameters 9 and 10 Multiplier and OffsetUnderstanding Parameter Options and Returned Values Command 1 Poll of Available DataCommand 3 Flush all Receive Buffers Command 2 SignaturesCommand 4 Send Data to Datalogger Command 5 StatusCommand 7 Activate Command Line Command 6 Flush Transmit BufferCommand 8 Poll Tx Buffers for Data Command 9 Flush Converted Data BufferCommand 320 Send Byte Data to SDM-SIO4 Command 67 Get Return CodeCommand 321 Execute Command Line Command Program Example for P113 CommandExecute the command line string Command 1025 Transmit a Byte Command 1024 Send String to DeviceCommand 1026 Serial Port Status First Value ReturnedSecond Value Returned First Command Option Reset Error CountersThird Value Returned Fourth Value ReturnedCommand 2049 Set Communications Parameters Command 1027 ‘Manual’ Handshake ModeSecond Command Option Parameter First Command Option ParameterCommand 2054 Set Up Receive Filter String Number or Character Code SDM-SIO4 Configuration Examples Command 2305 Transmit BytesExample CR10X Program End of serial and filter setup Set flag one high so the above will only be done onceGet two floating point numbers into locations 1 Strst 101 Send DataJM Example CR10X Program Using Instruction P113 CommandWait long enough for sensor to send data Set up the filter and then send stringGet data from SDM-SIO4 and put into locations 1 Sensors Which Send Data Out Without PromptingTime stamp Instantaneous sample form the sensorFltst 200 tdataA5xff Example CR10X Program without Polling or InterruptsEnd of set up Example CR10X Program using the Polling MethodGet the two floating point values from the SDM-SIO4 Instantaneous values stored to final storageDelay required by filter set-up command Set up string filterDo filter set-up only if flag one is clear Set flag one high so the filter set-up is only done onceExample CR10X Program using Interrupts Get voltages into locations 3 and 4 if poll was trueInstantaneous value stored into final storage Do filter setup only if flag one is clear Delay required by filter setup commandSet control port 8 to i/p so it can be used as an interrupt Get voltages into locations 3 Interrupt routine for control portInstantaneous readings stored into final storage End of interrupt routineOutputting Datalogger Data Flushing the Input and Output Buffers Return Error CodesData Error Detection Error Detection with the SDM-SIO4Received Data SDM-SIO4 User Guide Example of Using Received Data Filters 2 CR10X Program ExampleFltst 100 TFrequency=xg2n10fCCG8 Minimum delay of 4ms is required by the above P113 End of filter setupTell the SDM-SIO4 to use filter string End of get data CRC32 Transmitted DataFmtst 100 g1i123456789G8 Example of Using Transmitted Data FiltersFmtst 100 g1 Fmtst 101 isome data Fmtst 102 f62 G8 Alternative CR10X ProgramMinimum delay of 1ms is required after this command Use formatter string 100 to set up the CRC16 on portMinimum delay of 3.8ms is required after this command Send the Ascii characters ‘Y’ and ‘Z’ to portCRC16-CCITT-IBM Data Error Detection Page Dec Char Appendix A. Ascii TablePage Baud rates Appendix B. Serial Port Data Transfer ModesStop Bits Data LengthSerial Handshake Modes Parity Bits