1 Pengenalan
Komunikasi peralatan industri biasanya melibatkan pelbagai jenis produk perkakasan dan perisian, serta protokol yang digunakan untuk menyambungkan platform komputer standard (komputer peribadi atau stesen kerja) kepada peranti automasi industri. Akibatnya, kebanyakan peranti automasi direka bentuk untuk melaksanakan perintah bersiri ringkas yang serasi dengan port bersiri standard yang terdapat pada komputer peribadi atau pada tambahan-pada kad port bersiri. RS-232 ialah antara muka bersiri yang paling banyak digunakan pada masa ini dalam PC dan sektor komunikasi industri. RS-232 ditakrifkan sebagai standard-tunggal tunggal yang direka untuk memanjangkan jarak komunikasi dalam komunikasi bersiri berkelajuan rendah. Oleh kerana RS-232 berkongsi asas isyarat yang sama antara pemancar dan penerima, ia tidak boleh menggunakan isyarat pembezaan; jika tidak, bunyi mod biasa akan digabungkan ke dalam sistem isyarat. Piawaian RS-232 menetapkan jarak maksimum hanya 15 m dan kadar penghantaran isyarat maksimum 20 kbit/s.
CAN, singkatan untuk "Controller Area Network," ialah salah satu bas medan yang paling banyak digunakan di peringkat antarabangsa. Rangkaian tunggal yang terdiri daripada bas CAN dihadkan oleh ciri-ciri elektrik perkakasan rangkaian. Sebagai bas komunikasi bersiri berbilang-induk, spesifikasi reka bentuk asas CAN memerlukan kadar bit yang tinggi dan rintangan kuat terhadap gangguan elektromagnet, serta keupayaan untuk mengesan sebarang ralat yang berlaku pada bas komunikasi. Walaupun jarak penghantaran isyarat mencapai 10 km, CAN masih boleh memberikan kadar penghantaran data sehingga 50 kbit/s. Jadual 1 menunjukkan hubungan antara jarak penghantaran maksimum antara mana-mana dua nod pada bas CAN dan kadar bitnya.
Jarak Maksimum Antara Mana-mana Dua Nod dalam Konfigurasi Segi Tiga dalam Sistem Bas CAN
Kadar Bit/kbps 1000 500 250 125 100
Jarak Maksimum/m 40 130 270 530 620
Kadar Bit (kbps) 50 20 10 5
Jarak Maksimum (m) 1300 3300 6700 10000
Seperti yang dapat dilihat, bas CAN ialah bas bersiri yang unggul kepada RS-232 dari segi prestasi masa nyata, kebolehsuaian, fleksibiliti dan kebolehpercayaan. Apabila dua peranti bersiri terletak berjauhan dan tidak boleh disambungkan terus melalui RS-232, RS-232 boleh ditukar kepada CAN untuk mencapai sambungan rangkaian peranti bersiri melalui bas CAN.
Walau bagaimanapun, RS-232 dan CAN berbeza dengan ketara dari segi tahap voltan dan format bingkai. Secara khusus:
Piawaian RS-232 menggunakan logik negatif, mentakrifkan sebarang aras voltan antara +3V dan +15V sebagai logik "0" dan sebarang aras voltan antara -3V dan -15V sebagai logik "1." Isyarat CAN, sebaliknya, dihantar menggunakan voltan pembezaan. Kedua-dua garis isyarat dipanggil "CAN_H" dan "CAN_L." Dalam keadaan statik, kedua-duanya adalah lebih kurang 2.5V; keadaan ini diwakili sebagai logik "1" dan juga dirujuk sebagai "resesif." Apabila CAN_H lebih tinggi daripada CAN_L, ia mewakili "0" logik, yang dikenali sebagai "dominan." Dalam keadaan dominan, nilai voltan biasa ialah: CAN_H=3.5V, CAN_L=1.5V;
Format bingkai untuk port bersiri RS-232 ialah: satu bit permulaan, lapan bit data, bit kesembilan boleh atur cara (yang berfungsi sebagai bit alamat/data untuk kedua-dua penghantaran dan penerimaan), dan bit sehenti. Format bingkai data CAN terdiri daripada: pengepala bingkai + ID + data (yang boleh dibahagikan kepada dua format: bingkai standard dan bingkai lanjutan).
Oleh itu, reka bentuk memerlukan mikropengawal untuk melakukan penukaran seperti tahap dan penukaran format bingkai. Proses penukaran ditunjukkan dalam Rajah 1.
2 Reka Bentuk Perkakasan untuk RS-Penukaran 232-ke-CAN
Dalam mereka bentuk peranti penukaran RS-232-ke-CAN, mikropengawal AT89C52 digunakan sebagai mikropemproses; SJA1000 digunakan sebagai mikropengawal CAN. SJA1000 menyepadukan lapisan fizikal dan fungsi lapisan pautan data bagi protokol CAN dan boleh mengendalikan pembingkaian data komunikasi secara pasif; AT82C250 berfungsi sebagai antara muka antara pengawal CAN dan bas fizikal, menyediakan keupayaan penghantaran berbeza untuk bas dan keupayaan penerimaan berbeza untuk pengawal CAN. Tiga mod pengendalian berbeza (-kelajuan tinggi, kawalan cerun dan siap sedia) boleh dipilih melalui pin 3 AT82C250. Apabila pin 3 dibumikan, peranti beroperasi dalam mod kelajuan tinggi; pengasingan optik berkelajuan tinggi dilaksanakan menggunakan 6N137, yang menghalang gangguan daripada isyarat luaran; MAX232 digunakan untuk menukar isyarat 232 peringkat kepada tahap TTL untuk cip antara muka mikropengawal. Untuk butiran litar antara muka perkakasan tertentu, sila rujuk sumber yang berkaitan untuk SJA1000; penjelasan lanjut tidak disediakan di sini. Walau bagaimanapun, perkara berikut harus diperhatikan.
(1) Perintang 120Ω disambungkan pada kedua-dua hujung bas CAN untuk memadankan impedans bas, dengan itu meningkatkan imuniti terhadap gangguan dan kebolehpercayaan komunikasi data. Walau bagaimanapun, dalam amalan, adalah mencukupi untuk memastikan bahawa perintang shunt antara "CAN_H" dan "CAN_L" dalam rangkaian CAN ialah 60Ω.
(2) Pin 20 (RX1) SJA1000 boleh dibumikan apabila tidak digunakan (lihat reka bentuk perisian untuk sebab tertentu); apabila digabungkan dengan menetapkan bit CDR.6, ini boleh meningkatkan panjang bas dengan ketara.
(3) Kaedah sambungan pin TX0 dan TX1 menentukan tahap output bersiri. Rujuk kepada tetapan dalam Daftar Kawalan Output (OCR) untuk butiran khusus.
(4) Perintang cerun disambungkan antara pin RS AT82C250 dan tanah. Nilai rintangan boleh dilaraskan dengan sewajarnya berdasarkan kelajuan komunikasi bas, biasanya antara 16 kΩ hingga 140 kΩ.
(5) MAX232 memerlukan empat kapasitor elektrolitik-C1, C2, C3 dan C4-yang turut digunakan untuk penukaran kuasa dalaman. Semua mempunyai penarafan 1 μF/25 V; kapasitor tantalum disyorkan, dan ia harus diletakkan sedekat mungkin dengan cip. Kapasitor penyahgandingan 0.1 μF mesti disambungkan antara bekalan kuasa VCC dan pembumian.
3 Reka Bentuk Perisian untuk Penukaran RS-232 kepada CAN
Di bawah kawalan mikropemproses, menggunakan penerimaan port bersiri dan gangguan CAN semasa pertukaran data antara RS-232 dan CAN boleh meningkatkan kecekapan operasi. Carta alir program utama ditunjukkan dalam Rajah 2. SJA1000 hanya boleh dimulakan dalam mod set semula; ini terutamanya termasuk menetapkan mod pengendalian, pembahagian jam, dan daftar penapis penerimaan, mengkonfigurasi parameter kadar baud dan menetapkan daftar daya sampukan.
Sama ada data boleh dihantar dengan tepat juga bergantung pada kadar baud dan kawalan aliran, yang merupakan aspek yang tidak boleh diabaikan semasa reka bentuk perisian. Oleh itu, bahagian berikut akan menumpukan pada konfigurasi kadar baud CAN, pengesanan automatik kadar baud port bersiri dan kawalan aliran data port bersiri.

