《eCAN模块》课件_第1页
《eCAN模块》课件_第2页
《eCAN模块》课件_第3页
《eCAN模块》课件_第4页
《eCAN模块》课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、eCAN模块,eCAN总线模块及应用,机电学院电子信息工程系 曹旭东,eCAN模块,现场总线技术和现场总线控制系统,传统的控制系统难于实现设备之间以及系统与外界之间的信息交换,是一个“信息孤岛”。要满足自动控制技术现代化的要求,实现整个企业的信息集成,实施综合自动化,就必须设计出一种能在工业现场环境中运行、性能可靠、造价低廉的通讯系统,形成工厂底层网络,完成现场自动化设备之间的多点数字通讯,实现底层现场设备之间以及生产现场与外界信息的交换,现场总线就是在这种需求下应运而生。,eCAN模块,现场总线控制系统,现场总线控制系统(FCS)既是一个开放的通讯网络,又是一种全分布控制系统。作为智能设备的

2、联系纽带,把挂接在总线上、作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制、补偿计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。 现场总线其规模属于局域网、总线型结构,它简单但能满足现场的要求,信息桢短小,要求实时性高,可靠性高。,eCAN模块,典型的现场总线技术,随着嵌入式系统的高速发展,自1980年后十几年间,好几种现场总线技术走向成熟。 基金会现场总线(Foundation Fieldbus) 以美国Fisher-Rosemount公司为首,联合ABB、西门子等80家公司,一同致力开发的一种国际上统一的现场总线。 LonWorks(美国Ech

3、elon、摩托罗拉、东芝等公司共同倡导) PROFIBUS(德国国家标准和欧洲标准的现场总线标准) HART(Highway Addressable Remote Transducer) 可寻址远程传感器高速通道的开放通讯协议,其特点是在现有模拟信号传输线上实现数字信号通讯,属于模拟系统向数字系统转变过程的过度产品。,eCAN模块,CAN总线(局域控制网) Controller Area Network,20世纪80年代,Bosch公司的工程人员开始探讨现有的串行总线系统运用于轿车的可能性,因为还没有一个网络协议能完全满足汽车工程的要求。 1983年,Kiencke开始设计新的串行总线系统,来

4、自Mercedes-Benz的工程人员介入新总线系统规范的制定。 德国Dr.Wolfhard给这个新网络起名为“Controller Area Network” 今天,几乎每一辆在欧洲生产的轿车都至少装配有一个CAN网络系统。CAN应用在从火车到轮船等其他类型的运输工具上,以及工业控制方面。,eCAN模块,CAN总线的特点,由于CAN总线本身的特点,其应用范围目前已经不局限于汽车行业,而扩展到机械工业、纺织机械、农业、机器人、数控机床及传感器等领域。 其通讯的突出特点为:可靠性、灵活性、实时性,具体可以概括如下:,CAN为多主方式工作,网络上任一节点均可在任意时刻主动向 网络上其他节点发送信息

5、,而不分主从。 在报文标志符上,CAN的节点分成不同的优先级,可满足不同 的实时要求。 CAN采用非破坏性总线总裁技术。 CAN节点只需通过对报文的标志符滤波即可实现点对点、一点 对多点及全局广播等几种方式传输接收数据。,eCAN模块,CAN的直接传输距离10Km(速率在5Kbps下) 通讯最高速率为1Mbps(此时通信的最长距离为40m); CAN的节点数 主要取决于总线驱动电路,目前可达到110个 CAN的每帧信息都有CRC校验及其他校验措施,具有 极好的检错效果。 CAN的通信介质为双绞线、同轴电缆或光纤 CAN节点在严重错误时具有自动关闭输出功能,以便 总线上其他节点的操作不受影响。

