eCAN模块课件资料讲解

上传人:大米 文档编号:568643595 上传时间:2024-07-25 格式:PPT 页数:49 大小:1.15MB
返回 下载 相关 举报
eCAN模块课件资料讲解_第1页
第1页 / 共49页
eCAN模块课件资料讲解_第2页
第2页 / 共49页
eCAN模块课件资料讲解_第3页
第3页 / 共49页
eCAN模块课件资料讲解_第4页
第4页 / 共49页
eCAN模块课件资料讲解_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《eCAN模块课件资料讲解》由会员分享,可在线阅读,更多相关《eCAN模块课件资料讲解(49页珍藏版)》请在金锄头文库上搜索。

1、eCAN模块课件现场总线技术和现场总线控制系统传统的控制系统难于实现设备之间以及系统与外界之间的信息交换,是一个“信息孤岛”。要满足自动控制技术现代化的要求,实现整个企业的信息集成,实施综合自动化,就必须设计出一种能在工业现场环境中运行、性能可靠、造价低廉的通讯系统,形成工厂底层网络,完成现场自动化设备之间的多点数字通讯,实现底层现场设备之间以及生产现场与外界信息的交换,现场总线就是在这种需求下应运而生。CAN总线的特点由于CAN总线本身的特点,其应用范围目前已经不局限于汽车行业,而扩展到机械工业、纺织机械、农业、机器人、数控机床及传感器等领域。其通讯的突出特点为:可靠性、灵活性、实时性,具体

2、可以概括如下:CAN为多主方式工作,网络上任一节点均可在任意时刻主动向 网络上其他节点发送信息,而不分主从。在报文标志符上,CAN的节点分成不同的优先级,可满足不同 的实时要求。CAN采用非破坏性总线总裁技术。CAN节点只需通过对报文的标志符滤波即可实现点对点、一点 对多点及全局广播等几种方式传输接收数据。CAN的直接传输距离的直接传输距离10Km(速率在(速率在5Kbps下)下)通讯最高速率为通讯最高速率为1Mbps(此时通信的最长距离为(此时通信的最长距离为40m););CAN的节点数的节点数主要取决于总线驱动电路,目前可达到主要取决于总线驱动电路,目前可达到110个个CAN的每帧信息都有

3、的每帧信息都有CRC校验及其他校验措施,具有校验及其他校验措施,具有极好的检错效果。极好的检错效果。CAN的通信介质为双绞线、同轴电缆或光纤的通信介质为双绞线、同轴电缆或光纤CAN节点在严重错误时具有自动关闭输出功能,以便节点在严重错误时具有自动关闭输出功能,以便总线上其他节点的操作不受影响。总线上其他节点的操作不受影响。Vcan-h和和Vcan-l为为CAN总线收发器与总线之间的两接口总线收发器与总线之间的两接口引脚,信号是以两线之间的引脚,信号是以两线之间的“差分差分”电压形式出现。电压形式出现。CAN总线数据传输格式CAN总线通信技术的实现总线通信技术的实现CAN就是总线型结构的一种适合

4、工业现场自动控制的计算机局域网络。CAN总线通讯技术是通过CANCAN总线控制器总线控制器在硬件上实现的。CAN总线控制器是一块可编程的逻辑电路,片上集成CAN总线数据传输协议,通过硬件实现CAN总线编码和解码的功能,方便CAN总线技术在实际开发中的应用。CAN总线控制器提供与微处理器的物理线路接口,通过对它的编程,CPU可以设置它的工作方式,控制它的工作状态,进行数据的发送和接收。CAN总线控制器分为两种类型。 一种是独立的,片内集成对CAN总线的编解码协议,它可以与多种类型的单片机、微处理器的标准总线进行接口连接。另一种是将CAN总线控制器与微处理器作在一起,简化了电路设计。芯片SJA10

5、00SJA1000是一种独立的CAN控制器,用于一般工业环境中区域网络控制。支持CAN2.0A和CAN2.0B通讯协议;24MMz时钟频率;可与不同微处理器接口;F2812的ECAN总线模块CANCAN总线协议内核主要完成的功能总线协议内核主要完成的功能根据CAN协议对CAN总线上接收到的消息进行解码,向接收缓冲发送解码后的消息;根据CAN协议在CAN总线上传送消息;存储器映射F2812处理器中,eCAN模块映射到两个不同的地址段。两段空间各占512字节。第一段地址空间分配给控制寄存器、状态寄存器、局部接收屏蔽、接受滤波器、定时邮递和消息对象超时。(600060FF)第二段地址空间映射到32个

