第10章 CAN总线模块_第1页
第10章 CAN总线模块_第2页
第10章 CAN总线模块_第3页
第10章 CAN总线模块_第4页
第10章 CAN总线模块_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

1、第第10章章 CAN总线模块总线模块 何宾 2011.12本章内容本章内容 本章主要是介绍PSoC3内的CAN总线模块,其内容主要包括:CAN总线模块概述、CAN消息帧类型及格式、CAN总线消息发送、CAN总线消息接收、远程帧、位时间配置、错误处理及中断和CAN总线通信的实现。 CAN总线模块是PSoC3所提供的一个重要功能单元,通过本章内容的学习,不仅能了解和掌握CAN总线模块的工作原理,还能掌握使用PSoC3实现CAN总线模块通信的方法。 CAN总线模块总线模块-CAN总线模块概述总线模块概述 CAN外设是一个全功能的控制器局域网络(Controller Area Network,CAN)

2、,最大通信波特率为1Mbps。 CAN控制器支持CAN2.0A和CAN2.0B规范,并且和ISO-11898-1标准一致。CAN总线最初用于汽车领域的应用,主要集中在高级的缺陷检测。这保证了低成本的高可靠性的应用。CAN总线模块总线模块-CAN总线模块概述总线模块概述 由于CAN成功的应用于汽车领域,因此CAN也扩展到了用于面向运动的机械控制网络CANOpen和工厂的自动化应用DeviceNet。 CAN控制器允许高效的实现高级的协议,而不会影响MCU CPU的性能。在PSoC软件平台支持全功能配置。CAN总线模块总线模块-CAN总线模块概述总线模块概述CAN总线模块总线模块-CAN总线模块概

3、述总线模块概述 CAN模块的特点主要包括:n兼容CAN2.0A/2.0B协议;n标准和扩展帧;n支持远程传输请求(Remote Transmission Request,RTR);n可编程数据率,最大为1Mbps;n接收路径n16个接收缓冲区;n16个接受滤波器和接收屏蔽;n支持DeviceNet寻址;n可选择链接多个接收缓冲区来形成一个硬件FIFO;CAN总线模块总线模块-CAN总线模块概述总线模块概述n发送路径n8个发送消息缓冲区;n可编程优先级用于每个发送消息缓冲区;nCAN发送(Tx),接收(Rx)和EN能布线到任意一个I/On只监听模式,用于自动波特率检测n能从休眠模式唤醒设备CAN

4、总线模块总线模块-CAN总线模块概述总线模块概述 1. 发送消息: 主机控制器将消息保存到发送消息缓冲区,并且通知发送消息句柄所要发送的消息。 2. 接收消息: 当接收消息时,它被保存在存储器缓冲区,主机控制器按命令处理它。 发送和接收主要是由状态和配置寄存器控制。中断控制单元用来管理CAN模块不同的中断。CAN总线模块总线模块-CAN总线模块概述总线模块概述CAN总线模块总线模块-CAN消息帧类型及格式消息帧类型及格式 在CAN总线中,纤细的发送和接收由四个类型的帧控制,这四类帧包含:n数据帧;n远程帧;n错误帧;n过载帧; CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 数据帧主要

5、用于在发送器和接收器之间传输数据。CAN主要支持两种类型的数据帧:n标准数据帧;n扩展数据帧;CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 标准帧格式标准帧格式 1标准数据帧下图给出了标准的数据帧格式。下面对数据帧的每部分进行说明:CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 1)Start of Frame:数据帧的起始位。表示一帧数据的开始,它是一个单独的“占有位”。 2)Identifier:标识符。对于基本的数据帧,标识符11位长度。经常用于在接收数据时对数据进行过滤。 3)Remote Transmission Request Bit(RTR):远程传输请求位。为

6、数据帧时,该位为0,否则为远程帧时,该位为1。标识符和RTR位构成仲裁域。 4)Exended Identifier Bit(IDE):扩展标识符,0表示标准帧,1表示扩展帧。CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 5)Data Length Code(DLC):数据长度代码,共4位表示数据域中数据字节的长度。IDE,R0和DLC构成控制域; 6)Data Field:数据域。包含了消息数据。为可变长度,最大为8个字节。 7)Cyclic Redundancy Check(CRC):循环冗余校验码。这个域由15位的CRC码(跟着定界符)。 8)Acknowledgement F