6、Vcan-h和Vcan-l为CAN总线收发器与总线之间的两接口 引脚,信号是以两线之间的“差分”电压形式出现。,eCAN模块,CAN总线数据传输格式,eCAN模块,eCAN模块,eCAN模块,CAN总线通信技术的实现,CAN就是总线型结构的一种适合工业现场自动控制的计算机局域网络。 CAN总线通讯技术是通过CAN总线控制器在硬件上实现的。CAN总线控制器是一块可编程的逻辑电路,片上集成CAN总线数据传输协议,通过硬件实现CAN总线编码和解码的功能,方便CAN总线技术在实际开发中的应用。 CAN总线控制器提供与微处理器的物理线路接口,通过对它的编程,CPU可以设置它的工作方式,控制它的工作状态,

7、进行数据的发送和接收。 CAN总线控制器分为两种类型。 一种是独立的,片内集成对CAN总线的编解码协议,它可以与多种类型的单片机、微处理器的标准总线进行接口连接。另一种是将CAN总线控制器与微处理器作在一起,简化了电路设计。,eCAN模块,芯片SJA1000,SJA1000是一种独立的CAN控制器,用于一般工业环境中区域网络控制。 支持CAN2.0A和CAN2.0B通讯协议; 24MMz时钟频率; 可与不同微处理器接口;,eCAN模块,eCAN模块,F2812的ECAN总线模块,eCAN模块,CAN总线协议内核主要完成的功能,根据CAN协议对CAN总线上接收到的消息进行解码,向接收缓冲发送解码

8、后的消息; 根据CAN协议在CAN总线上传送消息;,eCAN模块,存储器映射,F2812处理器中,eCAN模块映射到两个不同的地址段。两段空间各占512字节。 第一段地址空间分配给控制寄存器、状态寄存器、局部接收屏蔽、接受滤波器、定时邮递和消息对象超时。(600060FF) 第二段地址空间映射到32个邮箱;(610061FF) 消息存储在RAM中,CAN控制器和CPU都可以对它进行访问。 eCAN提供32个邮箱,每个邮箱包括8字节数据区、29位标志符和几个控制位,每个邮箱都可以配置为接收或发送邮箱。,eCAN模块,eCAN模块,eCAN模块,消息邮箱,eCAN模块有32个不同的消息邮箱,每个消

9、息对象可以配置成发送或接收邮箱,每个消息目标都有自己的接收滤波器. 消息邮箱用来存储接收到的CAN消息,或存放等待发送的CAN消息。 消息邮箱映射到DSP的RAM存储器,当消息邮箱没有存放消息时,CPU可以将相应的RAM空间当做通用存储器使用。,eCAN模块,eCAN模块,邮箱构成,每个邮箱都是由四个32位寄存器构成: MSGID:存储消息ID。 MSGCTRL:定义字节数、发送极性和远程帧; MDL:4字节数据; MDH:4字节数据;,eCAN模块,消息标志寄存器MSGID,eCAN模块,消息控制寄存器MSGCTRL,TPL4:0-发送优先级; RTR:远程发送请求位; DLC3:0-发送或

10、接收数据的字节数;,eCAN模块,关于远程帧,报文(Messeges)传输有如下4个不同类型的帧: 1.数据帧(Data Frame):数据帧将数据从发送器传输到接收器。 2.远程帧(Remote Frame):总线单元发出远程帧,请求发送具有同一标志符的数据帧。 3.错误帧(Error Frame):任何单元检测到总线错误就发出错误帧; 4.过载帧(Overload Frame):过载帧用在相邻数据帧或远程帧之间提供附加的延时; 数据帧和远程帧可以使用标准帧及扩展帧2种格式。,eCAN模块,简介eCAN模块的控制状态寄存器,邮箱使能寄存器(CANME)Mailbox Enable Regis

11、ter 邮箱方向寄存器(CANMD)Mailbox Direction Register 发送请求置位寄存器(CANTRS) Transmission Request Set Register 发送请求复位寄存器(CANTRR) Transmission Request Reset Register 发送响应寄存器(CANTA) Transmission Acknowledge Register,eCAN模块,邮箱使能寄存器(CANME)Mailbox Enable Register,31,0,邮箱控制使能位: CAN模块中相应的邮箱被使能,在写标志符之前,必须将所有邮箱屏蔽。 0 相关邮箱被

