Senin, 22 Maret 2010

KAuC : Komunikasi dgn UART

.
Silahkan baca posting sebelumnya.

Sebelum membahas jenis komunikasi antar MCU yang lebih sulit, maka saya bahas yang paling mudah dulu yaitu Komunikasi antar MCU menggunakan UART. Pastikan Hardware yang dibuat telah benar dan tidak error lagi sehingga hanya fokus masalah Coding saja, Langkah ini adalah langkah awal dan penting untuk memperkecil kesalahan.
Berikut saya bahas singkat pengecekan hardware untuk KAuC dengan UART.

Perancangan dan Pengecekan Hardware
1. Buat 2 buah rangkaian MCU (Microcontroller Unit).
Buat 2 buah rangkaian MCU ATmega8535. MCU pertama dijadikan Master dan MCU kedua dijadikan Slave.

2. Buat 1 buah rangkaian konverter TTL-RS232 jika pada MCU belum tersedia.
Rangkaian Konverter TTL-RS232 ini digunakan hanya untuk pengecekan dengan komputer dan jika anda baru membuat, sebaiknya modular (dapat dipisahkan) dari MCU tetapi beberapa jenis produk yang ada dipasaran telah mencakup konverter TTL-RS232 pada board PCB-nya.
Jika modular, jangan lupa modul TTL-RS232 butuh supply 5 Vdc.

3. Buat 2 buah rangkaian Power supply untuk setiap MCU.
Sebaiknya dibuat 2 Supply sehingga 1 MCU mendapatkan 1 supply. Penggunaan 1 buah Power supply yang di share memang menghemat biaya dan waktu tetapi kadang bisa menyebabkan kurang pahamnya mengenai KAuC. Dengan 2 buah supply maka Master dan Slave dapat dipisahkan cukup jauh sehingga mengetahui konsep KAuC untuk jarak jauh.

4. Cek komunikasi UART MCU Master dan Slave.
Jadikan MCU pertama sebagai Master dan program Master tersebut untuk terus menerus mengirim kata "MASTER" lihat hasilnya pada komputer dengan menggunakan konverter TTL-RS232. Program juga agar Master dapat menerima data dari komputer lalu menampilkannya misalnya ke LCD atau ditampilkan kembali ke komputer.

Jadikan MCU kedua sebagai Slave dan program Slave tersebut untuk terus menerus mengirim kata "SLAVE" lihat hasilnya pada komputer dengan menggunakan konverter TTL-RS232. Program juga agar Slave dapat menerima data dari komputer lalu menampilkannya misalnya ke LCD atau ditampilkan kembali ke komputer.

Jangan lanjut sebelum proses tersebut benar-benar berhasil.

Komunikasi Data ASCII atau Data Heksadesimal
Jika menggunakan interface UART komunikasi data bisa menggunakan data Heksadesimal ataupun karakter ASCII akan tetapi untuk fleksibilitas yang tinggi sebaiknya menggunakan data karakter ASCII.
Dengan komunikasi data menggunakan karakter ASCII anda dapat memperoleh beberapa keuntungan, antara lain :
  • Komunikasi dengan karakter ASCII mudah untuk dipahami karena telah dalam bentuk karakter huruf dan angka bukannya data heksadesimal yang perlu di konversi lagi.
  • Karakter ASCII telah dikenali oleh komputer sehingga dapat langsung ditampilkan menggunakan Hyperterminal sebagai koreksi.
  • Penggunaan karakter ASCII bisa mempermudah jika dihubungkan dengan software seperti Delphi, VB, C++, Visual C, dll.
  • Modifikasi maupun pengembangan komunikasi data selanjutnya mudah dilakukan dengan cepat.
  • Pengguna atau programmer lainnya akan dengan mudah memahami cara penggunaan perangkat / hardware yang anda buat.
Protokol Komunikasi Data
Menentukan protokol komunikasi data bisa sesuai keinginan anda berdasarkan sistem yang dikendalikan dan juga jangan lupa pada Master dan Slave terdapat kesesuaian protokol-nya. Oleh sebab itu beda kepala bisa berbeda protokol yang diinginkan.
Berikut protokol dengan contoh kasus pengendalian motor servo oleh Slave dengan data sudut pergerakan setiap servo ditentukan oleh Master.

Dari gambar, Master sebagai Main Processor yaitu "pemikir" yang berfungsi membaca sensor mengolah dan mengatur nilai sudut-sudut pergerakan setiap motor Servo, sedangkan Slave hanya sebagai penggerak motor servo pada tujuan sudut yang telah diberikan oleh Master.
Beberapa protokol bisa dirancang untuk sistem tersebut. Tapi kali ini hanya transfer data Streaming saja yang akan saya bahas.

Transfer data Streaming.
Protokol ini yang paling sederhana serta paling cepat (untuk format ASCII). Cara ini yaitu Master mengirim data sudut pergerakan untuk seluruh motor servo secara sekaligus dalam satu waktu, sehingga Slave hanya sebagai penerima data.

Motor servo pada Slave diberi nama yang unik dan berbeda-beda. Jika pada Slave tidak diketahui berapa motor servo yang akan dipasang tetapi yang pasti jumlah maksimum motor servo pada Slave adalah sebanyak total pin I/O Slave dikurangi pin Rx dan Tx.
Karena MCU ATmega8535 maka maksimum motor servo adalah 32 pin - 2 pin = 30 pin atau 30 Motor Servo.

Selanjutnya setiap motor servo diberi alamat berupa huruf yang berbeda, Misal motor servo 1 = 'A', motor servo 2 = 'B', motor servo 3 = 'C', motor servo 4 = 'D', motor servo 5 = 'E' .... , dst (Lihat Tabel ASCII). Dan komunikasi sudutnya berupa angka dengan digit bersesuaian seperti '120', '85', '9', ' 155', dst. Tambahkan karakter akhir data untuk mempermudah misalkan karakter ';'.
Dari alamat dan komunikasi sudut serta karakter akhir maka format Protokol Streaming yang dikirim Master ke Slave tampak seperti gambar disamping.


Semoga Manfaat ;)

Topik yang Populer