QMC (QUICC Multichannel Controller). QMC-npo- 64 SCC-, TDM- . QMC- . TDM- QMC-. 860 TDM-, SCC-. QMC- : 860 ( MPC860EN), MPC860DH ( MPC860DE).
64- QMC- 50 , . 64- QMC- 50 860 SCC-, 32- QMC-. 860 QMC- . QMC- 64 /, 1/1, 6464 / = 4 /.
PRI ISDN . 1 24 64 / . 1 () 32 64 / . . . 8 (125 ). : 8 . , 1 2048 / = 8 256 , 1 1544 /=8 193 . 24 1 32 1. .
1/1 QMC- 64 TDM-. 1- 32 (64 /), 1 - 24 (64 /), - SCC- 64 , 1/1-, SCC-. HDLC-, (transparent) . TDM- SCC-. RISC- SCC- , QMC-. SCC - , -, , 64 . SCC- - SCC-. SCC1- FIFO SCC-, QMC-. SCC-, QMC-, SCC- . TDM- SCC-, , , , , . MC860MH/DH.
|
|
64 SCC-.
64 TDM-
. 860 -
TDM-, -
.
RX- -
128 TDM-.
32- 1-
50 .
128 DMA-.
.
HDLC Transparent- .
.
.
. ,
TDM-.
.
- ,
TDM-,
68302.
.
24- T1/DS1 32- 1/ -
, basic ISDN primary ISDN.
2048,1544, 1536 / -.
.
.
, , .
, 11, 12 ISDN-.
|
|
TDM- : , , . NMSI- . NMSI-
( LOOP:= 1) , . , . , N , N .
QMC- TDM-. .
Q-. QMC- SCC-. SCC- TDM- , . QMC- .
. 5.89, 5.90 Ethernet-BRI ISDN MPC860EN ( QMC-) 860 ( QMC-). BRI ISDN- (2B+D). SCC- (SCC2, SCC3, SCC4), , - SCC2. SCC- , . SCC1 Ethernet, a SMC-, UART, - . - SCC1 SMC2 NMSI- . SPI ISDN-. 860 S/T- 145574 - DS2180A, Ethemet-PRI ISDN, 32- ISDN ( +1D) 52-.
. 5.89. Ethernet-BRI ISDN MPC860EN
, TDM- QMC SCC- , SCC- SMC-.
QMC- .
, -
. CRC , , , 8 . .
. TDM- , , -
-.
,
.
-. ,
TDM-
, .
|
|
Q-. SCC-, QMC-, SCC-, . , . 860 , .
SCC- (), - SCC-. QMC- , SCC-. OxAF , , , . , 860 SCC1- QMC- PC- .
QMC- : , , - (- ).
(. 5.59) ISA- . - TSATRx TSATTx 32 , SCC base+0x20 SCC base+0xA0, Rx_S_PRT Tx_S_PTR ( , DPRBASE). 64 64 , . . , , Rx- - SCC-, Rx_S_PRT Tx_S_PTR .
Tx_S_PTR TSATTx. TSA- TX_S_PTR = SCCbase+00, , TX_S_PTR = SCCbase+0x20. SCC.
Rx_S_PTR TSATRx. RX_S_PTR=SCCbase+Ox20. SCC-.
MCBASE , RBASE TBASE - 16- (offset) . RBASE TBASE . , MCBASE+RBASE_5.
|
|
QMC- 64- . . SCC- 64 /4 = 16384 . 4- , . 32 , 16384/(322) = 256 256 . . . 32- , , . QMC- .
|
RxPTR SCCbase+0x20, . . TSARx. TxPTR SCCbase+00, . . TSATx. RICS- .
GRFCNT - , , . 0 RXF- GRFTHR.
, . ,
QMC- . - INTBASE , a nepee INTPTR- , RISC- . INTPTR:= INTBASE.
TSA- 32 16 (. 5.91) 32 (TSA Rx-) (TSA -). , N- .
V (Valid) , .
V =0, , -
, 1.
V= 1, 8 (,
-) -
.
W (Wrap) TDM- . W = 1, . () RISC- 0.
|
|
Channel pointer - 6- , , . 12 - (: RBASE S). TSATRx channel pointed( TSATTx channel pointer), 6 . . 12- 64- - . - , , 32- 32x64 = 2 RAM, 64- - 64x64 = 4 .
- 8 , channel pointer 0 (DPBASE), 0 . channel pointer 1 DPBASE+4, 1 . , channel pointer TSA-, , .
MASK[0:7] , . 0, . 1.
SCC- TDM-. , TDM- SCC- ( SCC: SCC3), QMC-. SCC- . , TDM- SCC- . , SCC2 , SCC3 - . SCC- ISA- TDM-. SCC- TSA-.
(, 32- TDM-) SCC- QMC-, Rx_S_PTR_2 Rx_S_PTR_3, TSA- SCC2. , TSA- SCC2, TSA- SCC3 . Rx_S_PTR_2 SCC2_base+0x20. , SCC2, 16 . 30 W = 1, , SCC2 . Rx_S_PTR_3 SCC2_base+0x40. , SCC3, , 17- 32-. 31 W = 1, , SCC3 . . , SCC2 SCC3 . TSATTx SCC2, TSA- SCC3 , .
(, 64- TDM-) TSA- 256 (64 2 2 ), SCC- 128 . . SCC2 SCC3 SCC2, - SCC3. SCC- , . .
, SCC- TSA- , SCC-. , , - SCC- .
- . - (Channel-Specific parameter RAM) () . TDM- TSA-. . 64 , , . SCC-. QMC- HDLC- transparent .
HDLC-. . 5.60.
TBASE RBASE 64-- , MCBASE .
TBPTR RBPTR 64-- , MCBASE . , MCBASE+TBPTR.
SCC- MFLR, ( 64 ), . , MFLR, , LG = 1 , RXF RXB , .
MODE CHAMR (. 5.92) , . MODE = 0, Transparent, MODE=1 - HDLC-.
IDLM IDLE ( IDLM = 1) . IDLM = 0, IOLE- . NOF+1 , . , .
ENT = 1 , . ENT = 0, , , 1. , QMC-, ZDSTATE RSTATE .
POL = 0, R (Ready) . POL = 1, .
HDLC- CRC . CRC = 0, 16- CCITT-CRC . CRC = 1, 32- CCITT-CRC .
TSTATE , RSTATE - . (. 5.93) Motorola/Intel. -1 , , . . = 0, little-endian, Intel. = 1, big-endian, Motorola. 860 TSTATE 0x30000000. RSTATE , STOP RX 0x31000000 860. . 8 32- xSTATE 1, ( ). 9 1,
BD , ( ). 1 2 TSTATE 1, . 1 1 RSTATE 1, . 16 RSTATE BD.
, , , (. 5.94). . INTMSK (. 5.95) , 0 , .
Transparent-. . 5.61 - Transparent.
TBASE RBASE, TBPTR RBPTR, ZISTATE ZDSTATE, TSTATE RSTATE , QMC HDLC-.
MODE CHAMR (. 5.96) , . MODE = 0, Transparent, MODE = 1 - HDLC-.
RD . RD = 0, / LSB-. RD = 1, MSB-.
ENT = 1 , . =0, , , 1. , QMC-, ZDSTATE RSTATE .
POL = 0, R (Ready) . POL = 1, .
, , , (. 5.97). . INTMSK (. 5.98) , λ , .
. 5.96. CHAMR QMC-Transparent-
SYNC CHAMR QMC Transparent. SYNC 0, . SYNC = 1, , TRNSYNC . , , . TRNSYNC . , - .
QMC-. QMC- RISC-. CR (. 5.99).
(. 5.62). , (start) , GSMR.
. SCC- (. 5.100), QMC-, , . , 1. , 1 SCCM.
, , (. . 5.94, 5.97). INTBASE . INTPTR , RISC-. W = 1 (Wrap) . - RISC- INTPTR:= INTBASE.
QMC- , RISC- , INTMSK . , . (. 5.101) , . V = 1 (Valid), , . INTPTR. QMC- SCCE SCC-. RXF (, ), GRFCNT, , . 0, . GRFCNT 0 , GINT, 1 , . GINT . V:= 0 , , V = 1.
RISC- , , . . V = 1, IQOV:= 1. .
NID (not idle) 1, , IDLE-. Transparent- N ID- .
IDL HDLC- IDLE- (0xFFFE). Transparent IDL .
MRF 1 HDLC-, , , MFLR . , . Transparent MRF .
QMC- , : GUN (Global transmitting underrun), - , GOV (Global receiver overrun), . GUN- 16 , GUN SCCE SCC-, IDLE FLAG . GOV RSTATE ( 20 , ), GOV SCCE SCC-, , ZDSTATE, RSTATE.
SDMA- . bus latency , SDMA- FIFO , , .
( UN ) . 16 , UN , IDLE FLAG .
RXF 1, HDLC-, . GRFCNT . ABORT, , RXB = RXF:= 1 := 1 . Transparent RXF .
, , , (busy condition) BSY:= 1. .
, := 1. , , FIFO- PAD , PAD = 0. , - TXD.
RXB:= 1.
QMC-.
1. SIMODE.
( SDMx:=00), grant
( GMx:= 0) STZx:= 0. - SMCx, SMCxCS, RFSDx, DSCx,
CRTx, CEx, FEx TFSDx -
.
CRTa = RFSDa = TFSDa:= 1,
1 .
2. SICR.
GRx:= 0, (grant),
SCx:= 1, SCCx TSA. SCC-
, RxCSx TxCSx,
.
3.
TDMa TDMb: LITXDx ( ), MRXDx ( ), LITCLKx
), LIRCLKx ( ). , -
A: PAPAR:= 0xA5F0 PADIR:= Ox00F0.
4.
LICLKOx TDMa TDMb,
L1ST1-L1ST4. ,
: PBPAR:= 0xF00 PBDIR:= 0000.
5.
TDMa TDMb: LITSYNCx URSYNCx (
), L1ST1-L1ST4 ( -
). , : PCPAR:=
:= 0x0F0F PCDIR:= 0x000F.
6. SI RAM, ,
SCC- . ,
SCC1-,
: SIRAM[0]:= 0x0042... SIRAM[n-1]:- 0x0042, SIRAM[n]:=
:= 0x0043 ( Last = 1),
: SIRAM[32]:= 0x0042... SIRAM[32+n-1]:= 0x0042, SIRAM[32+n]:= 0x0043.
7. SIGMR := 1,
, - TDMa TDMb - ,
RDM, . , SIGMR
:=:= . , - TDMa- TDMb-,
32 (64)- .
8. ,
.
Sl- SICMR. SICMR = 0x00,
, SICMR = 0xF0,
TDM-.
9. SCC- GSMR_H.
Transparent- ( TRX = = TCRC = RSYN:= 0),
cts ( CDP = = CDS = CTSS:= 1),
( REVD:= 0),
InfraRed ( IRP)
( GDE),
FIFO ( TFL:= 0), FIFO
32 ( RFW:= 0),
( TXSY:= 0), ( SYNL:= 00),
IDLE- ( RTSM:= 0).
GSMRH:= 0x00000780.
10. SCC- GSMR_L. InfraRed ( SIR), ( EDGE:= 00),
( TCI:= 0),
( TSNC:= 00), DPLL ( RINV =
= TINV:= 0) NRZ- ( RENC = TENC:= 000),
( TDCR = RDCR:= 000),
1 ( TEND:= 0), ( TPL =
= := 000), ( ENT = ENR:= 0),
QMC- ( MODE:= 1010),
( DIAG). GSMRJ-:= 00000000.
11. QMC-
: MCBASE,
INTBASE, HDLC-
MRBLR ( 30
4 ), GRFTHR
( GRFTHR:= 1), GRFCNT (
GRFCNT:= GRFTHR), 32-
C_MASK32:= 0xDEBB20E3, 16-
- C_MASK16:= 0xF0B8.
12. INTBASE
INTPTR:= INTBASE.
13. TSA- TSATTx TSATRx.
V:= 1, W:= 0 , .
, OxFF.
-
(channel pointer).
14. Tx_S_PTR Rx_S_PTR,
TxPTR RxPTR.
Tx_S_PTR = TxPTR TSA- ,
Rx_S_PTR = RxPTR - TSA- .
TSA-, MCBASE+0x20.
15. QMCSTATE:= 0x8000.
16. -
(HDLC
Transparent).
TBASE RBASE
(,
MCBASE+TBASE MCBASE+RBASE).
RBPTR:= RBASE TBPTR:= TBASE.
TSTATE:= 0x30000000
860 RSTATE:= 0x31000000 860.
ZISTATE:= 0x00000100, ZDSTATE:= 0x80 HDLC-
ZDSTATE:= 0x18000080 Transparent-.
, INTMSK, ,
INTMSK:= 0. HDLC-
MFLR, Transparent-
TMRBLR (
30 4 ). Transparent-
TRNSYNC.
17.
.
RBASE. := 1,
I:= 1,
W:= 1.
18.
.
TBASE. R:= 1,
I:= 1,
W:= 1.
19. .
, V:= W:= 0,
W:= 1.
20. CHAMR,
HDLC- Transparent.
(ENT:= 0),
, . , HDLC-
CHAMR:= 0x9187.
21. SCCE SCCx-.
1 SCCE:= OxF.
22. SCCM SCCx-.
, 0xF.
SCCx- CIMR
1,
.
23. GSMRJ. SCCx-
, ENT:= ENR:= 1.
QMC-. 860 64- 4 (64 64 = 4096 ). QMC- , , . 64 , / 4 256 . SCC1, I2C, IDMA1 miscellaneous. - SCC2, SPI, RISC- SPI--. SCC3, SMC1 DSP1-. - SCC4, SMC2 82-. - , .
QMC- SCC- (Shared QMC), SCC- 170 , TSA- (128 ). SCC- TSA-, SCC-- 172 (44 128 TSA-), SCC- 44 (. 5.63).
. . 5.64 860.
. 5.65 .
pa . . , . .
1. 25 , SCC1 10-/ Ethernet-, SCC2 2-/ HDLC-, SCC3 64-/ HDLC-, SCC4 9,6-/ UART-, SMC1 38-/ UART-. (10/22) + (2/8) + + (0,064/2,4) + (0,0096/2,4) + (0,038/0,22) = 0,96 < 1. , 96%.
2. 25 , 64-/ QMC- 128-/ HDLC-. (24x0,064/2,1) + (2x0,128/8) = 0,76 < 1. , 76%.
3. 25 , 64-/ QMC- 2-/ HDLC-. (32x0,064/2,1) + (2/8) = 1,22 > 1. , 122% .