《《eCAN模块》PPT课件》由会员分享,可在线阅读,更多相关《《eCAN模块》PPT课件(49页珍藏版)》请在金锄头文库上搜索。
1、1,.,eCAN总线模块及应用,机电学院电子信息工程系 曹旭东,.,2,现场总线技术和现场总线控制系统,传统的控制系统难于实现设备之间以及系统与外界之间的信息交换,是一个“信息孤岛”。要满足自动控制技术现代化的要求,实现整个企业的信息集成,实施综合自动化,就必须设计出一种能在工业现场环境中运行、性能可靠、造价低廉的通讯系统,形成工厂底层网络,完成现场自动化设备之间的多点数字通讯,实现底层现场设备之间以及生产现场与外界信息的交换,现场总线就是在这种需求下应运而生。,.,3,现场总线控制系统,现场总线控制系统(FCS)既是一个开放的通讯网络,又是一种全分布控制系统。作为智能设备的联系纽带,把挂接在
2、总线上、作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制、补偿计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。 现场总线其规模属于局域网、总线型结构,它简单但能满足现场的要求,信息桢短小,要求实时性高,可靠性高。,.,4,典型的现场总线技术,随着嵌入式系统的高速发展,自1980年后十几年间,好几种现场总线技术走向成熟。 基金会现场总线(Foundation Fieldbus) 以美国Fisher-Rosemount公司为首,联合ABB、西门子等80家公司,一同致力开发的一种国际上统一的现场总线。 LonWorks(美国Echelon、摩托罗拉、东芝
3、等公司共同倡导) PROFIBUS(德国国家标准和欧洲标准的现场总线标准) HART(Highway Addressable Remote Transducer) 可寻址远程传感器高速通道的开放通讯协议,其特点是在现有模拟信号传输线上实现数字信号通讯,属于模拟系统向数字系统转变过程的过度产品。,.,5,CAN总线(局域控制网) Controller Area Network,20世纪80年代,Bosch公司的工程人员开始探讨现有的串行总线系统运用于轿车的可能性,因为还没有一个网络协议能完全满足汽车工程的要求。 1983年,Kiencke开始设计新的串行总线系统,来自Mercedes-Benz的
4、工程人员介入新总线系统规范的制定。 德国Dr.Wolfhard给这个新网络起名为“Controller Area Network” 今天,几乎每一辆在欧洲生产的轿车都至少装配有一个CAN网络系统。CAN应用在从火车到轮船等其他类型的运输工具上,以及工业控制方面。,.,6,CAN总线的特点,由于CAN总线本身的特点,其应用范围目前已经不局限于汽车行业,而扩展到机械工业、纺织机械、农业、机器人、数控机床及传感器等领域。 其通讯的突出特点为:可靠性、灵活性、实时性,具体可以概括如下:,CAN为多主方式工作,网络上任一节点均可在任意时刻主动向 网络上其他节点发送信息,而不分主从。 在报文标志符上,CA
5、N的节点分成不同的优先级,可满足不同 的实时要求。 CAN采用非破坏性总线总裁技术。 CAN节点只需通过对报文的标志符滤波即可实现点对点、一点 对多点及全局广播等几种方式传输接收数据。,.,7,CAN的直接传输距离10Km(速率在5Kbps下) 通讯最高速率为1Mbps(此时通信的最长距离为40m); CAN的节点数 主要取决于总线驱动电路,目前可达到110个 CAN的每帧信息都有CRC校验及其他校验措施,具有 极好的检错效果。 CAN的通信介质为双绞线、同轴电缆或光纤 CAN节点在严重错误时具有自动关闭输出功能,以便 总线上其他节点的操作不受影响。 Vcan-h和Vcan-l为CAN总线收发
6、器与总线之间的两接口 引脚,信号是以两线之间的“差分”电压形式出现。,.,8,CAN总线数据传输格式,.,9,.,10,.,11,CAN总线通信技术的实现,CAN就是总线型结构的一种适合工业现场自动控制的计算机局域网络。 CAN总线通讯技术是通过CAN总线控制器在硬件上实现的。CAN总线控制器是一块可编程的逻辑电路,片上集成CAN总线数据传输协议,通过硬件实现CAN总线编码和解码的功能,方便CAN总线技术在实际开发中的应用。 CAN总线控制器提供与微处理器的物理线路接口,通过对它的编程,CPU可以设置它的工作方式,控制它的工作状态,进行数据的发送和接收。 CAN总线控制器分为两种类型。 一种是
7、独立的,片内集成对CAN总线的编解码协议,它可以与多种类型的单片机、微处理器的标准总线进行接口连接。另一种是将CAN总线控制器与微处理器作在一起,简化了电路设计。,.,12,芯片SJA1000,SJA1000是一种独立的CAN控制器,用于一般工业环境中区域网络控制。 支持CAN2.0A和CAN2.0B通讯协议; 24MMz时钟频率; 可与不同微处理器接口;,.,13,.,14,F2812的ECAN总线模块,.,15,CAN总线协议内核主要完成的功能,根据CAN协议对CAN总线上接收到的消息进行解码,向接收缓冲发送解码后的消息; 根据CAN协议在CAN总线上传送消息;,.,16,存储器映射,F2
8、812处理器中,eCAN模块映射到两个不同的地址段。两段空间各占512字节。 第一段地址空间分配给控制寄存器、状态寄存器、局部接收屏蔽、接受滤波器、定时邮递和消息对象超时。(600060FF) 第二段地址空间映射到32个邮箱;(610061FF) 消息存储在RAM中,CAN控制器和CPU都可以对它进行访问。 eCAN提供32个邮箱,每个邮箱包括8字节数据区、29位标志符和几个控制位,每个邮箱都可以配置为接收或发送邮箱。,.,17,.,18,.,19,消息邮箱,eCAN模块有32个不同的消息邮箱,每个消息对象可以配置成发送或接收邮箱,每个消息目标都有自己的接收滤波器. 消息邮箱用来存储接收到的C
9、AN消息,或存放等待发送的CAN消息。 消息邮箱映射到DSP的RAM存储器,当消息邮箱没有存放消息时,CPU可以将相应的RAM空间当做通用存储器使用。,.,20,.,21,邮箱构成,每个邮箱都是由四个32位寄存器构成: MSGID:存储消息ID。 MSGCTRL:定义字节数、发送极性和远程帧; MDL:4字节数据; MDH:4字节数据;,.,22,消息标志寄存器MSGID,.,23,消息控制寄存器MSGCTRL,TPL4:0-发送优先级; RTR:远程发送请求位; DLC3:0-发送或接收数据的字节数;,.,24,关于远程帧,报文(Messeges)传输有如下4个不同类型的帧: 1.数据帧(D
10、ata Frame):数据帧将数据从发送器传输到接收器。 2.远程帧(Remote Frame):总线单元发出远程帧,请求发送具有同一标志符的数据帧。 3.错误帧(Error Frame):任何单元检测到总线错误就发出错误帧; 4.过载帧(Overload Frame):过载帧用在相邻数据帧或远程帧之间提供附加的延时; 数据帧和远程帧可以使用标准帧及扩展帧2种格式。,.,25,简介eCAN模块的控制状态寄存器,邮箱使能寄存器(CANME)Mailbox Enable Register 邮箱方向寄存器(CANMD)Mailbox Direction Register 发送请求置位寄存器(CANT
11、RS) Transmission Request Set Register 发送请求复位寄存器(CANTRR) Transmission Request Reset Register 发送响应寄存器(CANTA) Transmission Acknowledge Register,.,26,邮箱使能寄存器(CANME)Mailbox Enable Register,31,0,邮箱控制使能位: CAN模块中相应的邮箱被使能,在写标志符之前,必须将所有邮箱屏蔽。 0 相关邮箱被屏蔽,邮箱映射为一般存储空间使用。,.,27,邮箱邮箱方向寄存器(CANDE),31,0,邮箱方向寄存器: 配置为接收邮箱
12、 0 配置为发送邮箱,.,28,邮箱发送请求设置寄存器CANTRS,31,0,发送请求设置位: TRS置位发送邮箱中的消息,所有循环发送的消息的TRS位可以同时置位; 0 没有操作; 注意: 当多个发送请求同时置位时,消息可以轮流发送。首先发送优先级别高的邮箱(邮箱编号最大的具有最高优先权),也可以设置TPL设定邮箱的优先级别。,.,29,邮箱发送请求复位寄存器CANTRR,31,0,发送请求复位位: TRR置位取消发送请求 0 没有操作; 注意: 通过CPU写入1,将CANTRR寄存器中的位置1; 如果通过TRS已经初始化相应位,但当前没有进行消息处理,并且相应的TRR位置位,则消息会取消传
13、送。 如果发送成功或消息发送放弃,则该寄存器的相应位将复位;,.,30,邮箱发送响应寄存器CANTA,31,0,发送响应位: 如果邮箱中的消息成功发送,则响应寄存器位置位; 0 消息没被发出; 注意: 如果CANMIM寄存器中相应的中断屏蔽位被置位,则GMIF0/GMIF1会被置位,表示有中断产生; 如果已经产生中断,向CANTA寄存器写1,可以清除中断。,.,31,邮箱发送响应失败寄存器CANAA,31,0,发送请求复位位: 邮箱消息发送失败,相应位置位 0 消息发送成功;,.,32,接收消息挂起寄存器CANRMP,31,0,发送响应位: 如果邮箱中包含接收到的消息,则寄存器相应位置位; 0
14、 消息内没有消息; 注意: 如果接收到的消息存储到邮箱n中,则RMPn将被置位; 如果在CANMIM寄存器中的相应的中断屏蔽位被置位,则CANRMP寄存器相应的位会对GMIF0/GMIF1置位,表示中断产生;,.,33,主控寄存器(CANMC)Master Control Register,CANMC.13(SCB):标准CAN模式兼容控制位 1 选择ECAN模式 0 ECAN工作在标准模式,只有16个邮箱使用 CANMC.12( CCR):改变配置请求 1 CPU请求向标准模式配置寄存器CANBTC和接受屏蔽寄 存器CANGAM)写配置信息。 CANMC.10( DBO):数据字节顺序 选择
15、消息数据区字节的排列次序 1 首先接收或发送数据的最低有效位 0 首先接收或发送数据的最高有效位,.,34,位时序配置寄存器CANBCR Bit-Timing Configuration Register 错误和状态寄存器CANES Error and Status Register Ecan I/O控制寄存器(CANTIOC、CANRIOC) CANTIOC.3(TXFUNC) CANRIOC.3(TRFUNC),.,35,中断寄存器Interrupt Registers,全局中断标志寄存器(CANGIF0/CANGIF1) Global Interrupt Flag Registers 全
16、局中断屏蔽寄存器 (CANGIM) Global Interrupt Mask Register 邮箱中断屏蔽寄存器(CANMIM) Mailbox Interrupt Mask Register 邮箱中断级别寄存器(CANMIL) Mailbox Interrupt Level Register,.,36,.,37,.,38,程序设计,EALLOW; /*系统时钟初始化*/ SysCtrlRegs.HISPCP.all = 0 x0001; SysCtrlRegs.LOSPCP.all = 0 x0002; /*使能外设ECAN模块时钟*/ SysCtrlRegs.PCLKCR.bit.ECANENCLK = 1; EDIS;,.,39,配置使能CANTA和CANRX引脚,EALLOW; ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all; ECanaShadow.C