基于ADSP2181的CAN总线通讯设计
时间:11-23 10:07 阅读:765次
*温馨提示:点击图片可以放大观看高清大图
简介:CAN总线已在测井仪器系统中得到初步的应用,随着测井事业发展的需求,由于其良好的性能,他的使用将会更为广泛和深入。
现在CAN总线除了被用于汽车系统内部的数据通讯与控制,他已在工业自动化、各种控制设备、交通工具、医疗仪器以及建筑、环境控制等各领域得到广泛的应用。而这里被用于成套测井仪器中各仪器之间的数据通讯。
1 CAN与DSP的接口电路
以ADSP2181和SJA1000芯片设计的接口电路如图1所示。图1中,用1片GAL16V8作为逻辑转换电路。为突出接口电路,其他部分从略。
用FM书写的设计文件如下:
2 波特率的设定
BTR0和BTR1是总线定时寄存器,通过对这2个寄存器的设置可以惟一地确定波特率和同步跳转宽度。BTR0各位功能如图2所示。BTR1各位功能如图3所示。
总线长度在40 m以内(满足这里的设计需求),CAN总线的位速率可达到1 Mb/s,这里需要的波特率为1Mb/s,晶体震荡频率为24MHz,设BTR0=00H,BTR1=18H,计算总线传输速率。由给定的BTR0和 BTR1可知:BRP.5,BRP.4,BRP.3,BRP.2,BRP.1和BRP.0以及TSEG2.1,TSEG2.0,TSEG1.3均为0;另外,TSEG2.2,TSEG1.2,TSEG1.1,TSEG1.0均为1。因此有:
而波特率为1/tB,即为1 Mb/s。
3 初始化子程序
SJA1000的初始化只有在复位模式下才可以进行。初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器AMR和接收代码寄存器ACR的设置、波特率参数设置和中断允许寄存器IER的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。下面提供SJA1000初始化的ADSP汇编源程序。程序中寄存器符号表示的是SJA1000相应寄存器占用的片外存储器地址,这些符号可在程序的头部用伪指令对其定义。需要注意的事SJA_PORT位I/O接口,其地址为0x0600。