·上一文章:基于VLAN的策略路由的应用
·下一文章:有线/无线混合指挥调度通信系统的实现
1 CAN与DSP的接口电路
以ADSP2181和SJA1000芯片设计的接口电路如图1所示。图1中,用1片GAL16V8作为逻辑转换电路。为突出接口电路,其他部分从略。
用FM书写的设计文件如下:
2 波特率的设定
BTR0和BTR1是总线定时寄存器,通过对这2个寄存器的设置可以惟一地确定波特率和同步跳转宽度。BTR0各位功能如图2所示。BTR1各位功能如图3所示。
总线长度在40 m以内(满足这里的设计需求),CAN总线的位速率可达到1 Mb/s,这里需要的波特率为1 Mb/s,晶体震荡频率为24 MHz,设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。