6、邮箱;(610061FF)消息存储在RAM中,CAN控制器和CPU都可以对它进行访问。eCAN提供32个邮箱,每个邮箱包括8字节数据区、29位标志符和几个控制位,每个邮箱都可以配置为接收或发送邮箱。消息邮箱eCAN模块有32个不同的消息邮箱,每个消息对象可以配置成发送或接收邮箱,每个消息目标都有自己的接收滤波器.消息邮箱用来存储接收到的CAN消息,或存放等待发送的CAN消息。消息邮箱映射到DSP的RAM存储器,当消息邮箱没有存放消息时,CPU可以将相应的RAM空间当做通用存储器使用。邮箱构成每个邮箱都是由四个32位寄存器构成:MSGID:存储消息ID。MSGCTRL:定义字节数、发送极性和远程

7、帧;MDL:4字节数据;MDH:4字节数据; 消息标志寄存器MSGID消息控制寄存器MSGCTRLTPL4:0-发送优先级;RTR:远程发送请求位;DLC3:0-发送或接收数据的字节数;关于远程帧报文(Messeges)传输有如下4个不同类型的帧: 1.数据帧(Data Frame):数据帧将数据从发送器传输到接收器。 2.远程帧(Remote Frame):总线单元发出远程帧,请求发送具有同一标志符的数据帧。 3.错误帧(Error Frame):任何单元检测到总线错误就发出错误帧; 4.过载帧(Overload Frame):过载帧用在相邻数据帧或远程帧之间提供附加的延时;数据帧和远程帧可

8、以使用标准帧及扩展帧2种格式。简介eCAN模块的控制状态寄存器邮箱使能寄存器(CANME)Mailbox Enable Register邮箱方向寄存器(CANMD)Mailbox Direction Register发送请求置位寄存器(CANTRS)TransmissionRequestSetRegister发送请求复位寄存器(发送请求复位寄存器(CANTRR)TransmissionRequestResetRegister发送响应寄存器(CANTA)TransmissionAcknowledgeRegister邮箱使能寄存器(CANME)Mailbox Enable RegisterME31

9、.0310邮箱控制使能位:邮箱控制使能位:1CAN模块中相应的邮箱被使能,在写标志符之前,模块中相应的邮箱被使能,在写标志符之前,必须将所有邮箱屏蔽。必须将所有邮箱屏蔽。20相关邮箱被屏蔽,邮箱映射为一般存储空间使相关邮箱被屏蔽,邮箱映射为一般存储空间使用。用。邮箱邮箱方向寄存器(CANDE)MD31.0310邮箱方向寄存器:邮箱方向寄存器:1配置为接收邮箱配置为接收邮箱20配置为发送邮箱配置为发送邮箱邮箱发送请求设置寄存器CANTRSTRS31.0310发送请求设置位:发送请求设置位:1TRS置位发送邮箱中的消息,所有循环发送的消息的置位发送邮箱中的消息,所有循环发送的消息的TRS位可以同时

10、位可以同时置位;置位;20没有操作;没有操作;3注意:注意:4当多个发送请求同时置位时,消息可以轮流发送。首先发送优先当多个发送请求同时置位时,消息可以轮流发送。首先发送优先级别高的邮箱(邮箱编号最大的具有最高优先权),也可以设置级别高的邮箱(邮箱编号最大的具有最高优先权),也可以设置TPL设定邮箱的优先级别。设定邮箱的优先级别。邮箱发送请求复位寄存器CANTRRTRR31.0310发送请求复位位:发送请求复位位:1TRR置位取消发送请求置位取消发送请求0没有操作;没有操作;2注意:注意:1.通过通过CPU写入写入1,将,将CANTRR寄存器中的位置寄存器中的位置1;2.如果通过如果通过TRS

11、已经初始化相应位,但当前没有进行消息处理,并且相已经初始化相应位,但当前没有进行消息处理,并且相应的应的TRR位置位,则消息会取消传送。位置位,则消息会取消传送。3.如果发送成功或消息发送放弃,则该寄存器的相应位将复位;如果发送成功或消息发送放弃,则该寄存器的相应位将复位;邮箱发送响应寄存器CANTATA31.0310发送响应位:发送响应位:1如果邮箱中的消息成功发送,则响应寄存器位置位;如果邮箱中的消息成功发送,则响应寄存器位置位;20消息没被发出;消息没被发出;3注意:注意:1.如果如果CANMIM寄存器中相应的中断屏蔽位被置位,则寄存器中相应的中断屏蔽位被置位,则GMIF0/GMIF1会

12、被置位,表示有中断产生;会被置位,表示有中断产生;2.如果已经产生中断,向如果已经产生中断,向CANTA寄存器写寄存器写1,可以清除中断。,可以清除中断。邮箱发送响应失败寄存器CANAAAA31.0310发送请求复位位:发送请求复位位:1邮箱消息发送失败,相应位置位邮箱消息发送失败,相应位置位20消息发送成功;消息发送成功;接收消息挂起寄存器CANRMPRMP31.0310发送响应位:发送响应位:1如果邮箱中包含接收到的消息,则寄存器相应位置位;如果邮箱中包含接收到的消息,则寄存器相应位置位;20消息内没有消息;消息内没有消息;3注意:注意:1.如果接收到的消息存储到邮箱如果接收到的消息存储到

13、邮箱n中,则中,则RMPn将被置位;将被置位;2.如果在如果在CANMIM寄存器中的相应的中断屏蔽位被置位,则寄存器中的相应的中断屏蔽位被置位,则CANRMP寄存器相应的位会对寄存器相应的位会对GMIF0/GMIF1置位,表示中断产生;置位,表示中断产生; 主控寄存器(CANMC)MasterControlRegisterCANMC.13(SCB):标准):标准CAN模式兼容控制位模式兼容控制位1.1选择选择ECAN模式模式2.0ECAN工作在标准模式,只有工作在标准模式,只有16个邮箱使用个邮箱使用CANMC.12(CCR):改变配置请求):改变配置请求1CPU请求向标准模式配置寄存器请求向

