eCAN模块课件
- 格式:ppt
- 大小:1.25 MB
- 文档页数:48
北京金桥恒泰科技北京金桥恒泰科技有限公司有限公司有限公司余少波余少波 博士博士 caminopro@ caminopro@揭开揭开ECAN ECAN ECAN的面纱的面纱的面纱ECAN ECAN更适合广电网络更适合广电网络更适合广电网络双向化改造双向化改造双向化改造??ECAN 技术比较技术比较分析分析概述......................................................................................................................................................3 EOC EOC的的QoS QoS指标指标......................................................................................................................................3 ECANECAN介绍介绍..............................................................................................................................................5 ECAN 概述...................................................................................................................................................5 ECAN 协议 (5)PHY 层协定...............................................................................................................................................................5 MAC 层协定.. (5)ECAN ECAN连通性分析连通性分析..................................................................................................................................7 ECAN ECAN的传输特性分析的传输特性分析..........................................................................................................................8 ECAN ECAN的延迟分析的延迟分析..................................................................................................................................9 ECAN ECAN的抖动分析的抖动分析..................................................................................................................................9 各种各种EOC EOC EOC技术比较分析技术比较分析. (10)概述概述自从EOC技术出现以来,作为一种用于广电网络双向化改造的技术,已经逐步替代传统的CMTS技术。
1SPRUGL7–April 2020Submit Documentation Feedback Copyright ©2020,Texas Instruments Incorporated Enhanced Controller Area Network (eCAN)Reference GuideSPRUGL7–April 2020Enhanced Controller Area Network (eCAN)This peripheral reference guide has been combined into a family-specific technical reference manual (TRM).See Table 1for the link to the TRM.Table 1.Family Mapping to TRMFamilyTechnical Reference Manual (TRM)TMS320x2803x TMS320x2803x,Piccolo Technical Reference Manual (SPRUI10)IMPORTANT NOTICE AND DISCLAIMERTI PROVIDES TECHNICAL AND RELIABILITY DATA(INCLUDING DATASHEETS),DESIGN RESOURCES(INCLUDING REFERENCE DESIGNS),APPLICATION OR OTHER DESIGN ADVICE,WEB TOOLS,SAFETY INFORMATION,AND OTHER RESOURCES“AS IS”AND WITH ALL FAULTS,AND DISCLAIMS ALL WARRANTIES,EXPRESS AND IMPLIED,INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS.These resources are intended for skilled developers designing with TI products.You are solely responsible for(1)selecting the appropriate TI products for your application,(2)designing,validating and testing your application,and(3)ensuring your application meets applicable standards,and any other safety,security,or other requirements.These resources are subject to change without notice.TI grants you permission to use these resources only for development of an application that uses the TI products described in the resource.Other reproduction and display of these resources is prohibited.No license is granted to any other TI intellectual property right or to any third party intellectual property right.TI disclaims responsibility for,and you will fully indemnify TI and its representatives against,any claims, damages,costs,losses,and liabilities arising out of your use of these resources.TI’s products are provided subject to TI’s Terms of Sale(/legal/termsofsale.html)or other applicable terms available either on or provided in conjunction with such TI products.TI’s provision of these resources does not expand or otherwise alter TI’s applicable warranties or warranty disclaimers for TI products.Mailing Address:Texas Instruments,Post Office Box655303,Dallas,Texas75265Copyright© 2020,Texas Instruments Incorporated。
ECan总线模块访问ECAN模块可分为控制/状态寄存器和32个邮箱的访问。
每个邮箱都有一个可编程接受屏蔽寄存器,其所占用的512字节RAM 都可以配置为发送或接收邮箱。
每个邮箱包括8字节数据区,29位标识符和几个控制位,每个邮箱都是有4个32位的寄存器构成。
即:ECAN控制器总共有15个32位的控制寄存器,控制着位定时器、邮箱的发送或接收使能、错误状态及CAN中断等。
其控制寄存器的状态寄存器只能允许32位访问,而接收屏蔽、时间标识寄存器、超时寄存器和邮箱所在的CAN范围则可以以8位、16位和32位方式访问。
该程序中都是进行32位访问,通过设置影子寄存器可实现对位进行操作。
如以下程序:struct ECAN_REGS ECanbShadow;EALLOW; // EALLOW enables access to protected bits ECanbShadow.CANTIOC.all = ECanbRegs.CANTIOC.all;ECanbShadow.CANTIOC.bit.TXFUNC=1; //发送ECanbRegs.CANTIOC.all = ECanbShadow.CANTIOC.all;EALLOW是指允许对受保护的寄存器操作,通常和EDIS配套使用,EDIS是指恢复被保护寄存器的状态。
#define EALLOW asm(" EALLOW")#define EDIS asm(" EDIS") (device.h)初始化CAN步骤:1.使能GPIO口(GPIO8为CANTX,GPIO10为CANRX);2.设置CANTX和CANRX为CAN的通信引脚;3.选择是增强型还是标准型;4.相关寄存器清零;(邮箱控制寄存器清0;复位TA;RMP寄存器所有位置1,表示邮箱中存在发送的数据;清除所有中断标志)5.设置时间配置寄存器的三个步骤(设置CCR=1,等待CER=1,然后设置CANBTC);ECanbShadow.CANMC.all = ECanbRegs.CANMC.all;R = 1 ;ECanbRegs.CANMC.all = ECanbShadow.CANMC.all;ECanbShadow.CANES.all = ECanbRegs.CANES.all;do{ECanbShadow.CANES.all = ECanbRegs.CANES.all;} while(E != 1 );配置时钟程序此处省略。
AN916随着带有增强型控制局域网(Enhanced Control Area Network,ECAN)模块的PIC18FXX8X系列单片机的面世,设计人员现在可以在PIC18FXX8系列器件原有的CAN模块的和这种使能ECAN的新型器件之间进行选择。
本应用笔记比较了两种模块的通信时间,并给出了结论和建议,旨在帮助设计人员找到最适合给定应用和可用部件的CAN解决方案。
比较和相关的建议均根据以下规则给出:1.以指令条数(汇编语言)表示代码处理时间2.以位时间表示发送和接收时间CAN接口特性•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN 2.0B•标准和扩展数据帧•0-8字节数据长度•可编程的比特率,最高为 1 Mb/s•支持远程帧•带有区分优先级的两个接收报文存储缓冲器的双缓冲接收器•6个完全(标准/扩展标识符)接收过滤器;两个与高优先级接收缓冲器相关联,四个与低优先接收缓冲器相关联•两个完全接收过滤器屏蔽寄存器,每个都与高和低优先级接收缓冲器相关联•三个发送缓冲器,具有应用程序指定的优先级和中止功能•利用集成的低通滤波器实现可编程唤醒功能•可编程环回模式支持自测试操作•在所有CAN接收器和发送器出现错误状态时,通过中断发出信号•可编程时钟源•可编程的到定时器模块的链接,用于时间标记和网络同步•低功耗休眠模式ECAN接口特性•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN2.0B•支持DeviceNet™数据字节过滤器•标准和扩展数据帧•0-8字节数据长度•可编程的比特率,最高为 1 Mb/s•与PIC18XX8 CAN模块完全向下兼容•三种工作模式:-模式 0 – 传统模式-模式1 – 支持DeviceNet的增强型传统模式-模式2 – 支持DeviceNet的FIFO模式•支持具有自动处理功能的远程帧•带有区分优先级的两个接收报文存储缓冲器的双缓冲接收器•6个可编程作为接收和发送报文缓冲器的缓冲器•16 个可与4个屏蔽寄存器之一相关的完全(标准/扩展标识符)接收过滤器•两个可以被分配给任何过滤器的完全接收过滤器屏蔽寄存器•一个可以被用作接收过滤器或接收过滤器屏蔽寄存器的完全接收过滤器•三个专用的发送缓冲器,具有应用程序指定的优先级和中止功能•利用集成的低通滤波器实现可编程唤醒功能•可编程环回模式支持自测试操作•在所有CAN接收器和发送器出现错误状态时,通过中断发出信号•可编程时钟源•可编程的到定时器模块的链接,用于时间标记和网络同步•低功耗休眠模式欲知有关CAN和ECAN的更多信息,请参见附录A:“参考资料”。
main(void)为实验主程序,首先在其中调用各子程序进行相关的配置和初始化工作.然后向上位机发送一串数据.表示下位机已准备好.等待接收上位机的数据,其说明如下:void main(void){//初始化系统InitSysCtrl();//关中断DINT;//关闭总中断IER=Ox0000;//关闭所有CPU中断使能(IER)寄存器IFR=Ox0000;//清零所有CPU中断标志(IFR)寄存器//初始化PIE中断InitPieCtrl();//初始化PIE中断矢量表InitPieVectTable();//初始化eCAN寄存器InitECan();//设置中断程序入口地址EALLOW://使能EALLOWPieVectTable.ECANOINTA=&ECANOINTA_ISR;//将中断的入口地址改为ECAN0IN-TA_ISREDIS://关闭EALLOW//开中断IER|_M INT9://开中断INT9EINT://开启全局中断INTMERTM://开启全局实时中断DBJMECanaRegs.CANTRS.all=0x00000001://将邮箱0的TRS置位,开始发送while(ECanaRegs.CANTA.all I=0x00000001);//判断邮箱0发送成功与否,如果成功则退出循环ECanaRegs.CANTA.all=0x0000FFFF://将所有的发送邮箱的TA标志清零for(;;);//循环等待中断程序}2.2 eCAN初始化程序说明InitECan()子程序的功能是eCAN操作前的各种配置及相关寄存器的初始化工作,其说明如下:void InitECan(void){/串eCAN引脚设置木,ECanaRegs.CANME.all=O://复位所有的邮箱产邮箱的相关配置木,ECanaMboxes.MBOX0.MID.all=0x15100000://配置发送邮箱O的ID.标识符11位ECanaMboxes.MBOX 1 6.MID.al=0x强炎心燃:||配置接收邮16的ID.标识符11位ECanaRegs.CANMD.all=0xFFFF0000://把邮箱0~15配置为发送邮箱.把邮箱16.31配置为接收邮箱ECanaShadow.CANMC.bit.SCM=1:,/选择eCAN工作模式ECanaRegs.CANME.a11=0xFFFFFFFF://32个邮箱使能/木数据长度8个BYTE宰/ECanaMboxes.MBOX0.MCF.bit.DLC=8:ECanaMboxes.MBOXl6.MCF.bit.DLC=8;严无远方应答帧请求木/ECanaMboxes.MBOX0.MCF.bit.RTR=0:ECanaMboxes.MBOX 16.MCF.bit.RTR=O:,宰把待发送的数据写入发送邮箱木,ECanaMboxes.MBOX0.MDRL.alI=0x0FFFFFFF:ECanaMboxes.MBOX0.MDRH.all=0x0FFFFFFF:EALLOW:,/使能EALLOWECanaRegs.CANMIM.all=0x00000000://邮箱屏蔽使能ECanaShadow.CANMC.all=ECanaRegs.CANMC.all:/,把CANMC读人影子寄存器ECanaShadow.CANMC.bit.CCR=l://改变配置请求位ECanaShadow.CANMC.bit.SCM=1://选择eCAN工作模式ECanaRegs.CANMC.all=ECanaShadOW.CANMC.all://把配置好的寄存器值回写EDIS://关闭EALLOW产以下为配置波特率宰/产配置工作模式木/EALLOW://使能EALLOWECanaShadow.CANMC.all=ECanaRegs.CANMC.all://把CANMC读入影子寄存器ECanaShadow.CANMC.bit.STM=0://配置CAN为正常模式ECanaShadow.CANMC.bit.SCM=l://选择eCAN工作模式ECanaRegs.CANMC.all=ECanaShadow.CANMC.a11:∥把配置好的寄存器值回写EDIS://关闭EALLOWEALLOW://使能EALLOWECanaRegs.CANMIM.all=0x00010000://使能邮箱16接收中断ECanaRegs.CANMIL.all=0://所有邮箱在中断0(ECANOINT)产生邮箱中断ECanaRegs.CANGIFO.all=OxFFFFFFFF:/,全局中断标志寄存器CANGIF0所有标志位清零ECanaRegs.CANGIM.bit.IOEN=1://eCAN模块中中断0使能EDIS://关闭EALLOWPieCtrl.PIEIER9.bit.INTx5=1://PIE模块中中断0使能}ECANOINTA ISR(void)中断子程序的功能是一旦上位机发送数据过来接收成功.将产生中断。
main(void)为实验主程序,首先在其中调用各子程序进行相关的配置和初始化工作.然后向上位机发送一串数据.表示下位机已准备好.等待接收上位机的数据,其说明如下:void main(void){//初始化系统InitSysCtrl();//关中断DINT;//关闭总中断IER=Ox0000;//关闭所有CPU中断使能(IER)寄存器IFR=Ox0000;//清零所有CPU中断标志(IFR)寄存器//初始化PIE中断InitPieCtrl();//初始化PIE中断矢量表InitPieVectTable();//初始化eCAN寄存器InitECan();//设置中断程序入口地址EALLOW://使能EALLOWPieVectTable.ECANOINTA=&ECANOINTA_ISR;//将中断的入口地址改为ECAN0IN-TA_ISREDIS://关闭EALLOW//开中断IER|_M INT9://开中断INT9EINT://开启全局中断INTMERTM://开启全局实时中断DBJMECanaRegs.CANTRS.all=0x00000001://将邮箱0的TRS置位,开始发送while(ECanaRegs.CANTA.all I=0x00000001);//判断邮箱0发送成功与否,如果成功则退出循环ECanaRegs.CANTA.all=0x0000FFFF://将所有的发送邮箱的TA标志清零for(;;);//循环等待中断程序}2.2 eCAN初始化程序说明InitECan()子程序的功能是eCAN操作前的各种配置及相关寄存器的初始化工作,其说明如下:void InitECan(void){/串eCAN引脚设置木,ECanaRegs.CANME.all=O://复位所有的邮箱产邮箱的相关配置木,ECanaMboxes.MBOX0.MID.all=0x15100000://配置发送邮箱O的ID.标识符11位ECanaMboxes.MBOX 1 6.MID.al=0x强炎心燃:||配置接收邮16的ID.标识符11位ECanaRegs.CANMD.all=0xFFFF0000://把邮箱0~15配置为发送邮箱.把邮箱16.31配置为接收邮箱ECanaShadow.CANMC.bit.SCM=1:,/选择eCAN工作模式ECanaRegs.CANME.a11=0xFFFFFFFF://32个邮箱使能/木数据长度8个BYTE宰/ECanaMboxes.MBOX0.MCF.bit.DLC=8:ECanaMboxes.MBOXl6.MCF.bit.DLC=8;严无远方应答帧请求木/ECanaMboxes.MBOX0.MCF.bit.RTR=0:ECanaMboxes.MBOX 16.MCF.bit.RTR=O:,宰把待发送的数据写入发送邮箱木,ECanaMboxes.MBOX0.MDRL.alI=0x0FFFFFFF:ECanaMboxes.MBOX0.MDRH.all=0x0FFFFFFF:EALLOW:,/使能EALLOWECanaRegs.CANMIM.all=0x00000000://邮箱屏蔽使能ECanaShadow.CANMC.all=ECanaRegs.CANMC.all:/,把CANMC读人影子寄存器ECanaShadow.CANMC.bit.CCR=l://改变配置请求位ECanaShadow.CANMC.bit.SCM=1://选择eCAN工作模式ECanaRegs.CANMC.all=ECanaShadOW.CANMC.all://把配置好的寄存器值回写EDIS://关闭EALLOW产以下为配置波特率宰/产配置工作模式木/EALLOW://使能EALLOWECanaShadow.CANMC.all=ECanaRegs.CANMC.all://把CANMC读入影子寄存器ECanaShadow.CANMC.bit.STM=0://配置CAN为正常模式ECanaShadow.CANMC.bit.SCM=l://选择eCAN工作模式ECanaRegs.CANMC.all=ECanaShadow.CANMC.a11:∥把配置好的寄存器值回写EDIS://关闭EALLOWEALLOW://使能EALLOWECanaRegs.CANMIM.all=0x00010000://使能邮箱16接收中断ECanaRegs.CANMIL.all=0://所有邮箱在中断0(ECANOINT)产生邮箱中断ECanaRegs.CANGIFO.all=OxFFFFFFFF:/,全局中断标志寄存器CANGIF0所有标志位清零ECanaRegs.CANGIM.bit.IOEN=1://eCAN模块中中断0使能EDIS://关闭EALLOWPieCtrl.PIEIER9.bit.INTx5=1://PIE模块中中断0使能}ECANOINTA ISR(void)中断子程序的功能是一旦上位机发送数据过来接收成功.将产生中断。
ECa n总线模块访问ECAN模块可分为控制/状态寄存器和32个邮箱的访问。
每个邮箱都有一个可编程接受屏蔽寄存器,其所占用的 512字节RAM 都可以配置为发送或接收邮箱。
每个邮箱包括 8字节数据区,29位标识符和几个控制位,每个邮箱都是有4个32位的寄存器构成。
即:ECAN空制器总共有15个32位的控制寄存器,控制着位定时器、邮箱的发送或接收使能、错误状态及CAN中断等。
其控制寄存器的状态寄存器只能允许32位访问,而接收屏蔽、时间标识寄存器、超时寄存器和邮箱所在的CAN范围则可以以8位、16位和32位方式访问。
该程序中都是进行32位访问,通过设置影子寄存器可实现对位进行操作。
如以下程序:struct ECAN_REGS ECa nbShadow;EALLOW; // EALLOWnables access to protected bitsECa nbShadow.CANTIOC.all = ECa nbRegs.CANTIOC.all;ECa nbShadow.CANTIOC.bit.TXFUNC=1; // 发送ECa nbRegs.CANTIOC.all = ECa nbShadow.CANTIOC.all;EALLOV是指允许对受保护的寄存器操作,通常和EDIS配套使用,EDIS是指恢复被保护寄存器的状态。
#defi ne EALLOW asm(" EALLOW")#define EDIS asm(" EDIS") ( device.h)初始化CAN步骤:1.使能 GPIO 口( GPIO8为 CANTX,GPIO1O为 CANRX);2.设置CANTX和CANRX为CAN的通信引脚;3.选择是增强型还是标准型;4.相关寄存器清零;(邮箱控制寄存器清0;复位TA;RMP寄存器所有位置1,表示邮箱中存在发送的数据;清除所有中断标志)5.设置时间配置寄存器的三个步骤(设置CCR=1,等待CER=1,然后设置CANBTC);ECa nbShadow.CANMC.all = ECa nbRegs.CANMC.all;ECa R = 1 ;ECa nbRegs.CANMC.all = ECa nbShadow.CANMC.all;ECa nbShadow.CANES.all = ECa nbRegs.CANES.all;do{ECa nbShadow.CANES.all = ECa nbRegs.CANES.all;} while(ECa E 匸1 );配置时钟程序此处省略6.配置CANBTC确认TSEG和TSEG不等于0,如果这两个同时为0, 则CAN 模块不能退出初始化模式。
2015/11/10 11.2 C28x的eCAN模块介绍 1. eCAN总线模块特点
支持兼容的CAN2.0B总线协议最高支持1Mb/s的总线通信速率 32个邮箱低功耗模式可编程总线唤醒功能自动应答远程请求消息在仲裁或错误丢失消息时,自动重发可以通过特定的消息同32位定时邮递计数器同步自动测试模式 2. eCAN总线模块概述 6
2015/11/10 (1)据eCAN模块结构图可知,eCAN构成:协议内核消息控制器:包括存储管理单元(CPU接口、接收控制单元、定时器管理单元)、邮箱存储器、控制和状态寄存器(2)发送过程(3)接收过程 7
2015/11/10 3. CAN模块邮箱组成::包含邮箱标志符(消息控制区):包含消息长度及和MDH:包含数据 4. eCAN模块寄存器寄存器地址空间:0x0060000~0x0061FF 主要包括: 8
2015/11/10 9。
第6章通信类外设及其应用开发169图6.13 eCAN模块及其接口电路CPU发送消息时,消息控制器将待发送消息传送给CPK的发送缓冲器,并在下一个总线空闲状态将其发送出去。
若发送多个消息,先对其进行排队,然后根据优先权从高到低的顺序依次发送。
若两个发送邮箱的消息具有相同优先级,则优先发送编号大的邮箱中消息。
CPK接收到有效的消息后,由消息控制器的接收控制单元决定是否保存该消息。
接收控制单元检查所有消息对象的状态、标识符以及屏蔽寄存器,以确定用于保存该消息的邮箱。
若未找到匹配邮箱,则舍弃该消息。
消息控制器的定时器管理单元有一个时间戳计数器,在eCAN模式下,可对所有发送或接收的消息添加时间标记。
若消息未能在允许的时间内接收或发送完毕,将产生超时中断。
另外,在进行数据传输时,对所有控制器寄存器配置完成后,所有工作均由eCAN模块完成,无需CPU干预。
F28335的eCAN模块可工作于增强模式(eCAN模式)和标准模式(SCC模式)。
SCC模式下,只能使用16个邮箱(邮箱0~15),无时间标记功能,且可接受屏蔽数目减少。
工作模式由主控制寄存器CANMC的SCC兼容位SCB配置(1-eCAN模式;0-SCC模式),复位时工作于SCC模式。
6.3.3 eCAN模块的寄存器1.eCAN邮箱eCAN模块有32个邮箱。
每一个邮箱均可配置为发送邮箱或接收邮箱,且均有独立的接收屏蔽寄存器。
每个邮箱由邮箱标识寄存器MSGID(32位)、邮箱控制寄存器MSGCTRL(32位)、32位消息数据寄存器CANMDL(低位,4字节)和CANMDH(高位,4字节)构成。
MSGID用于存放11位或29位的标识符,即邮箱ID。
MSGCTRL用于定义消息字节数、发送优先级和远程帧等。
CANMDL和CANMDH用于存储发送或接收到的数据帧,每个邮箱170DSP控制器原理与应用技术最大可存储8个字节。
当CAN模块未启动时,这些存储空间可作普通RAM使用。
基于CAN 总线的ECAN 模块设计文/张席旗白创(长沙理工大学物理与电子科学学院湖南省长沙市410114)摘 要:本文设计了一款基于CAN 总线的ECAN 模块,该模块与CAN2. 0B 标准协议完全兼容,其RTL 设计主要包含ecan.rece, ecan_ regs 、ecan_txd 、ecan_rxd 这四个部分。
其中ecan_rece 与ecan_regs 是整个RTL 设计中比较重要的两个部分,ecan.rece 主要负责该 ECAN 模块中的通信协议与CAN2. 0B 标准协议相兼容,并且负责分析判断接收到的消息是否应该存储到邮箱存储器中;ecan.regs 则主要负责对ECAN 模块的各种寄存器的进行设计及配置,其中对多达32个消息邮箱的设计及配置更是此部分的重点,该设计中ECAN 模块的每个 邮箱都具有时间标识功能和超时功能,这样设计可以使总线上数据传输量更大,总线传输更加灵活可靠。
该模块使用Verilog HDL 硬件描 述语言对其各个功能模块进行RTL 级设计。
仿真结果表明,该ECAN 模块完全满足CAN 总线的通信要求。
关键词:CAN2. 0B 标准协议;ECAN 模块;RTLCAN 控制器局域网(1'2) (Controller Area Network)是一种高抗 干扰性、高可靠性、高实时性和高性价比的现场总线⑴之一,它能有效地提供分布式实时控制⑷,且具有非常高的安全级别⑸,其通 信速率可达1Mbps ⑹。
因此广泛应用于汽车、工业自动化、数字信号处理(DSP)等领域冋。
在传统的CAN 模块设计中,会有传输速率较慢、传输资源较少、 传输时间不确定、抗干扰性较弱等缺陷。
例如,在基于单片机的 CAN 模块191会出现传输数据较少和抗干扰性较弱的现象。
在基于 CPI 系统总线的3U 结构的CAN 模块1,01其设计上采用双口 RAM 的缓冲区结构,虽然克服了丢帧现象,但是传输速率不快。
matlab simulink ecan模块使用-回复MATLAB Simulink ECAN模块使用一、概述MATLAB是一种强大而灵活的工程计算软件,Simulink是其主要的建模和仿真工具。
Simulink提供了许多模块,ECAN(Emulated Controller Area Network)模块是其中之一。
它提供了对仿真控制区域网络(CAN)网络的建模和仿真支持。
本文将介绍ECAN模块的使用方法,包括安装、设置和仿真。
二、安装ECAN模块安装ECAN模块前,确保已经正确安装了MATLAB和Simulink软件。
在MATLAB主界面的"工具"栏中选择"获取新硬件支持包"。
在弹出的窗口中搜索"ECAN",选择对应版本的支持包进行安装。
安装完成后,在Simulink硬件支持包库中将看到ECAN模块被新添加。
三、ECAN模块基本设置1. 在Simulink工作区中打开一个新的模型或选择现有模型,确保已经打开Simulink库浏览器。
2. 在库浏览器中找到ECAN模块,拖动一个ECAN模块到工作区。
3. 右键单击ECAN模块,选择"Block Parameters"进行基本参数设置。
4. 在"Block Parameters"中可以设置ECAN通信的相关参数,如波特率、传输速率、过滤方式等。
5. 确认设置后,点击"OK"保存并关闭"Block Parameters"窗口。
6. 可以根据实际需求在模型中添加其他模块、信号源等。
四、ECAN模块仿真配置1. 连接物理CAN设备或选择一个虚拟CAN设备。
如果使用虚拟CAN 设备,需要提前将虚拟CAN设备的驱动程序安装到电脑上。
2. 在模型中右键单击ECAN模块,选择"Mask"进行进一步配置。
6.3.5eCAN模块应用示例[共2页]第6章通信类外设及其应用开发179 4.信息的接收(1)接收邮箱的配置以邮箱3为例,接收信息的具体步骤如下。
①通过清除邮箱使能寄存器CANME对应的位来禁止邮箱工作,即CANME.3=0。
②将选定的标志符写到对应的信息标志符MSGID。
标识符扩展位必须配置成所需标识符。
如果使用接收屏蔽,接收屏蔽使能位AME必须置1(即MSGID.30=1)。
③若AME位已设置为1,则必须对相应的接收屏蔽寄存器编程。
譬如:LAM(3)=0x03c0000。
④若设置邮箱方向寄存器中的对应标识位(CANMD.3=1),邮箱将被配置为一个接收邮箱。
需确保该操作不能影响到该寄存器中的其他位。
⑤若需要保护邮箱中的数据,则要对过冲保护寄存器CANOPC进行编程。
若不允许丢失,则该保护是非常有用的。
如果对CANOPC进行置位,则需要软件确保配置一个附加邮箱(缓存邮箱)来存放“溢出”的信息;否则,信息可能丢失。
具体操作为CANOPC.3=1。
⑥通过设置邮箱使能寄存器CANME中相应的标志位来使能邮箱,具体为:先读CANME,后回写(CANME1=0x0008)来确保没有其他标志位被意外修改。
至此,该邮箱已被设置为接收模式,任何针对该邮箱的输入信息都将被自动处理。
(2)接收消息的步骤这里仍以邮箱3为例,接收一条信息的具体步骤如下。
当接收到一条信息时,接收信息悬挂寄存器CANRMP对应的标志位被置为1,并且产生一个中断(前提是初始化了接收中断)。
此时,CPU将从邮箱RAM读取信息。
在CPU从邮箱读取信息之前,应该先将CANRMP位清零(CANRMP.3=1)。
①CPU需检测接收信息丢失标志位CANRML.3是否为1。
根据应用程序的要求,CPU决定如何处理这种情况。
②读取数据后,CPU需要检测CANRMP位是否被模块重新置位。
如果CANRMP置为1,则数据可能已经损坏。
此时CPU需要重新读取数据。