7、ield(ACK):响应域。两个位长(默认隐含)。当接收端正确的接收到数据后,它用一个占有位来覆盖ACK域。 9)R0:保留。 10)End of Frame:帧结束。由7个隐含位构成。CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 2扩展数据帧 下图给出了扩展数据帧的格式。 扩展帧格式扩展帧格式CAN消息帧类型及格式消息帧类型及格式 -数据帧数据帧 2扩展数据帧 扩展数据帧有29位标识符。29位的标识符由替代远程请求位(Substitute Remote Request, SRR)和一个IDE位分割的11位标识符和18位标识符共同构成。 扩展帧的SRR位和标准帧的RTR位在同一位置(

8、隐含)。扩展帧的RTR位被清除,IDE位被设置。 扩展帧的控制域有一个额外的保留位R1。CAN消息帧类型及格式消息帧类型及格式 -远程帧远程帧 通过发送远程帧,CAN总线允许目的节点从源节点请求数据。数据帧和远程帧有两点不同,首先,在远程帧内RTR位作为一个隐含位被发送;其次,在远程帧内无数据域。 帧间空间:用来从前面的帧中,区分数据帧和远程帧。CAN消息帧类型及格式消息帧类型及格式 -错误帧错误帧 当检测到任何总线错误时,节点就产生错误帧。错误帧由错误标志和错误定界符构成。错误标志分为两类:n错误活动标志n错误被动标志。 1)错误活动标志 当一个错误活动站检测到错误时,发送6个显性位作为一个

9、错误活动标志。错误标志的格式和填充位格式相冲突,这样其他节点也发送错误标识,这样导致总线上一系列的6到12个线性位。CAN消息帧类型及格式消息帧类型及格式 -错误帧错误帧 2)错误被动标志 一个错误被动标志有6个隐含位构成。当一个错误被动站检测到一个错误,则发送一个错误被动标志。一个被动错误标志不影响其他节点,只有发送节点检测到一个总线错误时,错误才被检测。 由8个隐含位构成错误定界符。CAN消息帧类型及格式消息帧类型及格式 -过载帧过载帧 过载帧(EOF)由一个过载标志和一个过载定界符组成,CAN支持过载反应帧。当发生下面条件时,该帧被激活:n在帧空隙域的最前面两位检测到显性位;n接收方检测

10、到EOF的最后一位为显性位;n在错误定界符或过载定界符的最后一位检测到显性位;CAN总线模块总线模块-CAN总线消息发送总线消息发送 CAN总线支持8个发送消息保持缓冲区。 如下图所示,内部的优先级仲裁器根据选择总裁策略来选择消息。 仲裁策略为轮询或者固定优先级。信息传输后或者仲裁丢失时,优先级仲裁器重新评估下一个消息的优先级。 接收消息缓冲区也能用来发送远程传输请求。CAN总线模块总线模块-CAN总线消息发送总线消息发送CAN总线消息发送总线消息发送-消息仲裁消息仲裁 优先级仲裁器支持轮询或者固定优先级的仲裁。使用配置寄存器选择仲裁模式。 1轮询 在轮询策略中,首先选择缓冲区0,然后是缓冲区

11、1,直到缓冲区7。然后重新从缓冲区0开始。如果它的TxREQ标志被设置,选择一个特殊的缓冲区。这个策略保证所有缓冲区有相同的可能性发送数据。CAN总线消息发送总线消息发送-消息仲裁消息仲裁 2固定 缓冲区0有最高的优先级。指定缓冲区0用于存放关键消息,保证首先发送消息。使用配置寄存器(CAN_CSR_CFG12)的CFG_ARBITER来选择优先级。 注意:RTR消息请求在TxMessage缓冲区内处理前被服务。比如: RTRreq0, RTRreq15, TxMessage0, TxMessage1和TxMessage7。CAN总线消息发送总线消息发送-消息发送过程消息发送过程 发送消息处理