14、标准模式配置寄存器CANBTC和接受屏蔽寄和接受屏蔽寄存器存器CANGAM)写配置信息。写配置信息。CANMC.10(DBO):数据字节顺序):数据字节顺序选择消息数据区字节的排列次序选择消息数据区字节的排列次序1首先接收或发送数据的最低有效位首先接收或发送数据的最低有效位0首先接收或发送数据的最高有效位首先接收或发送数据的最高有效位位时序配置寄存器CANBCR Bit-Timing Configuration Register错误和状态寄存器CANES Error and Status RegisterEcan I/O控制寄存器(CANTIOC、CANRIOC) CANTIOC.3(TXFU

15、NC) CANRIOC.3(TRFUNC)中断寄存器Interrupt Registers全局中断标志寄存器(CANGIF0/CANGIF1) GlobalInterruptFlagRegisters全局中断屏蔽寄存器 (CANGIM) GlobalInterruptMaskRegister邮箱中断屏蔽寄存器(CANMIM)MailboxInterruptMaskRegister邮箱中断级别寄存器邮箱中断级别寄存器(CANMIL)MailboxInterruptLevelRegister程序设计 EALLOW;/*系统时钟初始化*/ SysCtrlRegs.HISPCP.all = 0x000

16、1; SysCtrlRegs.LOSPCP.all = 0x0002;/*使能外设ECAN模块时钟*/ SysCtrlRegs.PCLKCR.bit.ECANENCLK = 1; EDIS; 配置使能CANTA和CANRX引脚EALLOW;ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all;ECanaShadow.CANTIOC.bit.TXFUNC = 1;ECanaRegs.CANTIOC.all = ECanaShadow.CANRIOC.all; ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all;

17、ECanaShadow.CANRIOC.bit.RXFUNC = 1;ECanaRegs.CANRIOC.all = ECanaShadow.CANRIOC.all;EDIS;注意:CANTX和CANRX引脚作为CAN的通讯接口引脚,需要通过CANTIOC和CANRIOC来设置。如果上述引脚作为通用I/O口使用,GPFMUX寄存器的相关控制脚需清零ECAN TXIO控制寄存器含义 3脚 作为CAN模块的功能使用,必须置1ECAN RXIO控制寄存器含义 3脚 作为CAN模块的功能使用,必须置1 EALLOW;GpioMuxRegs.GPFMUX.bit.XF_GPIOF14=0;GpioMux

