34 BAB 3 PERANCANGAN SISTEM
Pada bab ini akan dijelaskan secara umum perancangan sistem hardcopy record untuk SMS, yaitu terdiri dari diagram blok sistem, perancangan perangkat keras dan perangkat lunak, elemen dasar dari PDU SMS, serta diagram alir sistem.
3.1
Diagram Blok Sistem
Gambar 3.1 Diagram Blok Sistem
Fungsi-fungsi dari tiap-tiap blok di atas adalah sebagai berikut : •
Sebuah telepon seluler (ponsel) digunakan sebagai GSM modem untuk menerima pesan berupa SMS dari pengguna ponsel, dan dalam hal ini bertindak sebagai antar muka antara pemakai dan sistem minimum.
•
Fungsi RS-232C disini adalah mengubah sinyal RS-232C standar ke sinyal TTL yang dikenal oleh mikroprosesor AT89C52.
35 •
Sistem minimum berbasis mikrokontroler AT89C52 merupakan pusat yang mengatur pemrosesan, encoding, dan pengontrolan terhadap masukan dan keluaran data ke printer
•
Port paralel digunakan untuk mengirim hasil dari mikrokontroler ke printer.
•
Printer digunakan untuk mencetak hasil yang dikirimkan melalui sistem minimum melalui komunikasi paralel
3.2
Perancangan Perangkat Keras Pada bagian ini dijelaskan konfigurasi perangkat keras untuk membangun sistem hardcopy record SMS. Dalam perancangan sistem hardcopy record , memerlukan beberapa perangkat keras utama yaitu Mobile Equipment (ME), yaitu ponsel yang data capable (mampu melakukan transfer data 2 arah dengan PC maupun sistem minimum). ME disini berfungsi sebagai GSM modem. Ponsel yang kita gunakan disini adalah Siemens C35, karena ponsel tersebut menggunakan protokol AT Command 07.05. Tidak semua ponsel menggunakan protokol tersebut. Siemens C35 juga menyediakan langsung kabel RS-232C yang dapat digunakan dalam komunikasi tersebut dan developer guild serta AT Command Set untuk C35 ini. Sedangkan, sebagai sistem minimum digunakan MCS-52 yang mendukung komunikasi serial, paralel, dan penggunaann yang cukup mudah, ekonomis dan kemampuan yang cukup baik. Serta menggunakan printer, yang dapat berupa printer dot matrix ataupun tinta biasa (inkjet), baik warna maupun hitam putih tidak menjadi masalah yang
36 menggunakan pin konektor DB 25/DB 36 (CENTRONIC). Default Output adalah warna hitam.
3.2.1
Perancangan Sistem Minimum Berbasis Mikrokontroler AT89C52
VCC VCC 31
Rx 19
Tx
VCC
VCC
40
20
EA XTAL1
DTR 18
GND
XTAL2
VCC 9
RST
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
39 38 37 36 35 34 33 32
2
ALE
30
11
3 4 5 6 7 8 9
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
LE
OE
4 C2+ 5 C2-
11 10
RxD TxD
1
C1+ C1- 3
VCC
GND 15
GND
19 18 17 16 15 14 13 12
10 9 8 7 6 5 4 3
A0 A1 A2 A3 A4 A5 A6 A7
D0 D1 D2 D3 D4 D5 D6 D7
11 12
CS2
26
13 15 16 17 18 19
1
10
11 8 9 R2IN R2OUT 7 10 T2OUT T2IN 16
28
D0 D1 D2 D3 D4 D5 D6 D7
VCC
14
VCC
VCC
V+ 2 V- 6 1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
25 24
P2.0 P2.1 P2.2 P2.3 P2.4
21
P2.5 P2.6 P2.7
26 27 28
20
CS1
WR RD
16 17
27 22
WE OE
22 23 24 25
21 23 2
A8 A9 A10 A11 A12
VCC
GND 14
GND
VCC
20
1
14
2
15
3
16
4
17
5
6
18
19
7
8
20
9
21
11
22
23
12
24
13
25
10
Gambar 3.2 Sistem Minimum Berbasis AT89C52
Rangkaian diatas menghubungkan IC AT89C52 dengan RS-232C untuk komunikasi serial dengan ponsel. RAM 6264 digunakan untuk menambah kapasitas memori penampung SMS jika dibutuhkan (bersifat optional)
37
Vcc
Gambar 3.3 Rangkaian Reset Pin Reset akan berlogika high karena mulanya muatan kapasitor dan hambatan kapasitor adalah sangat kecil, sesaat masa waktu pengisian kapasitor. Kemudian setelah kapasitor penuh maka pin reset akan kembali berlogika low. Rangkaian reset ini berguna untuk mereset mikrokontroler AT89C52 jika kita ingin memulai sistem baru.
Vcc
Gambar 3.4 Rangkaian Kristal untuk Osilator
Kristal ini terletak pada pin 18 dan 19 pada mikrokontroler AT89C52 dengan kapasitas frekuensi 3,5 MHz samapai dengan 12 MHz dengan beban sebesar 33 pF supaya dapat menghasilkan kualitas frekuensi yang baik.
38 Data Bus
VCC VCC
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
39 38 37 36 35 34 33 32
2
ALE
30
11
3 4 5 6 7 8 9
Address Bus
20
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
D0 D1 D2 D3 D4 D5 D6 D7 LE
GND
OE
19 18 17 16 15 14 13
10 9 8 7 6 5 4 3
12
A0 A1 A2 A3 A4 A5 A6 A7
R A M
D0 D1 D2 D3 D4 D5 D6 D7
11 12 13 15 16 17 18 19
1
10
Gambar 3.5 IC TTL 74LS573 Untuk me-latch low address digunakan IC TTL 74LS573, dimana kondisi ini terjadi pada saat proses fetch dan transfer data dari atau ke memori eksternal. Kemudian diikuti dengan pemberian pulsa ALE ke pin 6 dan kondisi pin OE low agar low address dapat di-latch (ditahan sementara).
3.2.2
Rangkaian Komunikasi Serial dengan Saluran RS-232C +5 V
1µF 25V
1 16
1µF 25V
4
MCS-52
3 5
Tx 10 Rx 9 11
2 6
R S 15 2 3 2
1µF 25V
1µF 25V
7 8
1µF 25V Tx Rx
14 DB 9
Gambar 3.6 Hubungan IC MAX 232 dengan DB9
39 Keunggulan mengunakan transfer data serial dibandingkan paralel : 1. Kabel serial dapat lebih panjang daripada kabel paralel. Port serial dapat mengirim tegangan –15 V sampai +15V dimana port paralel mengirim tegangan ‘0’ sebagai 0V dan ‘1’ sebagai 5V. Dengan begitu signal loss tidak menjadi begitu masalah dibandingkan dengan kabel serial. 2. Serial kabel tidak membutuhkan banyak kabel dibandingkan transmisi paralel. Akan jauh lebih murah biayanya. 3. Peralatan dengan menggunakan infra merah menjadi popular akhir-akhr ini. Hal ini mungkin dapat dilihat dari banyaknya peralatan elektronik yang biasa digunakan sehari-hari dan komputer genggam dengan kemampuan infra merah didalamnya. Bagaimanakah cara mengirim 8 bit data pada satu waktu melintansi ruangan dan dapat ditangkap dan ditentukan bit ini diletakkan dimana dan seterusnya? Untuk itu transmisi serial digunakan dimana 1 bit hanya bisa dikirim pada 1 waktu. 4. Mikrokontroler juga semakin populer digunakan akhir-akhir ini. Banyak diantaranya telah mempunyai SCI (Serial Communication Interfaces) di dalamnya, dimana digunakan untuk berkomunikasi dengan dunia luar. Komunikasi serial mengurangi jumlah pin dari mikrokontroler. Hanya 2 pin yang biasa digunakan, Transmit Data (TxD) dan Receive Data (RxD) dibandingkan dengan 8 pin minimal jika anda menggunakan metode paralel. (Anda kadang juga memerlukan strobe).
Sistem komunikasi yang digunakan adalah standar komunikasi serial RS232C dengan driver IC UART 8250. RS-232C diperkenalkan tahun 1962 sebagai
40 EIA (Electronic Industries Association) Standard. RS-232C hanya memiliki kemampuan satu driver dan satu receiver. RS-232C dipergunakan untuk komunikasi melalui kabel dengan jarak yang tidak jauh dan data rate yang rendah. Logic high pada RS-232C adalah -5 sampai dengan -15 V, sedangkan logic low-nya adalah +5 sampai dengan +15 V. Panjangnya saluran yang mampu ditempuh adalah 50 kaki (15 meter) dengan data rate 20 KBps.
3.2.2.1 Pin komunikasi serial Berikut pin komunikasi serial yang umum digunakan yaitu 25 pin konektor dan 9 pin konektor serta fungsinya :
Tabel 3.1 Konektor Pin 9 dan 25 D-Type-25 Pin No. Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 Pin 20 Pin 22
D-Type-9 Pin No.
Abbreviation
Full Name
Pin 3 Pin 2 Pin 7 Pin 8 Pin 6 Pin 5 Pin 1 Pin 4 Pin 9
TD RD RTS CTS DSR SG CD DTR RI
Transmit Data Receive Data Request To Send Clear To Send Data Set Ready Signal Ground Carrier Detect Data Terminal Ready Ring Indicator
Tabel 3.2 Fungsi Pin Nama Singkat TD RD CTS DCD
Nama Lengkap
Fungsi
Transmit Data Receive Data Clear To Send Data Carrier Detect
Data keluaran serial (TXD) Data masukan serial (RXD) Indikasi modem siap mengganti data Ketika modem mendeteksi “Carrier” dari modem lainnya, pin menjadi aktif
41
3.2.3
DSR
Data Set Ready
DTR
Data Terminal Ready
RTS
Request To Send
RI
Ring Indicator
Pin ini mengatakan UART bahwa modem dalam keadaan ready untuk membangun sebuah link Kebalikan dari DSR. Pin ini mengatakan Modem dengan UART siap untuk disambung. Pin ini menginformasukan Modem dengan UART siap untuk bertukar data. Akan aktif ketika modem mendeteksi sinyal telepon dari PSTN
Rangkaian RAM Eksternal Mikrokontroler AT89C52 mendukung penambahan RAM eksternal, dalam system ini yang dipakai adalah RAM eksternal berkapasitas 64kbits atau 8 Kbytes. Penggunaan RAM dilakukan jika dibutuhkan, misalnya dengan menampung jumlah karakter SMS yang banyak hingga 720 karakter yang melebihi kapasitas RAM internal pada mikrokontroler yang hanya 256 bytes. Untuk rangkaian RAM eksternal, dibutuhkan 2 komponen yaitu IC Latch dan IC RAM eksternal. IC Latch yang dipakai adalah IC 74LS573, sedang IC Eksternal RAM adalah IC HMC 6264C.
42
VCC VCC
VCC 28
20 2
39 38 37 36 35 34
3 4 5 6 7 8
33 32
9
30
11
D0 D1 D2 D3 D4 D5 D6 D7 LE
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 GND
OE
19 18 17 16 15 14 13 12
10 9 8 7 6 5 4 3
A0 A1 A2 A3 A4 A5 A6 A7
D0 D1 D2 D3 D4 D5 D6 D7
11 12
CS2
26
13 15 16 17 18 19
1
10
WR RD
21 22
25 24
23 24 25
21 23 2
26 27 28
20
CS1
16 17
27 22
WE OE
A8 A9 A10 A11 A12
VCC
GND 14
Gambar 3.7 Rangkaian RAM Eksternal
3.3
Perancangan Perangkat Lunak Program pada sistem minimum terdiri dari beberapa prosedur program. Adapun prosedur-prosedur yang diperlukan dalam perancangan sistem ini adalah : prosedur insialisasi sistem, prosedur baca data, proses terima data, prosedur encoding data dan prosedur cetak data ke printer.
3.3.1
Inisialisasi MCS-52 Inisialisasi digunakan menggunakan register internal dari MCS-52 itu sendiri. Digunakan register supaya mensinkronkan kecepatan data transfer, hingga bisa berkomunikasi dengan baik. Berikut alamat register dan fungsinya pada MCS-52 :
43 Tabel 3.3 Alamat register pada MCS 52dan fungsinya Register P0 SP DPL DPH TCON TMOD TL0 TL1 TH0 P1 SCON SBUF P2 IE P3 IP PSW ACC B
Address 80H* 81H 82H 83H 88H* 89H 8AH 8BH 8CH 90H* 98H* 99H 0A0H* 0A8H* 0B0H* 0B8H* 0D0H* 0E0H* 0F0H*
Function Port 0 Stack Pointer Data Pointer (low) Data Pointer (high) Timer Register Timer Mode Register Timer 0 Low byte Timer 1 High Byte Timer 0 High Byte Port 1 Serial Port Control Register Serial Port Data Vuffer Port 2 Interrupt Enable Register Port 3 Intterupt Priority Register Program Status Word Accumulator B Register
Diagram alir program inisialisasi sistem MCS-51 adalah sebagai berikut :
44
Init MCS 52
PCON = 80h
TMOD = 20h
SCON = 50h
TL1 = 0FDh
TH1 = 0FDh
Main Program
Gambar 3.8 Diagram Alir Inisialisasi MCS
3.3.2
Perancangan Program Pencetakan Data ke Printer Diagram alir program pencetakan bukti pemesanan pada MCS adalah sebagai berikut :
45 Cetak Bukti Transaksi
Init Printer
Printer Siap?
T
Y Cetak ke Printer
RET
Gambar 3.9 Diagram Alir Pencetakan Data ke Printer
3.3.3 Protokol Untuk Mengendalikan Fungsi SMS Di Dalam Ponsel GSM Dalam
merancang
komunikasi
yang
berbeda
platform
dengan
menggunakan SMS, maka terlebih dahulu perlu dipelajari bagaimana caranya mengendalikan fungsi SMS di dalam ponsel sebagai Mobile Equipment (ME). ME disini berfungsi sebagai GSM Modem. Untuk itu perlu dipelajari protokol antarmuka yang akan mengendalikan fungsi SMS di dalam ponsel dan mikrokontroler sebagai Terminal Equipment (TE) melalui hubungan komunikasi serial. Protokol pengendali SMS yang dikenal saat ini adaah GSM 07.05 AT Command yang mirip dengan bahasa Hayes AT Command untuk mengendalikan modem. Dalam protokol GSM 07.05 ini dikenal 3 Mode pengendalian : Mode Blok, Mode Teks, dan Mode PDU. Karena yang digunakan dalam implementasi
46 nanti adalah C35 yang mendukung Mode PDU maka yang akan dibahas dalam perancangan selanjutnya adalah protokol Mode PDU. PDU adalah kependekan dari Protocol Data Unit. Mode PDU adalah antarmuka berbasis karakter dengan blok-blok pesan yang di-encode secara heksadesimal dan ditransfer secara biner. Di dalam perancangan media pengendali ini, yang akan digunakan sebagai ME adalah ponsel Siemens C35, sebagai TE adalah mikrokontroler berbasis MCS-52, sedangkan yang menjadi antarmuka Data Circuit Equipment / Data Terminal Equipment adalah GSM 07.05 AT Command berbasis mode PDU melalui hubungan komunikasi serial. Tabel 3.4 menunjukkan jenis-jenis perintah dalam AT Command, tabel 3.5 berisi perintah AT Command yang sering digunakan dalam penggunaan sistem berbasis SMS.
Tabel 3.4 Jenis- Jenis perintah dalam AT Command Perintah Uji
AT+CXXX=?
Ponsel atau modem merespon dari pengiriman parameter dan nilainya; ini dapat diset dengan menggunakan perintah tulis atau yang berarti proses internal
Perintah Baca
AT+CXXX?
Perintah ini menampilkan nilai sekarang pada parameter
Perintah Tulis
AT+CXXX=<...>
Perintah ini digunakan untuk menset parameter yang bisa diset.
Perintah eksekusi
AT+CXXX
Perintah ini membaca parameter yang tidak bisa diganti nilainya dimana berpengaruh terhadap prses internal dalam ponsel
47
Tabel 3.5 AT Command yang sering digunakan GSM AT 07.05 Command AT + CPMS AT + CMGL AT + CMGS AT + CMGD
Fungsi Memilih Memori untuk Storage Menampilkan SMS Mengirim SMS Menghapus SMS di memori SMS
3.3.3.1 Memilih Memori Yang Akan Digunakan Sebagai Tempat Penyimpanan (+CPMS) Secara umum, setiap Mobile Equipment (ME) memiliki 2 memori yang dapat digunakan sebagai tempat penyimpanan SMS. Pertama adalah memori pada SIM Card. Dan yang kedua adalah memori pada ME itu sendiri. Kedua memori ini tidak dapat diaktifkan bersamaan. Mengaktifkan memori pada SIM Card akan menonaktifkan memori pada ME, begitu juga sebaliknya. Untuk itu dipilih salah satu diantaranya. Sintaksnya dapat dilihat pada tabel 3.6. Secara umum, tempat penyimpanan memori pada ME lebih besar dari pada SIM Card, untuk itu disarankan untuk mengaktifkan tempat penyimpanan memori pada ME.
Tabel 3.6 Perintah AT +CPMS AT+CPMS Perintah Uji AT+CPMS=?
Fungsi: Memilih SMS meory Respon : +CPMS: (list of supported <mem1>s),( list of supported <mem2>s) ,(list of supported <mem3>s) Parameter Memory from which messages are read and deleted <mem1> SM SIM message storage ME Mobile Equipment message storage MT Any of the storages associated with ME
48 <mem2> storage:
<mem3>
Perintah Baca AT+CPMS?
Perintah Tulis AT+CPMS= <mem1> [,<,mem2> [,<mem3>]]
Messages will be written and sent to this memory SM SIM message storage ME Mobile Equipment message storage MT Any of the storages associated with ME Memory in which received messages are stored, if routing to TE is not set (see AT+CNMI command with parameter <mt>=2) MT Any of the storages associated with ME
Respon +CPMS:<mem1>, <used1>,
, <mem2>,<used2>, , <mem3>,<used3>, Parameter <memx> Memory from which message are read and delated <used> Number of messages currently in <memx> Number of storable messages in <memx> Parameter <mem1> Lihat Perintah Uji <mem2> Lihat Perintah Uji <mem3> Lihat Perintah Uji Respom +CPMS: <used1>, , <used2>, , <used3>,, OK/ERROR/+CMS ERROR
3.3.3.2 Menampilkan SMS (+CMGL) Jika perintah ini dieksekusi maka ME akan mentransfer SMS dengan nilai status <stat> yang sesuai dari tempat penyimpanan SMS ke TE. SMS yang ditransfer adalah seluruh unit data . Setelah perintah dieksekusi, jika status SS adalah ‘receive unread’ (diterima namun belum dibaca) maka status SMS tersebut di tempat penyimpanan berubah menjadi ‘received read’ (diterima dan sudah dibaca). Jika tidak terdapat SMS baru, maka respon yang muncul hanya OK. Jika perintah gagal dieksekusi, respon yang muncul dari ME ke TE adalah +CMS ERROR : <err>. Pembahasan mengenai nilai <err> ini dapat dilihat di lampiran. Berikut sintaks yang digunakan :
49 Tabel 3.7 Perintah AT+CMGL AT+CMGL Perintah Uji AT+CMGL=?
Perintah Tulis AT+CMGL=<stat>
Fungsi : menampilkan SMS Respon +CMGL : daftar status <stat> yang mendukung) Parameter <stat> 0 : SMS yang diterima dan belum dibaca (default) 1 : SMS yang diterima dan sudah dibaca (inbox) 2 : SMS yang disimpan dan belum dikirim (outbox) 3 : SMS yang disimpan dan sudah dikirim (outbox) 4 : Semua SMS Parameter <stat> Respom Jika mode PDU (+CMGF=0) dan perintahnya sukses : +CMGL :, <stat>, [], [ +CMGL :, <stat>, [], [ […]] Parameter untuk penjelasannya lihat sub bab3.2 Jika tidak sukses : +CMS ERROR : <err>
3.3.3.3 Menghapus SMS di Memori (+CMGD) Jika perintah ini dieksekusi maka SMS di dalam memori <mem1> dan berlokasi akan dihapus. Jika gagal menghapus, respon dari ME adalah ERROR atau +CMS ERROR. <err>. Nilai <err> bisa dilihat di lampiran. Sintaksnya dapat dilihat pada tabel berikut ini :
Tabel 3.8 Perintah AT+CMGD AT+CMGD Perintah Uji AT+CMGD=? Perintah Tulis AT+CMGD=
Fungsi : menghapus SMS di dalam memori SMS Respon OK Parameter Index SMS di dalam memori <mem1> Respon OK/ERROR/+CMS ERROR : <err>
50 3.4
Elemen Dasar dari SMS Mode PDU Di dalam satu unit data pada PDU terdapat elemen-elemen dasar yang digunakan untuk SMS_SUBMIT maupun SMS_DELIVER. SMS-SUBMIT adalah format PDU untuk SMS yang telah diterima. Elemen-elemen tersebut adalah sebagai berikut : Tabel 3.9 Elemen Dasar dari SMS Mode PDU Elemen SCA
Field
Referensi ServiceCenterAddress Panjang field SCA
Representasion 1-12
Keterangan Alamat Service Center
1oktet(integer)
Tosca
Tipe SCA
1 oktet
Addres
Nomor SCA First Oktet
2-10 oktet
MessagesTypeIndicator RejectDupliacates
2 bit
Keseluruhan panjang alamat Service Center dalam jumlah byte (1byte= 1 oktet = 8 bit) Tipe Number berdasarkan Numbering Plan Nomor SC dari pengirim atau penerima SMS Oktet pertama dari SMSPDU Parameter yang mendiskripsikan tipe SMS
MMS
MoreMessageto-Send
1 bit
VPF
ValidatyPeriodFormat
2 bit
RP
Reply-Path
1 bit
UDHI
User-DataHeaderIndicator
1 bit
Length
FO MIT RD
1 Oktet
1 bit
Mengindikasikan apakah SC akan menerima sebuah SMS-SUBMIT atau tidak karena sebuah SMS dengan MR, DA dan OA yang sama masih menetap di dalam SC. Mengindentifikasikan apakah masih ada SMS lain yang ingin dikirim atau tidak Mengindentifikasikan apakah masih ada SMS lain yang ingin dikirim atau tidak Mengindikasikan adanya Reply Path Mengindkiaskan bahwa field UD emngandung header atau tidak
51 SRR
StatusReportRequest
1 bit
SRI
StatusReportIndication
1 bit
MR
MessageReference
1 oktet
OA
Originating -address Panjang OA Tipe OA
2-12 oktet
Destination -address Panjang field DA Tipe DA
2-212 oktet
PID
ProtokolIdentifier
1 oktet
DCS
Data=Codi ng=Scheme
1 oktet
SCTS
ServiceCenterTimeStamp User-DataLength
7 oktet
Length Toda DA Length Toda
UDL
UDL
UDH
1 oktet (integer) 1 oktet
1 oktet 1 oktet
1 oktet (integer)
User-DataHeader
0-140 oktet
User-Data
0-140 oktet
Mengindikasikan apakah ME pengirim SMS minta Status Report atau tidak (untuk SMS-SUBMIT) Mengindikasikan apakah ME pengirim telah meminta Status Report atau tidak (untuk SMSDELIVER) Representation integer dari nomor referensi SMSSUBMIT Nomor dari ME pengirim SMS Panjang digit OA Tipe Number berdasarkan Numbering Plan Nomor dari ME penerima SMS Panjang digit DA Tipe Number berdsaarkan Numbering Plan Parameter yang mengidentifikasikan protokol yang diatasnya, jika ada Parameter yang mengidentifikasikan skema pengkodean di dalam UD Parameter yang mengidentifikasikan tanggal dan waktu ketika SC menerima SMS Parameter yang mengidentifikasikan tanggal dan waktu ketika SC menerima SMS Panjang isi UDH dapat mencapai maksimum panjang UD Maksimum 140 oktet yang menghasilkan 140-160 karakter
Elemen dasar PDU untuk SMS-DELIVER (SMS yang telah diterima terdiri dari 8 field. Susunan field-field tersebut adalah :
52 SCA FO
OA
PID
DCS
SCTS
UDL UD
Elemen dasar PDU untuk SMS-SUBMIT (SMS yang akan dikirim) terdiri dari 9 field. Susunan field-field tersebut adalah : SCA FO 3.4.1
MR DA PID
DCS
VP UDL UD
Service Center Address (SCA) Field SCA terdiri dari 3 subheader, yaitu : a.
Jumlah pasangan heksadesimal SMS-Center dalam bilangan heksa
b.
Kode national / internasional
c.
•
Untuk national, kode subheader-nya yaitu 81.
•
Untuk internasional, kode subheader-nya yaitu 91.
No SMS-Centernya sendiri, dalam pasangan heksa yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan huruf F di depannya
Tabel 3.10 Cara pengisian Field SCA Oktet ke 1 2 3 4 5 … N
Isi Panjang dari isi SCA Tipe Number *) Identifikasi Numbering Plan **) Nomor digit ke 2 Nomor Digit ke 1 Nomor digit ke 4 Nomor digit ke 3 Nomor digit ke 6 Nomor digit ke 5 … … Nomor digit terakhir (atau Fh) Nomor digit terakhir atau digit -1
*) Tipe Number : 9h = internasional (dimulai dengan “+”) **) Identifikasi Numbering Plan : 1h = Numbering plan ISDN (juga valid untuk GSM)
53 Berikut ini beberapa nomor SMS-Center operator seluler di Indonesia :
Tabel 3.11 Nomor SMS-Centre operator seluler No 1 2 3 4
3.4.2
Operator Seluler Telkomsel Satelindo Excelcom Indosat-M3
SMS-Centre No 0811000000 0816125 0818445009 0855000000
Kode PDU 06818011000000 0581806121F5 06818081440590 06818055000000
First-Oktet (FO) First Oktet adalah byte pertama yang mengikuti tepat setelah nomor Service Center berakhir. First Oktet dari SMS-Deliver (default-nya 04h) dan SMS-SUBMIT (default-nya 11h) yang mendefinisikan tipe PDU mengandung parameter-parameter berikut :
Tabel 3.12 First Oktet pada SMS-DELIVER Bit ke Parameter
7 RP
6 UDHI
5 SRI
4 -
3 -
2 MMS
1 MTI
0 MTI
2 RD
1 MTI
0 MTI
Tabel 3.13 First Oktet pada SMS-SUBMIT Bit ke Parameter
7 RP
6 UDHI
5 SRR
4 VPF
3 VPF
3.4.2.1 Message Type Indicator (MTI) MTI adalah parameter 2 bit yang terletak pada bit ke-0 dan bit ke-1 dari FO untuk SMS-DELIVER maupun SMS-SUBMIT, berikut tabelnya :
54 Tabel 3.14 Parameter MTI Bit 1 0 0 1 1 0 0 1
Bit 0 0 0 0 0 1 1 1
Tipe SMS SMS-DELIVER (dengan arah dari SC ke ME) SMS-DELIVER REPORT(dengan arah dari ME ke SC) SMS-STATUS-REPORT (dengan arah dari SC ke ME) SMS-COMMAND (dengan arah dari ME ke SC) SMS-SUBMIT (dengan arah dari ME ke SC) SMS-SUBMIT-REPORT (dengan arah dari SC ke ME) Reserved (dengan arah dari SC ke ME)
3.4.2.2 More-Messages-to-Send (MMS) MMS adalah parameter 1 bit yang terletak pada bot ke-2 dari FO untuk SMS-DELIVER. Berikut tabel penjelasan parameter MMS :
Tabel 3.15 Parameter MMS Bit 2 0 1
Arti Ada SMS tambahan yang sedang menunggu untuk dikirim dari SC ke ME Tidak ada SMS tambahan yang sedang menunggu untuk dikirim dari SC ke ME
3.4.2.3 Validity-Period-Format (VPF) VPF adalah parameter 2 bit berlokasi di bit ke 3 dan 4 dari FO untuk SMS-SUBMIT. Berikut tabel penjelasan parameter VPF :
Tabel 3.16 Parameter VPF Bit 4 0 1 0 1
Bit 3 0 0 1 1
Arti Tidak ada VP field Ada VP field dan dipresentasikan secara integer (relative) Reserved Ada VP field dan direpresentasikan secara semi-oktet
55 3.4.2.4 Status-Report-Indication (SRI) SRI adalah parameter 1 bit berlokasi di bit ke 5 dari FO untuk SMSDELIVER. Berikut tabel penjelasan parameter SRI :
Tabel 3.17 Parameter SRI Bit 5 0 1
Arti Status Report tidak akan dikembalikan ke ME pengirim SMS Status Report akan dikembalikan ke ME pengirim SMS
3.4.2.5 Status-Report-Request (SRR) SRI adalah parameter 1 bit berlokasi di bit ke 5 untuk SMS-SUBMIT. Berikut penjelasan parameter SRR:
Tabel 3.18 Parameter SRR Bit 5 0 1
Arti Status Report tidak diminta oleh ME pengirim SMS Status Report diminta oleh ME pengirim SMS
3.4.2.6 User-Data-Header-Indicator (UDHI) SRI adalah parameter 1 bit berlokasi di bit ke 6 untuk SMS-SUBMITdan SMS-DELIVER. Berikut penjelasan parameter UDHI:
Tabel 3.19 Parameter UDHI Bit 6 0 1
Arti Field UD hanya berisi SMS Permulaan field UD berisi Header tambahan selain SMS
56 3.4.2.7 Reply-Path (RP) RP adalah parameter 1 bit berlokasi di bit ke 7 untuk SMS-SUBMIT dan SMS DELIVER. Berikut penjelasan parameter RD :
Tabel 3.20 Parameter RP Bit 7 0 1
Arti Parameter RP tidak di set di SMS-DELIVER/SUBMIT ini Parameter RP di set di SMS-DELIVER/SUBMIT ini
3.4.2.8 Reject-Duplicates(RD) RD adalah parameter 1 bit berlokasi di bit ke 2 untuk SMS-SUBMIT. Berikut penjelasan parameter RD :
Tabel 3.21 Parameter RD Bit 2 0 1
3.4.3
Arti Instruksikan SC untuk terima SMS-SUBMIT walaupun sebuah SMS dengan MR, DA dan OA yang sama yang telah dikirimkan sebelumnya masih tetap bertahan di SC Instruksikan SC untuk menolak SMS-SUBMIT sebab sebuah SMS dengan MR, DA dan OA yang sama yang telah dikirimkan sebelumnya masih tetap bertahan di SC
Protokol-Identifier (PID) PID adalah element informasi yang mengarahkan Short Message Transport Layer ke protokol layer yang lebih tinggi yang sedang digunakan, atau mengindikasikan adanya kerjasama dengan alat telematika jenis tertentu. Parameter PID terdiri dari1 oktet, berikut adalah penjelasannya :
57 Tabel 3.22 parameter PID Nilai [dalam decimal] 0 1 2 3
Protokol SMS harus diperlakukan sebagai Short Message SMS harus diperlakukan sebagai telex SMS harus diperlakukan sebagai telefax grup3 SMS harus diperlakukan sebagai telefax grup4
Perhatikan bahwa untuk standar transfer Short Message sederhana dari ME ke SC, PID di set dengan nilai 0.
3.4.4
Data Coding Scheme (DCS) Field DCS menandakan skema pengkodean data field UD dan dapat juga mengindikasikan message class. Field ini diberikan dalam format heksadesimal. Berikut adalah tabel penjelasan parameter DCS :
Tabel 3.23 Parameter DCS Nilai [dalam heksa] 00 F0 F1 F2 F3 F4 F5 F6 F7
Pengkodean karakter Default (7bit) Default (7bit) Default (7bit) Default (7bit) Default (7bit) 8 bit 8 bit 8 bit 8 bit
Message Class Tidak ada class Class 0 (immediate display) Class 1 (Mobile Equipment-spesific) Class 2 (SIM specific message) Class 3 (Class 3 Terminate Equipment-specific) Class 0 (immediate display) Class 1 (Mobile Equipment-spesific) Class 2 (SIM specific message) Class 3 (Class 3 Terminate Equipment-specific)
Alfabet default yang mengindikasikan bahwa UD (User Data) dikodekan dari alfabet 7 bit, dapat dilihat pada lampiran. Ketika yang digunakan adalah pengkodean 7 bit maka 8 karakter dari SMS akan dipaketkan (di dalam
58 pengkodean 8 bit hanya mencapai 140 karakter saja). Untuk standar teks SMS yang digunakan adalah =00h.
3.4.5
Originating Address (OA) Field OA terdapat di PDU_DELIVER dan menunjukkan nomor dari ME pengirim SMS. Field OA terdiri dari 3 bagian :
Tabel 3.24 Field OA Panjang OA 1 oktet
Tipe OA 0-1 oktet
Nomor OA 0-10 oktet
Indikator panjang menandakan panjang nomor OA (tanpa tipe OA) dalam representasi integer dari jumlah digitnya. Tipe OA menandakan numbering plan internasional atau nasional (81h untuk nasional dan 91h untuk internasional). OA dikodekan sama persis seperti SCA, sebagai berikut :
Tabel 3.25 Cara Pengisian field OA Oktet ke 1 2 3 4 5 … N
Isi Panjang dari isi OA Tipe Number *) Identifikasi Numbering Plan **) Nomor digit ke 2 Nomor Digit ke 1 Nomor digit ke 4 Nomor digit ke 3 Nomor digit ke 6 Nomor digit ke 5 … … Nomor digit terakhir (atau Fh) Nomor digit terakhir atau digit -1
*) Tipe Number : 9h = internasional (dimulai dengan “+”) **) Identifikasi Numbering Plan : 1h = Numbering plan ISDN (juga valid untuk GSM)
59 Jika panjang nomor OA adalah ganjil maka supaya genap digit terakhir akan diisi dengan F h. Contoh : OA dengan nomor “+62856106767” dalam format PDU akan menjadi “0B912658166067F7”, dengan pengkodean sebagai berikut :
Tabel 3.26 Contoh Pengisian Field OA Oktet ke 1 2 3 4 5 6 7 8
Isi 0B h 9 2 5 1 6 6 F
1 6 8 6 0 7 7
Keterangan Panjang SCA = 11 digit Tipe SCA = internasional Nomor OA
Contoh Lainnya :
Tabel 3.27 Contoh-contoh Format Pengisian Field OA
3.4.6
Originating Address + 1234567
Format PDU 07 91 21 43 65 F7
+ 43664050
06 91 34 66 04 05
08129694300 0812929527
0B 81 80 21 69 49 03 F0 0A 81 80 21 29 59 72
Keterangan Tipe OA = Internasional Tipe OA = Internasional Tipe OA = nasional Tipe OA = nasional
Destination Address (DA) Aturan format DA sama persis dengan aturan dengan format OA.
60 3.4.7
Message Reference (MR) Field MR memberikan representasi integer (0..255) dari nomor referensi SMS-SUBMIT yang dikirimkan ke SC oleh ME. Nilai MR dihasilkan secara otomatis oleh ME, namun dalam SMS-SUBMIT nilai MR tetap harus dimasukkan sebagai contoh “00h”.
3.4.8
Validity Period (VP) Jika bagian ini dilewatkan, itu berarti kita tidak membatasi waktu berlakunya SMS. Sedangkan jika kita isi dengan suatu bilangan integer yang kemudian diubah ke pasangan heksa tertentu, bilangan yang kita berikan tersebut akan mewakili jumlah waktu validitas SMS tersebut. Rumus untuk menghitung jangka waktu validitas SMS adalah sebagai berikut :
Tabel 3.28 Parameter VP Nilai VP [dalam heksa] 00-8F 90-A7 A8-C4 C5-FF
Nilai VP dalam satuan waktu (VP+1)x5 menit [dari 5 menit hingga 12 jam] 12jam + ((VP-143) x 30 menit) (VP-166) x 1hari (VP-192) x 1 minggu
Agar SMS kita pasti terkirim sampai ke ponsel penerima, sebaiknya kita tidak memberikan batasan waktu validnya.
3.4.9
User Data Length (UDL) dan User Data (UD) Header ini terdiri atas dua subheader, yaitu :
61 a. Panjang Isi (jumlah huruf dari isi) Misalnya : untuk kata “hello”
ada 5 huruf
05
b. Isi berupa pasangan bilangan heksa. Untuk ponsel yang berskema encoding 7 bit, jika kita ingin mengetikkan suatu huruf dari keypadnya, berarti kita telah membuat 7 angka I/O berturutan.
3.5
Diagram Alir Sistem Berikut adalah diagram-diagram alir yang terdapat pada sistem hardcopy record beserta penjelasan singkatnya.
3.5.1 Prosedur Utama Pada awalnya, MCS akan mengirim perintah AT Command untuk membaca SMS yang baru pada inbox (unread SMS), bila terdapat SMS baru maka HP akan membalas dengan mengirimkan data PDU ke mikrokontroler. Kemudian data PDU itu diubah ke string yang dikenal oleh bahasa kita dan hasilnya dicetak ke printer. Setelah itu SMS tersebut akan dihapus dan proses akan mengulang proses awal, demikian seterusnya.
62
Start
Inisialisasi Sistem
MCS transmit Ke HP Tidak Ada SMS di HP? Ya MCS receive dari HP
Convert PDU
Print
Delete SMS Gambar 3.10 Modul Utama
63 3.5.2
Prosedur Mencetak SMS Dengan Printer
Inisialisasi Printer
Masukkan Data ke P0
Printer Busy? Tidak Clear Strobe
Set High Strobe
SMS tercetak
Gambar 3.11 Diagram alir mencetak SMS dengan printer
Masukkan data ke port data, dalam hal ini penulis menggunakan port 0 (P0), kemudian cek apakah printer dalam keadaan sibuk atau tidak, Jika printer dalam keadaan busy (sibuk), printer tidak akan menerima data, dan data yang ditulis akan hilang. Set pin 1 strobe low (‘0’), ini menandakan printer bahwa data yang ada di port data adalah benar. Kemudian set strobe tinggi setelah menunggu kira-kira 5 mikrodetik setelah menset strobe rendah.
64 3.5.3
Prosedur Mengirim AT Command ke Ponsel
Start
Clear TI
Ya
Baca data = $??
Tidak Masukkan data ke SBUF
Cek Ti = 1 ? Tidak
Ya
End Gambar 3.12 Mengirim AT Command ke Ponsel
65 Pertama-tama dilakukan inisialisasi MCS yaitu menentukan pengaturan terhadap komunikasi serial kita antara HP dan mikrokontroler. Yang perlu diset disini: •
TMOD = 20h ; Program T1 untuk Mode2
•
TH1 = 0FDh ; baud rate = 9600 bps
•
SCON = 50h ; Program SCON untuk Mode1, 8 bit, 1 stop, 1start, REN enabled
•
Setb TR1 ; mengaktifkan Timer 1
Setelah itu kita membersihkan nilai TI (TI = 0) yang merupakan register untuk mengirim data, yang menandakan MCS dalam keadaan siap untuk mengirim. Lalu baca data yang mau dikirim apakah sama dengan $ ($ digunakan sebagai penanda akhir sebuah string). Jika data yang dibaca adalah $ maka program berhenti mengirim, jika tidak sama dengan $, data akan dimasukkan ke SBUF (SBUF merupakan serial buffer untuk komunikasi serial, besarnya 1 byte). Lalu program akan mencek TI, jika TI
sama dengan 0, maka akan
melakukan pengulangan terus menerus hingga nilai TI adalah 1. Jika TI sudah bernilai 1, maka proses akan diulang lagi ke proses pembacaan data yang mau dikirim. Hal ini diulang terus hingga semua bit dikirim dan ditemukan $ pada data terakhir yang mengakhiri program pengiriman.
66 3.5.4
Prosedur Menerima data PDU dari Ponsel Pertama-tama yang dilakukan adalah nilai ES diset 1 untuk mengaktifkan interrupt serial. Jika ada interrupt serial maka ES harus diset 0 agar tidak menerima interrupt serial untuk sementara. Kemudian cek apakah RI bernilai 1 , kalau ada maka masukkan data yang ada di SBUF ke memori. Kemudian RI diset 0 kembali dan ES diset 1 supaya bisa menerima interrupt serial berikutnya.
67
Start
Ada Interrupt serial
Clear ES
Tidak Cek Ri = 1? Ya Store Sbuf
Simpan di memori
Clear RI
Setb ES
End
Gambar 3.13 Menerima Data PDU dari Ponsel
68 3.5.5
Prosedur Konversi PDU ke Teks Pada prosedur ini, terbagi 3 sub prosedur yaitu : prosedur konversi PDU ke nomor ponsel pengirim, prosedur konversi PDU ke waktu kirim dan prosedur konversi PDU ke isi pesan.
3.5.5.1 Prosedur Konversi PDU ke Nomor Ponsel Pengirim Pointer menunjuk pada data yang akan dikonversikan. Karena pada awal nomor ponsel harus diawali dengan 0B atau 0C maka dilakukan pengecekan terlebih dahulu. Kemudian diambil sepasang data lalu ditukarkan posisinya sehingga didapat pasangan data yang pertama. Proses ini dilakukan sebanyak 6 kali sehingga diperoleh nomor ponsel yang mengirimkan SMS.
69 Data dalam bentuk PDU
Pointer menunjuk ke data Pointer maju Cek 0 Tidak Ya Cek B ? Tidak Tidak
Cek C ? Ya
Ya
Pointer maju
Ambil 1pasang
Tukar
Simpan
Tidak
Sudah 6 x ? Ya Prosedur konversi to W aktu
Gambar 3.14 Diagram Alir Konversi PDU ke Nomor Ponsel Pengirim
70 3.5.5.2 Prosedur Konversi PDU ke Waktu Kirim Pointer menunjuk pada data yang akan dikonversikan. Kemudian diambil sepasang data lalu ditukar posisinya sehingga didapat pasangan data yang pertama. Proses ini dilakukan sebanyak 6 kali sehingga diperoleh tanggal dan jam pengiriman SMS.
Prosedur konversi to No
Ambil 2 pasang
Tukar
Pointer maju
Sudah 6x?
Tidak Ya Prosedur konversi to Isi
Gambar 3.15 Diagram Alir Konversi PDU ke Waktu Kirim
71
3.5.5.3 Prosedur Konversi PDU ke Isi Pesan Dalam prosedur ini, isi SMS, waktu pengiriman SMS dan nomor pengirim SMS dalam bentuk PDU akan dikonversikan ke bentuk teks, bentuk yang dikenal atau dimengerti manusia.
Data Dalam bentuk PDU
Ambil Data 1
Ubah Data 1ke biner
Ambil data 2
Ubah Data 2ke biner
Gabung Data 1 dan Data 2
Ubah data menjadi 7 bit Tidak Apakah data sudah selesai ? Ya Data dalam bentuk string
Gambar 3.16 Diagram Alir Konversi PDU ke Isi Pesan
72 Pointer menunjuk pada data yang akan dikonversikan. Data yang didapat dari ponsel masih dalam bentuk PDU, dan setiap pasangan heksa mewakili 1 karakter pada teks. Pasangan heksa itu diambil data pertamanya untuk kemudian diubah menjadi biner. Contoh : E diubah menjadi 15d = 1 1 1 0, kemudian data ke 2 juga diubah ke biner. Contoh : 8 diubah menjadi 8d = 1 0 0 0. Lalu 4 bit terakhir dari data pertama digabung dengan 4 bit terakhir data menjadi satu data. Contohnya : E=00001110 8=00001000 Digabung menjadi : 11101000 Oleh karena mode text merupakan representasi 7 bit, data 8 bit itu diubah menjadi 110 1000 = 68h = ‘h’ (Text ASCII). Proses ini dilakukan terus sampai data PDU habis.