3 硬件设计原理框图
硬件设计原理框图参见图2。其中,从控制器选择MSP430F149。MSP430是TI公司最新出产的一种具有超低功耗的功能强大的16位单片机,MSP430F149是该系列中的一种型号。

图2 硬件设计原理框图
3.1 MSP430单片机的优点
(1) 超低功耗,MSP430F149运行在1MHz时钟条件下时,工作电流视工作模式不同为0.1~400μA,工作电压为1.8~3.6V。
(2) 具有强大的处理能力,采用RISC指令集,只需简洁的27条指令,高度正交指令结构,处理内核功能强大并且非常灵活。
(3) 超低功耗的数控振荡器技术,可以实现频率调节和无晶体运行。外接时钟频率范围为32768Hz~8MHz,并且可以实现分频。从低功耗模式到运行模式的唤醒时间仅为6μs.4程序代码空间为60KB+256字节的FLASH,2k字节的RAM。采用串行在线编程方式,为用户编译程序和控制参数提供灵活的空间。5MSP430F149具有强大的中断功能,48个I/O引脚,它的I/O与传统的I/O不同,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使得功能口和通用I/O口复用,在对同一个I/O口进行操作前要选择其要实现的功能,这样大大的增强了端口的功能和灵活性,我们就是利用I/O 口来实现对CAN总线控制器的控制的。由于MSP430F149具有以上的特点,十分适合开发的要求,所以选用其作为系统的主芯片。收发器选择 PHILIPS公司的PCA82C250。
3.2 实际应用中的注意事项
从图2中看出硬件电路的设计并不是很困难,但是在实际应用中应该注意几点:
(1) 在CAN总线的两端应该有两个120Ω的电阻,这两个电阻对于总线阻抗的匹配,起着相当重要的作用。忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。
(2) 82C250第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式;而在斜率控制方式时,上升及下降的斜率取决于Rs的阻值,通讯的速度越快,则Rs的阻值越小。实验数据表明15~200kΩ为Rs较理想的取值范围。在这里把82C250第8脚接地使系统处于高速工作方式。
(3) 82C250的第5脚Vref提供了一个VCC/2的输出电压,是为了给前面CAN控制器的模拟比较器提供一个参考电压,使比较器能够准确地读出总线上的位值。如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的Vref端与RX1脚相连,从而简化了电路。如果电路采用电流隔离,SJA1000的RX1引脚应该输入VCC/2的电压。
4 CAN通信软件的设计思想
CAN节点模块的软件设计CAN节点模块的软件设计主要包括三部分, SJA1000的初始化, 数据的发送和接收。这三部分程序是CAN模块进行数据通讯的基本部分。熟悉了这三部分就能编写出利用CAN总线进行数据通讯的一般应用程序。下面就这三部分程序设计进行一个描述。
4.1 SJA1000的初始化程序
SJA1000 的初始化只有在复位模式下才可以进行。初始化主要包括工作方式的设定、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、总线时序寄存器的设置、输出模式寄存器和中断寄存器的设置等。初始化设置完成以后,SJA1000就可以进入工作状态,进行正常的通讯工作。需要初始化的CAN控制寄存器有:模式寄存器、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。其流程图如图3所示。

