设计是应注意以下几点:
(1) 总线两端各有一个120Ω的电阻,对于匹配总线阻抗起着相当重要的作用。否则,数据通信的抗干扰性及可靠性大大降低,甚至无法通信。
(2) 为了CAN与单片机之间时序的同步,一般采用CAN控制器给单片机提供时钟信号,此时时钟信号对CHMOS型单片机应接XTALI引脚,对HMOS型单片机接XTAL2引脚。
(3) 若CAN收发缓冲器采用集成元器件,则RX1脚应接地,且CDR位应置逻辑1。否则,RXI引脚电位必需维持在内2.5V以上,且CDR寄存器中的CBP位应置逻辑0,以形成CAN要求的逻辑电平。
2.2 系统软件设计
系统软件设计的关键是通信程序的设计。通信软件由三部分组成:初如化程序、发送程序、接收程序。由于系统中任意一节点在任意时刻均可主动与其它节点通信,所以,各世点的通信程序相同。
2.2.1 初始化程序
初始化程序主要是通过对CAN控制器控制段中的寄存储器写入控制字从而确定CAN控制器工作方式等。有三种方式进入初始化和谐:一是上电复位;二是硬件复位;三是软件复位,即运行期间通过给CAN控制器发一个复位请求,置复位请求位为1。在复位期间,必需初始化的寄存器有:MR(PeliCAN模式)模式寄存器、CDR时分寄存器、ACR接收代码寄存器、MAR屏蔽寄存器、BTR总线定时寄存器、OCR输出控制寄存器。需要注意的是,这些寄存器仅能在复位期间可写访问。因此,在对这些寄存器初始化前,必须确保系统进入了复位状态。初始化程序的流程图如图3所示。