收藏 分销(赏)

BoschCAN用户基础手册中文版..doc

上传人:精**** 文档编号:2999651 上传时间:2024-06-12 格式:DOC 页数:24 大小:1.80MB
下载 相关 举报
BoschCAN用户基础手册中文版..doc_第1页
第1页 / 共24页
BoschCAN用户基础手册中文版..doc_第2页
第2页 / 共24页
BoschCAN用户基础手册中文版..doc_第3页
第3页 / 共24页
BoschCAN用户基础手册中文版..doc_第4页
第4页 / 共24页
BoschCAN用户基础手册中文版..doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、1. C_CAN顾客手册1术语和缩写Terms and AbbreviationsThis document uses the following terms and abbreviations.这个文档使用到如下术语和缩写。Term MeaningCAN Controller Area Network 控制器局域网BSP Bit Stream Processor 位流解决器BTL Bit Timing Logic 位时间机制CRC Cyclic Redundancy Check Register 循环冗余码校验冗余DLC Data Length Code 数据长度编码EML Error Ma

2、nagement Logic 错误管理机制FSM Finite State Machine 有限动作状态TTCAN Time Triggered CAN 时间触发通讯控制器局域网 2. C_CAN顾客手册2Functional Description功能简介C_CAN是可以作为单独或集成ASIC一某些CAN总线模块。用硬件描述语言描述C_CAN综合到逻辑器件。它包括CAN内核、消息RAM、消息解决状态机、控制寄存器和模块接口。CAN内核通信符合CAN合同规范2.0A和2.0B。在使用中位速率可以编程达到1M/S。硬件连接物理层需在接受发射器。在CAN网络中通信,每个消息目的需要设定,接受消息目

3、的和辨认符掩码存储到消息RAM中。所关于于消息解决是在消息解决状态器中完毕。这些功能涉及消息过滤、CAN内核与消息RAM之间通信和消息发送中断祈求并产生中断模块。C_CAN中寄存器组可以通过接口模块被外器CPU访问。这些寄存器用于控制或配备CAN内核和消息解决状态机,并存储到消息RAM。 在C_CAN模块中接口模块可以定制成适合于顾客使用模块接口。C_CAN具备如下功能特性:支持CAN合同怎版本2.0A和版本2.0B位速度达到1M/S32个消息目的(在消息RAM中有32个可以自定义接受或发送消息目的)每个消息目的有自己辨认符掩码可编程FIFO模式(消息目的在FIFO中持续存储)可屏蔽中断对于时

4、间触发CAN应用可以取消自动重传模式在自己测试操作可以设计成循环模式(重复发关这一种消息)兼容摩托罗拉公司HC088位单解决模块接口对ARM内核有2个16位接口模式给AMBA ABB总路线3. C_CAN顾客手册3模式构造Block Diagram CAN CoreCAN内核CAN合同控制器和接受与发送移位寄存器完毕消息并行或串行转换Message RAM消息RAN存储消息目的和辨认符掩码Registers寄存器所有寄存器用于控制和配备C_CAN模块Message Handler消息状态解决机控制数据在 CAN内核接受与发送移位寄存器与消息RAM之间传送,也在控制和配备寄存器中产生中断Modu

5、le Interface模块接口到当前为止,C_CAN模块被提成种不同接口。一种是对于摩托罗拉HC08控制器位接口,和二种来自ARMAMBA APB总线16位接口4. C_CAN顾客手册4操作模式Operating Modes、初始化程序 Software Initialization初始化程序开始前必要置CAN控制器中控制寄存器中Init位,或者由软件或硬件复位还是总线关闭。当Init被置位,所有与CAN传送消息被停止。CAN总线CAN_TX状态为隐性(HIGH),错误解决寄存器状态不变,Init置位不会变化任何配备寄存器。初始化CAN控制器时,解决器(CPU)必要设立位定期寄存器和每个消息