3.1 Menetapkan Kadar Penapis CAN
Salah satu elemen utama protokol CAN ialah kadar baud. Pengguna boleh menetapkan kedudukan titik pensampelan bit dalam tempoh bit dan bilangan sampel, membolehkan mereka mengoptimumkan prestasi rangkaian secara bebas untuk aplikasi mereka. Walau bagaimanapun, semasa proses pengoptimuman ini, perhatian mesti diberikan kepada hubungan antara toleransi pengayun rujukan yang digunakan untuk parameter pemasaan bit dan kelewatan perambatan isyarat yang berbeza dalam sistem.
Kadar bit sistem, fBil, mewakili bilangan bit data yang dihantar setiap unit masa, iaitu, kadar baud fBit=1/tBit. Pemasa bit nominal terdiri daripada tiga-segmen tidak bertindih: SYNC_SEG, TSEG1 dan TSEG2. Ketiga-tiga segmen masa ini ditandakan sebagai tSYNC_SEG, tTSEG1 dan tTSEG2, masing-masing. Oleh itu, tempoh bit nominal tBit ialah jumlah bagi tiga segmen masa ini.
tBit=tSYNC_SEG + tTSEG1 + tTSEG2
Dalam tempoh bit, segmen ini dinyatakan dalam bentuk gandaan integer bagi unit masa asas. Unit masa ini dipanggil kuota masa (TQ), dan tempoh kuota masa ialah satu kitaran jam sistem CAN (tSCL), yang diperoleh daripada tempoh jam pengayun (tCLK). Jam sistem CAN boleh dilaraskan dengan memprogramkan faktor praskala (nilai pratetap kadar baud, BRP). Secara khusus:
tSCL=BRP × 2tCLK=2BPR/fCLK
Satu lagi selang masa yang sangat penting untuk pengiraan pemasaan bit CAN ialah lebar lompat penyegerakan (SJW), yang mempunyai tempoh tSJW. Segmen SJW bukan sebahagian daripada kitaran bit; sebaliknya, ia mentakrifkan bilangan maksimum TQ yang mana kitaran bit dilanjutkan atau dipendekkan semasa peristiwa penyegerakan semula. Selain itu, protokol CAN membenarkan pengguna untuk menentukan mod pensampelan bit (SAM), yang boleh sama ada-mod sampel tunggal atau tiga-mod sampel (memilih satu hasil daripada tiga sampel). Dalam mod sampel-tunggal, titik pensampelan berada di penghujung segmen TSEG1. Dalam tiga-mod sampel, dua titik pensampelan tambahan diambil berbanding dengan-mod sampel tunggal; ini terletak sebelum penghujung segmen TSEG1, dipisahkan oleh satu TQ.

