METODE PENELITIAN

4.5 Sinkronisasi Master dan Slave

Pada penelitian ini dipilih metode sinkronisasi dengan penambahan dan pengurangan waktu hijau untuk semua arah. Nilai total perubahan waktu hijau fase 1 hingga 4 ditetapkan harus kurang dari 25 % dari nilai waktu siklus. Jika dari hasil perhitungan ternyata perubahan waktu hijau total harus sama dengan atau melebihi 25 % dari nilai waktu siklus. Maka sinkronisasi akan dilaksanakan dalam waktu lebih dari satu siklus. Setiap siklus hanya mengubah total waktu hijau kurang dari 25 % dari waktu siklus.

Pemilihan metode mana yang digunakan (penambahan atau pengurangan) atas pertimbangan metode mana yang membutuhkan waktu paling singkat. Pendeteksian waktu paling singkat adalah dengan menentukan mana yang menimbulkan perubahan terkecil terhadap waktu hijau untuk semua fase. Metode sinkronisasi ini dijalankan di setiap akhir siklus yaitu akhir state 12 bagi slave.

A. Mekanisme Sinkronisasi Master dan Slave

APILL master dan slave dapat mengatur isyarat lalu-lintas sesuai jadwal. Pembacaan jadwal di basis data dilakukan satu kali dalam satu siklus. Sesuai Tabel 3, pada akhir state 11 yaitu akhir isyarat kuning fase 4, sistem membaca data waktu dari

RTC. Langkah ini diikuti dengan pembacaan jadwal pengaturan yang tersimpan di EEPROM. Pada langkah ini, diambillah data waktu hijau fase 1 hingga 4 (h 1,j ,h 2,j ,h 3,j , dan h 4,j ) yang bersesuaian dengan hari dan jam saat itu. Siklus berikutnya diatur berdasar data waktu hijau yang baru sata diambil dari EEPROM.

Pada akhir state 12 yaitu sesaat sebelum diberikannya isyarat hijau arah 1, APILL master mengirim data sinkronisasi ke APILL slave. Master mengirimkan dua byte data sinkronisasi ke slave melalui USART1. Byte pertama berisi kode sinkronisasi; sedangkan byte kedua berupa data siklus yang saat itu berlaku di master. Data tersebut langsung diterima di slave melalui USART1. Di sini digunakan interupsi USART1 untuk menjamin bahwa data langsung diterima slave dan disimpan. Pada saat menerima data tersebut, slave membaca data waktu dari RTC dan mencatatnya sebagai waktu slave menerima data sinkronisasi dari master atau t SM . Data waktu slave menerima data sinkronisasi dari master pada siklus ke-j diberi notasi t SM:j . Hal ini dapat dilihat pada Gambar 11.

an ILL P

A Gondoman

LL API Bintaran

Gambar 11 Proses sinkonisasi antara master dan slave Agar dapat mengatur isyarat lalu-lintas sesuai jadwal, APILL slave juga membaca data dari basis data satu kali dalam satu siklus. Sesuai Tabel 3, pembacaan jadwal dilakukan pada akhir state 11 yaitu akhir isyarat kuning pada arah 4. Pembacaan jadwal ini diikuti dengan pengerjaan algoritma sinkronisasi di akhir state 12 atau sebelum diberikannya isyarat hijau arah 1.

Sebelum algoritma ini dijalankan, APILL slave membaca waktu dari RTC dan mencatatnya sebagai waktu slave mengerjakan algoritma sinkronisasi atau t SS . Data waktu slave mengerjakan algoritma sinkronisasi pada siklus ke-j diberi notasi t SS:j . Selisih antara t SM,j dan t SS,j yaitu Δt S,j akan dijadikan dasar proses sinkronisasi. Δt S,j Sebelum algoritma ini dijalankan, APILL slave membaca waktu dari RTC dan mencatatnya sebagai waktu slave mengerjakan algoritma sinkronisasi atau t SS . Data waktu slave mengerjakan algoritma sinkronisasi pada siklus ke-j diberi notasi t SS:j . Selisih antara t SM,j dan t SS,j yaitu Δt S,j akan dijadikan dasar proses sinkronisasi. Δt S,j