6、对象。如何一种消息对象不需要,设立此消息MsgVal没有效(0)即可。否则初始化所有消息对象。当CAN控制寄存器中Init和CCE两者都置位时,配备位定期位定期寄存器和位扩展定期寄存器才被激活。仅由解决器(CPU)复位Init才完毕软件初始化。然后,在得到使用总线权和发送消息之前等待总线空闲时(产生11个持续隐性位),位流解决器(BSP)同步传数据。初始化消息对象时不需要将Init置位,可以在CAN控制器不工作时候进行。在位流解决器(BSP)开始消息传播之前,所有消息对像需要初始化一种单独辨认符或初始消息无效。在正常工作期间变化消息对象配备时,解决器(CPU)修改配备前先设立消息对象MsgVa

7、l无效(0)。修改配备完毕,MsgVal由解决器(CPU)l置位,消息才有效。2、CAN报文传送CAN Message Transfer一旦初始化C_CAN和Init复位(设立为0),C_CANCAN内核同步自我检测总线和在总线上开始传送消息。如果接受到消息符合本节点过虑规定(通过消息状态解决机过滤),存储到相应消息目的对象。整个消息涉及仲裁辨认位、数据长度(DLC)和8个字节数据都存储到消息目的对象。如果使用辨认符(ID)掩码(屏蔽码),消息目的对象中仲裁位可以被屏蔽(不仲裁相应被屏蔽辨认符位)。不论什么时候,解决器(CPU)可以通过CAN接口寄存器读或写每一条消息(报文)。在并发操作中,消

8、息状态解决机保证数据可靠性。传送消息(报文)由解决器(CPU)更新。如果永久性消息目的对象(仲裁位和控制位在初始化配备时被设定)存在消息(报文),仅数据位被解决器更新,然后将TxRqst和NewDat位置位,消息即开始传送。如几种(个别)传送消息配备成相似消息对象目的(消息对象编码值无效),这些消息传送祈求前必要以对所有消息进行初始化设立。诸多消息对象目的传送可以在同一时间祈求,消息对象对像先后顺序由自身优级拟定,消息可以随时更新或设立为无效,甚于在发送祈求还在等待时候。消息未发送而被更新则旧数据将丢弃。依照消息对象配备,传送消息被自动祈求,由接受带匹配辨认符远程帧。3、取消自动重传Disab

9、led Automatic Retransmission根据CAN规范,在传送期间仲裁已经丢失或干拢错误时,C_CAN提供了自动重传帧机制。在帧传送成功之前,帧传送服务不能被使用都证明。传送失败意味自动重传机制使能。当C_CAN工作在时间触发CAN环境时,自动重传机制也可以取消。编程CAN控制器中DAR置位(1)取消自动重传机制。在这种操作模式中,程序必要考虑在消息缓冲控制寄存器中TxRqst和NewDat不同状况。当每个消息报缓冲发送祈求开始位(TxRqst)被复位(0),,然而NewDat位依然置位(1).当传送成功后NewDat位复位,当传送失败(仲裁丢失或传送错误)NewDat依然不变

10、(置位1),重新传送由解决器(CPU)置位TxRqst为1。4、测试模式Test Mode由解决器(CPU)设立CAN控制寄存器中Test位置1,进入测试模式。在测试模式中,测试寄存器中Tx1、Tx0、Lback、Silent和Basic需在写。Rx监听CAN_RX引能脚状态,并且仅读。当测试模式位TEST复位为0,所有测试寄存器中功能所有取消。5、无负载模式/只听模式 Silent ModeCAN内核可以通过编程设立测试寄存器中Silent置1,运营于无负载模式。 在无负载模式中,C_CAN能接受有效数帧和有远程帧,但它仅发送拟定接受位在CAN总线上,以及它不能发送。如CAB内核需要发送一种