12、屏蔽,邮箱映射为一般存储空间使用。,eCAN模块,邮箱邮箱方向寄存器(CANDE),31,0,邮箱方向寄存器: 配置为接收邮箱 0 配置为发送邮箱,eCAN模块,邮箱发送请求设置寄存器CANTRS,31,0,发送请求设置位: TRS置位发送邮箱中的消息,所有循环发送的消息的TRS位可以同时置位; 0 没有操作; 注意: 当多个发送请求同时置位时,消息可以轮流发送。首先发送优先级别高的邮箱(邮箱编号最大的具有最高优先权),也可以设置TPL设定邮箱的优先级别。,eCAN模块,邮箱发送请求复位寄存器CANTRR,31,0,发送请求复位位: TRR置位取消发送请求 0 没有操作; 注意: 通过CPU写

13、入1,将CANTRR寄存器中的位置1; 如果通过TRS已经初始化相应位,但当前没有进行消息处理,并且相应的TRR位置位,则消息会取消传送。 如果发送成功或消息发送放弃,则该寄存器的相应位将复位;,eCAN模块,邮箱发送响应寄存器CANTA,31,0,发送响应位: 如果邮箱中的消息成功发送,则响应寄存器位置位; 0 消息没被发出; 注意: 如果CANMIM寄存器中相应的中断屏蔽位被置位,则GMIF0/GMIF1会被置位,表示有中断产生; 如果已经产生中断,向CANTA寄存器写1,可以清除中断。,eCAN模块,邮箱发送响应失败寄存器CANAA,31,0,发送请求复位位: 邮箱消息发送失败,相应位置

14、位 0 消息发送成功;,eCAN模块,接收消息挂起寄存器CANRMP,31,0,发送响应位: 如果邮箱中包含接收到的消息,则寄存器相应位置位; 0 消息内没有消息; 注意: 如果接收到的消息存储到邮箱n中,则RMPn将被置位; 如果在CANMIM寄存器中的相应的中断屏蔽位被置位,则CANRMP寄存器相应的位会对GMIF0/GMIF1置位,表示中断产生;,eCAN模块,主控寄存器(CANMC)Master Control Register,CANMC.13(SCB):标准CAN模式兼容控制位 1 选择ECAN模式 0 ECAN工作在标准模式,只有16个邮箱使用 CANMC.12( CCR):改变

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

16、nterrupt Registers,全局中断标志寄存器(CANGIF0/CANGIF1) Global Interrupt Flag Registers 全局中断屏蔽寄存器 (CANGIM) Global Interrupt Mask Register 邮箱中断屏蔽寄存器(CANMIM) Mailbox Interrupt Mask Register 邮箱中断级别寄存器(CANMIL) Mailbox Interrupt Level Register,eCAN模块,eCAN模块,eCAN模块,程序设计,EALLOW; /*系统时钟初始化*/ SysCtrlRegs.HISPCP.all =

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

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

19、egs.GPFMUX.bit.XF_GPIOF14=0; GpioMuxRegs.GPFDIR.bit.GPIOF14=1; GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1; GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1; EDIS;,eCAN模块,CANBTC寄存器配置,EALLOW; ECanaShadow.CANMC.all = ECanaRegs.CANMC.all; ECanaShadow.CANMC.bit.CCR = 1;/主控寄存器 ECanaRegs.CANMC.all = ECanaShadow.CANMC.al

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

21、adow.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;,eCAN模块,CAN通讯波特率的计算及

22、设置,波特率 = SYSCLK/BRPBit_time 其中: SYSCLK是CAN 模块的系统时钟,与CPU时钟相同; BRP是BRPreg +1的二进制数值; Bit_Time = (TSEG1reg +1) +(TSEG1reg +1)+1,BRP不同值的波特率( TSEG1reg=10 ,TSEG2reg =2),eCAN模块,设置主控制寄存器,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;,eCAN模块,初试化MSGCTRL寄存器,EALL

温馨提示

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

评论

0/150

提交评论