TMS320LF2407 DSP&PCL-841 CAN总线通信的一种设计方法 |
摘要:本文介绍了TMS320LF2407 DSP与Advantech公司的PCL-841数据采集卡CAN总线通信的软硬件设计以及其实验结果,讨论了设计中遇到的问题及问题解决的方法。 关键词:CAN总线 DSP PCL-841 1 引言 2 系统设计及其实验结果 图1 DSP2407 CAN模块外接电路 如图1所示DSP2407 CAN模块外接电路原理图。CANJP1为CAN_H、CAN_L输入端。CAN总线驱动器PCA82C250驱动电路内部,具有限流作用,可防止发送输出级对电源、地或负载短路。若结温超过大约160摄氏度,则芯片内部两个发送器输出端极限电流将减小,由于发送器是功耗的主要部分,因而限制了芯片的温升。器件的所有其他部分将继续工作。PCA82C250采用双线差分驱动,有助于抑制瞬变干扰。PCA82C250的Rs脚上接有一个斜率电阻,它的大小可根据总线通信速度适当调整,一般在16~140K欧姆之间。因为PCA82C250电源电压5V,DSP2407电源电压3.3V,故PCA82C250的输出脚RXD不可以直接与DSP2407的CANRX直接连接,故使用了分压电阻R10、R11。R6为终端电阻。 2.2系统软件设计 为完成DSP2407与PCL-841之间的CAN通信,使用CCS2.2开发平台。系统工作流程图如下图所示: 图2 系统工作流程图 图2中PCL-841完成接收DSP2407数据并上传该数据给上位微机,或者上位微机通过PCL-841发送数据给DSP2407。 PCL-841启动时,CAN口基地址处于DA00:0000H和DA00:0200H开始的地址处,可选择任意一个CAN口作为上位微机的控制接收端口。波特率Baudrate根据DSP2407的设定值进行选择。其值算法如(1)、(2)所示: Baudrate=ICLK/(BRP+1)*Bit Time (1) Bit Time=(TSEG1+1)+(TSEG2+1)+1 (2) 其中ICLK为DSP的CPU频率,这里为40MHz;BRP=1;TSEG1=15;TSEG2=2。故CAN总线Baudrate=1MHZ。 DSP2407的CAN模块初始化程序如下: *MDER=0x0000; *CAN_IMR=0x0000; *ESR=0xFFFF; *MCR=0x1400; while(*GSR&0x10==0) continue; *BCR2=0x0001; *BCR1=0x00FA; *MCR=0x0000; while(*GSR&0x10!=0) continue; *CAN_IMR=0x0200; *MDER=0x003F; *CAN_IFR=0xFFFF; 程序可通过判断修改寄存器TCR、RCR来接收发送数据,完成DSP2407与PCL-841的CAN总线通信。 2.3 实验结果 当程序执行时,首先DSP2407 CAN模块的邮箱5发送数据3344 1122 7788 5566到PCL-841;使用中断方式,PCL-841发送数据1111 1111 1111 1111到DSP的邮箱1;等待PCL-841发送远程贞到DSP的邮箱2和邮箱3,DSP自动回复数据0101 0101 0101 0101和0202 0202 0202 0202到PCL-841,完成实验操作。其实验结果如图3、图4所示。 图3 PCL-841实验界面 图4 CCS2.2实验界面 从图可以看出,试验结果完全符合预期要求,软硬件设计正确。 3 设计中的问题以及解决方法 4 结束语 |