12、发送消息处理CAN总线消息发送总线消息发送-消息发送过程消息发送过程 下面给出了发送一个标准数据帧的主要步骤: 1写一个消息到一个空的发送保持缓冲区。一个空的缓冲区通过TxREQ=0来表示。n对于标准帧,清除RTR和IDE位;n写DLC位来表示要发送数据的字节数。最大的字节数限定在8。数据字节的位置为D0,D1,,D7;n11位消息标识符被写入ID28:17位域; 2通过设置各自的TxREQ标志为1,请求发送; 3只要消息请求没有被处理,TxREQ标志一直保持。当TxREQ标志被设置,则不能改变消息缓冲区的内容。CAN总线消息发送总线消息发送-消息发送过程消息发送过程 4内部的消息优先级仲裁器

13、根据所选择的仲裁策略来选择消息, 一旦消息被发送,TxREQ标志被清除,中断状态寄存器CAN_CSR_INT_SR中的TX_MSG中断状态位CAN_CSR_INT_SR11被确认。如果TxINT ENBL(CAN_TXn_ CMD2)=1,则中断状态标志被确认。 发送扩展帧需要修改一些设置:n1对于扩展帧,设置IDE位;n2消息标识符被写到ID28:0位域。CAN总线消息发送总线消息发送 -消息丢弃消息丢弃 通过在CAN_TXn_CMD寄存器内,设置TxABORT标志(CAN_TXn_CMD1)放弃发送消息。当消息被丢弃后,该位自动清零。 注意: 1CAN缓冲区寄存器(CAN_CSR_BUF_

14、SR)被用来是否有发送请求还未被处理; 2如果写保护位wpn2(CAN_TXn_CMD23)=0,则命令寄存器的21:16位不能被修改,这是由于寄存器被保护,在回读时提供一个未定义的值。CAN总线消息发送总线消息发送-消息丢弃消息丢弃 3如果写保护位wpn1(CAN_TXn_CMD3)=0,则命令寄存器的2位不能被修改,这是由于在回读时为0值。 4使用WPN标志使能对相同消息的简单重新传输,即设置TxREQ标志,而不需要考虑其它特殊标志。CAN总线模块总线模块-CAN总线消息接收总线消息接收CAN总线模块总线模块-CAN总线消息接收总线消息接收 如上图,CAN总线模块有16个接收缓冲区。每个缓

15、冲区有专用的接收滤波器。 CAN成帧器接收到消息,所接收到消息与所有比较接收滤波器同时进行比较,所接受的消息被保存在各自的消息缓冲区中。 消息缓冲区可通过设置可用消息位(MSG AV)来指示可用的新消息。通过清除MSG AV标志,消息接收必须被响应,这样就允许接收其它消息。CAN总线模块总线模块-CAN总线消息接收总线消息接收n 接收滤波器由下面单元构成:n接收屏蔽寄存器(Acceptance Mask Register, AMR);n接收码寄存器(Acceptance Code Register,ACR)。CAN总线消息接收总线消息接收-消息接收过程消息接收过程 消息接收的过程消息接收的过程

16、CAN总线消息接收总线消息接收-消息接收过程消息接收过程 上图给出了一个接收消息的例子。接收消息的主要步骤包括: 1当收到一个新的消息后,RxMessageHandler从RxMessage0开始寻找所有的接收缓冲区,直到找到一个有效的缓冲区为止。一个有效的缓冲区由下面条件表示:n设置BUFF ENBL=1,使能接收缓冲区;n接收滤波器与接收到的消息相匹配;CAN总线消息接收总线消息接收-消息接收过程消息接收过程 2如果RxMessageHandler找到一个有效的缓冲区是空的,则消息被保存,该缓冲区的MSG AV标志设置为1; 3如果Rx INT ENBL标志被设置,则中断控制器的RX_MS

17、G标志(CAN_CSR_INT_ SR12)被确认;CAN总线消息接收总线消息接收-消息接收过程消息接收过程 4如果接收缓冲区已经包含一个消息(MSG AV=1),并且没有设置链接Link标志,则RX_MSG_LOSS标志(CAN_CSR_INT_ SR10)被确认。这将覆盖已经存在的消息,并且丢失以前的消息。 注:CAN缓冲区寄存器(CAN_CSR_BUF_SR)用于读取是否有可用的接收消息缓冲区。CAN总线消息接收总线消息接收-接收滤波器接收滤波器 每个接收缓冲区都有自己的接收滤波器用来对接收到的消息进行过滤。一个接收消息滤波器由AMR和ACR构成。AMR定义了到达的消息用于与各自ACR位

