home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / palsum2 / bbencode.pds < prev    next >
Text File  |  1987-08-26  |  6KB  |  156 lines

  1. TITLE        MANCHESTER ENCODER.
  2. PATTERN        04.
  3. REVISION    01.
  4. AUTHOR        CHRIS JAY.
  5. COMPANY        MMI SANTA CLARA, CA.
  6. DATE        17 JULY 1986.
  7. ;
  8. ;THE PAL22CV10 HAS BEEN DESIGNED TO FUNCTION AS A MANCHESTER
  9. ;ENCODER CIRCUIT. THE BINARY DATA INPUT WILL DETERMINE WHETHER
  10. ;THE TRANSMISSION SIGNAL SHOULD BE IN PHASE WITH A CLOCK
  11. ;REFERENCE OR SHIFTED BY 180 DEGREES FROM THAT REFERENCE.
  12. ;THE CHARACTERSTIC OF A MANCHESTER ENCODED SIGNAL IS A
  13. ;CHANGE OF PHASE FOR EACH TRANSITION OF THE DATA INPUT.
  14. ;ASSUMING THAT 'X' IS THE PHASE OF THE CARRIER THAT ENCODES
  15. ;A LOGIC LOW INPUT, WHEN THE INPUT DATA TRANSITIONS
  16. ;TO A LOGIC HIGH THE PHASE OF THE CARRIER WILL BE SHIFTED
  17. ;TO 'X + 180'.  IT WILL CHANGE BACK TO 'X' ONLY WHEN THE
  18. ;DATA INPUT TRANSITIONS FROM A LOGIC HIGH TO A LOGIC LOW. 
  19. ;THE KEY FEATURES OF THE ENCODED SIGNAL ARE;
  20. ;
  21. ;    1. DATA AND CLOCK FREQUENCY INFORMATION IS
  22. ;    CONTAINED IN THE ENCODED SIGNAL. CLOCK 
  23. ;    INFORMATION MAY BE EXTRACTED BY USING A
  24. ;    PHASE LOCKED LOOP IN THE RECEIVER.
  25. ;    2. NO D.C. COMPONENT IS CONTAINED IN THE
  26. ;    PHASE ENCODED SIGNAL.
  27. ;
  28. ;THE APPLICATIONS OF A PHASE ENCODED SIGNALS CAN BE IN SHORT
  29. ;COMMUNICATIONS LINKS; SUCH AS ETHERNET,OR INFRA RED TRANS-
  30. ;-MISSIONS OR IN STORAGE ON SOME MAGNETIC MEDIA.
  31. ;
  32. ;THERE ARE EIGHT DATA INPUTS D0 TO D7, DATA PRESENT ON THESE
  33. ;PINS WILL BE ENCODED INTO A BI-PHASE SIGNAL AT THE OUTPUT
  34. ;QX, WHEN THE SER(SERIAL) INPUT DATA PIN IS CONFIGURED
  35. ;TO A LOGIC ZERO. TO CONVERT A SERIAL DATA STREAM OF LOGIC
  36. ;ONE'S AND ZERO'S INTO A PHASE ENCODED SIGNAL THE SER INPUT
  37. ;INPUT IS TIED HIGH, AND THE DATA IS APPLIED TO THE D0 INPUT
  38. ;OF THE PAL DEVICE. A CLOCK INPUT OF 16 TIMES THE DATA RATE
  39. ;IS REQUIRED FOR THE PARALLEL OR SERIAL ENCODING OF THAT
  40. ;DATA, SO THE DESIGN MAY BE USED WITH MANY POPULAR UART LSI
  41. ;CIRCUITS. THERE IS ONE HANDSHAKE OUTPUT FROM THE DEVICE,
  42. ;RDY, THIS SIGNAL GOES HIGH WHEN THE NEXT DATA BYTE, OR BIT
  43. ;IS REQUIRED TO BE SET UP AT THE INPUT.
  44. ;
  45. CHIP BIPHASE PAL22V10
  46. ;
  47. ;PIN    1    2    3    4    5     6
  48.     CLK     /RST     D0    D1    D2    D3
  49.  
  50. ;PIN    7    8    9    10    11    12
  51.     D4    D5    D6    D7    NC    GND
  52.  
  53. ;PIN    13    14    15    16    17    18
  54.     SER    RDY     /DTST    RC    RB    RX
  55.  
  56. ;PIN    19    20    21    22    23    23
  57.     RA    R3    R2    R1    R0    VCC
  58.  
  59. GLOBAL                    ;GLOBAL TERM
  60.                     ;ENABLES RESET.
  61.                     ;STRING DECLARATIONS.
  62. STRING S0 '/RA*/RB*/RC'            ;ENCODE STATE 0
  63. STRING S1 'RA*/RB*/RC'            ;ENCODE STATE 1
  64. STRING S2 '/RA*RB*/RC'            ;ENCODE STATE 2
  65. STRING S3 'RA*RB*/RC'            ;ENCODE STATE 3
  66. STRING S4 '/RA*/RB*RC'            ;ENCODE STATE 4
  67. STRING S5 'RA*/RB*RC'            ;ENCODE STATE 5
  68. STRING S6 '/RA*RB*RC'            ;ENCODE STATE 6
  69. STRING S7 'RA*RB*RC'            ;ENCODE STATE 7
  70.                     ;FOR PARALLEL INPUT
  71. EQUATIONS                ;S0 SELECTS D0 INPUT
  72.                     ;S1 SELECTS D1 INPUT
  73. GLOBAL.SETF = RST            ;ETC. SET INITIAL
  74.                     ;CONDITIONS, RESET.
  75. /R0      :=  R0                ;R0 - R3, R0 DIVIDES
  76.                     ;THE CLOCK INPUT BY 2.
  77. /R1      := R1*R0            ;R1 DIVIDES THE CLOCK
  78.           + /R1*/R0            ;BY 4.
  79.                     ;
  80. /R2      := R2*R1*R0            ;R2 DIVIDES THE CLOCK
  81.            + /R2*/R1            ;BY 8.
  82.       + /R2*/R0            ;
  83.                     ;
  84. /R3      := R3*R2*R1*R0            ;R3 DIVIDES THE CLOCK 
  85.            + /R3*/R2             ;BY 16.
  86.       + /R3*/R1            ;
  87.       + /R3*/R0            ;
  88.                     ;RDY OUTPUT PERFORMS
  89. RDY      := RA*RB*RC*R3*R2*R1*R0*/SER    ;A HANDSHAKE OPERATION
  90.           + R3*R2*R1*R0*SER        ;WHEN HIGH, NEW DATA
  91.                     ;MAY BE APPLIED.
  92. /RA      := R0*R1*R2*R3*RA*/SER        ;COUNTER RA,RB,RC
  93.            + /R0*/RA*/SER        ;COUNTS THE NUMBER
  94.            + /R1*/RA*/SER        ;OF BITS TRANSMITTED
  95.            + /R2*/RA*/SER        ;WHEN A BYTE IS
  96.            + /R3*/RA*/SER        ;APPLIED TO THE
  97.            + SER                ;D0 - D7 DATA INPUTS
  98.                     ;THE LOGIC CONDITION
  99. /RB      := R0*R1*R2*R3*RA*RB*/SER    ;OF THE SELECTED  
  100.            + /R0*/RB*/SER        ;INPUT IS MULTIPLEXED
  101.            + /R1*/RB*/SER        ;TO THE RX REGISTERED
  102.            + /R2*/RB*/SER        ;OUTPUT BY THE 'ONE OF 
  103.            + /R3*/RB*/SER        ;EIGHT' STATE SELECTOR,
  104.            + /RA*/RB*/SER        ;IN THE DIVIDE BY EIGHT
  105.            + SER                ;COUNTER RA, RB AND RC.
  106.                     ;FOR SERIAL TX /RA*/RB*/RC
  107. /RC      := R0*R1*R2*R3*RA*RB*RC*/SER    ;SELECTS D0, RA*/RB*/RC
  108.            + /R0*/RC*/SER        ;SELECTS DATA INPUT D1
  109.            + /R1*/RC*/SER        ;ETC, WHILE /SER SELECTS 
  110.            + /R2*/RC*/SER        ;PARALLEL OPERATION. IF
  111.            + /R3*/RC*/SER        ;/SEL IS ACTIVE SERIAL
  112.            + /RA*/RC*/SER        ;ENCODING IS SELECTED
  113.            + /RB*/RC*/SER        ;THE SERIAL DATA APPLIED
  114.            + SER                ;TO THE D0 INPUT IS
  115.                     ;ENCODED. D1 - D7 INPUTS
  116.                     ;ARE DESELECTED.
  117. /DTST       :=  S0*D0            ;D0 - D7 IS SERIALASED
  118.       +  S1*D1*/SER            ;FOR PARALLEL TX.
  119.       +  S2*D2*/SER            ;FOR SERIAL TX, D0 ONLY
  120.       +  S3*D3*/SER            ;IS CLOCKED THROUGH TO
  121.       +  S4*D4*/SER            ;THE DTST OUPUT.
  122.       +  S5*D5*/SER            ;/DTST OUTPUT IS THE
  123.       +  S6*D6*/SER            ;SERIALISED ENCODING
  124.       +  S7*D7*/SER            ;OF THE DATA INPUT
  125.                     ;D0 - D7, OR D0.
  126. /RX  := S0*/R3*D0 + S0*R3*/D0        ;THE RX OUTPUT PROVIDES
  127.      +  S1*/R3*D1*/SER + S1*R3*/D1*/SER    ;THE MANCHESTER ENCODED
  128.      +  S2*/R3*D2*/SER + S2*R3*/D2*/SER    ;OUTPUT OF THE REFERENCE
  129.      +  S3*/R3*D3*/SER + S3*R3*/D3*/SER    ;FREQUENCY, WHICH OCCURS AT
  130.      +  S4*/R3*D4*/SER + S4*R3*/D4*/SER    ;THE R3 OUTPUT. THE PHASE
  131.      +  S5*/R3*D5*/SER + S5*R3*/D5*/SER    ;AT R3 IS SHIFTED AT THE
  132.      +  S6*/R3*D6*/SER + S6*R3*/D6*/SER    ;RX OUTPUT IF THE SELECTED
  133.      +  S7*/R3*D7*/SER + S7*R3*/D7*/SER    ;DATA INPUT POLARITY CHANGES.
  134.                     ;IF /SER IS INACTIVE D0 - D7
  135.                     ;INPUTS ARE SELECTED. IF
  136.                     ;/SER IS ACTIVE ONLY THE
  137.                     ;SERIAL INPUT APPLIED TO
  138.                     ;D0 IS SELECTED.
  139. SIMULATION                ;    
  140. TRACE_ON CLK R0 R1 R2 R3 RA RB RC RX    ;
  141.      /DTST RDY D0 D1 D2 D4 D5 D6 D7    ;
  142.      SER  RST            ;SET INITIAL CONDITIONS
  143. SETF    /CLK RST D0 D1 /D2 D3 D4 /D5    ;FOR DATA, AND CONTROL 
  144.     /D6 /D7 /SER            ;INPUTS.
  145. SETF     RST                ;PARALLEL MODE SET. RESET
  146. CLOCKF  CLK                ;ACTIVE TO INITALISE THE
  147. SETF    /RST                ;REGISTERS. SET FOR THE
  148. FOR I := 1 TO 128 DO            ;PARALLEL INPUT MODE CLOCK
  149. BEGIN CLOCKF CLK            ;8 DATA BITS THROUGH TO
  150. END                    ;R3 AND RX OUTPUTS. SET
  151. SETF SER D0                ;THE SERIAL MODE VIA
  152. FOR I := 1 TO 32 DO            ;SERIAL INPUT CONTROL
  153. BEGIN CLOCKF CLK            ;PIN. CLOCK SYSTEM TO
  154. END                    ;SELECT SERIAL OPERATION.
  155. TRACE_OFF                ;
  156.