Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SMS über Festnetz Teil2 praktische Realisierung

Ähnliche Präsentationen


Präsentation zum Thema: "SMS über Festnetz Teil2 praktische Realisierung"—  Präsentation transkript:

1 SMS über Festnetz Teil2 praktische Realisierung
Christian Ellenberg, Frank Siewert Labor RST, SS2001

2 Das Konzept ~ GSM-Netz = Fest- Netz GSM Modem Server Modem ~ =

3 Aufbau(1) a b MH884221 BD-1 MT8880 PCF8574 C-Control2 D P L H i2c
Telefonleitung (TIP/RING) NF (DTMF) D0-D3 IRQ CP phi2 R/W RS0 D4-D7 RS Enable SDA SCL Ring/ LoopC HOOK MH BD-1 MT8880 PCF8574 C-Control2 D P L H i2c AP0..7 Display Tastatur

4 Aufbau(2) MT8880 PCF8574 1 2 3 7 6 5 4 5 Register: Control_A
PCF8574 CRA CRB Status Receive Transmit I2C Data b1 1 b2 2 b3 3 DTMF IRQ 7 PHI2 (Takt) 6 RS0 5 R/W 4 5 Register: Control_A (Control_B) Status Receive Transmit 1 1 1 1

5 Timing(1) MT8880C DTMF in

6 Timing(2) MT8880C Data I/O

7 Timing(3) I²C-Baustein

8 Tonausgabe ‘5‘ über I2C<->IO-Steuerung
Beispiele(1) b0 Data in/out MT8880 PCF8574 I2C Data DTMF in/out IRQ PHI2 (Takt) Register Select Tonausgabe ‘5‘ über I2C<->IO-Steuerung i2c.start(112) //Schreib-ADR, Startbedingung: SCL=HIGH,SDA H>L i2c.write(x ) //CRA: CRBenable,IRQenable,DTMFmode,TONEenable i2c.write(x ) //wie oben jedoch steigende Taktflanke i2c.write(x ) //Taktflanke wieder absenken -> Zyklus beendet i2c.write(x010x000) //CRB: C/R, DualTone,NoTest,BURSTenable i2c.write(x110x000) //wie oben mit Steigender Taktflanke i2c.write(x010x000) // Taktflanke fällt ->Zyklus beendet i2c.write(x ) // 5 ins Transmit-Register schreiben i2c.write(x ) // ... Taktflanke steigt... i2c.write(x ) // ...und fällt -> Ton für 50ms erzeugen i2c.stop() // Stopbedingung: SCL=HIGH,SDA L>H

9 Beispiel: Tonerkennung über I2C<->IO-Steuerung
Beispiele(2a) MT8880 PCF8574 DTMF in/out I2C Data Data in/out IRQ PHI2 (Takt) Register Select Beispiel: Tonerkennung über I2C<->IO-Steuerung i2c.start(112) // Schreib-Adresse, Startbedingung erzeugen i2c.write( ) // Status-Register auswählen i2c.write( ) // wie oben jedoch Taktflanke setzen i2c.start(113) // Lese-Adresse Wert=i2c.readlast() // I2C-Port auslesen (nur ein Byte lesen, dann STOP) i2c.stop() // Lesen abschliessen (zur Sicherheit) i2c.write( ) // Takt beenden i2c.stop() // I2C-Zyklus abschliessen IRQ auswerten oder Polling Dann ...

10 Beispiele(2b) Falls IRQ oder Polling Dateneingang erfasst, Receive-Wert auslesen: i2c.start(112) // nochmal schreiben i2c.write( ) // Receive-Register wählen i2c.write( ) // wie oben mit positiver Taktflanke i2c.start(113) // Auf Lesen umschalten Wert=i2c.readlast() // I2C-Port auslesen (nur ein Byte lesen, dann STOP) i2c.stop() // Lesen beenden... i2c.start(112) // Schreiben... i2c.write( ) // Taktflanke fällt ->Zyklus beendet i2c.stop() // I2C-Zyklus abschliessen Wert enthält dann (hoffentlich richtigen) dekodierten DTMF-TON

11 Das „SoPOTS“-Protokoll (1)
Sendet... Empfängt... SMS-Unit SMS-Server Anrufen RING Voicemodus DTMF-Dauer setzen Warten auf „#“ DTMF 12 senden „#“ Triggertimer starten ZielNr. Senden+“#“+SMS Auflegen . Auflegen nach Timeout

12 Das „SoPOTS“-Protokoll (2)
Empfängt... Sendet... SMS-Unit SMS-Server Voicemodus DTMF-Dauer setzen RING Anrufen Warten auf „#“ DTMF 12 senden „#“ Triggertimer starten AbsendeNr. Senden+“#“+SMS . Auflegen Auflegen nach Timeout


Herunterladen ppt "SMS über Festnetz Teil2 praktische Realisierung"

Ähnliche Präsentationen


Google-Anzeigen