CAN
(Contral Area Network) pertama kali dikembangkan oleh Robert Bosch
GmbH, Jerman pada tahun 1986 whenthey diminta untuk mengembangkan sistem
komunikasi di antara tiga ECU (electronic control unit) kendaraan yang
dirancang oleh Mercedes. Mereka menemukan melakukan titik ke titik
komunikasi yang tidak lagi cocok dalam situasi ini. Kebutuhan untuk
sistem komunikasi multi-master Menjadi keharusan. Silikon CAN pertama
yang kemudian dibuat pada tahun 1987 oleh Intel. Untuk mempelajari
system CAN Bus masih banyak kendala, karena belum ada model/trainer
pembelajaran yang mudah dan cepat.
Trainer yang dirancang untuk pembelajaran pemrograman, yang Programnya dibuat pada komputer menggunakan
software
Keil Compiler µVision 3dan Flip (Flexible In-System Programmer).
Download program ke mikrokontroller menggunakan sambungan kabel RS 232.
Trainer ini sangat praktisdilengkapi Input Output, sebagai monitor
penerima data dan pengirim data
Hasil implementasi Trainer CAN
BUS dengan mikrokontroler Atmel yang dilengkapi dengan Input Output
sangat membantu Guru/Instruktur mengajar sistem ini dapat berfungsi
dengan dan dapat dihubungkan dengan berepa trainer sebagai simulasi
sistem komunikasi CAN pada sebuah mobil.
Kata Kunci: CAN BUS, µVision 3,Flip, Trainer
Pendahuluan
Pertama
tama kita harus mengetahui apa yang dimaksud dengan CAN BUS yaitu
Controller Area Network(CAN) adalah jaringanserial, yang dikirim dan
diterima adalah data berupa bilangan Hexsadesimal maksimum sebanyak 8
data byte.Sebuah jaringanantarasensor, mikrokontrolerdan aktuator
sebagai contoh pada mobil jaringan antara tiga system kontrol elektronik
unit /ECUs (electronic control units).
Gambar 1. Sistim CAN di Mobil
Sekarangpopulerdalam
otomasi industridan aplikasipertanian. CAN Bus menggunakan
sistemdua-kawat, sangat cocokuntuk aplikasikecepatan tinggimenggunakan
pesansingkat.Menawarkantingkatkomunikasihingga1Mbit/
detikMembiarkankontrolsecara real-time.
CAN adalah jaringan
multi-master yang dilakukan menggunakan Pesan Prioritas. Pesan prioritas
tinggi dijamin untuk mendapatkan akses bus seolah-olah itu adalah
satu-satunya pesan yang dipancarkan. Pesan prioritas rendah yang secara
otomatis kembali ditransmisikan dalam siklus bus berikutnya, atau dalam
tawaran siklus bus berikutnya jika ada diam lainnya, pesan prioritas
tinggi menunggu untuk dikirim. Sebelum mengirim pesan pemeriksaan simpul
CAN jika bus sibuk. Oleh karena itu menggunakan deteksi tabrakan untuk
tambang deterministik jika pesan telah diubah. Isi pesan tersebut diberi
label oleh identifier di lakukan adalah unik Sepanjang jaringan. Semua
node lain pada jaringan menerima pesan dan masing-masing melakukan pada
tes penerimaan pada identifier untuk tambang deterministik jika ada
pesan, dan berlari sehingga isinya, relevan untuk melakukan simpul
khusus. Jika pesan yang relevan, maka akan diproses, kalau tidak
diabaikan.
1. Model Referensi untuk Sistim Teknik Komunikasi
Pada
International Standardization Organization (ISO) menetapkan dengan
ISO/OSI-7-lapis (layer), merupakan standart internasional untuk sistim
komunikasi. Tugas-tugas komplek dalam keseluruhan komunikasi antar
perangkat dijabarkan kedalam setiap lapisan. Pada setiap lapisan
terdapat objek-objek yang lebih terperinci lagi fungsinya. Komunikasi
antar lapisan diatur oleh protokol-protokol tertentu. Protokol
didefinisikan sebagai suatu pernyataan tata cara untuk pertukaran
informasi.
Pada sistim komunikasi yang sederhana (Field bus) tidak
diperlukan semua seluruh fungsi-fungsi dari OSI model. Demikian pula
pada fungsi dari sistim otomasi, misalnya Routing (mencari jejak atau
arah dalam jaringan yang komplek), yang dipilah dalam lapisan ke 4 tidak
diperlukan lagi. Atas dasar tersebut, maka sistrm teknik komunikasi
dalam lingkup automasi cukup diperlukan lapisan fisik (layer 1, Physical
Layer), lapisan pemasti data (layer 2, Data-Link Layer), dan lapisan
aplikasi (layer 7, Application Layer).
, lapisan pemasti data (layer 2, Data-Link Layer), dan lapisan aplikasi (layer 7, Application Layer).
Gambar 2. : ISO/OSI-Modell
Lapisan Fisik (Layer 1)
Pada
lapisan ini ditentukan berlangsungnya pemindahan data. Hal tersebut
berkaitan dengan besaran level, penataan logika dan penempatan kaki
steker.
Pada CAN pemindahan data memlalui port RS 485 (perbedaan tegangan) atau sesuai dengan ISO 11899
Lapisan Pemasti Data (Layer 2)
Pada
lapisan ini informasi yang akan dikirim dikemas dalam bentuk frame yang
sesuai dan dilengkapi dengan suatu kode untuk pengujian kesalahan. Pada
lapisan ini juga dipantau acces suatu media.
Pada CAN banyak sekali
terdapat protokol chip dipasaran. Demikian pula dengan mikrokontroler
ada yang ditawarkan CAN modul yang telah terintegrasi.
Lapisan aplikasi (Layer 7)
Pengguna
dapat memanfaatkan layanan-layanan yang diperlukan untuk fungsi-fungsi
dasar dalam komunikasi yang dibutuhkan dalam aplikasi (misalnya memulai
dan mengakhiri hubungan).
Untuk penggunaan CAN dalam teknik automasi
telah diciptakan CAN Application Layer. Hal ini didefinisikan berbagai
layanan yang dapat dipergunakan untuk suatu aplikasi.
2. Sistim Teknik Jaringan komunikasi
Pada sistem jaringan secara teknis berdasarkan ISO/OSI model terdiri atas :
Topologi (konfigurasi dalam ruang)
Level dalam media pemindahan data (besaran signal)
Arbitrasi (hak akses) dalam media pemindahan data
Protokol (aturan main suatu komunikasi)
2.1 Topologi (bentuk jaringan)
Bentuk jaringan adalah suatu hubungan antar sistim, secara umum ada beberapa bentuk topologi antara lain star, ring dan bus
Gambar 3: Topologi dalam bentuk jaringan
Bentuk Star
Komputer
pusat adalah titik tengah dalam star. Setiap stasiun terhubung dengan
saluran tersendiri. Komunikasi secara keseluruhan dikendalikan oleh
komputer pusat dan terlibat bersamaan. Jika komputer pusat tidak
bekerja, maka komunikasi tidak lagi berfungsi.
Bentuk Ring
Setiap titik stasiun merupakan pengirim dan penerima. Data berputar
dalam ring satu kali dan menjangkau dari satu titik ke titik stasiun
berikutnya. Setiap titik stasiun menguji, apakah data diarahkan
kepadanya. Jika demikian halnya, maka data tersebut dipindahkan ke dalam
memorinya. Hak pengirim pada umumnya diatur oleh token yang berputar
melingkar (tokenring)
Bentuk Bus
Pada bentuk Bus tidak demikian
tertutup setiap titik stasiun dapat saling berkomunikasi. Akses untuk
bus menggunakan berbagai bentuk (Gambar 3)
Catatan:
Dalam CAN
menggunakan bentuk Bus, yang informasinya dapat menjangkau seluruh
stasiun (dipandang dari timing signal) secara bersamaan, yang merupakan
fungsi dari CAN
2.2 Arbitrasi
Jika banyak pengguna (stasiun)
berkomunikasi dalam suatu media fisik, maka diperlukan pengaturan akses
terhadap media pemindah data. Dalam hal ini berlaku aturan dasar, hanya
satu pengirim yang boleh aktif, namun untuk penerima secara bersamaan
dapat mengakses. Jika terjadi konflik berlaku mekanisme akses
(arbitrasi) untuk memanfaatkan bus.
Dalam aplikasinya metode yang digunakan dibagi dua yaitu akses terkontrol (deterministis) dan akses kebetulan (stokastis).
Gambar 4. Mekanisme akses secara umum
Dalam metode terkontrol dibedakan lebih lanjut apakah pelimpahan hak
akses oleh sentral (master, perangkat sinkronisasi) atau desentralisasi
melalui persetujuan antara pengguna, misal melalui penyerahan token yang
dilaksanakan satu pengguna ke pengguna yang lain.
Dalam
metode dengan akses secara kebetulan pengguna dapat mereservasi bus
segera setelah bus terbebas. Setiap pengguna dalam hal ini hak akses
mempunyai prioritas yang sama (multi master system). Karena cara ini
dapat diberlakukan untuk banyak pengguna secara bersamaan dan dengan
demikian memmicu kolisi., maka wajib berlaku pengaturan sesuai metode
untuk menghindari atau memicu situasi tersebut. Dalam akses bus secara
kebetulan memungkinkan suatu pengiriman informasi berdasarkan even.
Dalam hal ini suatu pengiriman akan berlangsung hanya diperlukan saja.
Catatan:
Pada CAN dipergunakan metode CSMS/CA ( Carrier-Sense Multiple Access/Collision Avoidance )
Beim
CAN wird das CSMA/CA-Verfahren ( Carrier-Sense Multiple
Access/Collision Avoidance ).Dalam hal terjadi konflik (berbagai akses
dalam waktu bersamaan) berlangsung melalui arbitrasi bit per bit (lihat
sub VI).
3. Komunikasi pada CAN
Lingkup penggunaan dan daya guna
sistim teknik jaringan sangat tergatung pada metode arbitrasi dan cara
kerja protokol dalam lapisan ke 2.
Komunikasi antar pengguna berlangsung melalui protokol berorientasi pengguna atau informasi.
Protokol berorientasi Pengguna
Dalam
protokol ini pengirim mengekprisikan alamat asal dan tujuan dalam
aliran data. Dengan demikian informasi menjadi eksklusif untuk pengguna
tertentu.
Protokol berorientasi Informasi
Pengguna yang berwenang
mengirimkan informasi yang ditujukan kepada seluruh pengguna yang
terhubung (Broadcasting). Penerima memiliki perangkat pemfilteran untuk
menyeleksi suatu informasi. Informasi dilengkapi dengan nomer informasi
(identifier). Alamat tujuan informasi dalam hal ini tidak diperlukan
Komunikasi dalam CAN berbasiskan protokol berorientasi informasi. Obyek-obyek informasi yang dipergunakan dalam CAN adalah:
Melalui telegram permintaan data (remote frame), pengguna bus dapat meminta pengirim data suatu informasi tertentu.
Dengan telegram data (data frame) akan diikuti pemindahan data dari satu pengirim ke satu atau beberapa penerima.
Dengan diagram kesalahan (error frame) akan diikuti dengan signalisasi satu kesalahan yang ditengarahi pada pengguna bus.
Dalam
CAN seluruh pengguna mempunyai akses yang sama (multimaster). Dengan
demikian pertukaran informasi antar pengguna secara langsung dapat
dimungkinkan
4. Membuat Informasi CAN (Data dan Remote Frame)
Suatu informasi pada CAN terdiri dari:
Dalam
standart CAN (CAN-2.0 A) identifier terdiri dari 11 bit. Hingga 2048
identifier dapat ditempatkan didalam suatu sistim. Nomer terrendah
memegang hak prioritas tertinggi (lihat kapital 4). Dalam Extended CAN
(CAN Specifikation 2.0 B) memiliki 29 bit identifier.Dengan demikian
akan dapat dibedakan informasi hingga sebanyak 538 juta informasi.
Gambar 5. Susunan informasi CAN standart (identifier 11 bit)
Jumlah
angka byte data dikodekan secara dual dalam DLC (ruang medan 4 bit).
Dari kemungkinan 16 byte data secara teori hanya maksimal 8 per definisi
yang diloloskan.
Jika RTR bit di set 1, maka informasi dengan
identifier yang sebelumnya ditentukan akan ditunggu. Bila satu pengguna
memiliki informasi tersebut, maka pengguna tersebut menempatkan dirinya
untuk broadcasting atas seluruh pengguna.
Sekarang banyak disediakan
chip protokol untuk pemrogram aplikasi, semuanya adalah untuk membentuk
informasi CAN kedalam register tertentu.
Untuk standart CAN yang terdiri dari identifier, RTR bit dan jumlah byte data (DLC) di kodekan dalam dua byte (Descriptorbytes)
Contoh 3.1:
Informasi dengan identifier 123 desimal dan byte data 11, 22, 33 dan 44 semua dalam hexadesimal akan dikirimkan melalui bus.
Tentukan kedua description byte .
Penyelesaian
Langkah 1: 123 desimal diubah kedalam bentuk hexadesimal
Hasil : 07B hex
Langkah 2: Angka hexadesimal dari identifier dimasukkan kedalam ruang 11 bit
. Hasil:
Trainer CAN dan Contoh Program
Dengan menggunakan trainer dibawah ini maka kita dapat membuat program sebagai contoh dibawah ini:
Gambar 7. Trainer CAN BUS
Gambar 8. Rangkaian Trainer CAN BUS
/*
; Programmname : test07.c Datum: Juli 2013
; Programmierer: Syaiful
; ProgFunktion : Incrementiert im Sekundentakt P2
;
Falls eine beliebige CAN-Nachricht eingelaufen ist
;
wird eine CAN -Sendung mit ID=000 per Interrupt ausgelöst
*/
#include <T89C51RC2.h>
#include <CEST_treiber.h>
void int0() interrupt 0
{
// eintreffende CAN-Nachricht löst diesen Interrupt aus
EA=0; //globaler Interrupt sperren
canreg_write(SJA_TRDSCR1,0x00);
canreg_write(SJA_TRDSCR2,0x01);
canreg_write(SJA_TRBYTE1,0x55);
canreg_write(SJA_CMR,0x01);
while(((canreg_read (SJA_SR))&0x08)==0); //warten bis Sendung abgeschlossen
canreg_write(SJA_CMR,0x0C); //Empfangspuffer wieder freigeben
canreg_read(SJA_IR); // unbedingt lesen sonst wird kein neuer Interrupt zugelassen
EA=1; //Interrupt wieder scharf machen
}
void main(void)
{
SP=0x80;
IT0=1;
EX0=1; //externer Interrupt INT0 beim T89C51RC2 vorbereiten
can_init(1000,0x00,0xff); // CAN-Kommunikation auf 100k und volle Akzeptanz
v24_init(9600);
canreg_write(SJA_CR,0x02); //Empfangsinterrupt freigeben
EA=1; //globale Interruptfreigabe vom T89C51RC2
P2=0;
while(1)
{
P2++;
sec(1);
v24_send(0x41);
}
}
Kesimpulan
Dengan trainer CAN BUS widyaiswara lebih mudah menjelaskan konsep dasar CAN BUS sekaligus dapat belajar memprogram.
Trainer CAN BUS Guru bersama sama siswa membuatnya dan mencobanya serta mengajar pemrograman
Trainer tersebut sangat bisa untuk program keahlian Elektronika dan program keahlian Automotif.