User:Obankston/HDSK



HDSK (HexaDecimal Synchronous Keying) is an audio frequency and optical modulation specification for hexadecimal digits. This modulation is Physical (layer 1) and Data Link (layer 2) in the OSI 7 Layer Model. A variable number of hexadecimal digits are appended to form symbols, typically ASCII, Unicode, BCDIC, or EBCDIC characters.

Audio
Alternative names: Half Down-Shift Keying, Half Difference Shift Keying, Half Down Synchronous Keying, Half Difference Synchronous Keying
 * This is audio frequency-shift keying (AFSK) or quadrature amplitude modulation (QAM) with no stop, start, or parity bits in the same bitstream as the data bits, hence it can be considered synchronous
 * The control information for the data bits is interleaved in time, and/or different frequencies
 * The data bits use two frequencies of frequency-shift keying (FSK) or two positions in the constellation diagram
 * The control tristates use three frequencies of multiple frequency-shift keying (MFSK) or three positions in the constellation diagram, which includes an intermediate point, hence the designation half difference or half down
 * The speed or rate that the control and data information is sent can vary, hence the designation down-shift

Optical
Alternative names: Half Disk Sequential Keying, Half Disk Synchronized Keying
 * The colors red, green, and blue of a light source can be used instead of three frequencies
 * to satisfy the Nyquist frequency for standard video (30 frames/sec), the color can change no faster than 15 Hz
 * to satisfy the Nyquist frequency for the human eye, the color can change no faster than about 8 Hz
 * When using colored lights placed equidistantly around the perimeter of a disk
 * only half the lights (in practice, 3 to 5) can be seen from any one viewing position, hence the designation half disk
 * red – 3 or 4 can be seen
 * blue – 4 or 5 can be seen
 * green – 5 or 6 can be seen
 * the lights can be illuminated in sequence or all at once, hence the designations sequential keying or synchronized keying

Components

 * Control and data streams
 * a cycle of 8 with 4 control in one stream and 4 data in the other stream, with control and data alternating or interleaved
 * control tristates are not down, half down, full down, and off (zero amplitude)
 * data bits are full down for 0, not down for 1, inspired by the Kansas City standard, "A '0' bit is represented as four cycles of a 1200 Hz sine wave, and a '1' bit as eight cycles of 2400 Hz.", but not necessarily using those frequencies
 * "Down" refers to audio frequency (or position on the constellation diagram) (or color)
 * not down - upper frequency (on the circle) (green)
 * half down - halfway to lower frequency (halfway from the circle to the lower point) (blue)
 * full down - lower frequency (lower point) (red)
 * down off - zero amplitude (center) (off)
 * Each hexadecimal digit is translated from the 4 data bits
 * data uses 4-bit Gray code (consider using single-track Gray code (STGC) so a frequency can be either on or off)
 * data is little-endian
 * the BST tristates are used for error detection and correction
 * Each symbol is a variable number of hexadecimal digits
 * one Unicode UTF-16 character with the leading hexadecimal zeroes removed uses 2, 3, or 4 hexadecimal digits
 * one ASCII character uses 2 hexadecimal digits
 * two BCDIC characters use 3 hexadecimal digits
 * one EBCDIC character uses 2 hexadecimal digits
 * binary data (e.g., PCM) is represented by the bits of the hexadecimal digits
 * Each frame is a variable number of symbols
 * use of frames is optional
 * frames usually demarcate groups of characters
 * Each block is a variable number of frames
 * use of blocks is optional
 * blocks usually demarcate groups of frames