18、相匹配的位。 AMR相应位确定,是否各自到达消息的位与ACR相对的位进行匹配。AMR=0,匹配相对应的位。下面的消息域被覆盖:标识符、IDE、RTR、数据字节1和2。 对于标准的CAN消息,当IDE=0时,11位的标识符是AMR和ACR的31:21位。CAN总线消息接收总线消息接收-接收滤波器接收滤波器 接收滤波器接收滤波器CAN总线消息接收总线消息接收-接收滤波器接收滤波器 当AMR寄存器相应的位设置为1,则ACR寄存器相应的位不与接收消息帧进行核对。对于扩展帧的过滤,有一点例外,即AMR和ACR寄存器中的IDE位必须被检查。 对于一些高级协议,比如DeviceNet,额外的协议相关的信息保

19、留在第一和第二个字节中。接收滤波器提供额外的对这两个位域的覆盖,用于更有效的实现协议。接收消息的数据位与ACRD寄存器(CAN_RXn_ACRD)的相应位进行比较(使用AMRD寄存器(CAN_RXn_AMRD)。CAN总线消息接收总线消息接收-接收消息缓冲区的链接接收消息缓冲区的链接 能将一些缓冲区链接在一起形成一个接收缓冲区阵列,很像FIFO。为了实现这个方式,则需要下面的条件:n相同阵列的所有缓冲区的过滤器设置必须是一样的;n阵列的最后一个缓冲区不能设置自己的LINK标志;CAN总线消息接收总线消息接收-接收消息缓冲区的链接接收消息缓冲区的链接 n 当一个接收缓冲区已经有一个消息(MSG

20、AV=1),且一个新的消息要到达这个缓冲区,则这个消息将被丢弃(RX_MSG_LOSS中断)。 为了避免这种情况,将几个缓冲区链接在一起。当CAN控制器接收到新的消息时,接收消息句柄搜索一个有效的接收缓冲区。 如果发现缓冲区满(MSG AV=1),并且设置LINK标志,则继续寻找可用缓冲区。如果找到,则信息发送到这个缓冲区,就形成了阵列。如果没有找到,则设置RX_MSG_LOSS中断。CAN总线模块总线模块-远程帧远程帧 远程帧用来初始化两个节点之间的传输,一个节点作为接收方发送远程帧。一个远程帧能使用标准格式和扩展格式。一个远程帧不同与数据帧,由于RTR总是为1,没有数据域。 CAN总线模块

21、总线模块-远程帧远程帧 远程传输请求远程传输请求 CAN总线模块总线模块-远程帧远程帧 1. 节点1的缓冲区0发送远程帧,具体过程:n写消息到一个空缓冲区0(Tx_REQ=0表示空缓冲区);n设置RTR位(CAN_Txn_CMD21)=1;n选择合适的优先级策略;n设置发送请求标志来初始化发送;n发送消息内的标识符必须和接收消息的标识符是一样的;CAN总线模块总线模块-远程帧远程帧 2. 节点2的RxMessageHandler接收到RTR请求,将其送到接收滤波器;n接收滤波器配置成所希望接收消息的ID;n通过设置RTR REPLY=1,使能自动的RTR消息处理(发送后自动清零);n如果使能,

22、则自动发送相同标识符的远程帧;n否则必须按照标准流程发送远程帧。n 设置接收回复RTR消息的请求节点来接收普通消息。不要设置RTR Reply。CAN总线模块总线模块-远程帧远程帧 3. 接收消息缓冲区15的接收滤波器设置和接收帧一 致,这消息移动到缓冲区15中; 4. 如果使能RTR自动回复(Auto Reply),接收消息 缓冲区15将发送与接收相同标识符的消息。 5. 节点1的缓冲区1接收滤波器和节点1发送消息有相 同的标识符设置。因此,RTR消息就被保存在节点1的接收消息缓冲区内。位时间匹配位时间匹配-可用位速率可用位速率 CAN总线能使用一个单独的时钟输入CLK_BUS。下面介绍如何

23、配置可编程的位速率分频器来达到所期望的位速率和与CLK_BUS的关系。 工业上允许使用的CAN总线的位速率有:1Mbps,800kbps,500kbps,250kbps,125kbps,100kbps,50kbps,20kbps,10kbps,5kbps。 如果CLK_BUS频率是8MHz或整倍数,所有的位速率都可使用;否则在10MHz,除了800kbps外,其它位速率都可配置。 位时间匹配位时间匹配-可用位速率可用位速率表表 位速率和位速率和CLK_BUS的关系的关系位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 下图给出了位速率时间图。位速率为CAN总线每秒能传输的

24、比特位的个数。比特位时间分成三部分。每部分参考一个固定单位时间原子(Time Quanta,TQ)定义,TQ来自晶体振荡器。n TQ*1)(tseg21)(tseg1(1TimeBit busclkBitRate_1TQ 位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 位速率时间图位速率时间图位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 1同步段 这是第一段,有1个TQ长度,主要用于同步。在这段内希望一个沿(即帧的开始);位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 2Tseg1,Tseg2 用于补偿沿的相位移动误差。

25、Tseg1考虑了传播延迟,包括网络上的任何延迟。这段长度可以增加或减小,用于补偿由于边沿相位移动引起的误差,称为再同步。 3采样点 在该点读出总线的状态。采样点位于Tseg1的末尾;位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 4同步跳动宽度 通过重新同步,Tseg1被加长或者Tseg2被缩短。同步跳动宽度对重新同步进行了限定。Tseg2的长度必须大于同步跳动宽度。 CAN_CSR_CFG配置寄存器用于设置位速率、tseg1、tseg2和同步跳动宽度。 CAN外设时钟通过对CLK_BUS时钟分频得到。 在位时间内的N倍TQ,CAN外设时钟频率必须被配置成位速率的N倍。

26、位时间匹配位时间匹配-设置设置TSEG1和和TSEG2的位速率的位速率 比如,在40MHz频率下,位速率达到1Mbps。下面给出具体的确定步骤: 1)位速率为1Mbps,位时间为1us; 2)在位时间内选择最小的8TQ值,1TQ=0.125us; 3)位速率=(TQ*clk_bus)-1=4;写4到配置寄存器的 CFG_BITRATE位 4)将采样点选择在位时间的60%,大约等于5TQ。由于采样点 在Tseg1的末尾,所以(tseg2+1)=3TQ; 5)固定采样点同步跳动宽度,设置CFG_SJW=1; 6)写2到配置寄存器的cfg_tseg2 7)计算得Tseg1=3TQ,写3到配置寄存器的

