欢迎来到天天文库
浏览记录
ID:39515441
大小:658.00 KB
页数:4页
时间:2019-07-04
《控制器局域网(CAN)实验doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、控制器局域网(CAN)实验1.实验目的(1)熟悉CAN的功能和应用(2)熟悉CAN数据帧/远程帧的结构(3)掌握CAN控制器发送/接收数据的配置(4)掌握CAN控制器的通讯功能2.实验内容(1)CAN节点的初始化(2)LM3S2110CAN器件板中CAN控制器收发数据的配置(3)LM3S8962评估板中CAN控制器收发数据的配置(4)演示利用Cortex-M3内部集成的CAN控制器进行双机数据通信的实验3.Stellaris内部集成的CAN控制器图1CAN数据/远程帧的结构图CAN总线以帧为单位进行数据传送,在CAN总
2、线上发送的有4类信息帧:数据帧、远程帧、错误指示帧和超载帧,图1所示是CAN数据/远程帧的结构图。数据帧用于发送数据,远程帧用于请求数据。图2CAN双机通信框图CAN总线节点的软件设计主要包括CAN节点初始化、报文发送和报文接收。使用控制器之前,必须使能外设时钟,配置用于传输CAN信息的GPIO管脚。CAN的软件初始化有两种方法:一是将CANCTL中的INIT位置位,二是在脱离总线时—一般在发送器错误计数器的值超过255时,会发送脱离总线的现象。在初始化CAN控制器时,应该设置CANBIT,用来编程配置CAN的位速率。
3、CAN控制器的双机通信框图如图2所示。协议控制器从CAN总线上接收和发送串行数据,并将数据传递给报文处理器。报文处理器基于当前的过滤设置以及报文对象存储器中的标识符,将合适的报文内容载入与之对应的报文对象。报文处理器还负责根据CAN总线的事件产生中断;报文对象存储器是一组32个完全相同的存储模块,可为每个报文对象保存其当前的配置、状态以及实际数据;报文存储器在Stellaris存储器映射中是无法直接访问的,因此StellarisCAN控制器提供了间接访问端口:用户可通过两个CAN接口寄存器组与报文对象进行通讯,这两组报
4、文对象接口也可以并行访问CAN控制器报文对象,因此当多个报文对象同时包含需要处理的新信息时完全可以并行处理,一般一个接口用于发送数据,另一个接口用于接收数据。4.硬件连接图图3主节点CAN收发器连接原理图5.软件流程图本实验通过软件编程实现利用Cortex-M3内部集成的CAN控制器进行双机通信实验,LM3S8962评估板与LM3S2110CAN器件板上的CAN控制器之间互传数据,每完成一次正确的数据传输,计数值加1,最终通过实验板上相应的LED灯的状态来直观的反映。下图列出了主节点部分的软件流程图。图4中断服务函数图
5、5配置发送FIFO函数图6主函数图7周期性改变LED状态6.实验步骤(1)运行CCS,添加驱动库"driverlib",打开路径"D:LM3S8962MyDocumentsboardsek-lm3s8962",选择存放CAN控制器双机通信实验工程的文件夹"can_fifo"和"can_device_fifo",单击完成添加到开发环境界面;(2)浏览实现预定功能的源代码,首先将"can_device_fifo"设置为当前活跃的工程,编译、连接,检验并修正错误;(3)编链无错误后,通过CAN线缆和JTAG线缆,连接
6、LM3S2110CAN器件板和LM3S8962评估板,通过USB将评估板与PC机进行连接,下载程序代码到LM3S2110;(4)将"can_fifo"设置为当前活跃的工程,编译、连接,检验并修正错误,编链无错误后,断开JTAG线缆,下载程序代码到LM3S8962,进入调试界面;(5)调试主节点部分的程序,添加变量g_ulLEDCount、g_sCAN.pucBufferTx、g_sCAN.ulBytesTransmitted、g_sCAN.pucBufferRx和g_sCAN.ulBytesRemaining到Watc
7、h窗口,方便在调试程序的过程中观察数据传输的步骤,直观的显示数据传输过程对FIFO缓冲区的处理;(6)通过设置断点和单步调试程序,帮助我们了解CAN通讯的具体实现;(7)连接JTAG线缆,对"can_device_fifo"工程的调试,请学习者自己完成,注意要对评估板进行复位操作。实验结果:主节点每成功发送/接收一个报文对象,就挂起中断,发送完64字节,开始响应接收报文中断,接收完64个暂存数据后,完成一次数据收发,计数变量g_ulLEDCount加1,同时点亮评估板上的LED。此时,由主节点发送的数据被从节点接收,再
8、通过从节点回发给主节点。因此,接收数据缓冲区中的数据与发送数据缓冲区中的数据对应相等。当成功传输100次后,器件板上LED点亮,评估板上LED熄灭,成功传输200次后,器件板上LED熄灭,评估板上LED点亮,如此循环。取消所有断点连续运行程序后,两块实验板上的LED交替的闪亮,CAN控制器在连续的传输数据。
此文档下载收益归作者所有