基于DSP的CAN总线系统设计与实现
在软件设计时,首先应进行IO口配置。由于CAN通讯所用到的两个引脚CANTX和CANRX均为复用IO口,因此,首先要配置寄存器CANTIOC
的TXFUNC和RXFUNC位为l;再就是要初始化位时序,即对位时序配置寄存器CANBCR进行配置,包括CAN控制器的通讯波特率、同步跳转宽度、采样次数等参数。
当完成以上CAN配置之后,还需按照图5所示的流程图来完成数据的发送与接收配置,同时初始化邮箱。邮箱初始化主要是设置邮箱的标识符和控制域(即发送的是远程帧还是数据帧),以及对相应的邮箱赋初值。本文引用地址:https://www.eepw.com.cn/article/151978.htm
数据接收时,所接收到的信息的标识符必须与相应的接收邮箱的标识符相同,否则该信息将被滤除。这里,数据的发送与接收请求均采用标志位查询方式。
按照以上步骤设置好后,接着就是对数据的发送与接收请求进行配置。数据接收可采用中断方式,中断配置可在主程序流程中进行配置。正确配置中断入口地址及中断函数,并开放CAN接收中断后,还要分别配置不同的数据帧,包括标准帧和扩展帧,以及数据帧和远程请求帧。
图6表示为上位机接收数据的调试界面。可以看到,CAN通信和下位机间的数据通信,可以写数据并发送给下位机,同时也可接收下位机的数据来验证电路及软件的正确性。
5 结束语
利用TMS320F2812内嵌的eCAN模块可使得硬件电路设计更为简单而可靠,而且性能也较已有的DSP内嵌的CAN控制器有较大的提高。同时,采用C语言编程,则可使得程序的设计难度降低,提高程序的可维护性并缩短开发时间。
评论