11、显性位(ACK应答位,超载标志,激活错误标志),此位在内部自动更改以至CAN内核监听这个显性位(0),尽管CAN总是出当前隐性状态。无负载模式可以用于分析CAN总线运营状况,在没有使用总线时通过传送一种显性位(应答位、错误帧)。在ISO 11898-1,无负载模式被叫做总线监听模式。只听模式成功接受到消息也不会作应答,错误计数器停止,不传送消息,因此可以作位定期波特率软件自区配设立。6、循环模式/自检测模式 Loop Back Mode由编程测试寄存器位Lback置位(1),CAN内核进入测试循环模式(控制寄存器中TEST=1)。在循环模式中,CAN内核自我协商传送消息同步接受消息和存储通过过

12、虑消息到接受缓冲区。此模式提供了自我测试功能,不受外部干拢影响。在循环模式中,CAN内核忽视应答信号错误(接受位采样在数据帧或远程帧应答场内)。在这个模式中,CAN内核从自己Tx输出执行一种反馈信号到Rx输入。事实上CAN内核把CAN_RX输入引脚断开。传送消息时监听CAN_TX引脚。 自检测模式检测所有节点,没有任何活动节点使用自接受命令,虽然没有应答,CAN也可会成功发送。7、循环结合无负载模式 Loop Back combined with Silent Mode编程Lback和Silent同步置位(1),CAN运营在在循环无负载模式。这种模式使用于自我测试(Hot Selftes),意

13、味着C_CAN能在没有正常CAN系统连接到CAN_Tx和CAN_Rx引脚上时,自测试运。在这个模式中,CAN_RX引脚被断开和CAN_TX引脚输出隐性(1)。8、Basic模式 Basic Mode编程测试寄存器中Basic位置位(1),内核工作于Basic模式。在这个模式中C_CAN模块工作是没有消息RAM。IF1使用作发送缓冲区。IF1寄存器中内容祈求发送,由写IF1命令祈求寄存器中Busy位置位(1)。当Busy位置位时IF1寄存器锁定。Busy位批示发送状态。一旦CAN总线空闲,CAN内核移位解决器载入IF1寄存器中内容并始传送。当成功发送,Busy位复位(0),并释放IF1寄存器。在

14、任何时候,未成功发送可以被中断,通过设立IF1命令祈求寄存器中Busy位复位(0)。如果解决器对Busy进行复位,以防仲裁丢失或产生错误取消,也许需要重传消息。IF2使用作接受缓冲区。从位移寄存器接受消息内容存储到IF2寄存器,没有通过过滤。除些之外,移位寄存器中内容在发送消息时被监听,每次读消息目的对象都初始化写IF2命令祈求寄存器Busy位为1。移位寄存器内容存储到IF2寄存器。在Basic模式中,所有消息对象目的有关控制、状态位和Ifx命令掩码寄存器控制位赋值都被关闭。消息命令祈求寄存器数值是无效。IF2消息控制寄存器中NewDat和MsgLst位依然保存她们功能。DLC3-0显示接受数

15、据长度(DLC),其她控制位读出为0。在Basic模式中CAN_WAIT_B输出准备功能取消(总是为1)。9、软件控制CAN_TX引脚 Software control of Pin CAN_TX在CAN发送时CAN_TX四种输出功能都可以用到。除此之外,缺省值下进行串行数据输出,它能驱动CAN采样信号点而监听CAN内核位定期和能驱动持续隐性或显示性值。最后2个功能,结合可读CAN_RX引脚,可以使用检测CAN总线物理层。CAN_TX引脚输出模式选取通过编程测试寄存器中TX1和TX0位。3种CAN_TX引脚接口测试功能都带有所在CAN合同功能。选取CAN消息发送或循环测试模式(自检测模式)、无

