CAN总线学习心得 摘抄
- 格式:rtf
- 大小:233.30 KB
- 文档页数:8
1、首先通读手册中关于CAN的文档,必须精读。
STM32F10xxx参考手册Rev7V3.pdf需要精读的部分为RCC和CAN两个章节。
为什么需要精读RCC呢?因为我们将学习CAN的波特率的设置,将要使用到RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。
关于STM32的can总线简单介绍bxCAN是基本扩展CAN(BasicExtendedCAN)的缩写,它支持CAN协议2.0A和2.0B。
它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。
它也支持报文发送的优先级要求(优先级特性可软件配置)。
对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。
主要特点·支持CAN协议2.0A和2.0B主动模式·波特率最高可达1兆位/秒·支持时间触发通信功能发送·3个发送邮箱·发送报文的优先级特性可软件配置·记录发送SOF时刻的时间戳接收·3级深度的2个接收FIFO·14个位宽可变的过滤器组-由整个CAN共享·标识符列表·FIFO溢出处理方式可配置·记录接收SOF时刻的时间戳可支持时间触发通信模式·禁止自动重传模式·16位自由运行定时器·定时器分辨率可配置·可在最后2个数据字节发送时间戳管理·中断可屏蔽·邮箱占用单独1块地址空间,便于提高软件效率2、STM32FVBT6的can的工作模式分为#defineCAN_Mode_Normal((u8)0x00)#defineCAN_Mode_LoopBack((u8)0x01)#defineCAN_Mode_Silent((u8)0x02)#defineCAN_Mode_Silent_LoopBack((u8)0x03)在此章我们的豆皮教程中我们将使用到CAN_Mode_LoopBack和CAN_Mode_Normal两种模式。
CAN总线学习笔记四:CAN总线通信在理解了CAN总线的自通信程序后,再来探讨CAN总线间的相互通信变得容易了许多。
对于是自通信还是相互通信,这个肯定是需要对寄存器进行必要的设置的,分析PIAE 的两个程序后不难发现,自通信和互通信需要设置的知识模式寄存器,这个是在SJA1000的初始化时进行设定的。
SJA1000的初始化程序我根据习惯,直接把它独立成一个子程序了。
如下,是工作于自通信时的初始化程序。
/////////////////////////////////////////////////函数:init_sja1000//说明:独立CAN控制器SJA1000的初始化//入口:无//返回:无///////////////////////////////////////////////void init_sja1000(void){uchar state;uchar ACRR[4];uchar AMRR[4];// 接收代码寄存器ACRR[0] = 0xff;ACRR[1] = 0x22;ACRR[2] = 0x33;ACRR[3] = 0x44;// 接收屏蔽寄存器,只接收主机发送的信息AMRR[0] = 0xff;AMRR[1] = 0Xff;AMRR[2] = 0xff;AMRR[3] = 0xff;// 使用do--while语句确保进入复位模式do{ // 设置MOD.0=1--进入复位模式,以便设置相应的寄存器 MODR = 0x09;state = MODR;}while( !(state & 0x01) );// 对SJA1000部分寄存器进行初始化设置CDR = 0x88; // CDR为时钟分频器,CDR.3=1--时钟关闭, //CDR.7=0---basic CAN, CDR.7=1---Peli CANBTR0 = 0x31; // 总线定时寄存器0 ;总线波特率设定BTR1 = 0x1c; // 总线定时寄存器1 ;总线波特率设定IER = 0x01; // IER.0=1--接收中断使能;IER.1=0--关闭发送中断使能OCR = 0xaa; // 配置输出控制寄存器CMR = 0x04; // 释放接收缓冲器// 初始化接收代码寄存器ACR0 = ACRR[0];ACR1 = ACRR[1];ACR2 = ACRR[2];ACR3 = ACRR[3];// 初始化接收屏蔽寄存器AMR0 = AMRR[0];AMR1 = AMRR[1];AMR2 = AMRR[2];AMR3 = AMRR[3];// 使用do--while语句确保进入自接收模式do{ //MOD.2=1--进入自接收模式,MOD.3=0--双滤波器模式MODR = 0x04;state = MODR;}while( !(state & 0x04) );}两个数组ACRR[4]和AMRR[4]分别存储着需要设置的接收代码寄存器和接收屏蔽寄存器的数值。
can总线波形检测实验心得最近,我参加了一次CAN总线波形检测实验,实验的主要目的是了解CAN总线的基本原理和波形特征,并通过实验掌握如何检测CAN总线的波形。
在实验中,我学到了很多有关CAN总线的知识和技能,下面是我的一些心得体会。
首先,我深刻理解了CAN总线是一种高速、可靠的数据传输协议,它可以在多个设备之间进行数据通信。
CAN总线架构中包括控制器(CAN Controller)、收发器(CAN Transceiver)和节点(CAN Node)等组成部分。
控制器是主要的数据处理单元,用于控制数据的收发和处理;收发器负责将控制器的数字信号转换为模拟信号,以及将模拟信号转换为数字信号;节点则是CAN总线上的一个设备,每个节点都有一个唯一的标识符,用于识别发送和接收的数据。
其次,我学会了如何检测CAN总线的波形。
在实验中,我们使用了示波器(Oscilloscope)来检测CAN总线的波形。
示波器是一种用于显示电信号波形的仪器,它可以显示CAN总线上的数字信号波形,并帮助我们分析和判断波形是否正常。
在检测波形时,我们需要注意以下几个方面:1. CAN总线上的波形应该是一个方波,即上升沿和下降沿应该垂直,且幅值应该保持稳定;2. CAN总线上的波形的周期应该保持一致,如果出现周期不一致的情况,可能需要检查CAN总线上的设备是否正常;3. CAN总线上的波形的幅值应该在规定范围内,如果幅值过高或过低,可能会影响数据传输的质量。
最后,我认为这次实验对我来说非常有意义。
通过这次实验,我不仅学习了CAN总线的基本原理和波形特征,还了解了如何使用示波器检测CAN总线的波形。
这对我以后的学习和工作都有很大的帮助。
我相信,在将来的工作中,我会继续努力,不断提高自己的技能和知识水平。
CAN总线学习心得:zlg关于can帖子汇总SJA1000的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然TSEG1的设置周期都很大,比如都大于10了,为什么不让他采样三次呢?答:是不好理解,但那是CiA推荐的值。
用51系列芯片和两个SJA1000接口还要外扩一个RAM,请问51的ALE能否同时与三个芯片的ALE管脚相连(地址不同)? 有哪位高手做过双SJA1000冗余的请指教答:能同时连接。
请问CAN总线在想传输1000m的情况下,最快的速度能到多少呢?答:50kbps = 1300m。
如果一个网络中只有2个节点,其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。
想组建一个简单的CAN网络,已经有两个节点,我想问CAN总线如何组建,终端电阻安装在哪里?小弟还没有入门,大虾们指点一下。
答1:直接将节点CANH和CANL连到总线上,终端电阻接在总线两端,大约120欧。
答2:推荐北航出版《现场总线CAN原理与应用技术》,研读一下。
请问各位老师:我是一名can总线的新手,我正在做can总线的开发,控制器用sja1000t(我自己两个控制板互通),但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0xff,最后恢复到0x7f,谢谢各位老师帮我解答这个问题。
或者对我给与启发答1;首先调通单个节点。
答2:这是单节点发送没有成功(或者由于网络中其他节点没有收到帧并在响应场响应);建议参考网站CAN应用方案。
我想请教各位can远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程幀的用与不用完全取决你自己的协议,can有远程幀的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,12k以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。
但是12k以下的数据一个都不能用,两个节点通讯没有成功的,自接收有10k的几个数据成功。
can总线波形检测实验心得
在进行CAN总线波形检测实验之前,我们首先需要了解CAN总线的基本原理和特性。
CAN总线是一种常见的工业控制网络,具有高速、可靠、抗干扰等特点。
在实际应用中,我们需要对CAN总线的波形进行检测,以验证其正常工作。
下面是我在进行CAN总线波形检测实验中的一些心得体会。
首先,我们需要准备一些基本的设备和工具,例如CAN总线分析仪、示波器、信号发生器等。
在进行波形检测之前,我们需要对这些设备进行正确的连接,以确保信号正常传输。
同时,我们需要对所使用的设备进行正确的配置,例如设置波特率、校验模式、帧格式等。
其次,在进行波形检测之前,我们需要先了解CAN总线的标准波形,以便于对波形进行比较和分析。
在实际检测过程中,我们需要观察CAN总线上的各种信号波形,例如起始边沿、同步边沿、数据帧等。
通过对这些波形的分析,我们可以判断CAN总线的工作状态是否正常。
最后,我们需要对检测结果进行分析和处理。
在实际应用中,我们需要对CAN总线上的各种异常情况进行诊断和处理,以确保系统的稳定运行。
例如,当出现误码率高、总线负载过大等情况时,我们需要及时采取相应的措施,以减少故障的发生。
总之,进行CAN总线波形检测实验是一个较为复杂的过程,需要我们具备一定的知识和技能。
通过不断地学习和实践,我们可以更好地掌握CAN总线的工作原理和波形检测技能,从而为工业控制系统的设计和维护提供更加可靠的保障。
CAN总线使⽤总结CAN总线使⽤总结⼀,CAN总线是由德国BOSCH公司提出,⽬的是为了解决汽车内部硬件信号线的复杂⾛线⼆,CAN:controller area area:控制器局域⽹络三,CAN总线的特点:与⼀般的通信总线相⽐,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
1,CAN为多主⽅式⼯作,⽹络上任⼀节均可在任意时刻主动向⽹络上其他节点发送信息,不分主从2,CAN节节点只需通过对报⽂的标志符进⾏滤波就可以⽅便的实现点对点,点对多点及全局⼴播等⼏种传送接收⽅式;3,CAN总线采⽤⾮破坏总线仲裁技术。
当发⽣冲突时,优先级低的节点⾃动退出发送,⽽优先级⾼的节点可不受影响地继续传输数据,从⽽⼤⼤节省了总线冲突仲裁时间。
尤其是在负载很重的情况下,也不会出现瘫痪情况(以太⽹则可能)。
4,在报⽂标识符上,CAN上的节点分成不同的优先级,可满⾜不同的实时要求,优先级⾼的数据最多可在134us内得到传输;5,CAN的直接通信距离最远可达10KM(速率在5kbps以下),通信速率最⾼可达1Mbps,(此时通信距离最长为40m);6,CAN上的节点数主要取决于总线驱动电路,⽬前可达110个;7,报⽂采⽤短帧结构,传输时间短,受⼲扰概率低,保证了数据出错率极低;8,CAN的每帧信息都在CRC校验及其他检错措施,具有极好的检错效果;9,CAN的通信介质为双绞线、同轴电缆或光纤,选择灵活;10,CAN节点在错误严重的情况下具有⾃动关闭输出功能,以使总线上其他节点的操作不受影响;11,CAN总线具有较⾼的性价⽐。
四,CAN总线的系统构成及数据传输原理(⼀),系统构成1,CAN控制器:接收来⾃微控制器的数据,并处理发送给收发器,同时,也接收来⾃收发器的数据,处理传给微控制器。
2,CAN收发器:总线驱动四,CAN总线的的通信协议(⼀),⽹络层次结构可分为三个层:⽬标层,传送层,物理层,如下图所⽰物理层:规定了信号的传输过程中的电⽓特性(如传输⽅式及传输介质)及信号特性;传送层:帧组织,总线仲裁,错误检测等;⽬标层:信息识别,为应⽤层提供接⼝;其上述分层按iso/osi也可以分为两层:物理层,数据链路层(即⽬标层和传送层)。
can总线波形检测实验心得本次实验是关于CAN总线波形检测的,通过实验的学习,我不仅掌握了CAN总线波形检测的理论知识,更重要的是在实践中加深了对CAN总线应用的认识。
CAN总线是一种多主机、高速、可靠、实时性强的数据通信总线,在现代汽车、工业控制等领域得到广泛应用。
选用CAN总线有很多好处,即可减少线缆数量,降低维护成本,增加可靠性,提高数据传输速度,提高系统实时性。
在本次实验中,我学习了使用示波器和通信分析仪来分析CAN总线波形。
首先,我们需要在CAN总线上定义并发送数据帧,然后使用示波器捕捉CAN总线上的信号,并通过观察CAN总线上的波形,分析数据传输的情况。
在实践中,我观察到了如下几个重点:一、观察CAN总线上的波形,要重点分辨CAN总线上的SOH和SOL 分别对应CAN总线上的高电平和低电平,从而判断数据帧是否正确地发送到总线上。
二、分析CAN总线波形时,要注意每个CAN信号线上电位的变化,尤其是在出现错误时,要通过观察特定的错误标识码,分析错误原因,及时进行排查和修复。
例如,出现了错误的电压水平,说明CAN总线出现了故障。
三、当数据帧未能正确地发送到CAN总线上时,要通过示波器分析波形,及时发现问题,并进行排查。
例如,可以根据诊断数据或制造商的建议,查看是否存在不当安装或信号强度较弱等问题,以及检查是否存在总线长度过长、噪声污染、松动的连接以及总线终端等问题,并及时进行修复和调整。
综上所述,本次实验不仅仅是对我们掌握CAN总线波形检测知识的考验,更是对我们掌握CAN总线应用知识的指导。
我们需要在实践中不断总结和积累经验,不断提高自己的技能和水平,以便更好的应用CAN总线技术,为实际工程应用提供更好的支持。
pci-can总线互连技术学习总结CAN是一种现场总线,串行通信网络,一种串行通信协议。
在CAN总线通信接口中集成了CAN协议的物理层和数据链路层,可完成对通信数据的成帧处理。
PCI-CAN总线适配器作为CAN总线与PCI总线的接口是完成PC 机与总线节点的数据通信的桥梁。
CAN报文有五种不同类型的帧:数据帧、远程帧、错误帧、超载帧、帧间隔。
数据帧和远程帧借助帧间隔同当前帧分离开,构成数据帧和远程帧的帧起始、仲裁场、控制场、数据场和CRC序列则借助位填充规则进行编码,其余位场采用固定格式不需要进行填充。
错误帧和超载帧同样是固定格式,不需要位填充的方法进行编码。
PCI总线信号(待细看)总线互连原理总线互连顾名思义,是用于连接多种总线数据传输协议,涉及到两种及两种以上的总线规范,协调几种规范间物理电气等几方面的问题,已完成数据通信。
无论是复杂的还是简单的总线协议都会规定一下四方面:物理、电气、逻辑、过程。
物理方面,指出连接器的硬件构成;电气方面,确定了接口电路信号的电压、宽度和他们的时间关系;逻辑方面,说明了如何把数据或字符变换成字段,以及说明传输控制字符的功能使用;过程方面,说明了通信控制字符的法定顺序、各种字段的法定内容以及控制数据流穿越接口的命令和应答。
PCI-CAN总线互连技术PCI总线用于典型的PC环境中是当前PC总线的主导,CAN总线则是典型的现场总线协议。
PCI-CAN总线互连由三大部分组成,CAN总线接口、PCI总线接口、CAN总线PCI总线间的I/O接口,每一部分需要一个或多个软件以支持正常工作。
软件如何实现?应完成哪些功能?由总线互连的具体功能决定。
(1)与CAN总线控制节点的数据传输,并完成对节点数据请求、节点参数修改、节点状态查询、实时报警等功能;(2)通过PCI总线实现与PC机的数据传输,PC机访问PCI-CAN适配卡,实现对总线节点的控制。
对于一个功能简单的PCI设备,不需要支持所有总线操作,在满足总线的安全性和稳定性的前提下,选择适当的PCI总线操作即可。
1. 简介CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。
CAN的容错能力特别强,CAN控制器内建了强大的检错和处理机制。
另外不同于传统的网络(比如USB或者以太网),CAN节点与节点之间不会传输大数据块,一帧CAN消息最多传输8字节用户数据,采用短数据包也可以使得系统获得更好的稳定性。
CAN总线具有总线仲裁机制,可以组建多主系统。
2. CAN标准CAN是一个由国际化标准组织定义的串行通讯总线。
最初是用于汽车工业,使用两根信号总线代替汽车内复杂的走线。
CAN总线具有高抗干扰性、自诊断和数据侦错功能,这些特性使得CAN总线在各种工业场合广泛使用,包括楼宇自动化、医疗和制造业。
CAN通讯协议ISO-11898:2003标准介绍网络上的设备间信息是如何传递的,以及符合开放系统互联参考模型(OSI)的哪些分层项。
实际通讯是在连接设备的物理介质中进行,物理介质的特性由模型中的物理层定义。
ISO11898体系结构定义七层,OSI模型中的最低两层作为数据链路层和物理层,见图2-1。
图2-1:ISO 11898标准架构分层在图2-1中,应用程序层建立了上层应用特定协议,如CANopenTM协议的通讯链路。
这个协议由全世界的用户和厂商组织、CiA维护,详情可访问CiA网站:can-cia.de。
许多协议是专用的,比如工业自动化、柴油发动机或航空。
另外的工业标准例子,是基于CAN的协议的,由KVASER和Rockwell自动化开发的DeviceNetTM。
3. 标准CAN和扩展CANCAN通讯协议是一个载波侦听、基于报文优先级碰撞检测和仲裁(CSMA/CD+AMP)的多路访问协议。
CSMA的意思是总线上的每一个节点在企图发送报文前,必须要监听总线,当总线处于空闲时,才可发送。
CD+AMP的意思是通过预定编程好的报文优先级逐位仲裁来解决碰撞,报文优先级位于每个报文的标识域。
更高级别优先级标识的报文总是能获得总线访问权,即:标识符中最后保持逻辑高电平的会继续传输,因为它具有更高优先级。
以MCP2510爲控制器的CAN總綫使用後心得經過對由MCP2510爲控制器的CAN匯流排的應用,大致得出了以下結論。
一.首先是對晶片的電路接法,MCP2510的4、5、6、10、11可以空置,第3腳(CLK輸出脚)可以接到CPU 的OSC腳,以取代CPU的震蕩體,但最好不用。
如果對實時要求不高的話,第12脚(中斷脚)也可以空置。
還有因爲MCP2551性能不好,易損壞。
連到TXCAN、RXCAN的LED和5V間的電阻阻值不宜過小,取5K 以上,最好不接。
MCP2551的8脚决定了晶片的工作功耗,接地是高速模式(功耗大),接5V就會進入低功耗模式,和地之間接47K電阻是斜率模式(經常是用這種方式)。
第5脚的功能是輸出VDD/2的電壓,供別的晶片使用,這裏不用接。
最好用PCA82C250/251取代,管脚的接法和用法和MCP2551相容。
二.這部分主要是對SPI和晶片的操作碼作一分析。
下面的例子都是以PIC16F877爲平臺,用組合語言來編寫。
對SPI介面的讀寫方法如下:初始化SPI:InitSSPBANKSEL SSPSTAT ; SSPSTAT = 0x94 CKE=0 for mode 00 Operationbsf SSPSTAT,6bcf SSPSTAT,7BANKSEL PORT_CS2510 ; The PORT of CS2510 pin's locationbsf CS2510BANKSEL SSPCON ; SSPCON = 0x20movlw b'00100000' ; CKP=0 , Master Mode with Fosc/4 clockmovwf SSPCONreturnSPI介面的讀和寫。
寫:先把數傳入W,再調用Write_SPI_Byte。
讀:先調用Write_SPI_Byte,讀出的資料存放在W。
每次讀寫時要使CS脚爲0,讀寫完畢CS置1,下面是副程式:Write_SPI_ByteBANKSEL SSPBUFmovwf SSPBUFBANKSEL SSPSTAT ; Switch to SSPSTAT in order to test the BF FlagWait_BFbtfss SSPSTAT,BFgoto Wait_BFBANKSEL SSPBUF ; Read from SSPBUF will update BF Flag Automately !!movf SSPBUF,Wreturn控制MCP2510晶片方法:先說一下MCP2510晶片的操作,共有6個操作碼,重定,位元修改,讀數據,寫資料,讀晶片的各發送器和接收器的狀態,請求發送開始。
CAN总线学习心得摘抄.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。
原文来自:/my/space.php?uid=80086&do=blog&id=28342问:第一,接收信息的工作节点需要什么响应来确认?第二,接收的子程序未调好是否意味收发两方均无法调试?如何确认发送成功?答:网络上同一速率的正常工作节点响应:1、已设定速率;2、在工作状态。
完全是由硬件(比如:SJA1000芯片)完成ACK确认。
问:请问单个can 节点可以进行调试吗?是一块一路的can适配卡,使用端口地值300h,我使用winio进行读写的,可为什么,所有的单元读出来得数据都是ff?是因为只使用了单个节点can控制器不能正常工作吗?答:sja可实现单节点调试;ff应该是地址空间错误;问:我还是不太明白,你说的地址空间错误,是说sja1000的地址没有选通,地址没有指向sja1000的寄存器吗?答:首先把读写片选信号产生了再去管sja1000吧。
问:我用验收滤波器来选择接收CAN2.0B的一帧数据,29位中只对其中几位进行判别,其他位又不是定值,请问这该怎么办?可不可以掩住不关心的位?用范围应该也可以实现,不过那样感觉不好,请教大家,谢谢!答:相关/不相关位最终都可以转化为范围描述。
问:请教关于2119 can验收过滤器的问题请问:1、在canstarter-ii应用指南第42页中提到的“fullcan标准地址”与“标准单个地址”有何区别?2、第45页表2.34的“值”“字”“行”“id索引”是什么概念?答:fullcan标准地址放置的是需要自动执行接收存储的id索引表格(fullCAN功能,查看相关的介绍);标准单个地址仅仅是AF接收/屏蔽标准id的索引表格,即和一般的接收过滤理解一致。
答:fullcan模式下自动把符合的帧放在后面的ram里标准单个把符合的数据放在接收寄存器中问:将“LPC 系列ARM 微控制器的CAN 接收过滤设置”一文中的LTU.hpp加入原来的工程中(原来是用c做的),编译时有好多错误,用的确实是C++编译器,可感觉它对c++中的关键词不认识,请大家指教,谢谢!答:里头好像仅仅作用域符号“::”不是C的之外没什么特别之处。
问:以前我用的是485通讯,通讯协议里面都定义了包起始和包结束(CRC可以帮助验证是否包结束)。
而对于CAN这个东东,比如我要发送一个信息包有100个字节,发送倒没有问题,对于接收端,我怎样去判断包起始和包结束呢?困惑ing请斑竹和各位大虾们指教!!答:CAN-bus由硬件完成帧的错误控制、数据处理,因此,协议比RS-485会方便许多。
比如扩展帧格式:帧头(源地址、目的地址、命令字、辅参数) 数据场(分段码、0~7个数据) 超过8个字节/帧时,需要分帧处理。
具体方式,可以参考网页的《CAN应用方案》中通讯协议篇、RS-485升级篇。
问:我的应用为:一个主机(计算机)会和很多的从机连接,每个从机都将通过网络连接,所以必须使用HUB,你们的ZNE-100将接在HUB上。
计算机只要和HUB连接就可以了。
不知道我该如何设置ZNE-100?还有此HUB还能连接其他的计算机吗?答:《ZNE-100嵌入式以太网转串口模块使用说明》/club/bbs/ShowAnnounce.asp?ID=45775问:对sja1000进行硬件复位时,要求sja1000的片选同时有效吗?比如用138译码器的y1选通sja1000的复位线,来达到使sja1000复位的目的,那么此时要求片选线有效吗?答:见SJA1000数据,异步操作,不要求片选有效。
问:请问怎样把sja1000分时复用AD总线与pc104的数据线和地址线连接?答:周立功公司已经有现成的“PC104-CAN”接口卡提供。
问:DP51+上BasicCAN测试程序的问题在DP51+上用BasicCAN测试程序按键操作向其它节点发送数据时,总出现E-F8的错误,检查连线和波特率的设置也没有问题,真不知道是什么原因?也没法收到其它节点发送过来的数据。
有可能这是收发器TJA1050T出现问题了吗?答:可能是组建的CAN网络中有其他节点未设置正确,比如波特率.ZLG公布的代码都经过测试,附有文档说明。
问:在开发过程中遇到如下问题:(公司没有上ARM,出于对其狂热的追求,自己出银子买的DEMO板)1:想完成自发自收,CANMOD_STMBIT=1,CANCMR_SRRBIT=1,观察寄存器窗口,接收REG 内容没有发生变化,(自测模式是否需要搭建一个CAN总线平台??我只有一个DEMO和一个自己做的CAN总线收发器),接收中断也未发生,用的是周工最新的驱动.2. 如果只想接收ID为0x1234的信息,不用FULLCAN模式,该怎样设置才对呢?是不是这样:eFullCan禁能,则只需设置标准帧单个起始地址REG,把相应的ID填入就行了呢3. 每次调用 CanSendData(CAN1,cSlfSendCmd,TempBufPt),都将导致CANMOD_RM=1,发送错误计数器累加,好象是总线离线状态.郁闷啊还请斑竹和大虾们指点迷津答:CAN总线至少需要2个节点才好调试,要不怎样才能组成总线呢?答:网站可以下载代码,请参照配套的文档进行测试。
至少要加CAN收发器、终端电阻,建立再在PC上安装1个CAN接口卡,比如CAN232接口卡。
回复:原来采用的总线收发器的前端光耦出了问题!谢谢大家了!特别感谢周立功的技术支持工程师!问:如果要在CANBUS上供电12V或27V,该怎么做?因为CAN是平衡传输,要用差分信号来同步,现在要提高电平,该怎么做,以前请教过,但都只是说设计接口电路就可以实现,但是太模糊了,能否有过经验者提供一点有实际操作的思路。
感激不尽。
感谢你的关注!!!答:1,加一组电源线;2,收发器就是差分驱动器。
问:如果加电源线那还是总线供电吗?我的意思是两条线上既传信号又传电,请教可以做到吗?答:在CAN应用中的总线供电常指的是通过4芯或5芯通信线缆供电;收发器出来的仍然是基带信号没有调制的所以不容易实现线缆复用。
问:请各位高手解决:SJA1000收发扩展帧正常,但是不接收标准帧答:我认为SJA1000不会出现这种现象,除非发送方有错误.问:对FullCAN模式不是很理解,哪位老师给详细介绍一下,谢谢!答:简而言之,就是验收滤波方式的增强,BasicCAN只有一种滤波,PeliCAN有2种滤波,可以加上广播信息,而FullCAN就是有更多种滤波。
问:急,请各位老师近来看看2119 CAN验收滤波器问题设置如下:我用的是汇编:AF_MEM EQU 0xE0038000LDR R0,=AF_MEM ;读取验收滤波器RAM的起始地址LDR R1,#0x25522553 ;我需要标识为552和553的接收,CAN1控制器STR R1,[R0]LDR R0,=AFMR ;读取验收滤波器模式寄存器地址MOV R1,#0x00 ;这样启动滤波器对吗?STR R1,[R0]这样的情况下,CAN1接收中断不响应任何数据,这是为什么?中断机制完好,旁路滤波器时候全部响应的.关于CANSFF_sa寄存器该如何设置才能完成滤波接收?请指教。
答:修改RAM表格前应该先置位AccBP位LDR R0,=AFMR ;读取验收滤波器模式寄存器地址MOV R1,#0x02 ;置位AccBP,以便设置过滤表格STR R1,[R0]答:参考<LPC系列ARM微控制器的CAN接收过滤设置>问:在使用周的底层驱动时出了点问题,不知是什么原因用LPC2119中断方式做了一个转发器件,中断很正常,中断程序调用写环形环形缓冲区;主程序是读环形缓冲区,但是读时发生了数据中止,不解,就是下面第二句出了问题stcRxBUF *RxBuf;*RxBuf = CANRcvBufApp.RcvBuf[CAN1][CANRcvBufApp.ReadPoint1];答:网站资料已更新;查询方式会比较方便。
问:过载帧与错误帧是怎么使用的啊对数据帧,和远程帧很好理解,也很好使用,但是对过载和错误就不知道在什么地方用了,也不知道该怎么用了啊?请各位指点答:CAN控制器自己管理问:错误消极中断和错误警报中断该怎么处理呢?只是简单的复位么?这两种错误有什么区别呢?不太明白答:按流程可以不处理,参考网站示例。
问:仲裁丢失该怎么理解呢?仲裁丢失算不算是一种错误呢?仲裁丢失一般的处理是怎么样的呢?只是读取仲裁丢失捕捉寄存器么?答:不算,仅仅提供一个网络参考信息,例如网络负载/id分配是否合理等。
问:为什么在分析仪发出第三侦后,2119才产生接收中断,而且收到的是第一侦的数据,WritePoint2 = 1。
如果分析仪只发出一侦数据,不能产生中断,怎么回事?答:第三帧才产生中断可能是溢出中断,因为接收中断和溢出中断的额中断号是不同的,菲利普的早期资料中CAN的中断号有错,请下载最新资料!答:我试过中断模式,没问题,可以产生中断,可是周的低层驱动关于环形缓冲区那部分可能有些问题。
中断后调用写数据缓冲区,然后在主程序里循环读环形缓冲区。
忘了是在哪里会出现数据中止,按说是不应该出现的。
问:请教RTR位在滤波中的作用?请教各位老师:滤波器中的rtr位参不参与滤波,我在实验中有两个节点,采用双滤波标准帧通信,我设置接收方的acr0,acr1,acr2,acr3寄存器为00,20,00,00,amr0,amr1,amr2,amr3分别是00,0f,00,ff.发送方ID1,ID2为00,20;但是发送方的ID2,只要是20和30,该帧数据都能接收,其它的如40,50,都不行,我不知道为什么?是不是rtr位不参与滤波,发送方在发送的时间不必要考虑此位。
郁闷的不行,恳请帮助!答:就把它看作像id那样的一个bit看待吧。
问:SJ1000T中基本模式下只能检测8位的ID,但发送时确有11位ID,请问ID2-0有什么用?答:你指的是BasicCAN模式下的"验收过滤";其实,两种模式的所有11位或29位都有效。
问:BasicCAN模式下的"验收过滤"只能过滤ID10-3,请问ID2-0对接受有影响吗?资料显示并没有对ID2-0进行核对。
答:BasicCAN模式没有对ID2-0进行核对。
问:请问在双绞线上传输的CAN信号波形应该是怎么样的?信号的幅值和频率?另外,能否推荐使用在车辆上的电缆型号以及节点与总线相接的接插件型号!谢谢!!答:汽车类型不同,应用有所不同,建议参考SAE J1939协议内容中的规定,制定自己的规范。