can总线接收实验报告_第1页
can总线接收实验报告_第2页
can总线接收实验报告_第3页
can总线接收实验报告_第4页
can总线接收实验报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DSP实 验 报 告 实验名称:CAN总线数据采集和远程传输实验实验日期:2013-6-172013-7-05姓 名:*学 号:*指导教师:*哈尔滨工业大学(威海)目录- 0 -DSP实 验 报 告- 0 -1理论准备- 2 -1.1 DSP应用的概述- 2 -1.2 CAN的简介- 3 -1.3 F2812简介- 3 -2实验原理- 4 -2.1 软件流程图- 4 -2.2 can总线收发器通信的硬件原理- 5 -3设计阶段- 5 -3.1接收过程:- 5 -3.2 配置就收邮箱- 7 -3.3 接收消息- 8 -四实验总结- 8 -五参考文献- 8 -附录:- 9 -1理论准备1.1 DS

2、P应用的概述数字信号处理器(DSP)是一种适合完成数字信号处理运算的处理器。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,

3、微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。DSP主要应用在数字信号处理中,目的是为了能够满足实时信号处理的要求,因此需要将数字信号处理中的常用运算执行的尽可能快,这就决定了DSP的特点和关键技术。适合数字信号处理的关键技术:DSP包含乘法器、累加器、特殊地址产生器、领开销循环等;提高处理速度的关键技术:流水线技术、并行处理技术

4、、超常指令(VLIW)、超标量技术、DMA等。从广义上讲,DSP、微处理器和微控制器(单片机)等都属于处理器,可以说DSP是一种CPU。DSP和一般的CPU又不同,最大的区别在于:CPU是冯.诺伊曼结构的;DSP是数据和地址空间分开的哈佛结构。1.2 CAN的简介CAN(Controller Area Network)即控制器局域网,是德国Bosch公司在20世纪80年代初为解决现代汽车中众多的控制与检测仪器之间的数据交换而开发的一种串行数据通讯协议。CAN适合工业过程监控设备的互联,因此受到了工业界的重视,其应用于工业控制、汽车电子、机械工业、楼宇自动化和信息家电等非常广泛的场合,成为最有前

5、途的现场总线之一。CAN总线的通信距离可以达到10km(此时通信传输率在5Kb/s以下)通信速度可以达到1Mb/s(距离40m以内),CAN总线的节点数取决于总线驱动电路,目前可以支持110个节点。CAN具有以下工作特性:多主工作方式。每一个节点都可以主动向网络发起数据传输,不分主从;无破坏性的、基于优先级的仲裁。两个竞争的发送节点通过总线的电平竞争,在发送的同时完成优先级的仲裁:优先级高的取得总线控制权继续完成发送过程,优先级低的失去总线电平控制权推出发送流程,等待总线空闲。借助接收滤波的多地址帧传送:点对点、一点对多点、全局广播CAN总线的节点数决定于总线驱动电路,目前可支持110个节点

6、CAN采用短帧结构,传输时间短,受干扰概率小,可靠性高,有利于数据的实时传输帧信息包括CRC校验和其他检错信息,极大地降低数据出错率CAN节点可以识别暂时性错误和永久性故障CAN的通行介质可以是双绞线、同轴电缆、光纤或其他各种介质,其驱动电路可以根据具体要求加以设计。1.3 F2812简介TMS320F2812是公司的一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片。该芯片兼容TMS320LF2407指令系统最高可在150MHZ主频下工作,并带有18K16位等待周期片上SRAM和128K16位片上FLASH(存取时间36)。其片上外设主要包括28路12位ADC(最快80转换时间)、

7、2路SCI、1路SPI、1路MCBSP、路CAN等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWMCMP、2路QEP、3路CAP、2路16位定时器(或TPWMTCMP)。另外,该器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚,可外扩大于1M16位程序和数据存储器。TMS320F2812采用哈佛总线结构,具有密码保护机制,可进行双1616乘加和3232乘加操作,因而可兼顾控制和快速运算的双重功能。通过对TMS320F2812定点DSP芯片合理的系统配置和编程可实现快速运算2实验原理2.1 软件流程图设置局部接收屏蔽寄存器使能/禁止设置邮箱ID 设置邮箱方

