新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于DSPIC30F4011单片机的CAN总线通信设计

基于DSPIC30F4011单片机的CAN总线通信设计

作者: 时间:2011-03-03 来源:网络 收藏

  3 程序设计

  在程序设计时, 可把一端作为发送数据端,另一端作为数据接收端。信息从模块发送到通常是由CAN模块自动完成的。发送程序只需把发送的信息帧送到CAN的发送缓冲区,然后启动发送命令即可。发送程序可采用查询方式。作为发送端, 也可对其发送缓冲寄存器进行赋值, 以作为发送的信息, 具体方法如下:

  C1TX0B1 = 0x5555;

  C1TX0B2 = 0x5555;

  C1TX0B3 = 0x5555;

  C1TX0B4 = 0x5501;

  之后应将这些数据发送到CAN上, 并将报文发送优先级设成最高级, 以便于数据发送。

  信息从CAN总线到CAN接收缓冲区也是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。接收程序同样可采用查询方式。接收缓冲器会*总线是否有进入的报文, 如发现总线上有报文, 即接收报文。接收端程序中可定义四个变量, 并把接收缓冲寄存器的值赋予变量, 通过变量值的变化来判断接收端是否从总线上接收到了报文。

  两端CAN模块寄存器的配置必须匹配, 否则两者将无法进行。其具体配置方法如下:

  C1TX0CON = 0x0003;

  C1TX0SID = 0x0020;

  C1TX0DLC = 0x01c0;

  C1RX0CON = 0x0000;

  C1RX0DLC = 0x0008;

  C1RXF0SID = 0x0020;

  C1RXM0SID = 0xffff;

  C1CFG1 = 0x00ff;

  C1CFG2 = 0x07ff;

  在寄存器设置完成之后, 系统将进入正常工作模式。



关键词: 单片机 CAN 总线 通信

评论


相关推荐

技术专区

关闭