16、负载模式、Basic模式,CAN_TX必要放弃缺省值功能。5. C_CAN顾客手册5 编程模式Programmers ModelC_CAN模块分派256位地址空间。这些寄存器组织成16位寄存器,高字节存储在奇数地址和低字节存储在偶数地址空间。双接口寄存器(IF1和IF2)控制解决器(CPU)访问消息目的对象RAM,它们用于缓冲发送数据和从消息对象RAM读对数据。避免解决器(CPU)访问消息目的对象RAM和消息接受或发送之间冲突。5.1硬件复位描述Hardware Reset Description硬件复位后来(各寄存器复位值依上表),除了总线关闭状态被复位(0),输出引脚CAN_TX复位为隐性

17、(1)。软件初始化时CAN控制寄存器值为0x0001(Init = 1)。C_CAN对CAN总线不会产生影响,直到解决器复位Init为0。在硬件复位,存储在消息对象RAM中数据不会受到影响。上电,消息目的对象RAM内容依状况而定。CAN控制有关寄存器 CAN Protocol Related Registers在CAN内核中有涉及到CAN控制器寄存器。它们控制CAN工作模式、CAN位定期器配备和提供消息状态。1、CAN控制寄存器(地址0x01 & 0x00) CAN Control Register (addresses 0x01 & 0x00)Test 测试模式使能1 测试模式0 正常模式C

18、CE配备更改使能1 解决器(CPU)写存储到位定期器有效(当Init = 1)0 解决器(CPU)不写存储位定期寄存器DAR 取消自动重传使能1 自动重传取消0 错误消息(报文)自动重传EIE错误中断使能1 使能 在状态寄存器中Boff或Ewarn发生变化将发生中断0 取消 不会产生错误状态中断SIE 中断状态变化使能1 使能 当消传送成功或监测CAN总线错误将产生一种中断0 取消 不产生状态中断IE 模块中断使能1使能 中断使IRQ_B为低,IRQ_B依然为低直到因此中断被解决0 取消 模块中断IRQ_B总是为高Init初始化模式1 初始化开始0 正常模式注意:总线关闭状态不受Init置位或

19、复位而变化,总线关闭,CAN总线自检测置位Init位,停止因此总线活动。一旦解决顺(CPU)清除Init位,总线将等待产生129个总线空闲状态(129*11个隐性位),在恢复正常运营之前。总线恢复正常结束后,错误管理计数器将清零。在每次对Init位重新复位后来,将会等侍监听持续11隐性位时间,Bit0Eraor代码将写到状态寄存器。使能解决器(CPU)检测总线正接受显性位或持续干拢并监听总线关闭状态。提示:C8051系列单片机中CAN总线也是采用BOSCH CAN合同。其操作过程同样,但是在CAN寄存器中加多了一位。位4: CANIF:CAN 中断标志。写 = 忽视。0:未发生CAN 中断。1

20、:发生了CAN 中断。CANIF 由CAN 控制器控制,当CAN 控制器中所有中断条件都被清除后,该标志被清02、状态寄存器(地址 0x03 & 0x02) Status Register (addresses 0x03 & 0x02)BOff 总线关闭状态1 总线在关闭状态0 总线正常状态Ewarn警告状态1 在错误管理器(EML)中至少有一种错误计数器达到了96次限制警告0 错误或警告二个都没有达到96次限制Epass产生错误1 在CAN总线合同中定义CAN内核运营在错误状态0CAN内核使能错误RxOk成功接受消息1 一旦此位被由解决器(CPU)置位,消息接受成功(依赖于过虑器成果)0 自

21、从此位由解决器(CPU)置位后,没成功接受消息,这位永远由解决器(CPU)复位TxOk 成功发送消息1 自从解决器(CPU)对此位复位后来,成功发送消息(没有错误和至少一种节点应答)0 自从CPU对此位复位后来,没有消息已发送成功,这位永远由CPU复位LEC 近来错误代码0 No Error::有错误1 Stuff Error:填充错误,在接受消息中某些原则是超过5个持续位产生是不充许。2 Earm Error:帧错误,接受帧固定格式某些是个错误形式3 Ack Error:应答错误,CAN内核发送信息没有任何一种节点应答4 Bit1Error:在消息发送期间(除仲裁域),设备想发送一种隐性位,