8、向,使能接收邮箱RMP?中断标志?N复位接收消息挂起和中断标志RMP=1 2.2 can总线收发器通信的硬件原理 如图所示,总线上的CAN信号通过CAN收发器的DSP能够识别的TTL信号,从CAN_TX和CAN_RX端输出的DSP输出的CAN控制器部分信号线连接到CAN_TX和CAN_RX端。按照上面原理图将两个DSP板的CANbus处对应连接在一起就可以实现CAN的互发通信了。 3设计阶段3.1接收过程:Step1:设置局部接收屏蔽寄存器,在ecan模式下的每一个邮箱都有自己的屏蔽寄存器,如邮箱16作为接收邮箱。如果在LAMn的位等于1则该邮箱就可以接收标准或扩展帧。在扩展帧模式,29位的扩

9、展标示符都存在邮箱中,同时局部变量接收屏蔽寄存器的所有29位都用来滤波。在标准帧模式,只有前11位标示符(位2818)和局部接收屏蔽被使用。Step2:设置邮箱标识符和控制 1.向寄存器CANME写0禁止邮箱 ECanaRegs.CANME.all = 0;2. 通过寄存器CANMC请求改变数据区 ECanaShadow.CANMC.CDR=1; 3.通过MBOXn.MSGID(n=031)设置发送邮箱的消息的ID ECanaMboxes.MBOX0.MID.all = 0x; ECanaMboxes.MBOX0.MID.bit.AME=1;采用扩展帧发送4.通过消息控制寄存器CANMCF,设