States

 * The first number 1 to 8 in the state descriptions is the position in the order of the synchronous cycle of 8 bits/tristates
 * The state or mode is specified by positions 3 and 7
 * Transition from Idle state (data bits are not meaningful) to meaningful data is from the Idle state to Begin New Symbol state, or Begin New Frame state, or Begin New Block state
 * Transition from Continue Symbol state to Idle state implies last symbol was end of symbol, and also end of frame (if there was a Begin New Frame state), but not necessarily the end of a block, as a block may include idle states
 * Since there are two different idle states, this can be used as a binary code for a preamble (header) or a postscript (trailer)
 * For QAM modulation, the position order can be rearranged so that for each successive bit/tristate the phase is reversed or near reversed (these two arrangements are the reverse order of each other)
 * 1, 4, 8, 3, 7, 2, 6, 1, 5, 8, 4, 7, 3, 6, 2, 5
 * 1, 5, 2, 6, 3, 7, 4, 8, 5, 1, 6, 2, 7, 3, 8, 4

Position and contents for each state
Idle state, all zeroes used for startup, synchronization, and shutdown
 * 1 - down off
 * 2 - full down
 * 3 - full down (idle)
 * 4 - full down
 * 5 - down off
 * 6 - full down
 * 7 - not down
 * 8 - full down

Idle state, all ones used for startup, synchronization, and shutdown
 * 1 - half down
 * 2 - not down
 * 3 - full down (idle)
 * 4 - not down
 * 5 - half down
 * 6 - not down
 * 7 - not down
 * 8 - not down

Continue Symbol state append this hexadecimal digit to the last digit, if any
 * 1 - BST of data bits 1 and 2
 * 2 - data bit 0
 * 3 - not down (continue-symbol indicator)
 * 4 - data bit 1
 * 5 - BST of data bits 3 and 0 (bit 0 of next cycle)
 * 6 - data bit 2
 * 7 - full down is second hexadecimal digit, not down is third digit, half down is fourth digit
 * 8 - data bit 3

Begin New Symbol state implies last hexadecimal digit, if any, was end of symbol
 * 1 - BST of data bits 1 and 2
 * 2 - data bit 0
 * 3 - full down (start/restart/stop)
 * 4 - data bit 1
 * 5 - BST of data bits 3 and 0 (bit 0 of next cycle)
 * 6 - data bit 2
 * 7 - not down (start-of-symbol indicator for the 4 data bits)
 * 8 - data bit 3

Begin New Frame state implies last hexadecimal digit, if any, was end of symbol and end of frame
 * 1 - BST of data bits 1 and 2
 * 2 - data bit 0
 * 3 - full down (start/restart/stop)
 * 4 - data bit 1
 * 5 - BST of data bits 3 and 0 (bit 0 of next cycle)
 * 6 - data bit 2
 * 7 - full down (start-of-symbol and start-of-frame indicator for the 4 data bits)
 * 8 - data bit 3

Begin New Block state implies last hexadecimal digit, if any, was end of symbol, end of frame, and end of block
 * 1 - BST of data bits 1 and 2
 * 2 - data bit 0
 * 3 - full down (start/restart/stop)
 * 4 - data bit 1
 * 5 - BST of data bits 3 and 0 (bit 0 of next cycle)
 * 6 - data bit 2
 * 7 - half down (start-of-symbol, start-of-frame, and start-of-block indicator for the 4 data bits)
 * 8 - data bit 3

Specifying the state
state specified by           7           7          7 positions              not         half       full 3,7                    down        down       down

3 not down             3rd digit   4th digit  2nd digit 3 half down            invalid     invalid    invalid 3 full down (1st digit) new symbol new block  new frame

Both Shifted Third-state (BST)
3rd next               3rd next data is                data is BST tristate values             0 (full down)           1 (not down)

2nd next data is 0 (full down) third-state (down off)  0 (full down) 2nd next data is 1 (not down)  1 (not down)            third-state (half down)


 * Note 1: BST computes the value from future data bits, not from the next data bit, but from the two data bits following after the next data bit.
 * Note 2: BST chooses the 2nd next data bit if the two data bits are different, and chooses a third state other than 0 or 1 if the two data bits are the same. This is a form of odd parity that can be used for both error detection and correction.

