next up previous contents
Next: Serial Communication Controller Up: Bitübertragungsschicht Previous: Interchip Digital Link

   
Time Slot Assigner

Das Timing des IDL-Buses wird mit Hilfe des TSA erzeugt. Dem TSA kann über SI-RAM Einträge mitgeteilt werden, welcher SCC zu welchem Zeitpunkt auf den zeitmultiplexten IDL-Kanal geschaltet wird. Die Programmieranleitung für die SI-RAM-Einträge ist im Handbuch des MPC860 [24], im Abschnitt 16.12.4.5 auf Seite 16-106 zu finden. Beispiele sind auf den Seiten 16-109, 16-131 (10 Bit-IDL) und 16-135 (GCI) vorhanden.

 
 
Tabelle: SI-RAM Einträge für 8-Bit-IDL
  RAM Word  
[-1.5ex]Eintrag Nr. SWTR SSEL CSEL CNT BYT LST [-1.5ex]Beschreibung
1 0 0000 010 0000 1 0 8 Bit SCC2 für B-Kanal 1
2 0 0000 011 0000 1 0 8 Bit SCC3 für B-Kanal 2
3 0 0000 100 0001 0 1 2 Bit SCC4 für D-Kanal
Anmerkung: Die Tabelle ist nach einem Beispiel des MPC860-Handbuchs [24] angefertigt worden.
Die Abkürzungen werden dort in Abschnitt 16.12.4.5 erklärt

Für 8-Bit IDL werden die verwendeten SI-RAM Einträge in Tabelle 3.5 gezeigt. Dabei wird davon ausgegangen, dass SCC2 für den ersten B-Kanal, SCC3 für den zweiten B-Kanal und SCC4 für den D-Kanal verwendet wird (wie in Abbildung 3.14 gezeigt). Da IDL die gleichen SI-RAM Einträge fürs Senden und Empfangen benötigt, wird das SI-RAM wie folgt programmiert:
Definitionen aus BSP (ppc860Siu.h):

# define SIRAM(base) (CAST(VUINT32 *) (base + 0x0C00)) /* SI Routing RAM */
C-Programm:

UINT32 immrVal = vxImmrGet();

*(SIRAM(immrVal)+0) = (0x00820000);
*(SIRAM(immrVal)+1) = (0x00C20000);
*(SIRAM(immrVal)+2) = (0x01050000);
*(SIRAM(immrVal)+64) = (0x00820000);
*(SIRAM(immrVal)+65) = (0x00C20000);
*(SIRAM(immrVal)+66) = (0x01050000);
Beim verwendeten ,,One Multiplexed Channel with Static Frames``-Modus (siehe MPC860-Handbuch, Abschnitt 16.12.4.1) liegen die Einträge für die Empfangsrichtung bei der SI-RAM-Adresse 0 und für die Senderichtung bei Adresse 64 (Achtung: Dies entspricht einem Offset von 256 Bytes zwischen SI-RAM-Adresse 0 und 64, da ein Eintrag 4 Byte lang ist). SIRAM() ist eine Definition des BSP, die den Offset des SI-RAMs der Adresse des IMM hinzu addiert und somit die Startadresse des SI-RAMs liefert.

 
 
Tabelle 3.6: Zuordnungstabelle des Parameter-RAMs
  Seite Adresse Peripherie
IMMR + 0x3C00 1 DPRAM_Base + 0x1C00 SCC1
    DPRAM_Base + 0x1C7F  
    DPRAM_Base + 0x1C80 I2C
    DPRAM_Base + 0x1CAF  
    DPRAM_Base + 0x1CB0 MISC
    DPRAM_Base + 0x1CBF  
    DPRAM_Base + 0x1CC0 IDMA1
    DPRAM_Base + 0x1CFF  
IMMR + 0x3D00 2 DPRAM_Base + 0x1D00 SCC2
    DPRAM_Base + 0x1D7F  
    DPRAM_Base + 0x1D80 SPI
    DPRAM_Base + 0x1DAF  
    DPRAM_Base + 0x1DB0 Timers
    DPRAM_Base + 0x1DBF  
    DPRAM_Base + 0x1DC0 IDMA2
    DPRAM_Base + 0x1DFF  
IMMR + 0x3E00 3 DPRAM_Base + 0x1E00 SCC3
    DPRAM_Base + 0x1E7F  
    DPRAM_Base + 0x1E80 SMC1
    DPRAM_Base + 0x1EBF  
    DPRAM_Base + 0x1EC0 DSP1
    DPRAM_Base + 0x1EFF  
IMMR + 0x3F00 4 DPRAM_Base + 0x1F00 SCC4
    DPRAM_Base + 0x1F7F  
    DPRAM_Base + 0x1F80 SMC2
    DPRAM_Base + 0x1FBF  
    DPRAM_Base + 0x1FC0 DSP2
    DPRAM_Base + 0x1FFF  
Legende:
DSP = Digital Signal Processor
IDMA = Independent Direct Memory Access
I2C = Synchroner Multimaster Bus
SCC = Serial Communication Controller
SMC = Serial Management Controller
SPI = Serial Peripheral Interface
Hinweis:
IMMR = 0xfa200000 und DPRAM_Base = 0x2000


Quelle: [24], Seite 16-17


next up previous contents
Next: Serial Communication Controller Up: Bitübertragungsschicht Previous: Interchip Digital Link
Thorsten Thormaehlen
2000-03-27