10、置消息控制区 /*数据长度8个BYTE*/ ECanaMboxes.MBOX0.MCF.bit.DLC = 8 5.请求正常工作 ECanaShadow.CANMC.CDR=16.使能邮箱 /015 是 发送邮箱,1631 是接收邮箱/ ECanaRegs.CANMD.all = 0xFFFF0000;/*32个邮箱使能,第十六个邮箱为接收邮箱/ ECanaRegs.CANME.all = 0x;Step3:等待接收响应标志和邮箱中断标志 ECanaRegs.CANRMP.all = 0Step4:复位接收响应标志RMP和接收标志 ECanaRegs.CANRMP.all = 1Step5:

11、读取接受邮箱中接收到的数据 TestMbox1 = ECanaMboxes.MBOX16.MDRL.all; TestMbox2 = ECanaMboxes.MBOX16.MDRH.all; TestMbox3 = ECanaMboxes.MBOX16.MID.all; /通过接收到的数据控制led灯的亮灭 *LedADDR = TestMbox2;3.2 配置就收邮箱Step1:清除邮箱使能寄存器中相应的位,屏蔽邮箱Step2:写标示符到相应的MID寄存器,必须根据需要配置标示符扩展位,如果使用接受屏蔽,接收屏蔽使能位置位。Step3:通过设置邮箱方向寄存器中相应的标志位(CANMD.16=

12、1),将邮箱配置为接收邮箱,确保该寄存器的其他位不受该操作影响Step4:通过设置邮箱使能寄存器(CANME)中相应的标志位,使能邮箱。3.3 接收消息 当接收到消息时,接收消息挂起寄存器(CANRMP)相应的标志位置1,并产生一个中断。CPU可以从邮箱RAM中读取消息,但是在读取之前,应先将RMP位清除(RMP.1=1)。 读取数据后,CPU需要验证RMP没有被模块再次置位。四实验总结本设计要完成的目的是DSP与CAN总线的通信,由于现在的电子产品种类繁多,不同的产品虽然可能具有相近的特性,但是他们之间的协议不尽相同。并且经常会出现远距离的传输通信,这就需要传输介质,传输介质也有它独有的通信

13、协议。本设计就是实现协议之间的转换,经过CAN总线实现数据的通信。广泛应用于工业网络控制系统中,负责微处理器与智能节点之间的通信。 本设计经过软件与硬件的设计,基本上完成了所有的控制要求,其中DSP选用的是TMS320F2812.五.实验收获与不足(1)本实验的不足之处是未能成功实现数据采集,而是直接从软件程序中直接给予数据的赋值与修改(2)本实验的收获之处是加深了对can总线的了解,以及对dsp2812开发板的充分认识,更重要的是巩固加强了对c语言的应用。(3)在本次课程设计中,锻炼了我们的团队合作能力和沟通协调能力。 六参考文献(1)苏奎峰、吕强、常天庆、邓志东编著TMS320X281X

14、DSP北京航空航天大学出版社 2011(2)王忠勇、陈恩庆编著TMS320F2812 DSP原理与应用技术 电子工业出版社 2012(3)徐科军、张翰、陈智渊编著TMS320X281X DSP 原理及应用北京航空航天大学出版社 2006附录:设置CAN 接收模式(1)TEST.c程序#include DSP28_Device.hvoid mailbox_check(int32 T1,int32 T2,int32 T3);void mailbox_read(int16 i);/定义一个接收计数器Uint32 MessageReceiveCount;/定义三个变量,分别存储接收到的高位,低位和邮箱

15、ID号Uint32 TestMbox1=0;Uint32 TestMbox2=0;Uint32 TestMbox3=0; /发光二极管控制寄存器unsigned int *LedADDR = (unsigned int *) 0x3800; void main(void) InitSysCtrl();/初始化系统DINT;/关中断IER = 0x0000;IFR = 0x0000;InitPieCtrl();/初始化PIE中断InitPieVectTable();/初始化PIE中断矢量表 InitECan();/初始化SCIA寄存器MessageReceiveCount = 0;/接收计数器初

16、始化赋值为0for(;)/检查发送成功信号,如果成功,则继续,否则将等待while(ECanaRegs.CANRMP.all = 0); TestMbox1 = ECanaMboxes.MBOX16.MDRL.all; / = 0x9555AAAn (n is the MBX number) TestMbox2 = ECanaMboxes.MBOX16.MDRH.all; / = 0x89ABCDEF (a constant) TestMbox3 = ECanaMboxes.MBOX16.MID.all;/ = 0x9555AAAn (n is the MBX number) /通过接收到的数

17、据控制led灯的亮灭 *LedADDR = TestMbox2; MessageReceiveCount+; /成功接收,则接收计数器加1、(2)ECAN程序/ FILE:DSP28_ECan.c/ TITLE:DSP28 Enhanced CAN Initialization & Support Functions.#include DSP28_Device.h/对ECAN的初始化void InitECan(void)struct ECAN_REGS ECanaShadow; EALLOW; /开保护,以便能对受保护的寄存器操作/将I/O口从普通I/O模式转变为CAN模式 GpioMuxRe

18、gs.GPFMUX.bit.CANRXA_GPIOF7=1; GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;/配置引脚ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all;ECanaRegs.CANTIOC.all = ECanaShadow.CANRIOC.all;/CANTX引脚作为CAN模块的发送引脚保留ECanaShadow.CANTIOC.bit.TXFUNC = 1; /配置引脚ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all; ECanaShadow.CANRI

19、OC.bit.RXFUNC = 1;/ECanaRegs.CANRIOC.all = ECanaShadow.CANRIOC.all;EDIS; /与EALLOW配合使用,将其清零 /清除所有的中断标志位ECanaRegs.CANGIF0.all = 0xFFFFFFFF;ECanaRegs.CANGIF1.all = 0xFFFFFFFF; /将邮箱使能标志位清零ECanaRegs.CANME.all = 0;/*发送邮箱的ID号*/ECanaMboxes.MBOX0.MID.all = 0x;ECanaMboxes.MBOX1.MID.all = 0x9555AAA1;ECanaMboxe

20、s.MBOX2.MID.all = 0x9555AAA2;ECanaMboxes.MBOX3.MID.all = 0x9555AAA3;ECanaMboxes.MBOX4.MID.all = 0x9555AAA4;ECanaMboxes.MBOX5.MID.all = 0x9555AAA5;ECanaMboxes.MBOX6.MID.all = 0x9555AAA6;ECanaMboxes.MBOX7.MID.all = 0x9555AAA7;ECanaMboxes.MBOX8.MID.all = 0x9555AAA8;ECanaMboxes.MBOX9.MID.all = 0x9555AAA