27、cfg_tseg1。CAN总线模块总线模块-错误处理及中断错误处理及中断 1错误类型 CAN总线的错误类型有位错误,格式错误,应答错误,CRC错误,填充错误。 2错误状态 CAN总线错误状态有:活动错误,被动错误和总线关闭。 CAN总线模块总线模块-错误处理及中断错误处理及中断3中断源CAN总线的中断源有:nrx_msg(收到消息);ntx_msg(发送消息);nrx_msg_loss(丢弃消息,由于接收缓冲区满), nbus_off(总线关闭);n crc_err(CRC错误);nform_err(格式错误);nack_err(应答错误);nstuff_err(填充错误);nbit_err(

28、位错误);novr_load(过载帧错误);narb_loss(仲裁丢失错误)。CAN总线通信的实现总线通信的实现 -CAN总线通信实现原理总线通信实现原理n图10.11给出了该设计的结构图。 CAN总线通信的实现总线通信的实现 -CAN总线通信实现原理总线通信实现原理 该设计中CAN模块以全TX/RX方式和500kbps的波特率发送消息。 CAN节点的发送ID为0 x2FF,接收节点的ID为0 x3FF。 设计中的ADC模块采集CY8CKIT模块上的变阻器的电压,ADC模块配置成8位分辨率和10k的采样率。 采样结果在每个ADC采样完成用保存在中断服务程序的变量中。CAN总线通信的实现总线通