22、但监听为显性位5 Bit0Error:在消息发送期间(或应答位、激活错误标志、超载标志),设备想发送一种显示位(数据或辨认符逻辑值0),但是监听到总线值为隐性位。关闭总线恢复每次都要监听一种持续11个隐性位状态,这使能解决器(CPU)去监听解决总线关闭恢复序列(批示总线没有干拢位或持续干拢)6 CRCError:CRC检测较验出接受到数据是错误。通过CRC校验接受进来消息与未准数据不能匹配7 Unsed:当LEC显示为“7”时,自从解决器(CPU)写到数到LEC后来,总线就没有任何事件发生。LEC域保存显示CAN总线上近来发生错误类型编码,在成功传送(发送或接受)消息并且没有错误时这个域所有清

23、0,当解决器(CU)检测更新时,未使用编码“7”可以写入LEC。状态中断Status Interrupts状态中断产生由Boff位和Ewarm位(错误中断)或由RxOK位、TxOK位和LEC(状态变化中断)装载,并在CAN控制寄存器中相应使能位置位有效使能。Epass位变化或写RxOK、TxOK,或LEC也不会产生状态中断。读状态寄存器将清除在中断寄存器中状态中断值(8000H),如果没有中断时。3、错误计数器(地址 0x05 & 0x04 )Error Counter (addresses 0x05 & 0x04)RP悲观接受错误1 接受错误计数器已经达到由CAN合同定义错误悲观状态0 接受

24、错误计数器没有达到错误悲观状态REC6-0 接受错误计数器接受错误计数器实际状态,其值在0127TEC7-0 发送错误计数器发送错误计数器实际状态,其值在02554、位定期寄存器(地址 0x07 & 0x06) Bit Timing Register (addresses 0x07 & 0x06)TSeg1 采样点前定期段Tseg1有可变值为0x010xF,即是115,这个值通过硬件译码成比1更大值被使用。TSeg2 采样点后定期段Tseg2有可变值0x00x7,即是17,这个值通过硬件译码成比1更大值被使用。SJW 同步跳转宽度可变编程值为0x003,即是03,这个值通过硬件译码成比1更大值

25、被使用。BRP 波特率分频器数值0x010x3F可以决定系统时间频率被分频产生位定期量子。位时间被提成多块定期量子,波特率分频器值可在063选取。这个值通过硬件译码成比1更大值被使用。注意:模式时钟CAN_CLK为8MHz,其复位值为0x2301配备C_CAN位速率为500Kbit/s。这个位仅当CCE位和Init位同步置位才写有效。5、测试寄存器(地址 0x0B & 0x0A) Test Register (addresses 0x0B & 0x0A)Rx 监听CAN_RX引脚实际值1 CAN总线上是隐性位(CAN_RX = “1”)0CAN总线上是显性位(CAN_RX = “0”)Tx1-

26、0 控制CAN_Tx引脚00 复位值,CAN_TX引脚由CAN内核控制01 在CAN_TX引脚上采样点被监听10 CAN_TX引脚驱动隐性值(0)11 CAN_TX引脚驱动显性值(1)LBack 循环模式/自检模式1 使能循环/自检模式0 取消循环/自检模式Silent 无负载模式/只听模式1 工作在无负载模式0 正常工作模式BasicBasic模式1 IF1作TX发送缓冲区,IF2作接受缓冲区0 取消Basic模式设立CAN控制寄存器Test置位才激活存取测试寄存器写有效。可以不同测试功能结合使用,但是TX1-0不能等于00干拢传送。6、扩展分频寄存器 BRP Extension Register (addresses 0x0D & 0x0C)BRPE 扩展波特率分频器编程BRPE波特率分频器为0x00-0x0F能扩展分频值达到1023。其实际值由硬件译码比编程值不不大于1,DRPE高位(MSBs)和BRP底位(LSBs)被同步使用。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服