/********************************************************************/
/* CANONE.C ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠ»Π°ΡΡ 68HC12 ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π΅ Ρ Π΄ΡΡΠ³ΠΎΠΉ*/
/* ΠΏΠ»Π°ΡΠΎΠΉ 68HC12 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° CAN */
/* ΠΠ²ΡΠΎΡΡ: ΠΠ°Π½ΠΈΡΠ»Ρ ΠΠ°ΠΊ ΠΈ Π‘ΡΠΈΠ² ΠΠ°ΡΡΠ΅ΡΡ */
/* ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ: 29 ΠΈΡΠ»Ρ 2004 */
/********************************************************************/
line 0 #include "68HC12DP256.h"
line 1 void main()
line 2 {
line 3 COPCTL=0x00; /*ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ COP*/
line 4 /*ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ CAN */
line 5 CAN0CTL1 = CAN0CTL1 | 0x80; /*ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ CAN */
line 6 CAN0CTL1 = CAN0CTL1 & 0xEF; /*Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° LISTEN*/
line 7 while ((CAN0CTL1 | 0x01) == 0) /*ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ CAN*/
line 8 {
line 9 CAN0CTL0 = CAN0CTL0 | 0x01;
line 10 }
line 11 CAN0BTR0 = 0xC1; /*ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ CAN*/
line 12 CAN0BTR1 = 0xF7;
line 13 CANOCTL0 = CAN0CTL0 & 0xFE;/*Π²ΡΡ ΠΎΠ΄ CAN ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ*/
line 14 while ((CAN0CTL0 & 0x10) == 0){} /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ*/
line 15 CAN0TBEL = 0x01; /*Π²ΡΠ±ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ Π±ΡΡΠ΅ΡΠ° 0 */
line 16 /*ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ Π±ΡΡΠ΅ΡΠ° */
line 17 CAN0TXFG0 = 0xFF;
line 18 CAN0TXFG1 = 0xFF;
line 19 CAN0TXFG2 = 0xFF;
line 20 CAN0TXFG3 = 0xFE; /*RTR = 0 Π΄Π»Ρ ΠΊΠ°Π΄ΡΠ° Π΄Π°Π½Π½ΡΡ */
line 21 CAN0TXFG4 = 0x01; /*ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ */
line 22 CAN0TXFG5 = 0x02;
line 23 CAN0TXFG6 = 0x03;
line 24 CAN0TXFG7 = 0x04;
line 25 CAN0TXFG8 = 0x05;
line 26 CAN0TXFG9 = 0x06;
line 27 CAN0TXFGA = 0x07;
line 28 CAN0TXFGB = 0x08;
line 29 CAN0TXFGC = 0x08; /*ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»ΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ */
line 30 CAN0TXFGD = 0x00;
line 31 while(1)
line 32 {
line 33 while ((CAN0TFLG & 0x01) == 0) /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ */
line 34 CAN0TFLG = CAN0TFLG | 0x01; /*ΠΎΡΠΈΡΡΠΊΠ° ΡΠ»Π°Π³Π° */
line 35 }
line36 } /* ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ */
/********************************************************************/
ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 3 Π²ΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° COP ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΡΡΠΎΠΊΠ°Ρ ΠΎΡ 4 Π΄ΠΎ 20 ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ msCAN12. Π‘Π½Π°ΡΠ°Π»Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎ ΡΡΡΠΎΠΊΠ΅ 5 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ CAN ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 6 Π²ΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ LISTEN, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΡΡΠΎΠΊΠ°Ρ Ρ 7 ΠΏΠΎ 10 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ CAN Π² ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΡΡΠΎΠΊΠ°Ρ 11 ΠΈ 12, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ CAN. ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 13 ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ CAN ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 14 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, ΡΡΠΎΠ±Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ CAN Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. ΠΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡΡΡΠΎΠΊΠ΅ 15 Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΉ Π±ΡΡΠ΅Ρ 0 Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΡΡΠΎΠΊΠ°Ρ Ρ 16-ΠΉ ΠΏΠΎ 30-Ρ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ Π±ΡΡΠ΅ΡΠ°. ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ»Π°Π³ΠΈ SRR ΠΈ IDE, Π²ΡΠ±ΡΠ°Π² ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΡΠΈΡΡΠΈΠ»ΠΈ Π±ΠΈΡ RTR, ΠΏΠΎΠΊΠ°Π·Π°Π², ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΈΠΉ Π±ΡΡΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΊΠ°Π΄ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠΎ ΡΡΡΠΎΠΊΠΈ 31 Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅ΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΠ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΈΡ. 9.32.
/**********************************************************************/
/* CANTWO.C ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠ»Π°ΡΡ 68HC12 ΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π΅ Ρ Π΄ΡΡΠ³ΠΎΠΉ */
/* ΠΏΠ»Π°ΡΠΎΠΉ 68HC12 Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° CAN */
/* ΠΠ²ΡΠΎΡΡ: ΠΠ°Π½ΠΈΡΠ»Ρ ΠΠ°ΠΊ ΠΈ Π‘ΡΠΈΠ² ΠΠ°ΡΡΠ΅ΡΡ */
/* ΠΠ°ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ: 29 ΠΈΡΠ»Ρ 2004 */
/**********************************************************************/
line 0 #include "68HC12DP256.h"
line 1 void main()
line 2 {
line 3 COPCTL=0x00; /*ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡΠΎΠΆΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ COP */
line 4 /*ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ CAN */
line 5 CAN0CTL1 = CAN0CTL1 | 0x80; /*ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ CAN */
line 6 CAN0CTL1 = CAN0CTL1 & 0xEF; /*Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° LISTEN */
line 7 while ((CAN0CTL1 | 0x01) == 0) /*ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ CAN */
line 8 {
line 9 CAN0CTL0 = CAN0CTL0 | 0x01
line 10 }
line 11 CANOBTR0 = 0xC1; /*ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π±ΠΈΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ CAN*/
line 12 CAN0BTR1 = 0xF7;
line 13 CAN01DM0 = 0xFF; /*ΠΏΡΠΈΠ΅ΠΌ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ */
line 14 CAN01DM1 = 0xFF;
line 15 CAN01DM2 = 0xFF;
line 16 CAN01DM3 = 0xFF;
line 17 CAN01DM4 = 0xFF;
line 18 CAN01DM5 = 0xFF;
line 19 CAN01DM6 = 0xFF;
line 20 CAN01DM7 = 0xFF;
line 21 CAN0CTL0 = CAN0CTL0 & 0xFE; /*Π²ΡΡ ΠΎΠ΄ CAN ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ */
line 22 while ((CAN0CTL0 & 0x10) == 0){} /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ */
line 23 /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ */
line 24 while ((CAN0RFLG & 0x01) == 0){} /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ */
line 25 CAN0RFLG = CAN0RFLG | 0x01; /*ΠΎΡΠΈΡΡΠΊΠ° ΡΠ»Π°Π³Π° */
line 26 asm("swi");
line 27 } /* ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ */
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Π² ΡΡΡΠΎΠΊΠ°Ρ Ρ 13-ΠΉ Π΄ΠΎ 20-Ρ. ΠΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π²ΡΠ΅ Π±ΠΈΡΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ 1, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ Π²Π΅ΡΡ ΠΊΠΎΠ΄, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠΉ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΡΡ CAN ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π² ΡΡΡΠΎΠΊΠ΅ 23. ΠΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² ΡΡΡΠΎΠΊΠ΅ 24 ΠΠ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΡΡΡΠΎΠΊΠ΅ 25 ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠ»Π°Π³ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. ΠΠΎΠΌΠ°Π½Π΄Π° Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΠ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠ΅ΠΉΠΊΠ°Ρ ΠΎΡ $0160 Π΄ΠΎ $016F.
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠ·Π»Π° CAN ΡΠ΅ΡΠΈ. ΠΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΠ°ΠΌ ΠΎΡΠ²ΠΎΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ CAN ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π² ΡΠΎΡΡΠ°Π²Π΅ 68HC12. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ ΠΈΠ·Π±Π΅Π³Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ CAN ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Π±ΠΈΡΠ°ΠΌΠΈ.
9.6. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° BDLC
Π Π°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ 68HC12, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ MC68HC912B32 ΠΈ MC68HC12BE32, Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ CAN. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ β ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ²ΡΠ·ΠΈ Π±Π°ΠΉΡΠΎΠ² Π΄Π°Π½Π½ΡΡ (byte data link controller β BDLC). ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΠ MC68HC912B32 Π½Π° ΡΠΈΡ. 1.3. ΠΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° BDLC Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΠ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° 68HC12 ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» J1850 ΠΎΠ±ΡΠ΅ΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² (SAE).
Π‘Π΅ΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° SAE J1850 ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΡ Π΄ΠΎ 125 ΠΊΠ±/Ρ. ΠΠΎΠ΄ΡΠ»Ρ BDLC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π±ΠΈΡΠ°, ΠΏΠΎΠΌΠ΅Ρ ΠΎΠΏΠΎΠ΄Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° J1850 ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΊΠ°Π΄ΡΠ°, ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ , Π±Π°ΠΉΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ CRC ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΊΠΎΠ½ΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ : ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ (1), ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ±ΡΠΎΡΠ° (2) ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (3). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡΠ»Ρ BDLC ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΡΠ½Π΅ΡΠ³ΠΎΡΠ±Π΅ΡΠ΅Π³Π°ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°: BDLC ΠΈ Π¦Π Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ (1), BDLC Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π°, Π¦Π Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ (2), BDLC ΠΈ Π¦Π Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²Π° (3).
ΠΠΎΠ΄ΡΠ»Ρ BDLC 68HC12 ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°, ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡΠ°, Π΄Π²ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ½ΡΡ ΠΈ Π΄Π²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ BDLC Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΡΠΎΠ², ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π’ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ° (ΡΠ΅Π³ΠΈΡΡΡ ΠΏΠΎΡΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ DLC, ΡΠ΅Π³ΠΈΡΡΡ ΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ DLC ΠΈ ΡΠ΅Π³ΠΈΡΡΡ ΠΏΠΎΡΡΠ° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ DLC) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡ BDLC ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ SAE J1850 ΠΈ CAN ΠΊΠΎΠ½ΠΊΡΡΠΈΡΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ. Π’Π΅ΠΊΡΡΠ°Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ CAN ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΡ ΡΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΡΠ΅ΠΌΡΡΡ ΠΏΠΎΠΊΡΡΡΡ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ.
9.7. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π³Π»Π°Π²Π΅ 9
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅ΠΉ Bosch CAN 2.0A ΠΈ CAN 2.0B. ΠΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° msCAN Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° 68HC12, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° BDLC 68HC12. ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ CAN ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ, ΡΠ΅Π³ΠΈΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ msCAN12, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ CAN. ΠΡΠΈΠ²Π΅Π»ΠΈ ΡΡΠ΄ ΠΏΡΠΎΡΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠ΅ΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ msCAN12.