29、信的实现 -CAN总线通信实现原理总线通信实现原理 CAN消息被调度每100ms发送一次。CAN消息发送ADC的采样值。每10ms中轮询图10.11设计的结构图 CAN消息是否接收到标志。如果接收到CAN消息,将接收到的数据从接收缓冲区复制到一个变量中。板上的LCD显示更新过的发送和接收的数据。 CY8CKIT-017上的三个LED灯用于显示CAN发送的状态。n绿灯亮表示成功的接收到CAN消息;n淡黄色的灯亮表示CAN错误计数器值在0-127之间;n红灯亮表示CAN错误计数器的值超过127;CAN总线通信的实现总线通信的实现 -CAN外部接口电路外部接口电路 CAN收发器必须被用作将PsoC3

30、的Tx、Rx信号转换成CAN_H和CAN_L逻辑信号。CY8CKIT-017的CAN扩展板套件增加了一个收发器电路。 图图10.12 CAN总线控制器接口图总线控制器接口图CAN总线通信的实现总线通信的实现 -CAN外部接口电路外部接口电路 图10.12给出了CAN收发器所需的电路外部接口的结构。只有部分的CAN收发器需要使能信号(TX_EN)。 CAN总线通信的实现总线通信的实现 -系统内模块的配置系统内模块的配置 该设计包含CAN收发器模块、ADC转换器模块、LCD模块、状态寄存器模块、时钟模块、模拟引脚、数字输入和输出引脚等硬件资源。 这些硬件资源来自IP资源库,下面给出这些资源所在的位

31、置:nADC转换器模块:位于Analog-ADC-Delta Sigma ADC下;nCAN控制器模块:位于Communications-CAN Controller Macro下;n状态寄存器模块:位于igital-Register-Status Register下;nLCD模块:位于Display-Character LCD下;n模拟引脚:位于Ports and Pins-Analog Pin下;n数字输入引脚:位于Ports and Pins-Digital Input Pin下;n数字输出引脚:位于Ports and Pins-Digital Output Pin下;系统内模块的配置系

32、统内模块的配置-CAN模块参数设置模块参数设置 图10.13给出了在PsoC Creator软件中发送基本CAN帧的符号描述。CAN总线模块的Tx和 Rx信号线可以被连接到任意的数字端口引脚(在设计资源(.cydwr)文件里面实现数字端口引脚的选择)。收发器使能信号产生使能电路中的收发器控制信号(可选设置,不用时可以关闭该选项)。图图10.13基本的基本的CAN帧符号图帧符号图图图10.13基本的基本的CAN帧符号图帧符号图系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(通用配置通用配置) 如图10.14所示,在Configure CAN设置界面中,进行如下设置: 图图10.

33、14 通用设置通用设置系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(通用配置通用配置)nName(名字):CAN。n选中Add Transceiver Enable Signal复选框。该功能包括:nTransmit Buffer Arbitration:选中Round Robin,表示所有缓冲区有相同的机会发送一个信息。Fixed Priority用于多于一个发送区发送信息,而且必须给定他们一个优先级。如果只是如我们现在所说的一样的一个简单的应用,则用默认值(default value)。nBus-Off Restart:选中Manual, 则当总线关闭发生时,手动重启总

34、线,另一个选择是utomatic(自动)。在此使用默认值。nCAN Bus Synchronization Logic:R到D转换的边沿用于总线的同步信号。另一个选择“Both Edges”,表示是在两个边沿都同步CAN总线。在这使用默认值。系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(时序配置时序配置) 如图10.15所示,位时间是CAN总线每秒发送的比特数的倒数。位时间由三段构成。 每段都由固定时隙的TQ组成。设置下面的参数:图图10.15时序配置时序配置图图10.15时序配置时序配置系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(时序配置时序配置)n

35、Desired Band Rate(希望的波特率):设置为500Kbps;nSJW:同步跳转宽度,该值小于Tseg1和Tseg2,设置为1;nSample Mode:采样模式,设置为1-Sample。系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(时序配置时序配置) 然后用鼠标双击图10.15中有颜色的那一行,将自动设置下面的参数:nBRP(比特率预分频 值):用于产生时间 量子(时间段)TQ, 在此设置为2。nTseg1:设置为13;nTseg2: 设置为2;图图10.15时序配置时序配置系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(中断配置中断配置)n