21、9;ECanaMboxes.MBOX10.MID.all = 0x9555AAAA;ECanaMboxes.MBOX11.MID.all = 0x9555AAAB;ECanaMboxes.MBOX12.MID.all = 0x9555AAAC;ECanaMboxes.MBOX13.MID.all = 0x9555AAAD;ECanaMboxes.MBOX14.MID.all = 0x9555AAAE;ECanaMboxes.MBOX15.MID.all = 0x9555AAAF;/*接收邮箱的ID号*/ECanaMboxes.MBOX16.MID.all = 0x;ECanaMboxes.MB

22、OX17.MID.all = 0x9555AAA1;ECanaMboxes.MBOX18.MID.all = 0x9555AAA2;ECanaMboxes.MBOX19.MID.all = 0x9555AAA3;ECanaMboxes.MBOX20.MID.all = 0x9555AAA4;ECanaMboxes.MBOX21.MID.all = 0x9555AAA5;ECanaMboxes.MBOX22.MID.all = 0x9555AAA6;ECanaMboxes.MBOX23.MID.all = 0x9555AAA7;ECanaMboxes.MBOX24.MID.all = 0x955

23、5AAA8;ECanaMboxes.MBOX25.MID.all = 0x9555AAA9;ECanaMboxes.MBOX26.MID.all = 0x9555AAAA;ECanaMboxes.MBOX27.MID.all = 0x9555AAAB;ECanaMboxes.MBOX28.MID.all = 0x9555AAAC;ECanaMboxes.MBOX29.MID.all = 0x9555AAAD;ECanaMboxes.MBOX30.MID.all = 0x9555AAAE;ECanaMboxes.MBOX31.MID.all = 0x9555AAAF;/015 是 发送邮箱,16

24、31 是接收邮箱/ECanaRegs.CANMD.all = 0xFFFF0000;/*32个邮箱使能,第十六个邮箱为接收邮箱/ECanaRegs.CANME.all = 0x;/*数据长度8个BYTE*/ECanaMboxes.MBOX0.MCF.bit.DLC = 8;ECanaMboxes.MBOX1.MCF.bit.DLC = 8;ECanaMboxes.MBOX2.MCF.bit.DLC = 8;ECanaMboxes.MBOX3.MCF.bit.DLC = 8;ECanaMboxes.MBOX4.MCF.bit.DLC = 8;ECanaMboxes.MBOX5.MCF.bit.D

25、LC = 8;ECanaMboxes.MBOX6.MCF.bit.DLC = 8;ECanaMboxes.MBOX7.MCF.bit.DLC = 8;ECanaMboxes.MBOX8.MCF.bit.DLC = 8;ECanaMboxes.MBOX9.MCF.bit.DLC = 8;ECanaMboxes.MBOX10.MCF.bit.DLC = 8;ECanaMboxes.MBOX11.MCF.bit.DLC = 8;ECanaMboxes.MBOX12.MCF.bit.DLC = 8;ECanaMboxes.MBOX13.MCF.bit.DLC = 8;ECanaMboxes.MBOX1

26、4.MCF.bit.DLC = 8;ECanaMboxes.MBOX15.MCF.bit.DLC = 8;ECanaMboxes.MBOX16.MCF.bit.DLC = 8;ECanaMboxes.MBOX17.MCF.bit.DLC = 8;ECanaMboxes.MBOX18.MCF.bit.DLC = 8;ECanaMboxes.MBOX19.MCF.bit.DLC = 8;ECanaMboxes.MBOX20.MCF.bit.DLC = 8;ECanaMboxes.MBOX21.MCF.bit.DLC = 8;ECanaMboxes.MBOX22.MCF.bit.DLC = 8;EC

