您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 网控考试题目答案汇总
一、1图示说明CAN总线系统中点到点通信的主要环节,哪几个环节与初始化有关?以任一款通信控制器为例介绍CAN2.0A协议规范下相关初始化细节。一、点对点通信主要环节:首先描述两节点的一次点对点通信过程。通信开始时,通信发起方建立用于本次通信的缓冲区,并申请一个空闲的端口号,向通信的另一方发送请求连接信息,另一方收到请求信息后建立通信缓冲区和端口号,并发确认信息给请求方,通信建立完成,接下来通信双方互发数据,任务完成时,通信一方发结束通信息给对方,双方释放通信缓冲区和端口号,至此一次点对点的通信过程完成。主要环节如图所示:节点发送数据帧:(1),总线访问:采用载波监听多路访问,CAN控制器之恩能够在总线空闲时,就是节点侦听到网络上至少存在3个空闲位(隐性位)时开始发送,采用硬同步,所有的控制器同步都为与帧的起始的前沿。过了一定时间,并在一定条件后,重同步。(2),仲裁:各节点向总线发电平时,也对总线上电平进行读取,并于自身发送的电平进行比较,相同则发下一位,直至全部发完。不同则说明网络上有更高优先级的信息帧正在发送,即停止发送,退出竞争。(3),编码/解码:帧起始域,仲裁域,控制域,数据域和CRC序列均使用位填充技术进行编码,就是5个连续的同状态电平插入一位与它相补的电平,还原时每5个同状态的电平后的相补电平被删除。(组织发送数据帧)(4),出错标注:当检测到位错误,填充错误,形式错误或应答错误时,检测出错条件的CAN控制器将发送一个出错标志。(5),超载标注,一些控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。节点接收数据帧:(1),滤波器:为了实现点对点通信,必须有一个表示通信双方身份的信息,该身份信息称为节点ID,节点ID包含在帧标识符中,使用滤波器对标识符进行滤波。另外每一帧都包含通信双方的节点ID,下面将标识符的29位进行分配,以使其有效支持点对点通信,这29位标识符表示如下:节点ID用8位表示,因为帧标识符的最高7位不能全为1,所以,节点ID表示的范围从0到253。目的节点表示本帧的接收者,它可以使一个具体的节点也可以是广播ID。源节点ID表示本帧的发送者。滤波器是通过验收滤波来决定总线上的数据帧的ID是否和本节点相吻合,如果与本节点吻合,那么总线上的数据就被存入总线控制器的相应寄存器里,否则就抛弃该数据。(2),校验:对数据帧进行校验,确认数据帧信息是否正确。(3),发送应答帧。二、下面以意法半导体公司STM32系列的STM32F103VCT6介绍CAN2.0A协议规范下相关初始化细节1、时钟配置。控制器为每个外设配置有时钟,该控制器包含有2个CAN。打开CAN复用IO的时钟、复用时钟和CAN总线时钟,CAN时钟位于低速APB(APB1)上,IO时钟和复用时钟位于高速APB(APB2)上。2、CAN总线IO管脚配置。PB8为CAN_RX,配置为上拉输入(IPU),PB9为CAN_TX,配置为复用推挽输出,最高输出频率为50MHz。3、工作模式。STM32的CAN主要有3个工作模式:初始化、正常和睡眠模式。4、发送优先级。发送优先级可配置为由标识符决定,或者由发送请求次序决定。5、报文自动重传选择。报文重传可以配置为使能和禁止模式,在使能条件下,报文的重传由CAN内部定时器产生的时间戳决定,在禁止模式下,报文只发送一次,如果发送操作失败了,不管是由于仲裁丢失或出错,硬件都不会再自动发送该报文。6、时间触发。使能时间触发模式时,CAN硬件的内部定事情被激活,并且被用于产生(发送与接收邮箱的)时间戳。内部定事情在每个CAN位时间累加。内部定时器在接收和发送的帧起始位的采样点位置被采样,并生成时间戳。7、接收管理。应用程序只能通过读取FIFO输出邮箱,来读取FIFO中最先受到的报文。a)FIFO管理。FIFO从空状态开始,在接收到第一个有效的报文后,FIFO状态变为pending_1,软件可以读取FIFO输出邮箱来独处邮箱中的报文,然后通过对CAN_RFR寄存器的RFOM位设置1来释放邮箱,这样FIFO有变为空状态。如果在释放邮箱的同时,又收到一个有效的报文,那么FIFO仍然保留在pending_1状态,软件可以读取FIFO输出邮箱来读出新收到的报文。如果程序不释放邮箱,在接收到下一个有效的报文后,FIFO状态变为pending_2,重复上面的过程,第三个有效的报文把FIFO变为pending_3.此时,软件必须对RFOM位设置1来释放邮箱,以便FIFO可以有空间来存放下一个有效的报文。否则,下一个邮箱的报文到来时就会导致一个报文的的丢失。b)溢出。当3个邮箱都是满的,下一个邮箱的报文就会导致溢出。如果禁用FIFO锁定功能,那么FIFO中最后收到的报文就会被新报文覆盖。如果使能FIFO锁定功能,那么新收到的报文就会被丢弃,软件可以读到FIFO中最早收到的3个报文。c)接收中断。当FIFO变满时,如果CAN_IER的FFIE位为1,那么就会产生一个满中断请求。在溢出的情况下,如果CAN_IER寄存器的FOVIE位为1,那么就会产生一个溢出中断请求。8、标识符过滤a)可变的位宽。每个过滤器组(0~13)课提供1和32位过滤器或者2个16位过滤器b)屏蔽位模式。在该模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位,应该按照“必须匹配”或“不用关心”处理。c)标识符列表模式。在该模式下,屏蔽位寄存器也被当作标识符寄存器使用。d)过滤器组位宽和模式的设置。为过滤出一组标识符,应该设置过滤器组工作在屏蔽位模式下。为过滤出一个标识符,应该设置过滤器组工作在标识符列表模式。9出错管理。CAN协议描述的出错管理,完全由硬件通过发送错误计数器(TEC域)和接收错误计数器(REC域)来实现。当TEC等于255时,CAN进入离线状态。根据CAN_MCR寄存器的ABOM位设置,CAN可以自动活在软件请求下,从离线状态恢复。10位时间特性。位时间特性逻辑通过采样来监视串行的CAN总线,并且通过跟帧起始位的边沿进行同步,及通过跟后面的边沿进行重新同步,来调整其采样点。他的操作可以简单解释为,如下所述把名义上的每位的时间分为3段:同步段:通常期望位的变化发生在该时间段内。其值固定为一个时间单元。时间段1:定义采样点位置。其值为0~16个时间单元,但也可以被自动延长,以补偿因为网络中不同节点的频率差异所造成的相位的正向漂移。时间段2:定义发送点的位置。其值为1~8个时间单元,但也可以被自动缩短,以补偿相位的负向漂移。二、2,图示说明Can总线系统的通信节点滤波环节的作用和实现机制,比较CAN2.0A和CAN2.0B滤波环节的差异。以CAN总线控制器SJA1000作为CAN总线系统通信节点来分析滤波环节。SJA1000内部结构如下所示:滤波环节的作用是:把它的内容和接收到的标识码相比较,以决定是否接收这条报文,接收的报文存储在接收缓冲器中。SJA1000滤波器(PeliCAN模式)由4个验收代码寄存器和4个屏蔽代码寄存器组成,分别为ACR0,ACR1,ACR2,ACR3,AMR0,AMR1,AMR2,AMR3。其中每个寄存器都为一个字节。SJA1000滤波器包括单/双接收滤波两种方式。在单接收滤波方式下,32位的接收码和接收屏蔽码组成一组滤波器,RTR位也要参加滤波,若收到的为标准帧,其前两个数据字节也要参加滤波。接受标准帧报文的单滤波器配置如下所示:接受扩展帧报文的单滤波器配置如下所示:在双接收滤波方式下,32位的接收码和接收屏蔽码分成两组16位滤波器进行滤波,接收到的数据只要通过了其中任何一组滤波,即被写入RXFIFO。若收到的为标准帧,其第一数据字节也要参加滤波。双接收滤波方式与单接收滤波方式比较类似,这里不再分析其具体原理和配置。CAN2.0A和CAN2.0B滤波环节的差异:CAN2.0A中,接收代码寄存器决定接收滤波。当接收码(AC7~AC0)与报文高8位(ID10~ID3)相等时,报文通过接收滤波。如果1条报文通过了接收滤波,而且接收缓冲区有可用空间,那么,对应的描述符和数据场就依次进入RXFIFO。CAN2.0B中,接受滤波器不仅使用了接收代码ACR,还使用了接收屏蔽寄存器AMR,并且有单/双滤波两种方式,可见,CAN2.0B的滤波方式更加复杂,但是也更加灵活,功能更加强大。三、论述基于CAN总线的网络化控制系统的通信实时确定性和可靠稳定通信的解决办法和实现技术,以一个实际的应用案例加以说明。2、CAN总线实时确定性的解决办法和实现技术CAN总线实时确定性解决办法有下面几种不同的思路。第一种是在设计控制系统中对实时性进行改进。(1)当标准帧能满足系统对控制容量、传输可靠性等性能需求时,尽量避免使用扩展帧。(2)在满足控制系统稳定性的前提下,尽量提高控制网络的传输速率,增加带宽。(3)尽量减小控制网络中不必要的节点及报文信息,降低网络负载,以预留较大的网络带宽裕量。(4)尽量选取性能稳定、均一的器件构建网络硬件,以提高网络的整体性能。(5)可适当增大控制采样周期,尽可能采用同步传输方式,并避免网络的微观拥塞情况。第二种是利用恰当的实时通信调度来解决通信实时性问题。原始的办法采用轮询的方式,无法保证系统确定的时态特性,对通信的滞后无法预测和控制,因此可以采用恰当的实时通信策略保证通信实时性。一个实时系统中,CAN总线上的传输数据主要分为周期性实时数据和非周期性实时数据。周期性的数据以时间为触发,非周期性的实时数据以事件为触发。针对时间触发的周期性数据和事件茶法的非周期性数据,学者分别提出了时分复用和动态优先级分配方法来提高CAN总线的实时性。时分复用方法:将CAN总线上的所有节点动作时间划分成多个连续的在时间上正交的时隙,每个时隙分配给不同的CAN总线节点,各总线节点只允许在自己的时序内发送数据帧。动态优先级分配方法:传统的CAN总线中,优先级高的帧占用带宽较多,优先级低的占用较少,因此,低优先级的数据有时候发送延迟很大甚至是丢失,为此,提出了动态的提升优先级的方法。3、CAN总线可靠稳定性通信的解决办法和实现技术一个提高CAN错误检测的方法是利用数据域的最后一个或两个字节来计算一个附加的CRC或者是报文的校验和。当用两字节来计算一个附加的16位的CRC时,所有的错误报文都被CAN仿真检测出来了。但这会降低CAN网络25%的传输效率。除了软件解决外,也可用硬件解决方法。如果CAN协议能够在位元填充后而不是位元填充前计算CRC,这将消除把填充位当作信息位或是相反的情况。但需要调整报文的格式以保证CRC域自己不需要位元填充。通过CRC提高CAN可靠性的另一种方法便是冗余。在目前的CAN协议暂时不能改进的情况下,我们可以通过组建冗余网络来提高CAN网络的可靠性。在遵从TTCAN协议的网络中,都对时间主控节点进行了冗余,每个网络内可以设计多达8个备用时间主控器供冗余,这足以保证网络在任何时候都不会丢失引导报文。由于TTCAN采用了分时传送,不会出现因网络拥塞而导致的传输延时,保证了实时性,从而不会出现误操作,也即保证了可靠性。4、实际应用案例这里介绍一个简单的应用案例,利用CAN总线实现单片机之间的通信。CAN总线智能I/O站点的软件主要包括六大部分:AT89S52初始化、CAN控制器SJA100初始化、报文发送、报文接收、对输出点的输出访问和输入点的扫描输入。SJA1000初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率设置和中断允许寄存器(IER)的设置等SJA1000在完成初始化后就可以回到工作状态进行正常的通信任务了。由于选用的是ATMEL公司的AT89S52,其本身带有看门狗计时器,可通过向看门狗寄存器依次写入0E1H和01EH来启动看门狗计时器,并定时清空它,这可以有效的防止程序跑飞。CAN总线节点要有效、实时地完成通信任务,软件是关键,也是难点。CAN控制器芯片SJA1000的内部寄存器是以作为微控制器的片外寄存器存在并起作用的。微
本文标题:网控考试题目答案汇总
链接地址:https://www.777doc.com/doc-7145136 .html