首页 CAN总线学习心得_摘抄

CAN总线学习心得_摘抄

举报
开通vip

CAN总线学习心得_摘抄CAN总线学习心得 摘抄.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。原文来自:http://home.eeworld.com.cn/my/space.php?uid=80086&do=blog&id=28342 问:第一,接收信息的工作节点需要什么响应来确认?第二,接收的子程序未调好是否意味收发两方均无法调试?如何确认发送成功? 答:网络上同一速率的正常工作节点响应:1、已设定速率;2、在工作状态。完全是由硬件(比如:SJA1000芯片)完成ACK确认。...

CAN总线学习心得_摘抄
CAN总线学习心得 摘抄.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。原文来自:http://home.eeworld.com.cn/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页 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 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应用 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 》中通讯协议篇、RS-485升级篇。 问:我的应用为:一个主机(计算机)会和很多的从机连接,每个从机都将通过网络连接,所以必须使用HUB,你们的ZNE-100将接在HUB上。计算机只要和HUB连接就可以了。不知道我该如何设置ZNE-100?还有此HUB还能连接其他的计算机吗? 答:《ZNE-100嵌入式以太网转串口模块使用说明》 http://www.zlgmcu.com.cn/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 0xE0038000 LDR 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] 答:参考 问:在使用周的底层驱动时出了点问题,不知是什么原因 用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协议内容中的 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ,制定自己的规范。 问:有没有CAN控制器+单片机(不包括CAN驱动器),成本不超过15元的方案?可付报酬! 答:目前我们没有能力实现。 答:io模拟低速can。 问:请问CAN总线是不是不能提供总线供电?如果希望总线供电该如何做?谁能提供一点关于CAN能总线供电的资料啊? 答:CAN 或 DeviceNet 都可以总线供电,根据需要选择适合的应用。 CAN 没有规定物理层.是一种相当灵活的现场总线。DeviceNet、CANopen均是基于CAN-bus协议,自定协议也不难。 问:请问远程帧的作用是什么?在什么情况下需要使用它? 答:那是一种可用可不用的帧资源. 问:基地址选了0xda00,偏移量选择0000后,sja1000得寄存器的地址是从0xda000开始吗? 答:对的。 问:在每次只收到一帧的情况下,我置位清除接受缓存都没问题,但是一旦在短时间内接收到2帧或以上时(短时间指,第一帧还未完全被微控制器接收而第二帧已经到来)我收完一帧,置位清缓就会出错。然后我复位继续接收下一帧微控制器就不能从sja1000接收了,为什么会这样那?置位清缓不是只清掉第一帧数据么?如果只清第一帧数据的话,应该第二帧可以收到的啊?这是怎么回事那?要怎么解决那?谢谢了。 答:不会这样的,查查其他原因。 问:请教版主CAN总线用于爆炸性气体环境可以吗? 在网上搜索了一下,看到的 是几年前发表的 文章说CAN总线没有解决防爆问题,不知现在有没解决在爆炸性气体环境使用CAN总线通信。如果没有那只好用以前的 485了 改成hart还是更麻烦 答:在《现场总线控制系统的调试与开发》--国防工业出版社的技术书籍第8页,列出了CAN-bus是本安的总线之一。 问:请问Can232和can232B转换器的通讯协议是否必须和计算机相连才能更改我想用转换器直接与PLC相连不知如何设置通讯协议。 答:看应用场合而定,可以不用设置协议。这一份文档中有很好的说明! 问:关于节点发送的问题向你请教。 发现经常我的硬件复位有时不是成功的,导致发送不成功。读状态寄存器SR=0x04,或0x44;请问这种情况是怎么回事?? 答:“硬件复位有时不是成功的”不容易理解;建议看一下前面的贴,或网站的参考程序。 问:那请问:硬件复位后,我发送前读状态寄存器SR=0x04,也就是“当前请求的发送未处理完”,这种情况下发送时不能成功的。 有时候硬件复位后发送前读状态寄存器SR=0x0c,这种情况下发送时可以的。 请教:为什么硬件复位后还会出现像前面的那种状态寄存器SR=0x04,也就是“当前请求的发送未处理完”的情况, 应该如何处理??? 答:硬件复位成功后 SR= 0X0C ;否则就是硬件方面存在问题。建议用网站公开的电路与程序,或者直接在DP系列实验仪上测试。 问题1:在通讯时出现错误,用软件复位能否将错误清除? 问题2:软件复位是否将以前设置的参数改为默认值?是否需要重新初始化? 答:1.可以;2否,是 问:为什么我在复位模式下CDR寄存器写不进那?其他寄存器都可以写进去,就是CDR写不进去。。 不明白为什么,和其他寄存器一样的写法,语句,但是无论写什么进去,读出来都是00H。可以帮忙解答以下么?谢了 注:无论读写都是在复位模式下 答:芯片SJA1000的硬件复位会使CDR=0x00。 求助,为何我写不了CAN地址大于8的寄存器? SJA1000的基地址是BF00H,我对SJA1000的寄存器在复位模式下进行写,写完读出(当然是对于可读写的)发现对于CAN地址大于8的写入一定的数之后再读出,读出的数大部分是FF,而不是我写如的数,哪位大侠可以提供帮助?谢谢。在PELICAN模式下。 答:你在basic模式下试一下。 答:也可能是硬件接线问题。 问:SAE J1939的中文资料在哪里找? 答:一般不会有中文资料,看网站《应用方案-通讯篇》。 请问版主及各位大虾:汽车CAN节点与工控CAN节点的?区别在什么地方 答:通讯距离、应用层协议不同,电路稍有不同,参考网站资料。 问:我现在正在做与CAN总线相关的课题,买了CANstarter-I 开发套件,现在差不多快看完了。不过现在有一个问题,就是各位在自己做实验时硬件是怎么做的,是自己搭手工焊接的电路板,还是用Protel制作PCB图后印刷出电路板来?Protel我以前从未学过,要按电路图去自己做PCB的话周期太长,可自己焊又不能保证电路板的稳定性? 答:配套光盘中有PROTEL格式的CAN节点原理图,PCB可以参考实验仪。 问:我用中断接受can总线发来的数据,可是单片机怎么也进入不了外部中断程序?为什么? 8051中关于外部中断0的设置我都设置了,可就是进入不了isr,如果我采用查询接受,int/端的电平就显示正常(低到高),一采用中断,int/端的电平就被拉低不会变高,我在isr中设置了点灯测试,当有数据时因为灯没亮,所以我判断是进入不了isr,各位老师看看这是为什么呢? 答:设置电平触发,确保mcu相应中断的其他设置正确。 问:再用USBCAN-I时,ZLGCANTest为什么不能设置波特率?那时钟频率是多少啊?说明书上也没有说明啊 ? 答:打开设备时定时器0、定时器1就是用于设置波特率的。详细请看相关的用户手册。16MHz,在编程接口文档中应该也有说明。 问:关于SJA1000的错误处理! 在SJA1000的资料上可以看到,它有一个错误代码捕捉寄存器(ECC),通过查询这个寄存器我们可以知道总线错误的类型和位置信息。但在实际的应用中,我们好像对这方面CAN总线错误处理的功能用的很少,可能有时也没考虑。一方面CAN总线的错误很少发生,另一方面我们缺少这方面总线发生错误的的实际例子, 在实际的总线应用过程中,CAN总线的错误是应该也必须考虑的,因为这直接影响CAN网通讯的质量和可靠性。 我希望各位同行能在这方面提出自己的看法。。。。。。 答:精华区有相关的讨论贴。 问:正常模式下发送,给命令寄存器赋值0X03,由于没有另一点的响应,这一点会一直发送(在示波器的波形可以看出),我现在问题是,这一点在重新软件复位后,就不能发送了,读状态寄存器 ,显示最后一次发送未被处理成功,假如关闭电源硬件复位重新开始又可以发送了。请教大家可以取消CAN节点的发送命令吗?用软件怎样实现?答: 请问你所指的软件复位是什么?是进入复位模式吗?如果是的话当然不行。答:我说的软件复位是指使仿真器重新编译,程序从头运行。就是MCU给SJA1000复位模式初始化后退出复位模式,进入工作模式后再发送 .问:大家好,我最近刚开始用can总线设计一个项目,目前遇到一个很大的困惑,就是在设计can智能节点时(WEE758+SJA1000+TJA1000),两者的接口通讯都有问题,初始化好像过了,但用ZLGTEST软件调试,不能正常收发数据,我查了硬件电路,没有问题,我郁闷死了,请问大家该从哪方面下手去找原因啊,我用的电路是CANSTART-I用户指南里面的那个程序,不知道有没有问题。请有经验的人帮帮忙啊,我的时间太紧了。答:先测试你的硬件 物理连接是否通过,可以先给SJA1000写一个值如0xAA,再访问SJA1000读出来看是否是0小AA?答:"不能正常收发数据,我查了硬件电路,没有问题...",这不自相矛盾了吗?1,把所sja1000当作xdata ram测试看看是否总线连接正常,sja受控?2,发送时看看总线是否出现差分信号?物理连接是否正常?这就基本把硬件问题定位了。问:请帮忙看一下程序,谢谢! SJA1000中地址16 写入0x88地址17 写入0x04地址18 写入0x03地址19 写入0x02地址19 写入0x01使用ZLGCANTEST软件得到的ID应该是多少?怎样计算?我得出的是0x00806020,好象是右移了五位?是否正确啊?答:工作在PeliCAN模块的话,参照产品手册附录2可以获得在总线上的ID值。问:输出控制寄存器的OCMODE1和OCMODE0可以设置为四种方式,双相、测试、正常和时钟输出,一般应该选择哪一种输出比较好,通讯可靠性高。答:常用push-pull模式,这比较通用,适应性较好。问:在用ZLGCANTest 1.4版在调试程序时,下位机发送标准数据帧,USBCAN-II智能卡收此信息.下位机的ID号为:0x00000035,如果将ZLGCANTest的"打开设备"对话框中的验收码设为0x00000035,屏蔽码设为0x00000000,为什么不能收到信息.如何在ZLGCANTest中设置验收滤波器?(发送节点ID为0x00000035,发送标准数据帧,接收端为USBCAN-II智能卡)答:验收过滤设置为4个寄存器,但需要根据接收帧格式进行设置,而不是简单地对应关系。请参考提供的《CAN控制SJA1000验收滤波器原理与应用.pdf》资料。问:不好意思,因为我在调试中,下发的报文没有反应,但是能收到下位机送上来的信息,我问了我们开发装置的同事,他说可能跟ID有关,所以我想再确认一下:frameinfo.ID = (DWORD)(Send_Group[i].Buffer[0] << 8) + (DWORD)Send_Group[i].Buffer[1];//没有把整个ID右移5位Data[0] = Send_Group[i].Buffer[2];Data[1] = Send_Group[i].Buffer[3];Data[2] = Send_Group[i].Buffer[4];Data[3] = Send_Group[i].Buffer[5];Data[4] = Send_Group[i].Buffer[6];Data[5] = Send_Group[i].Buffer[7];Data[6] = Send_Group[i].Buffer[8];Data[7] = Send_Group[i].Buffer[9];frameinfo.DataLen=8;//datalenmemcpy(&frameinfo.Data,Data,8);frameinfo.SendType = 0;frameinfo.RemoteFlag = 0;frameinfo.ExternFlag = 0;if (VCI_Transmit(2,0,0,&frameinfo,1)==1){ TRACE0("写入成功"); }else{ TRACE0("写入失败");}这样的frameinfo信息,在下发时CAN卡是否会对frameinfo.ID重新处理?答:这个ID就是发送到总线上的CAN ID。 CAN的id有11位范围或29位范围。 PCI-9810 光盘上的示范代码: VCI_CAN_OBJ senddata; senddata.SendType=sendtype; senddata.ExternFlag=frametype; senddata.RemoteFlag=frameformat; senddata.ID=id; senddata.DataLen=i; memcpy(senddata.Data,data,i); if(VCI_Transmit(m_devtype,m_devind,m_cannum,&senddata,1)==1) { ListBox1->Items->Add("发送成功"); } else { ListBox1->Items->Add("发送失败"); }答:检查一下你所谓的上位机的验收滤波寄存器的设置回复:通讯成功了,谢谢各位,错误原因是我的程序中有个BUG。问:用2119做了一个CAN中继器,单向发两边都很正常,1M无延时的发送都可以应付,可是双向发发几百帧就堵塞,很奇怪,是处理能力不够还是怎么回事?我用的是查询,主循环里查询CAN1、CAN2控制器的接收状态位,置位就转发。感觉已经不能再精简了,请大家帮忙诊断一下,谢谢!答;采用中断接收并压入缓冲区,主程序查询发送OK,堵塞绝对不是芯片性能引起的,除非另一方设备接收存在问题。 问:关于SJA1000的读写时序 我看sja1000的数据手册上是:先是ALE锁存信号有效对地址进行锁存,然后才是/CS片选信号有效(此时读写信号,数据也有效),我得疑问是/CS信号在整个CAN通信期间不是一直有效吗?在地址锁存时必须是无效的吗?在CAN使用期间我如果让/CS一直为低可以吗?请知道的大侠不吝指教啊!!答:若不需要考虑其他地址冲突和功耗因素的可以这样。 问:请教:CAN总线收发器PCA82C250的斜率电阻Rs的选择问题。 是用47k的吗?还是4.7k啊?哪位仁兄告诉一下,谢谢!答:如果你没有什么特殊的要求,直接接地就行了答:47k的。问:各位大侠,我想用双滤波进行通讯,我想请教一下,另一个节点是不是也必须是双滤波格式才能进行通讯?我在通讯中设置的其中一个节点的ACR0,ACR1,ACR2,分别是00,00,02,选择的是标准帧格式;另一个节点的发送标识1,标识2分别是00,0B ,为什么也能够通讯呢,按照滤波器工作原理来说,只要一个滤波器通过验收就能通讯,可是上面00,0B并没有通过滤波器1呀!我糊涂了,请教各位大侠,非常的感谢!答:友情提醒朋友,资料很多在网站上已发表,查找一下即可。见《CAN控制器SJA1000验收滤波器原理与应用》。 问:标识符确定?? 假设网络中有A、B两个节点。A请求B发送数据,则A发送远程帧(B标识符+RTR)。B点接收到该帧后,如何判断这是谁发来的请求帧?若是A点,则B点发送数据帧(A标识符+RTR+数据长度+数据)。关键的问题是,在多个节点组成的系统中,各节点之间如何管理?相互之间如何识别和握手??答:应用层协议的建立,请参考《CAN-bus 现场总线基础方案--通讯篇》。答:每个结点都是对等的,你只需要规划好发送结点的ID 与接收结点的acr,amr的对应关系就好了。可以这样理解,每个结点的数据都发送到了总线上,至于这个数据哪个结点能接收到,就是决定于这个结 点的acr,amr了,当然要比照发送结点的ID。新手上路:两个CAN节点相连时,CAN高线连CAN高线、CAN低线连CAN低线,还是交叉相连?答:CAN_H连接CAN_H,CAN_L连接CAN_L。问:两个CAN节点(51+sja1000+82c250,自测试通过),id分别是1和2,Peli模式,波特率相同,发送端发出一帧(扩展帧)后,SR由0C变成60(表示:正在发送且出错),ECC变成D9(表示:发送时应答时间段填充错),why? 是因为另一个节点未发出应答么?应答应由硬件自动完成吧?那时因为什么呢?(波特率100kbps,BTR0=41H,BTR1=B9H)答:应答有硬件自动完成。问:我现在没有CAN的接收器,就简单的把CAN的两个输入、输出连起来,发现输出有信号,输入没信号,不知这样可不可以?有没有更好的办法来检验我设计的电路?答:将CAN控制器的TDx与RDx连接可以进行测试,具体参考相关的CAN控制器手册。本人不提倡这种方法,因为没有实际应用价值。询问sja1000在16mhz晶振下波特率问题 我看了sja1000的总线定时寄存器BTR0和BTR1的设置问题,我看了多个资料上的数据,感觉不太统一,发贴确认一下,16MHZ情况下是这样的吗?,麻烦了。另外,我也才学了一端时间的can总线,有此爱好的朋友可以加我msn:tianlei_126@hotmail.com或者qq:1823547316MHZ晶振下波特率(Kbit/s)BTR0 BTR1 20 053H, 02FH 40 087H, 0FFH50 047H, 02FH 80 083H, 0FFH100 043H, 02fH125 03H, 01cH200 081H, 0faH250 01H, 01cH400 080H, 0faH 500 00H, 01cH 666 080H, 0b6H800 00H, 016H1000 00H, 014H答:16mhz下多个资料BTR0,BTR1的值不同,事实上都是对的 ,这两个值只要遵从比例就好了,详细了解一下位定时的计算就清楚了。问:我现在正在用sja1000做CAN接口的硬件部分,请问书上CAN_H和CAN_L部分间的两个二极管起什么作用啊?是不是必须接啊,应该选什么型号的呢?(比如说什么功率的)查了好久都没看到这部分的说明,请大家一定告诉我啊,着急要画图啊!先行谢过了!!答:这两个二极管叫做瞬态抑制二极管,主要是总线过压保护,具体可以查找瞬态抑制二极管资料。答:这两个二极管可以不要,如果总线稳定,没什么影响,就是一种保护。个人看法,仅供参考,多多指教!问:在CAN卡中,把IDH和IDL放在同一个ID中,请问发送的时候是不是把ID右移5位来分成IDH,IDL?答:在你过去的问题中从中抽取一些有用的信息“公司中规定IDL中低五位是固定的01000”可以确定:1.使用的是数据帧,不用远程帧;2.数据长度dlc恒为8;你想发送frameinfo.ID = 0x000081E8,(这是你们的协议吧?),分解IDH=0x81,IDL=0xE8,这个时候真正的id是0x000081E8 >> 5;丢了什么呢?dlc和rtr位,而在VCI_CAN_OBJ中DataLen对应dlc,也就是你们公司要求的8,RemoteFlag对应rtr位设置为0。 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf :VCI_CAN_OBJ.ID = 0x000081E8 >> 5VCI_CAN_OBJ.DataLen = 8VCI_CAN_OBJ.RemoteFlag = 0其他略。问:为什么我一上电,SJA1000的INT管脚就为低电平,是否要加上拉电阻?答:SJA1000的INT管脚是一个开漏输出,需要外部上拉。我用CAN-MINI和饶教授书中例子的实验板通讯,发现总也不能连通。用饶板发送数据,不能被CAN-MINI接收,且82C250上的数据发送一直不停。我想是不是有下面几个问题:1、波特率不对。饶板用40K,不知道MINI怎么设,设哪几个参数,MINI用的晶振频率多少2、设定的ID 不对,我真不知道该怎么设ID,能不能给个例子。 先谢谢了!:)答:先看CAN-MINI的用户手册,那里能找到大部分答案。CAN-MINI用16MHz晶振;网站有一个波特率计算工具下载;问:设波特率是不是用“打开设备-》定时器0、定时器1”?每次都是0x00,0x14.MINI的缺省波特率是多少啊?答:用户说明文档中有常用波特率设置表格,0x00、0x14对应1Mbps。问:两个CAN节点,Peli模式,波特率相同,发送一帧后,SR由0C变成60,ECC变成D9(发送时应答时间段填充错),why?是因为另一个节点未发出应答么?应答应由硬件自动完成吧?(波特率100kbps,BTR0=41H,BTR1=B9H)答:none。问:51的晶振和与51相连的SJA1000的晶振频率一定要相同么?答:SJA1000的晶振只管CAN bit逻辑及总线bit stream定时,与总线接口无关。问:在发送完一帧数据后,一定要用中止发送么?接收方的应答是硬件自动完成还是需要写软件实现?答:终止发送一般仅仅用于处理异常终止,正常发送成功没必要。问:SJA1000用6M的晶振,波特率100Kbps,BTR0、BTR1应该怎么设置啊?用计算工具得出很多值?应该怎么选择呢?答:采样点在65%-85%之间的都行,短距离没有特殊要求。问:SJA1000的初始化均正常,写发送缓冲区也正常,但是对命令寄存器写发送命令后,用示波器观察发送脚,无信号,读状态寄存器的值为00H,烦请各位高手帮忙分析,感激不尽!!!答:读状态寄存器的值为00H?硬件连接是否正常,sja是否真的受控了?还有晶振起否?复位电平撤销否?。。。等等依稀记得还有两个寄存器设置为0x1a(输出管脚配置)和0xc8(模式及分频)的; 千万不要引脚连错!!!这样类似的问题不止是听过一两次了
本文档为【CAN总线学习心得_摘抄】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_790587
暂无简介~
格式:doc
大小:49KB
软件:Word
页数:10
分类:互联网
上传时间:2013-04-23
浏览量:34