Audio/Variodyn

From eqqon

< Audio(Difference between revisions)
Jump to: navigation, search
m (Frequently asked questions)
 
(13 intermediate revisions not shown)
Line 1: Line 1:
-
Variodyn is the name of a paging system. the name itself an artificial word constructed from the word ''variable'' and ''dynamic'' - representing the properties of a new generation of paging systems - was introduced about 1975 at germany for the analog paging system developed by siemens.
+
==subpages==
 +
:[[/AudioWorx D1 Terminal]] [[Image:Awx terminal 2008 01 27.png|60px| |AudioWorx D1 Terminal]]
 +
:[[/PaProtocol]]
 +
 
 +
==Overview==
 +
Variodyn is the brand name of a paging system. the name itself an artificial word constructed from the word ''variable'' and ''dynamic'' - representing the properties of a new generation of paging systems - was introduced about 1975 at germany for the analog paging system developed by siemens. The brand name was given to av digital at the year 2000. Since 2008 the brand is now owned by honeywell.
=history of the variodyn system=
=history of the variodyn system=
Line 19: Line 24:
;Variodyn D1, developed 2004 by av digital
;Variodyn D1, developed 2004 by av digital
-
:this is a fully digital distributed system. only 10 different components allow to build small installations and grow up to very large installations. the benefits are detailed described at several websites. the system has overridden the features older one. over hundred installations are running worldwide.
+
:this is a fully digital distributed system. only 10 different components allow to build small installations and grow up to very large installations. the benefits are detailed described at several websites. the system has overridden the features older one. several hundred installations are running worldwide. av digital was acquired 2008 by honeywell.  
:'''status''': in production
:'''status''': in production
-
:'''links''': [http://www.av-digital.at av digital, manufacturer] | [http://www.variodyn.de german] | [http://www.variodyn.be belgium] | [http://www.variodyn.nl netherlands] | [http://gp.co.at/works/variodyn design by gp]
+
 
Line 110: Line 115:
|}
|}
</center>
</center>
-
 
-
=The PA Protocol=
 
-
The Variodyn D1 system can be controlled via commands transmitted via ethernet. the protocol used was designed around 1993 to handle new communication requirements. as initially designed for serial communication the protocol has a robust resynchronisation ability, and a weak checksum algorithm which can be implemented easily on small microcontrollers. Nowadays, the protocol is used inside a TCP channel to communicate with a controlling computer via ethernet. The TCP channel provides a session layer and also error correction and retransmission, so the weak checksum algorithm of the protocol itself is no longer a drawback.
 