B. Algoritma Sinkronisasi

Slave mengerjakan algoritma sinkronisasi pada akhir state 12. Waktu dimulainya pengerjaan algoritma sinkronisasi yang terjadi pada siklus ke-j ini disebut t SS,j . Algoritma sinkronisasi yang dijalankan APILL slave sebagai berikut:

1. Baca data waktu dari RTC saat ini dan catat sebagai waktu slave mengerjakan sinkronisasi siklus ke-j: t SS,j .

2. Hitung delta sinkronisasi siklus ke-j atau Δt S,j . Δt S,j =t SM,j -t SS,j (11)

dengan : t SM,j = waktu slave menerima data sinkronisasi dari master pada siklus ke-j t SS,j = waktu slave mngerjakan sinkronisasi siklus ke-j Delta sinkronisasi tak lain merupakan nilai tertinggalnya waktu hijau fase 4 slave dari waktu hijau fase 4 master.

3. Hitung galat sinkronisasi. ξ j = ω MS - Δt S,j (12) dengan ξ j = galat sinkronisasi pada siklus ke-j Δt S,j = delta sinkronisasi siklus ke-j ω MS = waktu tempuh kendaraan dari APILL master ke APILL slave

Delta sinkronisasi mestinya sama dengan waktu tempuh kendaraan dari master ke slave. Jika dalam kenyataan keduanya belum sama, maka akan terdapat selisih sebagaimana 0. Proses sinkronisasi harus dapat menjadikan nilai ξ j menjadi nol.

4. Cek validitas galat sinkronisasi, jika ξ j >T j → sinkronisasi batal Nilai ξ j tidak mungkin melebihi waktu siklus atau T j . Jika ini terjadi maka APILL slave akan menganggap data ξ j tidak valid (invalid) dan mengabaikan data sinkronisasi dari slave pada siklus tersebut. Proses sinkronisasi pun dibatalkan.

5. Apakah ξ j bernilai negatif? Jika ξ j <0 → kerjakan langkah berikutnya, jika tidak → kerjakan langkah ke-9.

Jika nilai ξ j bernilai negatif, maka kendaraan dari arah fase 4 master harus menanti sebentar agar mendapat isyarat hijau setibanya di slave. Hal ini berarti waktu Jika nilai ξ j bernilai negatif, maka kendaraan dari arah fase 4 master harus menanti sebentar agar mendapat isyarat hijau setibanya di slave. Hal ini berarti waktu

6. Batasi nilai ξ j , jika ξ j <–

→ξ j =–

Nilai ξ j yang cukup besar menyebabkan perubahan waktu isyarat hijau beberapa arah berubah cukup berarti. Untuk mengatasi hal tersebut, nilai ξ j dibatasi

tidak boleh kurang dari – . Sisa dari pemotongan nilai ξ j akan terdeteksi pada siklus

berikutnya dan akan kembali dicoba dihilangkan.

7. Kompensasikan ξ j ke semua nilai waktu hijau siklus berikutnya mengikuti Persamaan 13.

h i ; Δh j i:j+1 = 4 × ξ j (13)

dengan : Δh i:j+1 = nilai perubahan waktu hijau arah i siklus ke-j+1

h i:j = waktu hijau arah i siklus ke-j APILL slave mengurangi waktu isyarat hijau di semua arah agar waktu pemberian isyarat hijau berikutnya dapat dimajukan. Nilai pengurangan dan penambahan waktu isyarat hijau untuk arah i dilakukan secara proporsional mengikuti Persamaan 13.

