实验18 AN总线传输.doc

实验18 AN总线传输.doc

ID:55514310

大小:52.50 KB

页数:6页

时间:2020-05-15

实验18 AN总线传输.doc_第1页
实验18 AN总线传输.doc_第2页
实验18 AN总线传输.doc_第3页
实验18 AN总线传输.doc_第4页
实验18 AN总线传输.doc_第5页
资源描述:

《实验18 AN总线传输.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验18CAN总线传输【实验目的】1、了解CAN总线工作原理;2、学习LPC系列处理器CAN总线模块的使用方法;【实验要求】1、正确配置LPC处理器IO端口并正确初始化CAN总线模块;2、编写程序实现CAN总线数据传输。【实验原理】一、LPC系列处理器CAN总线模块及CAN总线的原理参见《ARM与嵌入式系统——基于LPC2470和IAR开发环境》中有关CAN总线的章节,重点掌握CAN总线工作原理及CAN总线模块的寄存器使用、数据传输操作方法等内容。本实验提供程序实现LPC处理器两个CAN总线模块之间的数据传输。

2、程序通过串口把CAN发送数据读入LPC处理器,处理器把数据从CAN模块1发出,数据通过对连线发到CAN模块2;程序把数据从CAN模块2读出进行比较,验证数据传输正确后从串口回显传输数据。本程序使用了两种中断源:串口接收数据中断和CAN模块接收中断。二、CAN总线收发器TJA1040简介LPC处理器拥有两个CAN总线通道控制器,所以实验板只要增加CAN总线收发器就可以方便实现CAN总线。LPC处理器两个CAN总线通道各使用一片TJA1040。TJA1040是一款符合CAN2.0规范,数据率可高达1Mbps的CAN

3、总线收发器。TJA1040器件主要引脚功能说明如表18-1所示。表16-1引脚名称功能说明TXD传输数据输入RXD接收数据输出CANLCAN总线低输出CANHCAN总线高输出STB就绪状态控制:高为就绪状态,低为正常状态。三、实验板CAN总线电路1.原理图图16-22.说明TJA1040的STB接地,使器件工作在正常模式下,RXD和TXD分别接CAN总线模块的RD和TD引脚。所以程序在初始化CAN模块时要先初始化I/O模块,正确配置引脚P0.0~1和P0.4~5。四、程序工程模板说明实验提供的程序工程模板中,主

4、要有以下几个目录:1.Common:共有四个源程序文件:cstartup.s79芯片的初始化汇编代码、target.c目标板的初始化C语言代码、irq.c中断实现程序、timer.c定时器程序。2.Target:存放CAN模块的源程序CAN.c和串口模块源程序UART0.c。3.User:存放CAN总线测试源程序testcan.c。五、驱动程序说明1.CAN.c说明在本例中使用到的目标板驱动程序为CAN.c,提供函数如下:1)CAN_Init():对CAN模块进行初始化,设置CAN模块工作模式,并挂载数据接收中

5、断函数CAN_Handler。2)CAN_Handler():CAN总线接收数据中断服务程序。通过判断CAN状态字调用不同通道的接收函数CAN_ISR_Rx1()或者CAN_ISR_Rx2()。具体CAN状态字意义请查阅教材CAN总线通信部分内容。3)CAN_ISR_Rx1():CAN总线1通道接收数据。该函数只被中断服务函数调用。4)CAN1_SendMessage():CAN总线1通道发送数据。5)Msgconvert():把从CAN总线通道接收到数据转换成字符串格式,以便串口打印输出。2.CAN.h说明C

6、AN.h是CAN.c的配套头文件,内容主要有:CAN总线传输时序的宏定义,CAN总线帧格式的结构体以及CAN.c中的几个函数的extern外部函数声明。3.UART0.c说明本文件提供串口0的基本读写函数及初始化函数,具体功能与串口实验中各函数功能相同。4.UART0.h说明本文件为UART0.c包含头文件,提供串口宏及外部函数说明。【实验内容与步骤】一、阅读例程仔细阅读并理解实验提供的CAN.c和UART0.c源程序。掌握CAN总线读写方法以及用中断实现串口的读写方法。二、编写用户测试程序1、在源文件test

7、can.c中输入以下程序:#include"LPC2468.h"/*LPC23xxdefinitions*/#include"type.h"#include"irq.h"#include"can.h"#include"timer.h"#include"uart0.h"#include"target.h"CAN_MSGMsgBuf_TX1,MsgBuf_TX2;//TXandRXBuffersforCANmessageCAN_MSGMsgBuf_RX1,MsgBuf_RX2;//TXandRXBuffersfor

8、CANmessagevolatileDWORDCAN1RxDone,CAN2RxDone;externvolatileDWORDUART0Count;externvolatileBYTEUART0Buffer[BUFSIZE];externvolatileBYTEUART0RecBuf[BUFSIZE];volatileBYTEflag=0;volatileBYTEi=0;intmai

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。