----
----
-
;Version 7 (german only)
+
==external links==
-
This is the latest version used by Variodyn 3000 and early versions of the Variodyn D1 Software. Documentation and usage is not public available.
+
:[http://www.av-digital.at av digital, manufacturer]
-
 
+
:[http://www.variodyn.de german]
-
----
+
:[http://www.variodyn.be belgium]
-
;Version 8 (german only)
+
:[http://www.variodyn.nl netherlands]
-
Several extensions used by the Variodyn D1 System since Version 1.8 are added. Documentation available after registration, usage is limited to AV Digital devices.
+
:[http://gp.co.at/works/variodyn Greger Pauschitz] design by gp
-
:supported by DOM V1.8, V1.9, V2.0, V2.1
+
-
 
+
-
----
+
-
;Version 9 (english only)
+
-
There exists a nearly free documentation of the PA Protocol. Nearly free means, the document can be copied and distributed with only one requirement: you have to register.
+
-
 
+
-
The PA Protocol can be implemented and used free with also only one requirement: one endpoint of commnucation has to be a AV Digital device.
+
-
 
+
-
The PA Protocol is not available for download.
+
-
 
+
-
 
+
-
<div style="background-color:#e0e0ff; text-align:center; padding:1em 1em;">
+
-
PRECONDITIONS: the following FAQ and comments to the PA protocol requires knowlege of the PA protocol. This document cannot be published without registration due to AV Digital's license. You have to request the document at AV Digital.
+
-
</div>
+
-
 
+
-
==Frequently asked questions==
+
-
;It's not clear when transmitted characters has to be expanded. When has a transmitted or received byte to be expanded?
+
-
:The ''Data Extension'' has to be done if a transmitted byte has ''data'' meaning and the value of the byte is at the control symbol range 0xf9 ... 0xff. The data symbols table gives an overview.
+
-
<center>
+
-
{| class="eqqon_table2"
+
-
|+'''Data symbols'''
+
-
|-----------
+
-
||value ||transmitted data over wire
+
-
|-----------
+
-
||message data 0FFh ||0FFH 000H
+
-
|-----------
+
-
||message data 0FEh ||0FFH 001H
+
-
|-----------
+
-
||message data 0FDh ||0FFH 002H
+
-
|-----------
+
-
||message data 0FCh ||0FFH 003H
+
-
|-----------
+
-
||message data 0FBh ||0FFH 004H
+
-
|-----------
+
-
||message data 0FAh ||0FFH 005H
+
-
|-----------
+
-
||message data 0F9h ||0FFH 006H
+
-
|-----------
+
-
||message data 0F8h ||0F8H
+
-
|-----------
+
-
||message data 0F7h ||0F7H
+
-
|-----------
+
-
||message data 0F6h||0F6H
+
-
|-----------
+
-
|| ......... ||
+
-
|-----------
+
-
||message data 001h ||001H
+
-
|-----------
+
-
||message data 000h||000H
+
-
|}
+
-
</center>
+
-
 
+
-
 
+
-
;How can i observe the complete message list from a DOM?
+
-
:You can do this using the 'get news' command to observe a single news message with given index. To get the complete list, you have to read the all single messages by increasing the index until the DOM sends a return code not 0. See the following pseudocode:
+
-
message_index = 0
+
-
result = send_command_get_news(message_index)
+
-
while (result is 0)
+
-
begin
+
-
    wait until get_news_answer is there
+
-
    add ( read_get_news_answer() ) to news_list
+
-
    message_index = message_index + 1
+
-
    result = send_command_get_news(message_index)
+
-
end
+
-
 
+
-
 
+
-
;I've seen more than one PA message inside a UDP packet. Is this allowed?
+
-
:Yes. your implementation must handle more than one PA messages at one UDP packet.
+
-
 
+
-
 
+
-
;Is it allowed to split a PA message over many UDP packets?
+
-
:No. This is not allowed. If you do this the Receiver at the DOM will get confused. Also your implementation can ignore this.  But the maximum size of a PA message is 10000 bytes. The typical ethernet MTU is ~1500 bytes using UDP.  This oversized packets can be transmitted using IP fragmentation. which is supported by the DOM.
+
-
 
+
-
==Implementation of the PA Protocol==
+
-
: First there are some helper macros to keep the protocol layer simple for programming. All messages are created on the heap, with maximal message size. The read and write functions automatically convert to/from network byte order.
+
-
 
+
-
/* helper macros to write pa protocol messages */
+
-
#define PAMSG_MAXSIZE 10000
+
-
typedef struct { unsigned char b[PAMSG_MAXSIZE], cs; int i; } pamsg_t;
+
-
+
-
#define pa_new_message(m, mid, d1,d2,d3,d4, s1,s2,s3,s4) \
+
-
  pamsg_t *(m) = (pamsg_t*)malloc(sizeof(pamsg_t));\
+
-
  (m)->i=0; (m)->cs=0;\
+
-
  (m)->b[(m)->i++]=0xfe;\
+
-
  pa_wr8(m,d1),pa_wr8(m,d2),pa_wr8(m,d3),pa_wr8(m,d4);\
+
-
  pa_wr8(m,s1),pa_wr8(m,s2),pa_wr8(m,s3),pa_wr8(m,s4);\
+
-
  pa_wr8(m,mid);\
+
-
  (m)->i=12;
+
-
+
-
#define pa_wr8(m,d) ((m)->b[(m)->i++]=(unsigned char)(d)>=0xf9?(m)->b[(m)->i++]=0xff,~(unsigned char)(d):(unsigned char)(d),(m)->cs+=(unsigned char)(d))
+
-
#define pa_wr16(m,d) (pa_wr8(m,(d)>>8),pa_wr8(m,(d)))
+
-
#define pa_wr32(m,d) (pa_wr8(m,(d)>>24),pa_wr8(m,(d)>>16),pa_wr8(m,(d)>>8),pa_wr8(m,(d)))
+
-
+
-
#define pa_finish_message(m) do{\
+
-
                        int j=(m)->i;\
+
-
                        if((j-12)%256>0xf9) memmove(&((m)->b[13]),&((m)->b[12]),j-12);\
+
-
                        (m)->i=10; pa_wr16(m,j-12);\
+
-
                        (m)->i=j;\
+
-
                        pa_wr8(m,0x100-(m)->cs);\
+
-
                        (m)->b[(m)->i++]=0xfd;\
+
-
                        }while(0)
+
-
+
-
#define pa_message_length(m) ((m)->i)
+
-
+
-
#define pa_delete_message(m) do { if(m) free(m); (m)=0; } while(0)
+
-
 
+
-
;simple transmitter example - communication check
+
-
:This example code creates a message from ''DOM 33'' to ''DOM32'' with message id 0x0b. There is one data byte (0x00) at the data body.
+
-
 
+
-
void main (void)
+
-
  {
+
-
  int i;
+
-
  pa_new_message(m, 0x0b, 0,33,1,0, 0,0x20,1,0);
+
-
  pa_wr8(m,0);
+
-
  pa_finish_message(m);
+
-
 
+
-
  /* send the message(m,pa_message_length(m)); */
+
-
 
+
-
  printf ("%10s [%d] bytes:","message",pa_message_length(m));
+
-
  for (i=0;i<pa_message_length(m);i++) printf (" %02x",m->b[i]); }
+
-
  printf("\n");
+
-
  pa_delete_message(m);
+
-
  }
+
-
 
+
-
;simple receiver example -
+
-
/* suggest - untested code sample
+
-
#define pa_validate_message(m) do{\
+
-
                        int j=(m)->i=0;\
+
-
                        if((j-12)%256>0xf9) memmove(&((m)->b[13]),&((m)->b[12]),j-12);\
+
-
                        (m)->i=10; pa_wr16(m,j-12);\
+
-
                        (m)->i=j;\
+
-
                        pa_wr8(m,0x100-(m)->cs);\
+
-
                        (m)->b[(m)->i++]=0xfd;\
+
-
                        }while(0)
+
-
int pa_validate_message(pamsg_t *m) {
+
-
  int j;
+
-
  for (j=0,m->i=0; i<PAMSG_MAXSIZE && m->b[m->i]!=0xfd; ++m->i) {
+
-
    if (m->b[m->i] > 0xf9) { ++j; m->b[j]=~m->b[j]; }
+
-
    m->b[m->i] = m->b[j];
+
-
    }
+
-
  if((j-12)%256>0xf9) memmove(&((m)->b[13]),&((m)->b[12]),j-12);\
+
-
  (m)->i=10; pa_wr16(m,j-12);\
+
-
  (m)->i=j;\
+
-
  pa_wr8(m,0x100-(m)->cs);\
+
-
  (m)->b[(m)->i++]=0xfd;\
+
-
}
+
-
*/
+
-
 
+
-
<div style="clear:both;"></div>
+
-
==PA Protocol examples==
+
-
This section contains communication examples of representative scenarios of systems in use.
+
-
 
+
-
===Example - activate and deactivate a audio route===
+
-
A simple local audio route is activated, and deactivated again.
+
-
 
+
-
{| style="border-collapse:collapse; padding:0px; border-spacing:0px; font-size:90%;"
+
-
|+'''sequence diagram'''
+
-
|------- style="width:100%; border-bottom:3px solid #e0e0e0; font-size:115%;"
+
-
|colspan="3"|
+
-
{| style="width:100%;"
+
-
|-------
+
-
||DOM [loc. 99. sc.  0]
+
-
|style="text-align:right;"|PC [loc.103. ho.  0]
+
-
|}
+
-
 
+
-
 
+
-
|------- style="text-align:center;"
+
-
|colspan="3"|''the DOM has no connections, and reports periodically an empty destination busy info.''
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||RESPONSE destination busy info ||from [loc. 99. sc.  0] to [loc.255. ho.  0] mid[  1] data:  87 00 00 00 00 63 01 00 01 00 04 87 00 00 00 0c
+
-
 
+
-
 
+
-
|------- style="text-align:center;"
+
-
|colspan="3"|''the PC activates a audio route from ai 0 to dd 4, priority 41, .''
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_rl.png]] ||COMMAND activate route ||from [loc.103. sc.  0] to [loc. 99. sc.  0] mid[  1] data:  00 94 2e 29 48 67 00 00 00 00 01 00 ff 00 00 00 00 01 63 10 00 01 08 00
+
-
 
+
-
 
+
-
|------- style="text-align:center;"
+
-
|colspan="3"|''the DOM executes the command, activates the audio route and sends a response back indicating the status.''
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||RESPONSE activate route ||from [loc. 99. sc.  0] to [loc.103. sc.  0] mid[  1] data:  80 00 94 2e 00 3d 00 00 00 00 09 80 00 94 2e 00 3d 00 00 00 ab
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||RESPONSE destination busy info ||from [loc. 99. sc.  0] to [loc.255. ho.  0] mid[  1] data:  87 00 03 01 00 63 01 00 01 00 05 87 00 03 01 00 07
+
-
 
+
-
 
+
-
|------- style="text-align:center;"
+
-
|colspan="3"|''if everything is well configured, the audio route is activated now. the DOM checks now periodically (~10 seconds) every route. The PC has to reply to this command to confirm this route is still active. If the PC gives no response to this request, the DOM will deactivate this audio route after ~30 seconds.''
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||COMMAND check route ||from [loc. 99. sc.  0] to [loc.103. sc.  0] mid[  1] data:  09 94 2e 00 3d 63 01 00 01 00 05 09 94 2e 00 3d 26
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_rl.png]] ||RESPONSE check route ||from [loc.103. sc.  0] to [loc. 99. sc.  0] mid[  1] data:  89 00 94 2e 00 3d
+
-
 