Use in fixed-length records
Network (layer 3) and Transport (layer 4) in the OSI 7 Layer Model

These are addresses/envelopes/wrappers/packets/watermarks/signatures associated with the routing/movement/custody of the knowledge through pipes/channels/paths from its source to its destination. Not all of these are visible at the final destination, but certain artifacts may be visible for provenance/authentication, and are removed in Presentation (layer 6).

There may be variations in the method of packing data into symbols and compound symbols, the left-to-right or right-to-left arrangement of bits, hexadecimal digits, symbols, and compound symbols, and the entire record may appear in forward or reverse order. Symbols, whether or not they are compound symbols, are counted as one symbol for the purposes of counting record length, but their length as measured in bits or hexadecimal digits can vary.

The record length is fixed for all messages from a particular channel, but varies between different channels because the definition of the record label can be of a different length for different channels. The record length is fixed as measured in symbols, but the length as measured in bits or hexadecimal digits can vary because the length of symbols can vary. The appearance of frame and block marks does not change the record length because they are attributes of a symbol, not an additional symbol.

The record label is a near-unique identifier for records, not guaranteed to be unique, but together with the application data identifies individual records. The channel background is expected to be different for otherwise identical records because of its pseudo-random nature. Records are not expected to appear in any particular order, but the record label and application data used together can be used to determine the correct order.

The record length is 84 to 89 symbols, consisting of:
 * Application data – 72 symbols of data, a compound symbol counts as one symbol, a frame or block mark on a symbol does not count as an additional symbol
 * Channel background – 6 identical symbols, a compound symbol counts as one symbol, identifies the mode/custody/type of channel, intermixed with the 72 symbols of data, pseudo-randomly placed, forms a background, the description of each mode/custody/type of channel is published, the format/algorithm for placing the symbols is confidential and defined independently for each source of knowledge, used for watermarking, signature, authentication, and identification of the origin
 * Record label – 6 to 11 symbols, a compound symbol counts as one symbol, placed contiguously at the beginning, middle, or end of the 78 symbols of data and background, forming the index/key/ID of the envelope/wrapper/packet, the format/algorithm is published and defined independently for each mode/custody/type of channel, the length is fixed for each mode/custody/type of channel, used for document number, message ID, version, provenance (origin, chain of custody, change log), signature, and checksum

Use in messages
Session (layer 5) in the OSI 7 Layer Model

Conduit types
 * type E
 * uses blocks to demarcate each group (e.g., line or paragraph in a document) of text
 * similar to message type V with no analog data or timing channels
 * each data item can be identified because the combination of sequence in the frame and length are unique
 * the frames are variable length
 * a frame contains:
 * start of frame
 * digital data channel  or   (8, 12, or 16 bits)
 * digital data channel  (4 bits) (optional, used for second part of a compound symbol)
 * digital data channel  (4 bits) (optional, used for third part of a compound symbol)
 * start of next frame (implying end-of-symbol and end-of-frame)
 * types  and
 * uses blocks to demarcate each group (e.g., time gap, initialize DPCM value) of frames
 * uses frames to demarcate each group (e.g., time step) of PCM values, its associated digital data, and the timing channels
 * the frames are variable length
 * each symbol represents one data or timing item
 * each data or timing item can be identified because the combination of sequence in the frame and length are unique
 * the digital data channel may have information about the sampling rate of the analog data channels
 * the simplified version is type, the full version is type
 * a frame contains:
 * start of frame
 * digital data channel  (8, 12, or 16 bits)
 * analog data channel  (8, 12, or 16 bits)
 * analog data channel  (8, 12, or 16 bits) (optional)
 * analog data channel  (8, 12, or 16 bits) (optional)
 * timing channel, fast or fine (4 bits) (optional)
 * timing channel, slow or coarse (4 bits) (optional)
 * start of next frame (implying end-of-symbol and end-of-frame)