嵌入式演示can总线_第1页
嵌入式演示can总线_第2页
嵌入式演示can总线_第3页
嵌入式演示can总线_第4页
嵌入式演示can总线_第5页
免费预览已结束,剩余27页可下载查看

付费下载

下载本文档

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

文档简介

1、CAN总线组员:曹冠华、李晋豫、郭欣 控制器局域网络(Controller Area Network 简称CAN)主要用于各种过程(设备)监测及控制。CAN最初是由德国的Bosch公司为汽车的监测与控制设计的,但由于CAN总线本身的突出特点,其应用领域目前已不再局限于汽车行业,而向过程工业、机械工业、机器人、数控机床、医疗器械及传感器等领域发展。由于其高性能、高可靠性及独特的设计,CAN总线越来越受到人们的重视,国际上已经有很多大公司的产品采用了这一技术。CAN已经形成国际标准(ISO11898),并已成为工业数据通信的主流技术之一。 CAN(Controller Area Network)属

2、于总线式串行通信网络,是ISO国际标准化的串行通信协议,它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CAN系统中,协议功能多数由硬件完成,这个硬件称为CAN控制器(CAN Controller)。根据功能,CAN控制器又被分为“全CAN控制器”和“基本CAN控制器”。实现方式单片机外挂独立的CAN控制器,,如Philip s公司的PCA82C200、SJA1000以及Intel公司的82526、82527 等芯片。MCU内部集成CAN模块。CAN总线技术的特点CAN是目前为止唯一有国际标准的现场总线。CAN的直接通讯距离最远可达10km;通信速率最高可达1

3、Mbps;数据长度最大可达8个字节。CAN的节点数主要取决于总线驱动电路,目前可达110个。CAN 为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其它节点发送信息,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便地构成多机备份系统;CAN 采用非破坏性具有优先级控制的载波侦听及碰撞检测机制(CSMA/CD)总线仲裁技术。这些措施在保证了信道利用率的同时也提高了整个系统的实时性;功能描述此MCU的CAN模块主要分为三个部分: CAN协议控制器和报文处理;报文存储;CAN寄存器接口报文传输的内容包括:数据帧、远程帧、错误帧和过载帧带有11-bit的标示符(标准),也支持29-b

4、it 标示符 (扩展)。 数据帧:将数据从发送器传输到接收器。 远程帧:请求发送具有同一标识符的数据。 数据帧:任何单元检测到总线数据就发出 错误帧。 过载帧:用在相邻数据帧或远程帧之间提 供附加的延时。 数据帧报文广播节点A传送一个报文节点B,C和D收到此报文节点B和D接受此报文,节点C拒绝。远程帧报文请求节点A发送一个远程帧(请求)节点B,C,D接收报文节点D接受,节点B&C拒绝帧起始(SOF):标志数据帧和远程帧的起始,仅由1位显性位组成。帧结尾(EOF):标准数据帧和远程帧的结束,由7位隐性位组成。仲裁域(Arbitration Field):11位标识符或者29位标识符;远程发送请求

5、位RTR在数据帧必须为显性,而在远程帧必须为隐性;CAN控制器的过滤功能可以在这里实现。控制域:数据长度代码(DLC),指示数据帧的字节数目;DLC可以设置0到8的数字表示数据字节数;两位保留位r1和r0,用于扩展格式帧。保留位必须全部以显性电平发送,但接收方可以接收显性、隐性及其任意组合的电平。数据域:可以为08个字节,首先发送MSB(最高位);一般情况下都是8个字节;每个字节可以存储任意的数;有一些CAN控制器将ID过滤扩展到该域。应答域:接收确认机制,保证至少有一个接收器真确接收到数据。循环冗余码(CRC)域:对帧起始、仲裁域、控制域、数据域上的位进行校验;CRC校验仅仅是CAN通讯的一