+
-
 
+
-
|------- style="text-align:center;"
+
-
|colspan="3"|''the PC deactivates now this route''
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_rl.png]] ||COMMAND deactivate route ||from [loc.103. sc.  0] to [loc. 99. sc.  0] mid[  1] data:  01 94 2e 00 3d
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||RESPONSE deactivate route ||from [loc. 99. sc.  0] to [loc.103. sc.  0] mid[  1] data:  81 00 94 2e 00 3d 03 00 00 00 09 81 00 94 2e 00 3d 03 00 00 a7
+
-
|------- style=" vertical-align:top;"
+
-
||[[Image:arrow_lr.png]] ||RESPONSE destination busy info ||from [loc. 99. sc.  0] to [loc.255. ho.  0] mid[  1] data:  87 00 00 00 00 63 01 00 01 00 04 87 00 00 00 0c
+
-
 
+
-
 
+
-
|}
+
-
 
+
-
<div style="clear:both;"></div>
+

Latest revision as of 14:58, 6 January 2009

Contents

subpages

/AudioWorx D1 Terminal AudioWorx D1 Terminal
/PaProtocol

Overview

Variodyn is the brand name of a paging system. the name itself an artificial word constructed from the word variable and dynamic - representing the properties of a new generation of paging systems - was introduced about 1975 at germany for the analog paging system developed by siemens. The brand name was given to av digital at the year 2000. Since 2008 the brand is now owned by honeywell.

