Jumat, 19 Maret 2010

KAuC : Syarat-syarat Interface Perangkat

.
Silahkan Baca :
KAuC : Introduction Part I
KAuC : Introduction Part II

Agar komunikasi antar perangkat dapat terjadi maka beberapa persyaratan harus terpenuhi. Jika tidak maka komunikasi data bisa rusak atau komunikasi tidak terjadi bahkan perangkat yang berkomunikasi bisa saling merusak.
Kali ini hanya fokus komunikasi antar mikrokontroller.

Syarat-Syarat KAuC
Beberapa syarat KAuC dapat terjadi antar lain :
  1. Level tegangan antar MCU yang berkomunikasi harus sama.
  2. Kecepatan transfer data (Baudrate) sama, untuk komunikasi TWI atau SPI maka kecepatan SCK Master tidak boleh cepat dari kecepatan SCK Slave.
  3. Salah satu mengirim saja dan yang lainnya menerima saja, untuk Full Duplex bisa mengirim dan menerima sekaligus.
  4. Protokol komunikasi data yang bersesuaian antar MCU.
  5. Terdapat Handshake (Jabat Tangan) sebagai indikator komunikasi data, bisa berupa pin atau karakter HandShake.
  6. (Optional) terdapat CRC (Cyclic Redundancy Check) setiap akhir komunikasi data.
1. Level tegangan antar MCU yang berkomunikasi.
Jika 2 buah MCU atau antar perangkat terhubung untuk komunikasi data maka level tegangannya harus sama, apakah menggunakan level TTL(Transistor Transistor Logic), Level RS232, RS485, dll.

Baca : www.allaboutcircuits.com
Jika level tegangan dan jenis yang digunakan berbeda maka data yang dikomunikasikan bisa berubah (data error) bahkan bisa merusak perangkat yang berkomunikasi.




Data Error, Misal :
MCU Master berkomunikasi dengan level TTL yang memiliki range 0 - 5 Vdc sedangkan Slave dengan level TTL range 0 - 3,3 Vdc, data bisa saja error karena Slave tidak mampu memberikan logika 1 (hingga 5 Vdc) karena level maksimumnya 3,3 Vdc.
Tapi tampak pada gambar bahwa level TTL untuk Vih (V Input High Level) yang mendeteksi logika 1 minimal pada level 2,0 Vdc. (Jadi error-nya mungkin jarang).

Merusak MCU, Misal :
MCU Master berkomunikasi dengan level TTL yang memiliki range 0 - 5 Vdc sedangkan Slave dengan level RS232 dengan range ±25 Vdc maka Slave dapat merusak Master karena level tegangan mencapai +25 Vdc hingga -25 Vdc.

2. Kecepatan Transfer Data.
Untuk komunikasi data UART tentu saja Baudrate Master dan Slave harus sama jika tidak, data yang dikomunikasikan akan mengalami error. Sedangkan untuk SPI atau TWI maka kecepatan sinyal SCK (Serial Clock) Master maksimal sama (tidak boleh lebih besar) dengan kecepatan Clock MCU Slave. Selain itu komunikasi parallel juga kecepatan Clock Master tidak boleh lebih besar dari kecepatan Clock Slave.

3. Salah Satu Mengirim dan Lainnya Menerima.
Agar komunikasi data tidak membingungkan maka sebaiknya salah satu mengirim dan yang lainnya menerima pada satu waktu, jika diinginkan sebaliknya maka harus ada sinyal atau data HandShake yang memicu pertukaran fungsi yaitu yang semula mengirim jadi penerima dan yang semula penerima jadi pengirim.

Apabila mendukung fungsi Full Duplex dan dalam hal tertentu mewajibkan komunikasi input output bersamaan maka Mengirim dan Menerima dapat dilakukan bersamaan.

4. Protokol Komunikasi Data.
Jika anda mengkases perangkat yang tinggal pakai, maka programmer mau tidak mau harus mengikuti protokol yang telah dibuat oleh perancang produk, tetapi untuk KAuC protokol dapat anda rancang sesuka anda selama anda memahami protokol tersebut dan antar Master dan Slave telah terjadi kesepakatan Protokol komunikasi data.
Protokol bisa mencakup panjang data, jenis transfer data, Command-command komunikasi, Operational Code, dll.
Link : www.freescale.com, www.microchip.com

5. HandShake (Jabat Tangan)
HandShake atau Jabat tangan berfungsi sebagai tanda serah terima data dan pergantian fungsi. Handshake bisa berupa pin (data 1 bit) maupun data heksa desimal / ASCII (data 8 bit).
HandShake digunakan sebagai indikator bahwa 1 data telah diberikan atau diterima dan siap melanjutkan proses selanjutnya.

HandShake Pin CS, RD, dan WR :
Jika Master mengaktifkan pin CS kemudian diikuti WR berarti memberitahu ke Slave bahwa Master mengirim 1 data dan Slave harus menerima 1 data.
Jika Master mengaktifkan pin CS kemudian diikuti RD berarti memberitahu ke Slave bahwa Master Meminta 1 data dan Slave harus mengirim 1 data.
Pin CS diaktifkan saat komunikasi 1 data akan dimulai dan dimatikan saat komunikasi 1 data telah selesai.

Misal HandShake data 1 Byte ASCII / Heksadesimal :
Data 2 Byte = 1 Byte awal sebagai command dan 1 byte akhir sebagai data.
Jika Master mengirim data heksadesimal 0x57 atau karakter 'W' (Write) maka Slave siap menerima 1 data yang mengikuti karakter 'W' tersebut.
Jika Master mengirim data heksadesimal 0x52 atau karakter 'R' (Read) maka Slave siap memberikan 1 data setelahnya.
Link : Tabel ASCII.

6. Pengecekan Data Error atau CRC
Ini adalah optional atau pilihan yang berarti bisa digunakan atau tidak, tapi beberapa kondisi wajib digunakan seperti pada transfer data pada VCD, FlashDisk, dll.
Lebih lengkap baca di wikipedia atau search di google.


Syarat Interface KAuC selesai.
Semoga Manfaat ;)

Topik yang Populer