6、种错误检测。 初始化CAN总线的初始化主要包括模式寄存器的设置,中断方式的设置,波特率的设置,还有错误警告,发送优先级模式寄存器的设置等。一个CAN节点必须进行适当的设置CAN控制器的寄存器,初始化后才能使其进行通信工作。一般在CAN控制器复位后进行初始化,复位有三种基本形式:一是上电复位;二是硬件复位;三是软件复位,即运行期间通过给CAN控制器发一个置复位请求位的复位请求。 CAN总线分层结构CAN定义了ISO/OSI 网络开放系统模型的最低两层,即数据链路层和物理层,主要是数据链路层。 CAN2.0的分层结构如右图,是按ISO/OSI模型对CAN结构的描述。数据链路层又分为逻辑链路控(LL

7、C)和媒体访问控制(MAC)两个子层。LLC层完成下列功能:CAN总线通信模式第一,“载波监测,多主掌控/冲突避免 这就允许总线上的任一设备有同等的机会取得总线的控制 权来向外界发送信息,如果在同一时刻有两个以上的设备欲发送信息,就会发生数据冲突,CAN总线能 够时刻地检测这些冲突情况并作出相应的冲裁而不会破坏待传的信息;第二,信息报文在传送时不是基于目的站点地址; 这就允许不同的信息以“广播”的形式发送到所有节点并且 可在不改变信息格式的前提下对报文进行不同配置;第三,CAN总线是一种高速,具备复杂的错误检测和恢复能力的高可靠性强有力的网络。1、CSMA/CD载波监测,多主掌控/冲突避免 “

8、载波监测”的意思是指在总线上的每个节点在发送信息 报文前都必须监测到总线上有一段时间的空闲状态。 “多主掌控”的意思是一旦此一空闲状态被监测到,那么每个节点都有均等的机会来发送报文。 “冲突避免”是指在两上节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。在CAN总线协议中是通过一种非破坏性的仲裁方式来实现冲突检测。这也就意味着当总线出现发送冲突时,通过仲裁后原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。2、基于报文的通讯 CAN总线是一个基于报

9、文而不是基于站点地址的协议。也就是说报文不是按照地址从一个节点传送到另一个节点。CAN总线上报文所包含的内容只有优先级标志区和欲传送的数据内容。所有节点都会接收到在总线上传送的报文,并在正确接后发出应答确认。至于该报文是否要做进一步的处理或被丢弃将完全取决于接收节点本身。同一个报文可以发送给特定的站点或许多站点,就看你怎样去设计你的网络和系统。 基于报文的这种协议另外一个好处是新的节点可以随时方便地加入到现有的系统中,而不需对所有节点进行重新编程以便它们能识别这一新节点。一旦新节点加入到网络中,它就开始接收信息,判别信息标识,然后决定是否作处理或直接丢弃。CAN总线定义了四种不同的帧,用于总线

10、通讯。 1、最常用的是“数据帧”,用于一个节点传送信息到其它任一或所有节点; 2、“远端帧”,基本上是一个数据帧但其中的RTR位被置1,表明这是一个“远端发送请求”,用于一个节点主动要求其它节点发送信息; 3 、“错误帧”,如果节点在接收过程中检测到任一在CAN总线协议中定义了的错误信息,它就会发送一个错误帧。 4、“过载帧”,当一个节点正忙于处理接收的信息,需要额外的等待时间接收下一报文时,可以发送过载帧,通知其它节点暂缓发送新报文。3、CAN总线是一种高速的,具备复杂的错误检测和恢复能力的高可靠性强有力的网络(1)高速性: CAN总线一开始是为汽车工业而设计的,如 果要使这一市场能够接受它

11、,一个能高效处理出错情况的 通讯协议是至关重要的。在发布了2.0B版的CAN总线技术 规范后,其最大的通讯速率已经比1.0版提高了8倍,达1M 位/秒,在这种速率下,即便是对时间要求非常关键的参数 也可以通过CAN总线传输而不必担心其时延。(2)CAN总线协议有一套完整的差错管理机制 能够自动地检测出这些错误信息,由此保证了被传信 息的正确必性和完整性。发送/接收器发送/接受器在两条线的CAN网络上发送信号时,一条线称为CAN-HIGH,另一条称为CAN-LOW,两条线上是差动信号,具体电平和特性取决于适用的标准或设计规范。 一个适用于ISO11898-2的网络结构如下图所示,发送/接收 器与

12、总线通过两条线(CAN-HIGH,CAN-LOW)连接,总线两端有120欧姆的吸收电阻。CAN网络的结构网络的结构对系统的特性有很大影响,CAN网络一般采用总线结构,但又有多种具体连接方式。在一定的应用环境下,CAN网络结构选择的原则是:在同样的硬件参数下,尽量提高网络的电磁兼容性。另外,为实现一些特定情况的要求有时需要采用一些特殊结构,如无线连接等。CAN网络基本结构如下图所示。总线媒介物理媒体必须支持“显性”和“隐性”总线层。显性位始终优先于隐性位,特别是在总线仲裁中。屏蔽双绞线避免信号反射。总线拓扑ISO11898标准总线拓扑总线链接 位定时与同步位定时是一个位时间域中的时间关系。一个位