36、图10.16给出了中断的配置。中断参数配置如下:图图10.16 中断配置选项中断配置选项系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(中断配置中断配置)n选中Enable Interrupts,表示使能中断。并选择中断下面的选项:nMessage Received:表示接收到消息时产生中断;nBus off State:表示总线处于关闭状态时产生中断;系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(发送缓冲区配置发送缓冲区配置) CAN具有个发送缓冲区。图10.17给出了CAN报文的发送缓冲区配置。当选择“Full”时,表示可以修改邮箱(mailbox)、

37、IDE、RTR、RTRreply、IRQ和Linking域。参数设置如下:nMailbox:TxAdcData;n选中:Full;nID:设置为0 x2FF;nDLC:设置为1n选中IRQ;图图10.17 发送缓冲区配置发送缓冲区配置系统内模块的配置系统内模块的配置-CAN模块参数设置模块参数设置(接收缓冲区配置接收缓冲区配置) CAN具有个发送缓冲区。图10.18给出了CAN报文的接收缓冲区配置。当选择“Full”时,表示可以修改邮箱(mailbox)、IDE、RTR、RTRreply、IRQ和Linking域。参数设置如下:nMailbox:RxAdcData;n选中:Full;nID:设

38、置为0 x3FF;n选中IRQ; 图图10.18 接收缓冲区配置接收缓冲区配置系统内模块的配置系统内模块的配置-ADC模块参数设置模块参数设置n图10.19给出了ADC模块的配置界面,参数设置如下:图图10.19 ADC转换器配置界面转换器配置界面系统内模块的配置系统内模块的配置-ADC模块参数设置模块参数设置参数设置如下:nName:ADCn在Config 1标签栏下,Sampling参数设置如下(参数的详细说明见ADC相关部分说明):nConversion Mode:2-Continuous(连续模式);n#Configs:1(只有一个配置参数表)nResolution:8bits(分辨率

39、为8)nConversion Rate:10000SPS(采样率为10ksps)nClock Frequency:160kHz(时钟频率为160kHz)系统内模块的配置系统内模块的配置-ADC模块参数设置模块参数设置nInput Options参数设置如下:nInput Mode:Single(输入模式为单端)nInput Range:Vssa到Vdda(信号输入范围在Vssa到Vdda之间)nBuffer Gain:1(缓冲区增益为1)nBuffer Mode:Rail to Rail(轨至轨)n在Common标签栏下,参数设置如下:n不选中Hardware SOC:即使用软件触发ADC转换

40、器;图10.19 ADC转换器配置界面nClock Source:Internal(即使用内部的时钟源);系统内模块的配置系统内模块的配置-状态寄存器模块参数设置状态寄存器模块参数设置 图10.20给出了状态寄存器模块的参数设置界面。参数设置如下:nName:STATUS_REG;n在Configure标签栏下,设置:nInputs:1,表示状态寄存器只有1位。图图10.20 状态寄存器模块的设置状态寄存器模块的设置图图10.20 状态寄存器模块的设置状态寄存器模块的设置系统内模块的配置系统内模块的配置-LCD模块参数设置模块参数设置n图10.21给出了LCD模块的设置界面。参数设置如下:n在

41、General标签下,设置参数:name:LCD;nLCD Custom Character Set:选中None,即无LCD定制的字符集;n选中Include ASCII to Number:包含ASCII码到数值;图10.21 LCD配置界面系统内模块的配置系统内模块的配置-时钟模块参数设置时钟模块参数设置 1与状态寄存器时钟引脚相连的时钟模块的设置 图10.22给出了与状态寄存器Clock引脚相连的时钟模块的参数配置:nName:BUS_CLK;nSource:选择BUS_CLK(24MHz),表示时钟源来自总线时钟,时钟频率为24MHz图图10.22 时钟模块的配置时钟模块的配置系统内模块的配置系统内模块的配置-时钟模块参数设置时钟模块参数设置2. 与状态寄存器status_0相连的时钟模块的设置 图10.23给出了状态寄存器status_0相连相连

温馨提示

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

评论

0/150

提交评论