Biamp PMX84 RS-232 User Manual

RS-232 Control
of the
Advantage PMX84
________________________________________________________________________________________
Biamp Systems, 14130 N.W. Science Park, Portland, Oregon 97229 U.S.A. (503) 641-7287
an affiliate of Rauland-Borg Corp.
Introduction
Hexadecimal, ASCII-Hex, and "Pseudo-Hex" Numbers
Throughout this document, hexadecimal numbers shall be represented by preceding the number with "0x". For example: the hexadecimal equivalent of the decimal number 255 is 0xFF.
Individual ASCII characters, except control characters, will be enclosed in single quotes. For example: the ASCII character 'A' has the hexadecimal value 0x41. The ASCII "carriage return" control character shall be represented as . An ASCII code chart is included with this document for your convenience.
When an 8-bit binary data value is being transmitted over a serial data communications link, it is a common practice to transmit the byte as two "ASCII-hex" characters - one character represents the most significant nibble of the data value and the other character represents the least significant nibble (a nibble is 4-bits; half of a byte). Each ASCII-hex character is in the range of '0' thru '9' or 'A' thru 'F' (from the ASCII code chart, 0x30 thru 0x39 or 0x41 thru 0x46). For example, the hexadecimal equivalent of the decimal number 61 is 0x3D. To transmit this in an ASCII-hex format, first transmit the ASCII character '3' (whose hex value is 0x33), followed by the ASCII character 'D' (whose hex value is 0x44). This is the standard way to transmit an ASCII-hex value. In some cases, the lower case characters 'a' thru 'f' (0x61 thru 0x66) are accepted in addition to the upper case letters 'A' thru 'F'.
The Advantage PMX84 does not utilize standard ASCII-hex format. The PMX84 computer commands implement what I call "pseudo-hex" notation (also sometimes referred to as a "poor man's" ASCII-hex notation). Instead of representing the hexadecimal value using the ASCII characters '0' thru '9' and 'A', 'B', 'C', 'D', 'E', and 'F', the pseudo-hex format uses the ASCII characters '0' thru '9' and the characters ':', ';', '<', '=', '>', and '?'. As you can see by studying the ASCII code chart, a binary nibble may be converted to its equivalent pseudo-hex character by simply adding 0x30.
A binary/decimal/hexadecimal/pseudo-hex conversion chart is included at the end of this manual for your convenience.
Computer Control of the Advantage PMX84 page 1
Data Communications Parameters
Serial Port Data Communications Parameters
The PMX84 normally communicates through its standard RS-232 serial interface at a data rate ("baud" rate) of 2400 bits per second with 8 data bits, no parity, and 1 stop bit. Although the factory default setting is 2400 bits per second, operation at 9600 bits per second is also possible by changing an internal jumper strap. The PMX84 utilizes a subset of the standard 7-bit ASCII character set. The eighth data bit (bit 7 - the most significant bit) of each character transmitted by the computer should always be 0. The computer should not echo the characters it receives from the PMX84.
Since the PMX84's standard RS-232 serial interface only has a single-character input buffer for its incoming serial data, a form of flow control must be implemented by the computer in order to guarantee that no characters are lost. Neither hardware (DTR or RTS) nor XON/XOFF (also known as DC1/DC3 or control-S/control-Q) handshaking is supported by the PMX84. However, each character which the PMX84 receives with its standard RS-232 serial interface will be "echoed" back to the computer. Flow control may be implemented by the computer software by simply waiting for each character's echo from the PMX84 before transmitting the next character, since the PMX84 doesn't retrieve and echo an incoming character until it has finished processing the previous character.
PMX-Link Data Communications Parameters
The PMX-Link is a serial communications interface which was designed primarily to allow multiple PMX84s to be linked together in such a way that all units react to the same remote control button events. Although the PMX-Link is not a true RS-232 interface, the voltage levels and impedances associated with the PMX-Link are compatible with RS-
232. The PMX-Link operates at a bit rate of 2400 bits per second with 8 data bits, no parity, and 1 stop bit. The PMX-Link bit rate is not adjustable.
The PMX-Link is a one-way communications link. The PMX84 does not echo the characters it receives and there is no flow control mechanism. The PMX-Link has a small (8 byte) input buffer which allows it to receive short bursts of data at the full data rate (approximately one character every 4.2 msec), however, when performing computer control using the PMX-Link, the computer should avoid sending characters to the PMX84 at an average rate of greater than approximately 20 characters per second (approximately one character every 50 msec).
page 2 Computer Control of the Advantage PMX84
Computer Control
The Advantage PMX84 has an RS-232-compatible serial interface which allows it to be controlled by a computer or by a system controller such as those provided by AMX or Crestron. In addition to its standard RS-232 serial interface, the PMX84 has an RS-232 compatible expansion port ("PMX-Link") which may also be used for computer control. The PMX84 offers the following three methods of computer control:
Control Button Emulation. This method of computer control allows the computer to
emulate Biamp's standard infrared remote control transmitter or wall-mount remote control panel. Using this method, the computer outputs ASCII characters which are equivalent to the characters which would be generated by a remote control connected to remote port 1 of the PMX84. These ASCII characters are transmitted from the computer to the PMX84's standard RS-232 compatible serial port. Control Button Emulation is simple to perform, however, it only provides "one-way" control of the PMX84 - it allows the computer to send simple commands to the PMX84, but it does not provide any mechanism for requesting status information from the PMX84.
PMX-Link. This method of computer control is similar in concept to Control Button
Emulation, however, in addition to emulating a remote control connected to remote port 1, the PMX-Link allows emulation of all four remote ports plus all sixteen logic inputs of the PMX84. Using this method, the computer or controller transmits binary "serial key codes" to the PMX84 using the RS-232 compatible PMX-Link. Computer control using the PMX-Link is simple to perform, however, like Control Button Emulation, it only provides "one-way" control of the PMX84 - it allows the computer to send simple commands to the PMX84, but it does not provide any mechanism for requesting status information from the PMX84. As a general rule, the PMX-Link should be used for computer control only in installations where the four remote control ports and sixteen logic inputs are not being used.
Advanced Computer Control. This method of computer control provides advanced
commands which allow "two-way" control of the PMX84. Using Advanced Computer Control commands, the computer may request status information from the device as well as send commands to the device. The computer communicates with the PMX84 using the PMX84's standard RS-232 compatible serial port.
Computer Control of the Advantage PMX84 page 3
Control Button Emulation
Control Button Emulation is the simplest form of computer control of the Advantage PMX84. This method of operation allows the computer to emulate the operation of a standard Biamp remote control transmitter connected to remote port 1.
For each button on a standard Biamp remote control, there is a corresponding ASCII character. In order to emulate a remote control button, the computer simply transmits the corresponding ASCII character to the PMX84's standard RS-232 serial port. Each character received by the PMX84 will be echoed back to the computer.
The standard Biamp remote control devices never exceed a transmission rate of 9 characters per second. If the computer wishes to perform Control Button Emulation at a rate of greater than 20 characters per second (50 msec per character), flow control should be implemented by waiting for the echo of each character before transmitting the next character. At slower speeds, flow control should not be necessary.
The following table summarizes the ASCII character codes for Control Button Emulation corresponding to each of the 40 remote control buttons for remote 1 of the PMX84. These button codes are also summarized on the ASCII code chart provided at the end of this manual. The remote control buttons on the standard Biamp transmitter are numbered from left to right going from bottom to top with the lower left-hand button being button number 1.
Control Button Emulation ASCII Codes (remote 1)
button 1 'B' (0x42) button 2 'C' (0x43) button 3 'D' (0x44) button 4 'E' (0x45) button 5 'F' (0x46) button 6 'G' (0x47) button 7 'H' (0x48) button 8 'I' (0x49) button 9 'J' (0x4A) button 10 'K' (0x4B) button 11 'L' (0x4C) button 12 'M' (0x4D) button 13 'N' (0x4E) button 14 'O' (0x4F) button 15 'P' (0x50) button 16 'Q' (0x51) button 17 'R' (0x52) button 18 'S' (0x53) button 19 'T' (0x54) button 20 'U' (0x55)
button 21 'V' (0x56) button 22 'W' (0x57) button 23 'X' (0x58) button 24 'Y' (0x59) button 25 'Z' (0x5A) button 26 '[' (0x5B) button 27 '\' (0x5C) button 28 ']' (0x5D) button 29 '^' (0x5E) button 30 '_' (0x5F) button 31 '`' (0x60) button 32 'b' (0x62) button 33 'c' (0x63) button 34 'd' (0x64) button 35 'e' (0x65) button 36 'f' (0x66) button 37 'g' (0x67) button 38 'h' (0x68) button 39 'i' (0x69) button 40 'j' (0x6A)
page 4 Computer Control of the Advantage PMX84
Device Select Prefix Characters
When using Advanced Computer Control, up to eight PMX84s may be linked together and individually controlled by the computer (if each device is first assigned a unique device number). When using Control Button Emulation, a limited subset of device addressing may be performed, which allows individual control of up to four PMX84s (with device numbers 1 thru 4). This is accomplished by transmitting a device select prefix code immediately prior to each control button ASCII character code. The device select prefix code is inspected by each device to determine whether or not the device should react to the button code which immediately follows. (Note: do not transmit prefix codes prior to repeat codes.) If a button code is not immediately preceded by a device select prefix character, then all PMX84s in the system will react to that button code. The following table summarizes the ASCII characters to use for selecting various devices. This information is also summarized in the ASCII code chart provided at the end of this manual.
Device Select Prefix Codes
select device 1 'l' (0x6C) select device 2 'm' (0x6D) select devices 1 & 2 'n' (0x6E) select device 3 'o' (0x6F) select devices 1 & 3 'p' (0x70) select devices 2 & 3 'q' (0X71) select devices 1 & 2 & 3 'r' (0x72) select device 4 's' (0x73) select devices 1 & 4 't' (0x74) select devices 2 & 4 'u' (0x75) select devices 1 & 2 & 4 'v' (0x76) select devices 3 & 4 'w' (0x77) select devices 1 & 3 & 4 'x' (0x78) select devices 2 & 3 & 4 'y' (0x79) select devices 1 & 2 & 3 & 4 'z' (0x7A)
Computer Control of the Advantage PMX84 page 5
Computer Control using the PMX-Link
This method of computer control is very similar to Control Button Emulation. However, by interfacing to the PMX84 using the PMX-Link, the computer is able to emulate all 200 of the button "events" which the PMX84 supports. This includes emulation of remote control activity from all four remote ports as well as from the 16 logic inputs. Each button event has a corresponding 8-bit "serial key code" (see the following table). The computer (or other controller) may emulate a button event by transmitting the corresponding 8-bit serial key code to the PMX-Link.
As mentioned earlier, the proper data communications settings are: 2400 bits per second, no parity, 1 stop bit. To avoid overrunning the PMX-Link's input buffer, the average transmission rate should not exceed 20 characters per second.
Unlike Control Button Emulation, the PMX-Link does not support device select prefix codes.
page 6 Computer Control of the Advantage PMX84
PMX-Link Serial Key Codes
button
event #
0 - 39 0x00 - 0x27 Remote Port 1 Buttons 1 - 40
40 - 79 0x28 - 0x4F Remote Port 2 Buttons 1 - 40
80 - 119 0x50 - 0x77 Remote Port 3 Buttons 1 - 40
120 - 159 0x78 - 0x9F Remote Port 4 Buttons 1 - 40
160 0xA0 Logic Input 1 Contact Closed 161 0xA1 Logic Input 2 Contact Closed 162 0xA2 Logic Input 3 Contact Closed 163 0xA3 Logic Input 4 Contact Closed 164 0xA4 Logic Input 1 Contact Opened 165 0xA5 Logic Input 2 Contact Opened 166 0xA6 Logic Input 3 Contact Opened 167 0xA7 Logic Input 4 Contact Opened 168 0xA8 Logic Input 5 Contact Closed 169 0xA9 Logic Input 6 Contact Closed 170 0xAA Logic Input 7 Contact Closed 171 0xAB Logic Input 8 Contact Closed 172 0xAC Logic Input 5 Contact Opened 173 0xAD Logic Input 6 Contact Opened 174 0xAE Logic Input 7 Contact Opened 175 0xAF Logic Input 8 Contact Opened 176 0xB0 Logic Input 9 Contact Closed 177 0xB1 Logic Input 10 Contact Closed 178 0xB2 Logic Input 11 Contact Closed 179 0xB3 Logic Input 12 Contact Closed 180 0xB4 Logic Input 9 Contact Opened 181 0xB5 Logic Input 10 Contact Opened 182 0xB6 Logic Input 11 Contact Opened 183 0xB7 Logic Input 12 Contact Opened 184 0xB8 Logic Input 13 Contact Closed 185 0xB9 Logic Input 14 Contact Closed 186 0xBA Logic Input 15 Contact Closed 187 0xBB Logic Input 16 Contact Closed 188 0xBC Logic Input 13 Contact Opened 189 0xBD Logic Input 14 Contact Opened 190 0xBE Logic Input 15 Contact Opened 191 0xBF Logic Input 16 Contact Opened 192 0xC0 Logic Inputs 1 - 4 All Opened 193 0xC1 Logic Inputs 5 - 8 All Opened 194 0xC2 Logic Inputs 9 - 12 All Opened 195 0xC3 Logic Inputs 13 - 16 All Opened 196 0xC4 Logic Inputs 1 - 8 All Opened 197 0xC5 Logic Inputs 9 - 16 All Opened 198 0xC6 Logic Inputs 1 - 16 All Opened 199 0xC7 Power-Up / Reset Event
serial key
code (hex)
control button event
Computer Control of the Advantage PMX84 page 7
Advanced Computer Control
The Advanced Computer Control command set includes commands which allow the PMX84 to return information about the system to the computer, unlike Control Button Emulation and the PMX-Link which are basically one-way control mechanisms. The following list summarizes the commands available using Advanced Computer Control, including the ASCII command character associated with each command:
!
do-macro perform the actions for the specified button macro.
!
get-macro-definition retrieve the definition for the specified button macro.
"
define-macro define the specified button macro.
"
virtual-macro perform the specified macro actions.
#
do-button perform the actions associated with the specified button.
#
get-button-definition retrieve the definition for the specified button.
$
define-button define the specified button.
%
get-matrix-status retrieve the on/off status for the entire assignment matrix.
&
set-matrix-status set the on/off status for the entire assignment matrix.
'
do-matrix-action perform the specified matrix assignment switch action.
(
get-logic-status retrieve the on/off status of all logic outputs.
)
set-logic-status set the on/off status of all logic outputs.
*
do-logic-action perform the specified logic output action.
+
sleep-for-10-sec. sleep for 10 seconds, ignoring all commands.
,
read-memory retrieve data from non-volatile configuration memory.
-
write-memory store data in non-volatile configuration memory.
.
set-factory-defaults resets configuration parameters to factory defaults.
/
get-version retrieve the model information and firmware version date.
Each Advanced Computer Control command requires at least two parameter bytes (four pseudo-hex nibbles) to be sent prior to the command character. Each command will be explained in detail on the following pages.
Some of the commands cause the PMX84 to return information to the computer. For each string of information returned to the computer, the PMX84 terminates the string by transmitting the ASCII carriage return character (0x0D - represented in this document as ).
As mentioned earlier, the Advantage PMX84 will echo all characters it receives, regardless of whether or not the characters are valid commands or parameters. Characters greater than 0x7F are reserved and should not be transmitted by the computer. The PMX84 utilizes a subset of the standard ASCII character set. The following characters have meaning to the PMX84:
page 8 Computer Control of the Advantage PMX84
character hexadecima
operation
l
ASCII control characters (0x00 - 0x1F) no operation
SPACE
ASCII
!
thru
0
thru
@ A B
thru
a b
thru
k
thru
{
thru
0x80 thru 0xFF (0x80 - 0xFF) RESERVED
character
/
?
`
j z
DEL
(0x20) no operation
(0x21 - 0x2F) Advanced Computer Control
commands
(0x30 - 0x3F) pseudo-hex parameters for Advanced
Computer Control commands (0x40) Control Button Emulation Repeat Code (0x41) no operation
(0x42 - 0x60) Control Button Emulation commands
(buttons 01 - 31) (0x61) no operation
(0x62 - 0x6A) Control Button Emulation commands
(buttons 32 - 40)
(0x6B - 0x7A) Control Button Emulation Device Select
Prefix commands
(0x7B - 0x7F) no operation
An ASCII code chart showing all PMX84 commands and codes is provided later in this document for your convenience. One key point to observe is that the computer may feel free to transmit spaces, tabs, carriage returns, line feeds, or any other control characters at any time (even between two nibbles of a pseudo-hex parameter byte) without having any affect on the operation of the PMX84. The PMX84 will simply echo them and then ignore them.
Device Type Bitmask and Device Number Bitmask
In a system which has more than one Advantage product connected to the computer, the Device Type Bitmask and Device Number Bitmask command parameters provide a mechanism for the computer to individually address a particular device (or a combination of devices). Every command in the Advanced Computer Control command set requires that a Device Type Bitmask and a Device Number Bitmask be transmitted as the last two parameter bytes before the computer transmits the command character itself. These two bitmask parameters bytes provide a device addressing capability to specify which of the devices in the system should execute the command. All devices which are not specifically addressed by these two bitmask values will ignore the command.
The Device Type Bitmask parameter byte supports up to eight distinct device types - one bit per device type. The eight device types are:
0x01 (bit 0) Biamp Advantage DRC 4+4 digital remote control 0x02 (bit 1) Biamp Advantage EQ28X digitally-controlled graphic equalizer 0x04 (bit 2) Biamp Advantage SPM522D stereo preamp/mixer 0x08 (bit 3) Biamp Advantage PMX84 programmable matrix switch 0x10 (bit 4) (reserved for future product)
Computer Control of the Advantage PMX84 page 9
0x20 (bit 5) (reserved for future product) 0x40 (bit 6) (reserved for future product) 0x80 (bit 7) (reserved for future product)
The Advantage PMX84 will only respond to Advanced Computer Control commands if bit 3 of the Device Type Bitmask parameter byte is a '1'. A command may be directed to more than one device type in the system by setting all of the corresponding bits in the Device Type Bitmask to '1's.
The Device Number Bitmask parameter byte supports up to eight distinct device numbers
- one bit per device number. The eight device numbers are:
0x01 (bit 0) Select Device Number 1 0x02 (bit 1) Select Device Number 2 0x04 (bit 2) Select Device Number 3 0x08 (bit 3) Select Device Number 4 0x10 (bit 4) Select Device Number 5 0x20 (bit 5) Select Device Number 6 0x40 (bit 6) Select Device Number 7 0x80 (bit 7) Select Device Number 8
A particular Advantage PMX84 will only respond to Advanced Computer Control commands if the bit in the Device Number Bitmask parameter byte corresponding to its device number is a '1'. A command may be directed to more than one device number in the system by setting all of the corresponding bits in the Device Number Bitmask to '1's.
The Advanced Computer Control command set supports, in theory, up to sixty-four devices in a system - eight devices of each of the eight device types. In order for any particular device in the system to respond to an Advanced Computer Control command, the appropriate bit in both the Device Type and Device Number bitmask parameter bytes must be set to '1'.
page 10 Computer Control of the Advantage PMX84
Advanced Computer Control Data Structures
Matrix Status Data Structure
The PMX84 maintains a 4-byte data structure representing the on/off status of all 32 matrix assignment switches. Each binary bit corresponds to one assignment switch (see illustration). A '1' bit means the switch is on, and a '0' bit means the switch is off. For example, if bit 5 of the matrix[2] byte is a '1', audio input channel 6 is assigned to audio output 2.
PMX84 Matrix Status Data Structure
4-byte array with elements numbered matrix[0] thru matrix[3]
(msb) (lsb)
matrix[3]
(transmitted first)
matrix[2]
matrix[1]
matrix[0]
(transmitted last)
01234567
7172737481828384
5152535461626364
3132333441424344
1112131421222324
Logic Status Data Structure
The PMX84 maintains a 2-byte data structure representing the on/off status of all 16 logic outputs. Each binary bit corresponds to one logic output (see illustration). A '1' bit means the open collector logic output is on (a low impedance to ground), and a '0' bit means the open collector logic output is off (high impedance). For example, if bit 2 of the logic[1] byte is a '1', logic output 11 is on.
PMX84 Logic Status Data Structure
2-byte array with elements numbered logic[0] thru logic[1]
(msb) (lsb)
logic[1]
(transmitted first)
logic[0]
(transmitted last)
01234567
910111213141516
12345678
Computer Control of the Advantage PMX84 page 11
Loading...
+ 26 hidden pages