PC-Link Application Note AN149 – PC Phone Interface Oleh: Tim IE
Aplikasi kali ini akan memberikan contoh sederhana mengenai pembuatan program aplikasi Windows
untuk PC-Link Serial PPI dengan bantuan Borland Delphi™ dan library SerLib.DLL. Di sini PC-Link Serial PPI akan berfungsi sebagai penghubung antara DT-I/O Phone Interface Ver 2.0 dengan port serial komputer. Komputer dapat membaca penekanan tombol keypad pada pesawat telepon, panggilan ke nomor yang telah tersimpan, dan menerima telepon masuk (off-hook). Aplikasi ini memerlukan modul-modul sebagai berikut: - 1 buah PC-Link Serial PPI - 1 buah DT-I/O Phone Interface Ver 2.0 - 1 buah Pesawat Telepon ®
®
Adapun blok diagram sistem secara keseluruhan adalah sebagai berikut: Komputer
PC-Link Serial PPI
DT-I/O Phone Interface Ver 2.0
Pesawat Telepon
Line Telepon Gambar 1 Blok Diagram AN149
Hubungan antara modul-modul tersebut adalah sebagai berikut: PC-Link Serial PPI +5VDC (J5) GND (J5) P1.0* (Pin3-J3) – P1.3* (Pin6-J3) P2.0* (Pin11-J3) P2.1* (Pin12-J3) P2.2* (Pin13-J3) P2.3* (Pin14-J3) P2.4* (Pin15-J3) P2.5* (pin16-J3) P2.7* (Pin18-J3) PA.0* (Pin3-J4) PB.0* (Pin11-J4)
DT-I/O Phone Interface Ver 2.0 DVCC (Pin2-J7) GND (Pin1-J7) D0 (Pin1-J1) – D4 (Pin4-J1) CS (Pin9-J1) IRQ (Pin3-J2) WR (Pin7-J2) RD (Pin8-J2) RI (Pin9-J3) HK (Pin10-J3) RS0 (Pin12-J3) T0 (Pin5-J2) RE (Pin11-J3)
* pin ini tidak mutlak dan dapat diganti pin lain dengan cara mengubah program Tabel 1 Hubungan PC-Link Serial PPI dengan DT- I/O Phone Interface Ver 2.0 Aturlah jumper mode DT-I/O Phone Interface Ver 2.0 pada mode 2 yaitu jumper mode terpasang. Hubungkan DT-I/ O Phone Interface Ver 2.0 ke PC-Link Serial PPI dengan sesuai dengan tabel di atas. Gunakan kabel serial PC-
Page 1 of 7
Application Note AN149
Link Serial PPI untuk menghubungkan PC-Link Serial PPI ke COM port komputer. Berilah catu daya 9V – 12V DC pada terminal biru VIN (J2) PC-Link Serial PPI dengan polaritas yang benar. Setelah semua rangkaian dan sumber tegangan terhubung dengan benar, maka program Project1.exe dapat dijalankan. Tombol ini akan melakukan pembacaan data dari penekanan tombol pada pesawat telepon
Tombol untuk membuka/ menutup komunikasi serial komputer
Tombol untuk melakukan panggilan ke nomor telepon yang tersimpan pada memori
Label untuk menampilkan status port serial komputer
Tombol untuk menunggu adanya panggilan dari line telepon Label untuk menampilkan nomor telepon dan kondisi line telepon/ panggilan Gambar 2 Tampilan Program Project1.exe Berikut penjelasan lebih detil dari fungsi masing-masing tombol dan label pada program aplikasi Project1.exe: 1. Tombol “Connect” / “Disconnect” digunakan untuk membuka atau menutup komunikasi serial komputer. 2. Label “COM” akan menampilkan status dari komunikasi serial komputer, apakah terbuka (connected) atau tertutup (disconnected). 3. Tombol “Calling” akan menjalankan sebuah rutin untuk membaca penekanan tombol keypad pada pesawat telepon yang terhubung langsung ke DT-I/O Phone interface setelah terjadi off-hook. Data penekanan tombol yang terbaca akan ditampilkan pada label “Status” dan juga disimpan untuk nantinya digunakan dalam proses redial. 4. Tombol “Redial” digunakan untuk melakukan outgoing call ke nomor telepon yang telah tersimpan sebelumnya. Nomor telepon tujuan ini merupakan hasil pembacaan data penekanan tombol yang terakhir. Label “Status” akan menampilkan status panggilan, apakah ringback, busy, unknown, atau connected. 5. Tombol “Wait for Call” akan menyebabkan program menunggu adanya incoming call. Saat terdeteksi incoming call maka program melakukan off-hook dan program mulai melakukan pembacaan data penekanan tombol yang dilakukan oleh si penelepon. Status tombol yang ditekan oleh si penelepon akan ditampilkan pada label “Status”. 6. Label “Status” akan menampilkan data DTMF dari penekanan tombol dan menampilkan kondisi dari panggilan.
Page 2 of 7
Application Note AN149
Flowchart rutin program yang menangani event penekanan tombol “Connect” adalah sebagai berikut: Start
Tombol Connect/Disconnect ditekan
Label Tombol = “Connect”?
Ya
Tidak
Cek Komunikasi serial. Apakah tersedia?
Ya
Mengganti tulisan label2 = “Com Connected” Reset PC-Link Serial PPI Insialisasi PC-Link Serial PPI
Tidak Menampilkan pesan Error
Mengganti tulisan label = “COM Disconnect”
Ya
Cek Komunikasi serial. Apakah tersedia?
Tidak Menampilkan pesan Error
Return
Gambar 2 Flowchart Program Pada Even Penekanan Tombol “Connect”
Cara kerja rutin program pada even penekanan tombol “Connect“ adalah sebagai berikut : 1. Pada saat tombol “Connect” ditekan, program akan melakukan pengecekan apakah port serial aktif atau tidak. 2. Jika komunikasi serial komputer terhubung dengan PC-Link Serial PPI dan port serial komputer aktif, maka tombol “Calling”, “Redial”, dan “Waiting for Call” serta komunikasi serial komputer dan PC-Link Serial PPI akan dinonaktifkan, label COM akan berstatus disconnected. 3. Jika komunikasi serial komputer tidak terhubung dengan PC-Link Serial PPI dan port serial komputer tidak aktif, maka tombol “Calling”, “Redial”, dan “Waiting for Call” serta komunikasi serial komputer dan PC-Link Serial PPI diaktifkan, label COM akan berstatus connected.
Page 3 of 7
Application Note AN149
Flowchart program pada even penekanan tombol “Calling” Calling
Reset MT 8888 Inisialisasi MT8888 pada mode DTMF
Tidak
Terjadi Offhook
Ya Label1.Caption=' '
Tidak
Pin INT 0 = Low
Ya Baca Status dan Nilai DTMF
DTMF=0CH
Ya
Label1.Caption=Label1.Caption+ ' # '
Tidak
DTMF=0BH
Ya
Label1.Caption=Label1.Caption+ ' * '
Tidak
DTMF=0AH
Ya
Label1.Caption=Label1.Caption+ ' 0 '
Tidak Label1.Caption = Label1.Caption+ Nilai DTMF yang telah diubah menjadi string
Tidak
Terjadi onhook
Ya Redialmsg=Label1.Caption
End
Gambar 3 Flowchart Program Pada Even Penekanan Tombol “Calling”
Page 4 of 7
Application Note AN149
Cara kerja rutin program pada even penekanan tombol “Calling” adalah sebagai berikut : 1. Pada saat tombol “Calling” ditekan maka program akan melakukan reset dan inisialisasi pada IC MT8888, dan mengaturnya pada mode DTMF. 2. Selanjutnya program akan menunggu sampai terjadi offhook. Jika offhook terjadi maka program akan melanjutkan untuk melakukan pengecekan pada pin “interrupt 0”. 3. Apabila pin “intrrupt 0” tidak berlogika low, maka program akan menunggu sampai pin “interrupt 0” berlogika low. 4. Jika pin “interrupt 0” berlogika low, pogram akan membaca status DTMF dan juga nilai dari DTMF. Jika DTMF bernilai 0CH maka label1 akan menampilkan tanda “#”, DTMF bernilai 0BH maka label1 akan menampilkan tanda “*”, DTMF bernilai 0AH maka label1 akan menampilkan tanda “0”. 5. Selanjutnya program akan menampilkan data DTMF yang telah diubah menjadi string pada label1. 6. Program akan melakukan pengecekan apakah terjadi onhook. Jika tidak maka program akan kembali ke langkah 3. Jika terjadi onhook maka program akan mengisi nilai “redialmsg” sama dengan nilai label1.
Flowchart program pada even penekanan tombol “Redial” Redial
Ada redial message
Tidak
Label1.Caption = 'No RedialNumber'
Ya Reset MT8888
Terjadi Offhook
Tidak
Ya Terjadi dial tone pada pespon
Tidak
Ya Dial DTMF dengan nomor pada redial message Mengecek nada sambung dan menampilkan kondisinya pada Label1.Caption
Nada sambung= ring b acknya
Ya
Tidak End
Gambar 4 Flowchart Program Pada Even Penekanan Tombol “Redial” Page 5 of 7
Application Note AN149
Cara kerja rutin program pada even penekanan tombol “Redial” adalah sebagai berikut: 1. Pada saat tombol “Redial” ditekan program akan melakukan pengecekan terhadap redial message. Apakah ada redial message atau tidak. 2. Jika ada redial message maka program akan melanjutkan untuk mereset DTMF. Tetapi jika ternyata tidak ada redial message maka program akan diakhiri. 3. Setelah DTMF direset maka program akan menunggu sampai ada offhook. Setelah terjadi offhook maka program akan menunggu sampai ada dial tone pada pespon. 4. Jika sudah ada dial tone pada pespon maka program akan melakukan dial terhadap DTMF dengan nomor pada redial message. 5. Selanjutnya program akan melakukan pengecekan pada nada sambungnya, apakah nada sambungnya sama dengan nada ring backnya atau tidak. 6. Jika nada sambungnya sama dengan nada ring backnya maka program akan terus melakukan pengecekan sampai nada sambungnya tidak sama dengan nada ring backnya. 7. Jika nada sambungnya sudah tidak sama dengan ring backnya maka program akan diakhiri.
Flowchart program pada rutin even penekanan tombol “Wait For Call” Wait For Call Reset IC MT 8888 Inisialisasi IC MT888 pada mode DTMF Menunggu adanya dering pesaw at telepon sebanyak 2 kali
Pin RE diberi logika low
Ya INT0 = 1
Tidak Baca Status MT 8888 dan nilai DTMF
Ya
Label1.Caption = Label1.Caption+ ' # ' Pin RE = 1
DTMF = 0CH
Tidak DTMF = 0BH
Ya
Label1.Caption = Label1.Caption+ ' * '
Tidak DTMF = 0AH
Ya Label1.Caption = Label1.Caption+ ' 0 '
Tidak Label1.Caption = Label1.Caption + nilai DTMF yang telah diubah menjadi string
DTMF = 0CH
Ya
Tidak End
Gambar 4 Flowchart Program Pada Even Penekanan Tombol “Wait for Call” Page 6 of 7
Application Note AN149
Cara kerja rutin program pada even penekanan tombol “Wait for Call” adalah sebagai berikut: 1. Saat terjadi penekanan tombol “Wait for Call”, program akan melakukan reset pada IC MT 8888 dan menginisialisasi IC tersebut pada mode DTMF. 2. Program akan menunggu adanya dering pada pesawat telepon sampai 2 kali, dan program akan otomatis mengangkat telepon tersebut dengan memberi logika low pada pin RE dari DT-I/O Phone Interface. 3. Selanjutnya program akan menunggu sampai terjadi penekanan tombol dari orang yang menelepon, dengan melakukan pengecekan pada pin “interrupt”. Jika pin “interrupt” berlogika low maka terjadi penekanan tombol dari orang yang menelepon, namun jika pin “interrupt” berlogika high maka belum terjadi penekanan tombol dari orang yang menelepon. 4. Setelah terjadi penekanan tombol dari orang yang menelepon, maka program akan melanjutkan untuk membaca status dan nilai DTMF. Jika DTMF bernilai 0CH maka label1 akan menampilkan tanda “#”, jika DTMF bernilai 0BH maka label1 akan menampilkan tanda “*”, jika DTMF bernilai 0AH maka label1 akan menampilkan tanda “0”. 5. Selanjutnya program menampilkan nilai DTMF yang telah diubah menjadi string tersebut pada label1. 6. Program akan mengecek apakah DTMF tetap bernilai OCH atau tidak. Jika nilai DTMF tetap bernilai OCH maka program akan kembali ke langkah 4. Namun jika nilai DTMF tidak bernilai OCH, maka program akan diakhiri.
Listing program terdapat pada AN149.ZIP Selamat mencoba dan Berinovasi! Borland Delphi 5.0 is copyright by Inprise Corporation
Page 7 of 7
Application Note AN149