在数据链路层中,规定了支持CAN协议的两种帧类型:数据帧和远程帧。数据帧用来发送数据,用于一个节点传送信息到其它任一或所有节点;远程帧用来“远程发送请求”,用于一个节点主动要求其它节点发送信息,两种帧的具体格式如图2所示。
硬件电路设计
家庭控制器硬件设计
本系统是由许多智能家庭控制器通过CAN总线相连而组成的一个控制器局部网,因此,CAN总线的设计就显得极为重要。其中,CAN控制器的选取、CAN收发器以及抗干扰措施将成为设计的关键。
①CAN控制器的选取
为了系统进一步扩展的需要,可选取支持CAN2.0B通信协议的SJA1000。SJA1000是PHILIPS公司最新生产的既支持CAN2.0B又支持 CAN2.0A的CAN控制器,它与仅支持CAN2.0A的CAN控制器PCA82C200在硬件上和软件上完全兼容。
②CAN收发器
PCA82C250是PHILIPS公司的CAN控制器和物理总线间的接口,提供对总线的差动发送和接收能力。它与ISO11898标准完全兼容,有三种不同的工作方式即高速、斜率控制和待机,可根据实际情况选择。
③光电隔离
为了进一步提高系统的抗干扰能力,在控制器SJA1000和收发器PCA82C250之间增加了由高速隔离器件6N137构成的隔离电路,电源采用DC-DC变换器。
硬件电路中使用PCA82C250是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。
CAN器件与微处理器的硬件结构图如图3所示。
CAN接口适配卡和CAN总线中继器
CAN接口适配卡完成CAN-PC总线的通信。适配卡由单片机89C51、CAN控制器SJA100、CAN收发器89C250及其控制电路组成。
由于CAN收发器的限制,在一个CAN总线网络中,最多只能有110个CAN节点,最多只能有110个CAN节点。利用中继器可对CAN总线进行扩展,不但可使CAN节点总数达到2032个,而且可使CAN通信距离成倍增加,同时也可以把两个不同速率的CAN网连接在一起,组成更复杂的CAN网络。