18、Regs.GPFDIR.bit.GPIOF14=1; GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1; EDIS; CANBTC寄存器配置 EALLOW;ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;ECanaShadow.CANMC.bit.CCR = 1;/主控寄存器ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;EDIS; do ECanaShadow.CANES.all = ECanaRegs.CA

19、NES.all; while(ECanaShadow.CANES.bit.CCE != 1);注意:CUP请求向标准模式的请求向标准模式的CANBTC写入信息,须将写入信息,须将CCR位置位置1,且,且CPU必须等到必须等到CANES寄存器的寄存器的CCE标志为标志为1后,才能对后,才能对CANBTC寄存器进行写入操作。寄存器进行写入操作。CCR=0CPU请求正常操作。只有在配置寄存器请求正常操作。只有在配置寄存器CANBTC设置为允许值后设置为允许值后才能实现该操作。才能实现该操作。CANBTC寄存器配置EALLOW;/*(BRPREG+1)=10 feeds a 15MHz CAN clo

20、ck*/ECanaShadow.CANBTC.bit.BRP = 9; /*150/10=15*/ECanaShadow.CANBTC.bit.TSEG2 = 5;ECanaShadow.CANBTC.bit.TSEG1 = 7;ECanaRegs.CANBTC.all = ECanaShadow.CANBTC.all; ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;ECanaShadow.CANMC.bit.CCR = 0;ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;EDIS;CANCAN通讯波特率的计算及

21、设置通讯波特率的计算及设置波特率波特率=SYSCLK/BRPBit_time其中:其中:SYSCLK是是CAN模块的系统时钟,与模块的系统时钟,与CPU时钟相同;时钟相同;BRP是是BRPreg+1的二进制数值;的二进制数值;Bit_Time=(TSEG1reg+1)+(TSEG1reg+1)+1CAN总线速度BRPreg +1CAN时钟1Mbps1015MHz500Kbps207.5MHz250Kbps403.75MHz125Kbps801.875MHz100Kbps1001.5MHz50Kbps2000.75MHzBRP不同值的波特率(不同值的波特率(TSEG1reg=10,TSEG2re

22、g=2)设置主控制寄存器设置主控制寄存器设置主控制寄存器设置主控制寄存器EALLOW;ECanaShadow.CANMC.all = ECanaRegs.CANMC.all; ECanaShadow.CANMC.bit.STM = 0; 自测试模式使能位 1 自测试模式 0 模块正常工作模式ECanaShadow.CANMC.bit.SCM = 1; CAN模式选择 1 选择ECAN模式 0 标准模式ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;EDIS;初试化MSGCTRL寄存器 EALLOW;ECanaMboxes.MBOX5.MCF.all=8;

23、EDIS;doECanaShadow.CANES.all = ECanaRegs.CANES.all;while(ECanaShadow.CANES.bit.CCE != 0);注意:在配置完成后,需要检查CCE是否被清零,如果被清零,则表明模块已经配置完成。消息控制寄存器MSGCTRLTPL4:0-发送优先级;RTR:远程发送请求位;DLC3:0-发送或接收数据的字节数;配置发送邮箱EALLOW; ECanaRegs.CANTRS.all = 0; ECanaRegs.CANME.bit.ME5=0; ECanaMboxes.MBOX5.MID.all = 0x9555AAA5; /ID E

24、CanaMboxes.MBOX5.MCF.bit.DLC = 8; /数据长度 ECanaRegs.CANMD.bit.MD5 = 0; /设置成发送邮箱 ECanaRegs.CANME.bit.ME5 = 1; EDIS; 发送数据发送数据while(1) for(i=0;i0xFF;i+) ECanaMboxes.MBOX5.MDRL.all = i; ECanaMboxes.MBOX5.MDRH.all = i; ECanaRegs.CANTRS.bit.TRS5=1; /启动发送 while(ECanaRegs.CANTA.bit.TA5=0);/等待发送中断 ECanaRegs.CANTA.bit.TA5=1;/复位,清除中断 LED1_ON;delay();LED1_OFF;delay();MessageReceiveCount+;结束语结束语谢谢大家聆听!谢谢大家聆听!49

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号