27、anaMboxes.MBOX23.MCF.bit.DLC = 8;ECanaMboxes.MBOX24.MCF.bit.DLC = 8;ECanaMboxes.MBOX25.MCF.bit.DLC = 8;ECanaMboxes.MBOX26.MCF.bit.DLC = 8;ECanaMboxes.MBOX27.MCF.bit.DLC = 8;ECanaMboxes.MBOX28.MCF.bit.DLC = 8;ECanaMboxes.MBOX29.MCF.bit.DLC = 8;ECanaMboxes.MBOX30.MCF.bit.DLC = 8;ECanaMboxes.MBOX31.MCF

28、.bit.DLC = 8;/*没有远方应答帧被请求*则RTR=0ECanaMboxes.MBOX0.MCF.bit.RTR = 0;ECanaMboxes.MBOX1.MCF.bit.RTR = 0;ECanaMboxes.MBOX2.MCF.bit.RTR = 0;ECanaMboxes.MBOX3.MCF.bit.RTR = 0;ECanaMboxes.MBOX4.MCF.bit.RTR = 0;ECanaMboxes.MBOX5.MCF.bit.RTR = 0;ECanaMboxes.MBOX6.MCF.bit.RTR = 0;ECanaMboxes.MBOX7.MCF.bit.RTR

29、= 0;ECanaMboxes.MBOX8.MCF.bit.RTR = 0;ECanaMboxes.MBOX9.MCF.bit.RTR = 0;ECanaMboxes.MBOX10.MCF.bit.RTR = 0;ECanaMboxes.MBOX11.MCF.bit.RTR = 0;ECanaMboxes.MBOX12.MCF.bit.RTR = 0;ECanaMboxes.MBOX13.MCF.bit.RTR = 0;ECanaMboxes.MBOX14.MCF.bit.RTR = 0;ECanaMboxes.MBOX15.MCF.bit.RTR = 0;ECanaMboxes.MBOX16

30、.MCF.bit.RTR = 0;ECanaMboxes.MBOX17.MCF.bit.RTR = 0;ECanaMboxes.MBOX18.MCF.bit.RTR = 0;ECanaMboxes.MBOX19.MCF.bit.RTR = 0;ECanaMboxes.MBOX20.MCF.bit.RTR = 0;ECanaMboxes.MBOX21.MCF.bit.RTR = 0;ECanaMboxes.MBOX22.MCF.bit.RTR = 0;ECanaMboxes.MBOX23.MCF.bit.RTR = 0;ECanaMboxes.MBOX24.MCF.bit.RTR = 0;ECa

31、naMboxes.MBOX25.MCF.bit.RTR = 0;ECanaMboxes.MBOX26.MCF.bit.RTR = 0;ECanaMboxes.MBOX27.MCF.bit.RTR = 0;ECanaMboxes.MBOX28.MCF.bit.RTR = 0;ECanaMboxes.MBOX29.MCF.bit.RTR = 0;ECanaMboxes.MBOX30.MCF.bit.RTR = 0;ECanaMboxes.MBOX31.MCF.bit.RTR = 0;ECanaMboxes.MBOX1.MDRL.all = 0x9555AAA1;ECanaMboxes.MBOX1.

32、MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX2.MDRL.all = 0x9555AAA2;ECanaMboxes.MBOX2.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX3.MDRL.all = 0x9555AAA3;ECanaMboxes.MBOX3.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX4.MDRL.all = 0x9555AAA4;ECanaMboxes.MBOX4.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX5.MDRL.all = 0x9555AAA

33、5;ECanaMboxes.MBOX5.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX6.MDRL.all = 0x9555AAA6;ECanaMboxes.MBOX6.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX7.MDRL.all = 0x9555AAA7;ECanaMboxes.MBOX7.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX8.MDRL.all = 0x9555AAA8;ECanaMboxes.MBOX8.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX9.MDRL.all = 0x9555AAA9;ECanaMboxes.MBOX9.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX10.MDRL.all = 0x9555AAAA;ECanaMboxes.MBOX10.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX11.MDRL.all = 0x9555AAAB;ECanaMboxes.MBOX11.MDRH.all = 0x89ABCDEF;ECanaMboxes.MBOX12.MDRL.all = 0x9555AAAC;ECanaMboxes.MBOX12.MDR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论