Acquiring Digital Sensor Measurements

Acquiring Digital Sensor
Measurements
Tech Note 411
Overview
Digital measurements can be acquired directly from Measurement Specialties digital sensors using custom software written
using a variety of programming tools available today. The digital sensor’s configuration is assumed to have been set using
the Instrument Configuration Utility (ICU), thus allowing interpretation of the returned data values as described later.
The following steps are required to acquire a Digital Sensor measurement:
Needed only once at startup:
1. Send a Synchronize command to cause all attached sensors to lock on to the controller’s baud rate.
2. Wait for at least 128 milliseconds to allow attached sensors to process the Synchronize command.
3. Send a Listen command to enable the Digital Sensor to process commands
4. Wait for the sensor to acknowledge processing of the Listen Command
Repeated operations needed once to retrieve each measurement set:
1. Send the Write Register command to write the data address to the address register
2. Wait for the sensor to acknowledge processing of the Write Register Command
3. Use the Write Data @ Address command to write a zero to trigger a measurement cycle
4. Wait for the sensor to acknowledge processing of the Write Data @Address command
5. Use the Write Register command to write the data address to the address register (to reset the address)
6. Wait for the sensor to acknowledge processing of the Write Register command
7. Send the Read Data @ Address command to read data from the sensor
8. Wait for the sensor to return the measurements
9. Convert measurement to desired units by applying channel gain and offset as set in ICU
Typically, it is common to read all device channels, representing one set of synchronously sampled data. The
example at the end of this Tech Note demonstrates how 4 channels may be read from a typical triaxial
accelerometer, which returns 3 accelerations and 1 temperature measurement with each request.
Message Protocol Details
Each message transmitted to or received from a Measurement Specialties digital sensor is framed with a 1-byte command
header and a 2-byte cyclic redundancy check (CRC). The CRC is of the type CRC16 and is computed from the header and
data sections of the message preceding the CRC. Example code to compute a CRC16 is shown in Tech Note 410. Invalid
messages received by a sensor are discarded and not acknowledged.
The 1-byte command header of each message specifies the number of bytes requested or sent in the upper five bits:
7
6
5
4
3
2
1
Length (Bytes/Blocks)
Flag
Command
when Flag = 0, Length is number of 16-byte blocks (1-16)
when Flag = 1, Length is number of bytes (0-15)
0
Some instruments, like the 35203A, are limited to sending a maximum of 1 Block (16 bytes) in a single message.
TN 411: Acquiring Digital Sensor Measurements
precisionsensors.meas-spec.com 2236 N. Cleveland-Massillon Road
Akron OH 44333 PH : 330-659-3312 7/24/2013
www.meas-spec.com
Channel measurements are typically located occupying 2 bytes per channel starting at address 0x000002E0:
Chn
1
2
3
4
Address
0x000002E0
0x000002E2
0x000002E4
0x000002E6
Chn
5
6
7
8
Address
0x000002E8
0x000002EA
0x000002EC
0x000002EE
Chn
9
10
11
12
Address
0x000002F0
0x000002F2
0x000002F4
0x000002F6
Chn
13
14
15
16
Address
0x000002F8
0x000002FA
0x000002FC
0x000002FE
Addresses are sent low-byte first as 32-bit values, for example 0x000002F0 is sent as 0xF0, 0x02, 0x00, 0x00.
CRCs are sent low byte first as 16-bit values, for example 0x06C0 is sent as 0xC0, 0x06.
Each 16 bit data value is stored and sent high byte first (e.g. channel 0 high byte is at 0x02E0 and the low byte is at
0x02E1), For example, if a channel’s data is 0x1234, it will be sent as 0x12 followed by 0x34.
Example
The first step is to set the instrument’s baud rate and tell the device to listen; needs to be done only once in a simple
system with only one sensor:
Setup
Step
1
2
3
Sent by Controller
0xF8
Wait
0x18
0x01
0xCB
0xC0
Reply from 65210 Series System
Synchronize command from Controller
Controller waits at least 128 milliseconds
Listen command from Controller
Device ID 1 (factory default ID)
\ CRC
/
4
0x0D
0xC1
0xC5
Ack (listening) from Instrument
\ CRC
/
Then a measurement set (similar to a scan except simultaneously sampled) can be read using the following
commands:
Read Each Channel Set (Scan)
Step
1
Sent by Controller
0x4C
0xE0
0x02
0x00
0x00
0x87
0xCE
Reply from 65210 Series System
Write Address Register from Controller
\
\ Channel 1
/ Address
/
\ CRC
/
2
TN 411: Acquiring Digital Sensor Measurements
precisionsensors.meas-spec.com 0x0D
0xC1
0xC5
Ack (new address set) from Instrument
\ CRC
/
2236 N. Cleveland-Massillon Road
Akron OH 44333 PH : 330-659-3312 7/24/2013
www.meas-spec.com
3
0x1D
0x00
0x09
0x50
Write Data @ Address from Controller
Write Zero to Address
\ CRC
/
4
5
0x4C
0xE0
0x02
0x00
0x00
0x87
0xCE
8
9
0x8F
0x41
0xA4
Ack (data written) from Instrument
\ CRC
/
0x0D
0xC1
0xC5
Ack (new address set) from Instrument
\ CRC
/
Write Address Register from Controller
\
\ Channel 1
/ Address
/
\ CRC
/
6
7
0x0D
0xC1
0xC5
Read 8 bytes command from Controller
\ CRC
/
0x8D
Returning 8 bytes from Instrument
<hi byte> \ Channel 1 Counts
<lo byte> /
<hi byte> \ Channel 2 Counts
<lo byte> /
<hi byte> \ Channel 3 Counts
<lo byte> /
<hi byte> \ Channel 4 Counts
<lo byte> /
<lo crc> \ CRC
<hi crc> /
Apply ICU channel gain & offset - see Tech Note 421: Converting Measurement Values to Engineering Units
Alternate Method Using Scripts
There is an alternate method to perform I/O that uses built-in “scripts” that are stored inside the instrument. These scripts
allow for commands that would normally be sent over the RS-485 communications link to be executed out of built-in
memory.
TN 411: Acquiring Digital Sensor Measurements
precisionsensors.meas-spec.com 2236 N. Cleveland-Massillon Road
Akron OH 44333 PH : 330-659-3312 7/24/2013
www.meas-spec.com
It is outside the scope of this document to discuss script programming, but these non-volatile scripts may be easily
changed using ICU to suit specific customer requirements. For the following examples, the instrument must be configured
with ICU to have the Script setting on the main page set as follows (colors for clarity only):
3C0002DF1D006F093C0002DF1D008F09
This setting provides two separate scripts, shown above in blue and green. One is at location 0x2b and will return the first
3 channels of data (normally A1, A2, and A3). The seconds script is at 0x33 and returns 4 channels, thus includes T1 temperature. The following example shows how the first script is used:
Setup
Step
1
2
3
Sent by Controller
0xF8
Wait
0x18
0x01
0xCB
0xC0
Reply from 65210 Series System
Synchronize command from Controller
Controller waits at least 128 milliseconds
Listen command from Controller
Device ID 1 (factory default ID)
\ CRC
/
4
0x0D
0xC1
0xC5
Ack (listening) from Instrument
\ CRC
/
Read Channel Data Using Script - Repeat as Needed
Step
1
Sent by Controller
0x59
0x00
0x2B
0x00
0x00
0x00
0x05
0x2D
Reply from 65210 Series System
Jump to address command from Controller
Mask
\
\ Script
/ Address
/
\ CRC
/
2
TN 411: Acquiring Digital Sensor Measurements
precisionsensors.meas-spec.com 0x6D
<hi byte>
<lo byte>
<hi byte>
<lo byte>
<hi byte>
<lo byte>
<lo crc>
<hi crc>
Returning 6 bytes from Instrument
\ Channel 1 Counts (e.g. A1)
/
\ Channel 2 Counts (e.g. A2)
/
\ Channel 3 Counts (e.g. A3)
/
\ CRC
/
2236 N. Cleveland-Massillon Road
Akron OH 44333 PH : 330-659-3312 7/24/2013
www.meas-spec.com
Similar pages