SerialDef,SDP-3.doc printed on 1/17/02
Serial Communications Protocol Definition
Project: SDP-3
Author: Simon Jarvis
Updated: January 17, 2002
JBL Synthesis Edit: Chris Neumann
Major rev 0
Minor rev 3
Approvals:
Engineering:
Marketing:
1 of 1
SerialDef,SDP-3.doc printed on 1/17/02
1 Documents |
4 |
2 Definitions |
4 |
3 Abbreviations |
4 |
4 General Description |
4 |
5 Physical Layer |
5 |
5.1 DB-9 RS232 Connector |
5 |
5.2 Serial Port Driver |
5 |
5.3 Errors |
6 |
5.4 SDP-3 Receive Buffer |
6 |
6 Data Link Layer |
6 |
6.1 Errors |
6 |
7 Application Layer |
6 |
7.1 SDP-3 Asynchronous Notification Packets |
6 |
7.1.1 Wakeup Notification |
7 |
7.1.2 Sleep Notification |
7 |
7.1.3 Front Panel Display Buffer |
7 |
7.1.4 Parameter Change Notification |
8 |
7.2 Acknowledgment Packets |
9 |
7.2.1 Acknowledge |
9 |
7.2.2 No Acknowledge |
10 |
7.3 Host Initiated Command Packets |
10 |
7.3.1 Reset Unit |
10 |
7.3.2 Restore Defaults |
10 |
7.3.3 Send IR Command |
11 |
7.3.4 Get SDP-3 Unit Configuration |
11 |
7.3.5 Get System Status |
13 |
7.3.6 Get Record/Zone 2 Status |
15 |
7.3.7 Get System Parameter Definition |
16 |
7.3.8 Get System Parameter Values |
17 |
7.3.9 Get Effect Definition by Id |
18 |
7.3.10 Get Effect Parameter Definition |
19 |
7.3.11 Get Effect Parameter Values |
20 |
7.3.12 Get Custom Name |
21 |
7.3.13 Get Input Name by Id |
21 |
7.3.14 Get FPD Control Registers |
22 |
7.3.15 Set System Parameter Values |
23 |
7.3.16 Set Effect Parameter Values |
23 |
7.3.17 Set Effect Name by Effect Id |
24 |
7.3.18 Set System Volume |
24 |
7.3.19 Set Main Balance |
25 |
7.3.20 Set Front/Back Balance |
25 |
7.3.21 Set Active Effect by Id |
26 |
7.3.22 Set Record/Zone2 Input |
26 |
7.3.23 Clear Record/Zone2 Input |
27 |
7.3.24 Set Zone2 Volume |
27 |
7.3.25 Set Zone2 Left/Right Balance |
28 |
2 of 2
SerialDef,SDP-3.doc printed on 1/17/02 |
|
7.3.26 Set Custom Name |
28 |
7.3.27 Set Input Name by Id |
29 |
7.3.28 Set FPD Control Registers |
30 |
7.3.29 Host Wakeup |
30 |
7.3.30 Host Sleep |
31 |
7.3.31 Get Communication Configuration |
31 |
7.3.32 Set Communication Configuration |
32 |
7.3.33 Set Mute |
32 |
7.3.34 Set Output Level Adjustments |
33 |
8 Internal Use |
34 |
8.1.1 Debug Character |
34 |
8.1.2 PEEK Command |
34 |
8.1.3 POKE Command |
34 |
9 Appendix A Command Codes |
34 |
10 Appendix B Error Codes |
36 |
11 Appendix C SDP-3 IR-Codes |
37 |
12 Appendix D Input Id’s |
38 |
13 Appendix E Protocol Constants |
38 |
14 Appendix F FPD Control Registers |
39 |
15 Application Notes and Examples |
39 |
15.1 Box initializations: |
39 |
15.1.1 SDP-3: |
39 |
15.1.2 HOST: |
39 |
15.2 Getting System Wide Status and Setup: |
40 |
15.3 Downloading the System Setup to the SDP-3: |
40 |
15.4 Simple System Control & System Status: |
40 |
15.5 Examples: |
41 |
15.5.1 Get Unit Configuration |
41 |
15.5.2 Get Effect Definition |
42 |
15.5.3 Set Input Name |
42 |
3 of 3
SerialDef,SDP-3.doc printed on 1/17/02
1 Documents
The following documents should also be used with this document to understand how this protocol can be used with an SDP-3SDP-3.
JBLSDP-3TECH MANUAL, OWNER’S, SDP-3
2 Definitions
System Parameter: |
A user changeable variable that stores a specific value that describes an operating |
|
condition for the SDP-3SDP-3 system. |
Effect: |
An effect describes a particular type of processing on the audio data stream. |
Effect Parameter: |
A changeable variable that stores a specific state or condition that controls the way the |
|
effect functions or processes the audio. |
HOST: |
The device initiating or receiving the serial communication packets to/from the SDP- |
|
3SDP-3. |
SDP-3: |
The JBL Synthesis product receiving or transmitting the serial communication packets |
|
to/from the HOST. |
Nonvolatile RAM: |
The area of memory in a SDP-3 that stores users adjustable parameters. The |
|
Nonvolatile RAM is battery backed, to maintain values during SDP-3 power down. |
3 Abbreviations
SOP |
Start of Packet |
EOP |
End of Packet |
ACK |
Acknowledge |
NAK |
No Acknowledge |
FPD |
Front Panel Display |
4 General Description
The intention of the SDP-3 serial port and protocol communication is for an external connected HOST to control and obtain status from the SDP-3. The protocol has been designed to focus on two specific goals. The first, is HOST uploading and downloading of SDP-3 configuration, and system/effect setups. The second, is HOST control of basic user adjustable parameters. (i.e. input, volume, balance…)
|
|
|
|
|
|
|
Rs -232 Serial Link |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
||||||||
|
HOST |
|
|
|
|
JBL Synthesis SDP-3 |
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
CD VOL |
|
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 of 4
SerialDef,SDP-3.doc printed on 1/17/02
The SDP-3 uses simple notification, command, response and acknowledgment packets to have communication transactions with a given HOST. This protocol is designed for point to point communication between a HOST and SDP-3. The SDP-3 Protocol is a 3 layered system. The SDP-3 serial protocol allows for the SDP-3 or the HOST to initiate a communication transaction. The HOST initiates most transactions. SDP-3 then responds to the HOST command with either a response or acknowledgment packet. There are a few asynchronous notifications that SDP-3 initiates indicating system changes. Each transaction initiated must wait for a corresponding response before initiating the next transmission.
The 3 protocol layers are: Physical, Data Link, and Application Layers.
Physical Layer (RS232)
Data Link Layer
Application Layer
5 Physical Layer
5.1 DB-9 RS232 Connector
SDP-3 |
|
|
|
|
|
|
|
Typical Host |
|
|
|
|
|
|
|
|
|
Ch A |
Transmit Data |
2 |
|
|
|
2 |
Rx Data |
|
|
|
|
||||||
Ch A |
Receive Data |
3 |
|
|
|
3 |
Tx Data |
|
|
|
|
||||||
Ch A |
Ground |
5 |
|
|
|
5 |
Ground |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 Pin D-Shell |
|
9-Pin D-Shell |
(female) lower |
|
(male) |
connector |
|
|
Note: The wiring requirements for a 9 pin to 9 pin serial connection, are a male to female straight through cable.
5.2 Serial Port Driver
SDP-3 serial port has been setup to operate as follows:
Operating Mode: |
Full Duplex |
Baud rate: |
19.2K baud |
Data Size: |
8 bits |
Parity: |
Odd |
Stop Bits: |
1 |
5 of 5
SerialDef,SDP-3.doc printed on 1/17/02
5.3 Errors
The SDP-3 will detect parity, framing and data overrun errors. If an error is detected by the SDP-3, the SDP-3 will transmit an NAK packet with a error code of: DC_ERR_PARTIY, DC_ERR_FRAME, DC_ERR_OVER, corresponding to the error detected. If any of the physical layer errors are detected, the complete packet is corrupted and the SDP-3 will reset the transaction and begin to look for a start of packet byte.
All Error codes are listed in Appendix B Error Codes.
5.4 SDP-3 Receive Buffer
The SDP-3 has an internal receive buffer. The buffer is 256 Bytes and will transmit a NAK packet with an error code of DC_ERR_BUFFER_FULL to the HOST with if the buffer is full. If the buffer is full, all data transmitted to the SDP-3 will be ignored. Therefore, making the currently transmitted packet, if partial transmitted invalid.
6 Data Link Layer
The data link layer is used to define a transmission packet. The layer appends a header and tail that encloses the transmitted application packet data. The data link header will contain the start of packet byte and count of bytes to follow. The data link tail will contain the end of packet byte.
Data Link Header: |
|
|
|
Byte Number |
Description |
Value |
|
First Byte(0) |
|
Start of Packet(SOP) |
0xF1 |
Byte(1) |
|
DLL Data Count |
nn |
Application Header: |
|
|
|
Byte(2) |
|
Command |
nn |
Byte(3) |
|
APP Data Count(number of application data bytes to Follow) |
nn |
Application Data: |
|
|
|
Byte(4) |
|
Data[0] |
nn |
Byte(5) |
|
Data[1] |
nn |
… |
|
Data[…] |
nn |
Last Data Byte -1 |
|
Data[Data Count -1] |
nn |
Data Link Tail: |
|
|
|
Last Byte |
|
End of Packet (EOP) |
0xF2 |
6.1 Errors
If the number of DLL data bytes received is the same as the data count and a EOP has not been received, the SDP-3 responds by transmitting a NAK packet with an error code DC_ERR_INVALID_PACKET, and then continues to look for a SOP byte and will not process the application packet. The HOST can use this as an indicator to retransmit the corrupted packet.
7 Application Layer
7.1 SDP-3 Asynchronous Notification Packets
SDP-3 has been designed to transmit the asynchronous notification packets following these system changes:
6 of 6
SerialDef,SDP-3.doc printed on 1/17/02
1.Power On
2.Entering Standby
3.Front Panel Display update.
The notification packets are defined as follows:
7.1.1 Wakeup Notification
By transmitting the Wakeup Notification, SDP-3 indicates the unit has just “powered on” or reset and is ready to receive host commands. If no acknowledgment is received within ACK_TIMEOUT, SDP-3 will continue to operate. This notification is primarily for the HOST to know the status of the SDP-3.
7.1.1.1 Notification Packet Description
Application |
Header: |
|
Command |
DC_WAKEUP |
0x01 |
Data Count |
0 |
0x00 |
Application Data:
N/A
7.1.1.2 Host Response Expected
Following the transmission of the Wakeup notification SDP-3 will wait for an ACK.
7.1.1.2.1 Actions to Response Codes
ACK |
SDP-3 continues to operate. |
NAK Error Code |
SDP-3 will retransmit the Wakeup Notification until it receives an ACK or it |
|
reaches the RETRANSMIT_COUNT. If the RETRANSMIT_COUNT is |
|
exceeded then SDP-3 continues to operate. |
7.1.2 Sleep Notification
By transmitting the Sleep Notification, SDP-3 indicates the unit is shutting down into a standby mode. Because the hard power switch could be activated independently of the SDP-3 system software, hard power down will not be notified. Acknowledgment of the Sleep Notification is not required. This notification is primarily for the HOST to know the operating status of the SDP-3.
7.1.2.1 Notification Packet Description
Application |
Header: |
|
Command |
DC_SLEEP |
0x02 |
Data Count |
0 |
0x00 |
Application Data:
N/A
7.1.3 Front Panel Display Buffer
SDP-3 will transmit the front panel display buffer following the update to the SDP-3 front panel display. The SDP-3 front panel display is 2 X 20 ASCII character display. The HOST can control the operation of this notification message by FPD internal control registers. Individual notifications can be enabled or disabled and the minimum transmit interval can be adjusted. Transmission of the display buffer is asynchronous to other host/SDP-3 communication and will only transmit following the completion of any communication
7 of 7
SerialDef,SDP-3.doc printed on 1/17/02
exchanges in progress or pending. The FPD control register command packets are described in section 7.3.14 Get FPD Control Registers.
7.1.3.1 Notification Packet Description
Application Header: |
|
|
Command |
DC_FPD |
0x03 |
Data Count |
42 |
0x2A |
Application Data: |
|
|
Data[0] - Data[21] |
Line1 |
ch ch ch… 0x00 |
Data[22] - Data[42] |
Line2 |
ch ch ch … 0x00 |
7.1.3.2 Data Description
Line1 |
|
Data Type: |
Null (0x00) terminated ASCII character string. |
Max Length: |
DISP_LINE_LENGTH defined in Appendix E Protocol Constants . |
Line2 |
|
Data Type: |
Null(0x00) terminated ASCII character string. |
Max Length: |
DISP_LINE_LENGTH defined in Appendix E Protocol Constants . |
The SDP-3 includes 8 custom characters that are defined to display increments of a display block. (i.e. Volume Bar) The custom characters are ASCII character codes 08 - 0F(hex). The codes are used as follows:
'08' - left 1 bar '09' - left 2 bars '0A' - left 3 bars '0B' - left 4 bars '0C' - Full Cell '0D' - Underscore '0E' - right 3 bars '0F' - not in use
7.1.3.3 HOST Response
The SDP-3 does not look for any response from the HOST.
7.1.4 Parameter Change Notification
SDP-3 will transmit predetermined parameter change notifications. If a parameter value is changed due to any user action or system action the SDP-3 will transmit the current value of the parameter that is changing.
7.1.4.1 Notification Packet Description |
|
|
Application |
Header: |
|
Command |
DC_PARAM_CHG_MSG |
0x04 |
Data Count |
2 |
0x00 |
Application Data: |
|
|
Data[0] |
ParamId |
nn |
Data[1] |
Value |
nn |
7.1.4.2 Data Description
ParamId: |
|
Data Type: |
Unsigned 8 bit integer |
8 of 8
|
SerialDef,SDP-3.doc printed on 1/17/02 |
Max: |
Set by the System Parameter Count in the “Unit Configuration Packet”. |
Value: |
The Current Value for this system parameter. |
Data Type: |
Unsigned 8 bit integer |
Max: |
Set by the Max Value per the System Parameter Definition response |
|
Packet for the Parameter Id of this packet. |
7.1.4.3 HOST Response
The SDP-3 does not look for any response from the HOST.
7.1.4.4 Supported System Parameters
The following parameters will be supported by this Parameter Change Notification:
Parameter |
SDP-3 Parameter Name |
Current Effect |
PROGRAM |
Mute |
MUTE |
System Volume |
VOLUME |
Balance |
LR_BALANCE |
Input Selection |
INPUT |
Record/Zone 2 On/Off |
RECORD_ENABLED |
Zone 2 Volume |
Z2_VOL |
Zone 2 Balance |
Z2_BAL |
Zone 2 Mute |
Z2_MUTE |
Bass |
BASS |
Treble |
TREBLE |
Loudness |
LOUDNESS |
Tilt |
TILT |
Menu Background On/Off |
MENU_BKGND |
The parameter definitions for each of these parameters can be obtained by querying the SDP-3 with the DC_CMD_GET_SYS_PARAM_BY_NAME command. The DC_RESP_SYS_PARAM_DEF will contain the ParamId for each of the parameters. The ParamId may change with s/w version changes, but the Parameter Name will not.
7.2 Acknowledgment Packets
Acknowledge and No Acknowledge packets are used to communicate transmission, packet and data validation status. Both the HOST and SDP-3 can transmit and receive these packets.
7.2.1 Acknowledge
7.2.1.1 Packet Description
Application Header: |
|
|
|
Command |
DC_ACK |
|
0xE0 |
Data Count |
|
1 |
0x01 |
Application Data: |
|
|
|
Data[0] |
Command |
|
nn |
7.2.1.2 Data Description
Command: |
|
Data Type: |
Valid SDP-3 command as defined in Appendix A Command Codes. |
9 of 9
SerialDef,SDP-3.doc printed on 1/17/02
7.2.2 |
No Acknowledge |
|
|
|
||
7.2.2.1 |
Packet Description |
|
|
|
||
|
|
|
|
|
|
|
Application |
Header: |
|
|
|
|
|
Command |
DC_NACK |
|
0xE1 |
|
||
Data Count |
|
|
2 |
0x02 |
|
|
Application Data: |
|
|
|
|
||
Data[0] |
|
Command |
|
nn |
|
|
Data[1] |
|
ErrorCode |
|
nn |
|
|
7.2.2.2 |
Data Description |
|
|
|
||
Command: |
|
|
|
|
||
|
Data Type: |
Valid SDP-3 command as defined in Appendix A Command Codes. |
||||
Error Code: |
|
|
|
|
||
|
Data Type: |
Error code as defined in Appendix B Error Codes. |
7.3 Host Initiated Command Packets
The SDP-3 serial communication protocol has been designed to respond to the following commands as described below. Each command is transmitted to the SDP-3 with the identified parameters. If the command is successfully received and processed by the SDP-3, the unit will respond with the described response packet or action.
7.3.1 Reset Unit
Commands the SDP-3 to soft reset.
7.3.1.1 Command Packet Description
Application Header: |
|
|
Command |
DC_CMD_RESET |
0x10 |
Data Count |
0 |
0x00 |
Application Data: |
|
|
|
N/A |
|
7.3.1.2 SDP-3 Response
The SDP-3 will perform and internal reset. After reset the SDP-3 will go through a soft power-up initialization. This includes transmitting the “Wakeup Notification Packet”. A soft reset does not reinitialize the SDP-3. Nonvolatile RAM is maintained.
7.3.2 Restore Defaults
Commands SDP-3 restore the system and effect parameters to the factory defaults.
7.3.2.1 Command Packet Description
Application Header:
Command |
DC_CMD_RESTORE_DEFAULTS |
0x13 |
Data Count |
0 |
0x00 |
Application Data:
N/A
10 of 10
SerialDef,SDP-3.doc printed on 1/17/02
7.3.2.2 SDP-3 Response
The SDP-3 will reset, clear any saved system and effect parameters in Nonvolatile RAM, and restore the factory default system and effect parameters. After reset the SDP-3 will go through a soft power-up initialization. This includes transmitting the “Wakeup Notification Packet”.
7.3.3 Send IR Command
Transmits IR command key codes to the SDP-3.
7.3.3.1 Command Packet Description |
||
Application |
Header: |
|
Command |
DC_CMD_IR |
0x14 |
Data Count |
1 |
0x01 |
Application Data: |
|
|
Data[0] |
KeyCode |
nn |
7.3.3.2 Data Description
Key Code: |
|
Data Type: |
Unsigned 8 bit integer. |
Valid Values: |
Appendix C SDP-3 IR-Codes |
7.3.3.3 SDP-3 Response
The Key Code is processed as a valid IR code. No acknowledgment will be sent from SDP-3.
7.3.3.4 Data Validation
The Key Code data will be verified as a legal IR code. If the Code is not valid the SDP-3 will not respond.
7.3.4 Get SDP-3 Unit Configuration
Request to SDP-3 for it’s current unit configuration. SDP-3 will respond with “Unit Configuration Packet”. The HOST should use this information to determine if any information saved by the HOST is current.
7.3.4.1 Command Packet Description
Application Header: |
|
|
Command |
DC_CMD_GET_CONFIG |
0x15 |
Data Count |
0 |
0x00 |
Application Data: |
|
|
|
N/A |
|
7.3.4.2 SDP-3 Unit Configuration Response Packet
11 of 11
SerialDef,SDP-3.doc printed on 1/17/02
Application |
Header: |
|
Command |
DC_RESP_UNIT_CONFIG |
0x80 |
Data Count |
25 |
0x19 |
Application Data: |
|
|
Data[0] |
ProductId |
nn |
Data[1] |
Software Type |
nn |
Data[2] |
Software Level |
nn |
Data[3] |
Software Major Revision |
nn |
Data[4] |
Software Minor Revision |
nn |
Data[5] |
Protocol Major Revision |
nn |
Data[6] |
Protocol Minor Revision |
nn |
Data[7] |
Total Number of System Parameters |
nn |
Data[8] |
Total Number of Effects |
nn |
Data[9] |
TimeStamp[0] |
ch |
Data[10] |
TimeStamp[1] |
ch |
Data[11] |
TimeStamp[2] |
ch |
Data[12] |
TimeStamp[3] |
ch |
Data[13] |
TimeStamp[4] |
ch |
Data[14] |
TimeStamp[5] |
ch |
Data[15] |
TimeStamp[6] |
ch |
Data[16] |
TimeStamp[7] |
ch |
Data[17] |
TimeStamp[8] |
ch |
Data[18] |
TimeStamp[9] |
ch |
Data[19] |
TimeStamp[10] |
ch |
Data[20] |
TimeStamp[11] |
ch |
Data[21] |
TimeStamp[12] |
ch |
Data[22] |
TimeStamp[13] |
ch |
Data[23] |
TimeStamp[14] |
ch |
Data[24] |
TimeStamp[15] |
0x00 |
7.3.4.3 Data Description
Product Id: |
This unsigned 8 bit value describes the product. |
||||
|
Product ID |
|
|
|
|
|
Lexicon Dc-2 |
1 |
|
||
|
Lexicon MC-1 |
2 |
|
||
|
JBL Synthesis SDP-3 |
3 |
|
||
Software Type: |
An unsigned 8 bit value indicating the current configuration of the unit’s |
||||
|
software. The following table shows the values assigned to the available types: |
||||
|
|
|
|
|
|
|
SW Type |
|
|
|
|
|
THX |
|
1 |
|
|
|
AC3 |
|
2 |
|
|
|
DTS |
|
3 |
|
|
12 of 12
SerialDef,SDP-3.doc printed on 1/17/02
Software Level: |
The following table shows the values assigned to the possible software levels: |
|||
|
SW Level |
|
|
|
|
RELEASED |
|
0 |
|
|
PRE_ALPHA |
|
1 |
|
|
ALPHA |
|
2 |
|
|
BETA |
|
3 |
|
|
GAMMA |
|
4 |
|
|
UNSUPPORTED |
|
5 |
|
*Note: SW level indicates the status of the SDP-3 internal application software.
Software Major Revision: An unsigned integer value indicating the unit’s major software version. The
|
host should use this information to determine if new effects, effect parameters, or |
|
system parameters have been added or removed. |
Software Minor Revision: An unsigned integer value indicating this unit’s minor software version. |
|
|
Indicates the units software operation has changed but effects, effect |
|
parameters, or system parameters have not changed. |
Protocol Major Revision: |
An unsigned integer value indicating the serial communication protocol major |
|
version. The host should use this value to determine if new commands, |
|
notifications, or response packets have been added or deleted from this |
|
specification. |
Protocol Minor Revision: |
An unsigned integer value indicating the serial communication protocol minor |
|
version. The host should use this value to determine if the existing commands, |
|
notifications, or response packets have changed in this specification |
Total Number of System |
|
Parameters: |
An unsigned integer value indicating the maximum number of system parameters |
|
for this version of software. This should be used to determine the data count for |
|
the “SDP-3 System Parameter Values Packet” and “Set System Parameter Values |
|
Packet”. |
Total Number of Effects: |
An unsigned integer value indicating the maximum number of effects available |
|
for this version of software. This should be used to determine the maximum |
|
Effect Id used in the “Get Effect Definition Packet”, “Get Effect Parameter |
|
Definition Packet”, “Set Effect Name Packet”, and “Set Effect Parameter Values |
|
Packet”. |
Time Stamp: |
Is a null terminated ASCII text string describing the build date and time of the |
|
current ROM. The Format of this text string is: |
|
“yy/mm/dd/(sp)/hh:mm” |
|
yy - is the last two digits of the year (i.e. year 1999 = 99, year 2000 = 00) |
|
mm - is the month |
|
dd - is the day |
|
(sp) - is an ASCII space character (0x20) |
|
hh - is the hour |
mm- is the minute
7.3.5Get System Status
Request to SDP-3 for it’s current system status. SDP-3 will respond with “System Status Packet”.
7.3.5.1 Command Packet Description
13 of 13