13、的时间长度取决于传输速率。标称传输速率(NBR, Nominal Bit Rate)是在没有再同步状态下,一个理想发送端每秒发送的二进制位数。标称位时间长度(NBT, Nominal Bit Time)为: NBT=1/NBR有关CAN总线中位定时要求包括如下一些重要概念。 正常位时间可分为几个互不重叠的时间段。这些时间段包 括:同步段(SYNCSEG)、传播段(PROPSEG)、相位缓冲段1(PHASESEG1)和相位缓冲段2(PHASESEG2)。SYNC-SEG段用于同步总线上的各个节点,在这个时间段中出现位值的沿跳变。PROP-SEG段用于补偿物理层信号传输的延时,它至少应不小于总线延

14、时、输入比较器延时、和输出驱动延时总和的两倍。PHASE-SEG1段和PHASE-SEG2段用于补偿跳变沿状态错误,根据再同步情况适当选择其长度。采样点(Sample Point)是读取总线状态并确定其代表的值的时刻,它处于PHASE-SEG1时间段。信息处理时间(IPT,Information Processing Time)是从采样点开始用于处理采样信号的时间。这里的时间基准单位是时间基准单元(TQ,Time Quantum),它是由振荡器周期产生的固定时间长度,可以通过编程设定为不同的振荡器周期倍数。它是CAN所有活动的最小时间单元。 CAN控制器结构CAN控制器包括实现CAN协议的控制

15、电路、CPU接口、接收/发送缓冲器和硬件接收过滤电路。 协议控制器是CAN控制器的核心,它完成数据解包、帧编码、错误检测、错误信令、应答、位编码以及同步等CAN协议要求的功能。 接收过滤电路完成对接收到的信息进行甄别的功能。API functionsAPI 提供了一系列处理CAN的函数。提供的函数可以配置CAN 控制器,配置message objects,处理中断。Data Structures: tCANBitClkParms tCANMsgObjectDefines: CAN_INT_ERROR CAN_MASTER CAN_INT_STATUS CAN_STATUS_BUS_OFF CA

16、N_STATUS_EPASS CAN_STATUS_EWARN CAN_STATUS_LEC_ACK CAN_STATUS_LEC_BIT0 CAN_STATUS_LEC_BIT1 CAN_STATUS_LEC_CRCEnumerations: tCANIntStsReg tCANStsReg tMsgObjTYPEFunctions:Data StructurestCANBitClkParms Definition: typedef struct unit32_t ui32SyncProPhaselSeg; uint32_t ui32Phase2Seg; uint32_t ui32SJW;

17、uint32_t ui32QuantumPrescaler; tCANBitClkParms 这个结构用来封装与CAN 控制器设置位时间相关的值。在CANGetBitTiming CANSetBitTiming 功能中会用到这个结构。DefinesCAN_INT_ERRORDefinition:#define CAN_INT_ERROR这个标示用于使CAN控制器产生错误中断。CAN_INT_MASTERDefinition:#define CAN_INT_MASTER这个标示用于使CAN 控制器产生任意中断。若没有设置这个标示,那么将不会产生中断。CAN_STATUS_BUS_OFFDefin

18、ition:#define CAN_STATUS_BUS_OFF标示CAN 控制器已经进入总线关闭状态。EnumerationstCANIntStsReg(确认中断状态寄存器)CAN_INT_STS_CAUCE 读取CAN中断状态信息。CAN_INT_STS_OBJECT 读取信息目标的中断状态。tMsgObjType (确定通过请求设置的消息对象的类型)MSG_OBJ_TYPE_TXMSG_OBJ_TYPE_TX_REMOTEMSG_OBJ_TYPE_RXMSG_OBJ_TYPE_RX_REMOTEMSG_OBJ_TYPE_RXTX_REMOTEFunctionCANBitRateSet标准形式:uint 32_tCANBitRateSet(uint32_t ui32Base, uint32_t ui32SourseClock, uint32_t ui32BitRate)返回:返回比特率:确认CAN控制器可以使用 返回0:比特率没有改变(因为请求的比特率是无效的)* ui32Base:CAN控制器的基地址 ui32SourseClock:系统时钟 ui32BitRate:期望的比特率FunctionCANBitTimingGet(读取CAN控制器位时间的设置)标准形式:voidCANBitTimingGet(uint32_t

温馨提示

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

评论

0/150

提交评论