• Tidak ada hasil yang ditemukan

Monolithic Design Approach

N/A
N/A
Protected

Academic year: 2024

Membagikan "Monolithic Design Approach"

Copied!
12
0
0

Teks penuh

(1)

Monolithic Design Approach

(2)

ISDN Terminal Adaptor (HW)

CPU 80186

Siemens ISAC ROM RAM

Siemens ITAC

Timer

D/A A/D

Handset

Voice Text/Image

(3)

ISDN Terminal Adaptor (SW)

• Control Plane: Protocol Processing

– Layer 2: LAPD – Data link management – Layer 3: Q.931 – Call control

– Adaptation Layer: Interact to the user

• Data Plane: Plain data delivery (no touch)

(4)

ISDN Terminal Adaptor (SW)

LAPD

receive a frame

send a frame

Q.931

receive a message

send a message

Time Out T3

Time Out T2

to user from user

Link establishment Error control

Call control

(5)

Two fundamental HW components

• Interrupt

– Whenever a frame is received, ISAC interrupts the CPU

• Timer

– Interrupts CPU with programmed period

(6)

Data Interrupt Handler

• void DataIntHandler ()

– read a frame from ISAC

– store the frame in frame Queue – set L2DataFlag

(7)

Timer Interrupt Handler

• void TimerIntHandler ()

– t2++

– if (t2 == T2) {set T2EventFlag; t2=0}

– t3++

– if (t3 == T3) {set T3EventFlag; t3=0}

(8)

Events (Interrupt, Timer, SW)

LAPD

receive a frame

send a frame

Q.931

receive a message

send a message

Time Out T3

Time Out T2

to user from user

Link establishment Error control

Call control

L2DataFlag

L3DataFlag T3EventFlag

T2EventFlag appTo3DataFlag

3To2DataFlag

(9)

Initialization

• Start point (0xffff0)

– configure programmable HW components – configure timer

– reset L2DataFlag, L3DataFlag, T2EventFlag, T3EventFlag (appTo3DataFlag, 3To2DataFlag)

– register DataIntHandler – register TimerIntHandler – jump to MAIN

(10)

Main

• MAIN

while(1){

if (L2DataFlag || T2TimerFlag||3To2DataFlag){

call LAPD();

reset the corresponding flag;

}

if (L3DataFlag || T3TimerFlag||appTo3DataFlag){

call Q931();

reset the corresponding flag;

}

}

(11)

LAPD()

• Event handling according to the protocol specification

• Note! LAPD() should return ASAP. Busy waiting is not allowed inside the function

(12)

Q931()

• Event handling according to the protocol specification

• Note! Q931() should return ASAP. Busy waiting is not allowed inside the function

Referensi

Dokumen terkait