8. Penepatan nilai Δh i:j+1 Semua variabel yang digunakan pada sistem ini bertipe integer 8 bit atau 16 bit. Pengkompensasian nilai ξ j menggunakan 0 kemungkinan tidak akan menjadikan nilai ξ j menjadi nol. Untuk itu perlu dilakukan penepatan nilai Δh i:j+1 agar bisa “menghabiskan” nilai ξ j . Nilai tersebut didistribusikan ke setiap arah dimulai dari arah yang memiliki h i:j+1 tertinggi.

Setelah mengerjakan langkah ini, algoritma sinkronisasi selesai dan kembali ke progam utama.

9. Apakah ξ j bernilai positif, jika ξ j >0 → kerjakan langkah berikutnya, jika tidak → selasai.

Jika nilai ξ j bernilai positif, maka sebagian kendaraan dari arah 4 master dapat terlambat mendapat isyarat hijau setibanya di slave. Hal ini berarti waktu pemberian isyarat hijau di slave harus dimundurkan.

10. Batasi nilai ξ j , jika ξ j >

→ξ j =

Nilai ξ j yang cukup besar menyebabkan perubahan waktu isyarat hijau beberapa arah berubah cukup berarti. Untuk mengatasi hal tersebut, nilai ξ j dibatasi

tidak boleh lebih dari .

11. Kompensasikan ξ j ke semua nilai waktu hijau siklus berikutnya mengikuti Persamaan 13. APILL slave akan menambah waktu isyarat hijau di semua arah agar waktu pemberian isyarat hijau berikutnya dapat dimajukan. Nilai penambahan waktu isyarat hijau untuk arah i dilakukan secara proporsional mengikuti Persamaan 13.

12. Penepatan nilai Δh i:j+1 Penepatan nilai Δh i:j+1 ini juga perlu dilakukan nilai agar dapat “menghabiskan” nilai ξ j . Nilai tersebut didistribusikan ke setiap arah dimulai dari arah yang memiliki h i:j+1 tertinggi. Setelah mengerjakan langkah ini, algoritma sinkronisasi selesai selesai dan kembali ke progam utama.

Proses sinkronisasi menghasilkan perubahan waktu hijau. Nilai perubahan tersebut disimpan dalam variabel Δh i:j+1 . Perubahan tersebut hanya berlaku untuk satu siklus berikutnya, yaitu n+1. Di akhir siklus nilai Δh i:j+1 akan selalu direset.

Jika pada langkah ke-6 tenyata ξ j <– atau pada langkah ke-10 ternyata ξ j >

, maka nilai ξ j tidak akan semuanya dikompensasikan pada perubahan nilai waktu

4 hijau. Setelah proses sinkronisasi, masih terdapat nilai ξ j . Pada kasus ini, proses sinkronisasi pada siklus berikutnya akan mendeteksi nilai ξ j , kemudian kembali akan mengkompensasi nilai tersebut ke Δh i:j+1 .

C. Algoritma Sinkronisasi Siklus Pertama

Algoritma sinkronisasi di atas digunakan untuk mensinkronkan kembali pewaktuan APILL master dan slave. Pada saat APILL slave mulai aktif, sebelum mengatur isyarat lalu-lintas mengikuti Tabel 3, APILL tersebut akan menjalankan algoritma sinkronisasi khusus untuk siklus pertama. Algoritma ini pada hakekatnya digunakan untuk menunda aktifnya APILL slave sehingga dapat sinkron dengan APILL master.

Algoritma sinkronisasi khusus siklus pertama yang dijalankan APILL slave sebagai berikut:

1. Tunggu isyarat sinkronisasi dari master.

2. Setelah mendapat data sinkronisasi dari master, catat waktu mendapat data tersebut sebagai t SM,1 .

3. Baca data waktu dari RTC sebagai t SS,1 .

4. Apakah t SS,1 =t SM,1 + ω MS ? Jika ya → jalankan pengaturan isyarat lalu-lintas mengikuti Tabel 3, jika tidak → kembali ke langkah ke-3.

Dengan algoritma tersebut, pada saat mulai aktif, APILL slave langsung sinkron dengan APILL master.