BPR, SJW, SAM, TESG1 dan TESG2 yang disebutkan di atas semuanya boleh ditakrifkan oleh pengguna melalui daftar dalaman BTR0 dan BTR1 pengawal CAN. Butiran ditunjukkan dalam Rajah 3. Selepas BTR0 dan BTR1 ditetapkan, julat kadar baud sebenar ialah:
Maksimum=1/(tBit - tSJW), Minimum=1/(tBit + tSJW)
3.2 Pengesanan Kadar Baud Port Bersiri
Apabila peranti bersiri bertindak sebagai hos, jika anda perlu mengesan kadar baud port bersiri peranti penukaran pada masa itu, anda boleh menetapkan kadar baud terima hos (contohnya, 9600 baud) dan menghantar aksara tertentu (contohnya, pemulangan gerabak) daripada terminal. Dengan cara ini, hos boleh menentukan kadar baud komunikasi peranti penukaran berdasarkan maklumat aksara yang diterima. Nilai ASCII bagi watak pemulangan pengangkutan ialah 0DH; nilai yang diterima pada kadar baud yang berbeza disenaraikan dalam Jadual 2.
Bait Diterima pada Kadar Baud Berbeza
Kadar Baud (bit/s) Baud Diterima (Heksadesimal) Kadar Baud (bit/s) Baud Diterima (Heksadesimal)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 Kawalan Aliran Port Bersiri
Istilah "aliran" yang digunakan di sini merujuk kepada aliran data. Kehilangan data sering berlaku semasa penghantaran antara dua port bersiri. Memandangkan penimbal mikropengawal mempunyai kapasiti terhad, jika penimbal penuh semasa data diterima, sebarang data yang terus dihantar pada masa itu akan hilang. Kawalan aliran berkesan menyelesaikan masalah ini: apabila hujung penerima tidak dapat memproses data dalam masa, sistem kawalan aliran menghantar isyarat "tidak menerima", menyebabkan hujung penghantaran berhenti menghantar sehingga ia menerima isyarat "sambungan semula". Oleh itu, kawalan aliran menguruskan proses penghantaran data dan menghalang kehilangan data. Dua jenis kawalan aliran yang biasa digunakan ialah kawalan aliran perkakasan (termasuk RTS/CTS, DTR/CTS, dll.) dan kawalan aliran perisian (XON/XOFF-teruskan/berhenti). Penjelasan berikut hanya tertumpu pada kaedah kawalan aliran perkakasan menggunakan RTS/CTS.
Apabila menggunakan perkakasan untuk kawalan aliran, pin RTS dan CTS terminal bersiri disambungkan ke port I/O mikropengawal, dan isyarat mula/henti diterima dan dihantar dengan menetapkan port I/O kepada 1 atau 0. Peralatan terminal data (seperti komputer) menggunakan RTS untuk memulakan aliran data yang dihantar oleh mikropengawal, manakala mikropengawal untuk menstrim data daripada komputer menggunakan CTS. Untuk melaksanakan kaedah jabat tangan perkakasan ini, bendera peringkat tinggi-dan bendera peringkat rendah-ditetapkan semasa pengaturcaraan berdasarkan saiz penimbal penerima. Apabila jumlah data dalam penimbal mencapai ambang-tahap tinggi, garisan CTS di hujung penerima ditetapkan rendah (logik 0). Apabila program di hujung pemancar mengesan bahawa CTS rendah, ia berhenti menghantar data sehingga jumlah data dalam penimbal penerima jatuh di bawah ambang-rendah dan CTS ditetapkan tinggi. RTS digunakan untuk menunjukkan sama ada peranti penerima bersedia untuk menerima data.
3.4 BOLEH Menerima Subrutin
Format PeliCAN menyokong kedua-dua bingkai standard dan lanjutan. Mod CAN boleh dikonfigurasikan menggunakan CDR.7 dalam daftar pembahagi jam (0 untuk BasicCAN, 1 untuk PeliCAN). Apabila menerima data CAN, bit FF dalam maklumat bingkai digunakan untuk menentukan sama ada ia adalah bingkai standard atau lanjutan, dan bit RTR digunakan untuk membezakan antara bingkai jauh dan bingkai data. Berikut adalah subrutin BOLEH menerima:
;//////////////////////////////////////////////////////////////////
;//BOLEH Penerimaan Data/Disatukan ke dalam Format Bingkai dengan ID 2-Byte//
;///////////////////////////////////////////////////////////////////////
CAN SEMULA:
MOV R0, #C_RE ; Alamat mula penimbal dalaman mikropengawal
MOV DPTR, #RXBUF ; Baca dan simpan kandungan penimbal terima
MOVX A, @DPTR ; Baca bait kedua penimbal CAN
MOV @R0, A ; Jimat
JB ACC.7, EFF_RE ; Bit FF: 0=SFF, 1=EFF
MOV R2, #0
SJMP SFF_RE ; Bergantung pada nombor ID, kedudukan di mana "bait data" ditangkap berbeza-beza
EFF_RE: MOV R2, #2
SFF_RE: MOV R2, #2
SFF_RE:
JB ACC.6, EXIT_RECAN ; Semak bit RTR; jika 1 (bingkai jauh), lompat keluar
ANL A, #0FH
MOV R3, A ; Pada ketika ini, 4 bit tengah mewakili panjang data
MOV C_NUM, A ; Simpan panjang bingkai yang diterima dalam R3 dan R5
RDATA0:
INC DPTR ; ID 2-bait
INC R0
MOVX A, @DPTR
MOV @R0, A
INC DPTR
MOVX A, @R0, A
INC DPTR
MOVX A, @DPTR
MOV @R0, A
MOV A, R2 ; Jika EFF, langkau dua-ID bait
JZ DRATA1
INC DPTR
INC DPTR
DATA1: ; Bait data
INC DPTR
INC R0
MOVX A, @DPTR
MOV @R0, A
DJNZ R3, RDATA1
EXIT_RECAN:
RET
4 Kesimpulan
Pengecilan komputer telah menyediakan syarat yang diperlukan untuk pembangunan pintar instrumen pengukuran dan kawalan, membolehkan peranti terminal berasaskan mikropemproses-memiliki keupayaan komunikasi digital yang unggul. Dengan kemunculan bilangan terminal pintar yang semakin meningkat, permintaan yang lebih tinggi diletakkan pada seni bina rangkaian, protokol,-prestasi masa sebenar, serta kebolehgunaan, fleksibiliti, kebolehpercayaan dan juga kos. Akibatnya, teknologi fieldbus memegang janji besar untuk pembangunan masa depan. Struktur bingkai bas CAN termasuk pengecam (ID), yang memungkinkan untuk mempunyai berbilang hos rangkaian dalam rangkaian peranti; iaitu, melalui hos rangkaian ini, status operasi keseluruhan rangkaian peranti boleh dipantau, dan keputusan kawalan yang sepadan boleh dibuat. Peranti ini kini telah dibangunkan sepenuhnya dan telah mencapai keputusan cemerlang dalam aplikasi praktikal.




