ba_wang_mao 发表于 2008-12-4 14:57:55

请教:AT90CAN128单片机,标识码寄存器和标识码屏蔽寄存器 理解和设置正确吗?【恢复】

1、标识码寄存器CANIDT1-CANIDT4如下:

 http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_528556.png

 (原文件名:ourdev_528436.png) 



2、对于11位标识符,我设计如下格式:  



  ________________________________________________________________________________  

   |                    |                                   |                      |  

   |                    |                                   |                      |  

   |    信息功能码2位   |      节点号6位                    |       数据格式3位    |  

   |                    |                                   |                      |   

   ---------------------------------------------------------------------------------   

      bit10  bit9         bit9 bit8 bit7 bit6 bit5 bit4 bit3      bit2  bit1   bit0 



  信息功能码2位:  

     00=输入变量  

     01=输出变量  

     10=点对点通讯  

     11=保留  

  节点号:  

     000001=节点1  

     000010=节点2  

  数据格式3位   

     (1)如果信息功能码=00:输入变量  

        数据格式=000:表示发送开入时,一次可以发送64路开关量输入  

            =001:表示发送模入时,一次可以发送8通道模入。 



  ///////////////////////////////////////////////////////////// 

  ///////////////////////////////////////////////////////////// 

    如果总线上有两个CAN结点,其中结点1为主控制器,结点2为开关量输入结点。 

    当结点2(开关量输入结点)采集到开入信号发生变化时,立即向结点1(主控结点)发送报文。 

  那么:如何初始化结点2的CAIDT1-CANIDT4寄存器和CANIDM1-CANIDM4 寄存器呢? 

   

  我的理解如下: 

    (1)、CANIDT2的IDT0、IDT1、IDT2          填写“3位数据格式” 

    (2)、CANIDT1的IDT3、IDT4、IDT5、IDT6、IDT7、IDT8 填写“6位节点号” 

                此处填写开关量输入节点的结点号。 

    (3)、CANIDT1的IDT9、IDT10             填写“2位信息功能码” 

    (4)、CANIDT3=0 

    (5)、由于开关量输入结点给主控结点发送的“数据帧”,因此 

        CANIDT4的RTRTAG 填写1:代表数据帧。   

    (6)、标识码屏蔽寄存器CANIDM1-CANIDM4 该如何填写呢?  

ba_wang_mao 发表于 2008-12-29 15:02:11

已经知道了

ba_wang_mao 发表于 2008-12-9 15:15:28

大家都没开发过CANBUS协议吗?

ba_wang_mao 发表于 2008-12-5 15:04:57

我初学CAN-BUS协议。请多指教。
页: [1]
查看完整版本: 请教:AT90CAN128单片机,标识码寄存器和标识码屏蔽寄存器 理解和设置正确吗?【恢复】