history of the variodyn system

Variodyn
the first system was an fully analog system, consisting of several components pre amplifiers, mixers and power amplifiers. the paging behavior of an installation was made by wiring contacts and relays. line relays were installed to get better control where the signal is distributed and get a better cost effort due power amplifiers are expensive. with the line relays it was possible to drive more lines, not using all the lines at the same time. we have no more information about the components.
status: not in production
Variodyn 2000, developed 1985 by siemens
this was also an analog system. the new innovation was to design all the components mechanical and electrical compatible, so that the components could be combined in thousands of variations by wiring at the rack. the components also had the necessary paging switches on board and used electronic switches instead of relays to switch audio. there was also a small audio matrix (4x4) supported by each component, and the audio switches were easy controllable by external contacts. the main behavior of the system had to be implemented by relays which were supported by some components implementing often used behavior.
status: not in production
Variodyn 2030, developed 1987 by siemens
this is an extension for the variodyn 2000 devices. all the devices were designed to plug on a interface for digital control. with this interface the audio switches of the devices were controllable by a microprocessor. new components were developed to get user interaction from keys and switches and show the system's operating states via lights to the user. the software was then controlling the behavior of the audio switches and allowed then more complex behavior to implement than it was possible using only relays.
status: not in production
Variodyn 3000, developed 1991 by siemens
this is an analog system digitally controlled. the innovation was to replace the expensive parallel control bus used by the Variodyn 2000 system by a serial bus. this reduced also rack wiring complexity and allowed to build up larger systems. all the components use relays to switch audio and allows to control digitally the audio volume at each device. a more powerful processor controlling the behavior was also developed. then the software was enabled with a lot of features for paging systems. a configuration phase was introduced defining the behavior and devices installed at the system.
status: not in production
Variodyn D1, developed 2004 by av digital
this is a fully digital distributed system. only 10 different components allow to build small installations and grow up to very large installations. the benefits are detailed described at several websites. the system has overridden the features older one. several hundred installations are running worldwide. av digital was acquired 2008 by honeywell.
status: in production



Variodyn is a resistered trademark by av digital gmbh.

thanks to harry for helping

Features of the Variodyn Systems

table: comparision of functions
Variodyn D1 Variodyn 3000 Variodyn 2030 Variodyn 2000
system complexity
modules 9 >50 >70 >50
technology digital control
digital audio
digital control
analog audio
digital control
analog audio
key and relay wired control
analog audio
basic public address functions
monitoring yes yes yes yes
autonomous generated signals yes yes yes yes
autonomous audio storage yes yes yes no
sinal processing yes no no no
environmental noise compensation yes yes no no
multiple connections yes yes yes, max 4 no
connection priority yes yes no no
connection conflict management yes yes no no
connect group of lines yes yes no no
remote administration yes yes no no
configuration configuration tool, telnet configuration tool, EIA232 no no
alarm mode yes yes no no
power amplifier replacement yes yes no no
loudspeaker line survey yes yes yes, hardware no
power amplifier survey yes yes yes, hardware no
earthfault survey yes yes yes, hardware no
networking yes, eth100 yes, EIA232 no no
time scheduling of connections yes no no no
time synchronization yes yes no no

external links

av digital, manufacturer
german
belgium
netherlands
Greger Pauschitz design by gp