can总线怎么和单片机(can总线编程实例)
今天给各位分享can总线怎么和单片机的知识,其中也会对can总线编程实例进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、can总线与单片机的硬件连线
- 2、CAN通信:CAN卡接收到的ID和单片机里设置的ID不相同是什么原因?
- 3、怎么使两个单片机间进行CAN通信
- 4、51单片机与51单片机如何用CAN总线连接通讯?急啊!!
- 5、单片机Can通讯怎么用,
can总线与单片机的硬件连线
1、单片机(如富士通的MB96F346)如果有集成的CAN控制器,则将单片机直接连接CAN收发器(例如PCA82C250),即可以通讯;若果单片机没有集成的CAN控制器(如51单片机),则需要将单片机连接CAN控制器,再连接CAN收发器,即可通讯,方案SJA1000+PCA82C251。具体接线线路可查看芯片数据手册。
2、CAN_H跟CAN_H接呗,CAN_L对CAN_L,地可接可不接。但是要保证两边都接了120欧姆的终端电阻。
3、片选随便接那个脚都可以,配合软件就可以了。sja1000的数据总线直接与52的p0(数据与低八位地址复用总线)口对应相连就可以了,用MOVX指令(也就是用DPTR)访问即可。这时把SJA1000当外部数据存储器用即可。
4、如果单片机本身带有CAN接口,那么外部加好CAN收发器、连好线、跳好终端电阻,之后配置好相应的寄存器,就能通信了。如果单片机自身没有CAN接口,那么外部还需要额外添加CAN控制器,单片机通过SPI总线或并行总线访问CAN控制器进行配置和数据交换。
5、首先,CAN通信需要有接口的,在有接收的基础上,再加一片CAN总线驱动芯片PCA82C250才行。这是要看你是什么单片机了,有的单片机带有CAN接口的,就像带有串口UART一样。带有CAN接口的单片机,有专用的通信用寄存器来实现通信,与串口无关。
CAN通信:CAN卡接收到的ID和单片机里设置的ID不相同是什么原因?
B:如果下位节点的移位确认是正确的,那么需要确认CAN卡的接收是否是直接显示的节点ID还是显示的SJA1000的ID接收寄存器,因为有的厂家没有把SJA1000寄存器值还原成实际ID。
型号一样不代表ID就是一样的。CAN总线各个节点之间进行通讯是根据各个节点不同ID对数据帧进行接收反应的。总线上每个节点的ID都是不同的,这个可以通过软件上编程设置,有些仪器上好像也可以自己通过手动写进去。
标识符ID用来描述数据的含义而不用于通信寻址,CAN总线的帧是没有寻址功能的。标识符还用于决定报文的优先权,ID值越低优先权越高,在竞争总线时,优先权高的报文优先发送,优先权低报文退出总线竞争。CAN总线竞争的算法效率很高,是一种非破坏性竞争。
cCopy codeCAN_HandleTypeDef hcan;//清零发送错误计数器hcan.Instance-ESR |= CAN_ESR_TEC; //清零接收错误计数器hcan.Instance-ESR |= CAN_ESR_REC;其中,hcan是CAN控制器的句柄,CAN_ESR_TEC和CAN_ESR_REC分别表示发送错误计数器和接收错误计数器。
……之前问这个问题的也是你吧。CAN 0A/B的扩展帧最多可携带8字节数据。所以你应当合理设计通讯协议,在ID域中体现出包序号和拼包要求,16字节数据拆分为两个8字节的块,用两个帧分别传输。接收端根据ID判定是否需要拼包、这是第几包,在应用层或协议层自行完成拼包。
CAN帧的类型:Data Frame:数据帧,用于传递0-8byte数据。Remote Frame:远程帧,用于要求其它节点发送相同ID的数据帧。Error Frame:错误帧,总线上任何节点发现错误均可发送错误帧。Overload Frame:过载帧,总线负荷过高时,在数据帧或者远程帧之间产生。
怎么使两个单片机间进行CAN通信
1、如果单片机本身带有CAN接口,那么外部加好CAN收发器、连好线、跳好终端电阻,之后配置好相应的寄存器,就能通信了。如果单片机自身没有CAN接口,那么外部还需要额外添加CAN控制器,单片机通过SPI总线或并行总线访问CAN控制器进行配置和数据交换。
2、can通信要经PCA82C250驱动,才能成为can总线,才能与其它CAN设备通信。两片单片机也要用PCA82C250芯片的。
3、首先,CAN通信需要有接口的,在有接收的基础上,再加一片CAN总线驱动芯片PCA82C250才行。这是要看你是什么单片机了,有的单片机带有CAN接口的,就像带有串口UART一样。带有CAN接口的单片机,有专用的通信用寄存器来实现通信,与串口无关。
4、将两个单片机的RXD与TXD相连\x0d\x0a根据需要传输的数据编写传输协议\x0d\x0a编写串行通信程序,将自己需要发送的数据按照协议进行发送\x0d\x0a编写接收程序,按照协议进行接收\x0d\x0a将两个程序分别写入两个单片机,运行。
5、一般采用单片机串口通讯就可以。串口通讯采用什么信号,要根据实际情况确定。如果单片机之间通讯距离远的话,可以采用RS485通讯方式;如果单片机之间通讯距离近的话,两个单片机串口可以直接通讯。如果对通讯速度要求不高的话,也可以用单片机的普通口做,通过外搭电路,实现两个单片机的通讯。
51单片机与51单片机如何用CAN总线连接通讯?急啊!!
1、CAN_H跟CAN_H接呗,CAN_L对CAN_L,地可接可不接。但是要保证两边都接了120欧姆的终端电阻。
2、如果要解决的话就测到自身故障时,将切断输出,退出通信,并向上位机报警,同时发出声光报警.自订CAN高层协议问题,解决的办法就是:规范CAN0A规定标准的数据帧有11位标识符,用户可以自行规定其含义,将所需要的信息包含在内。
3、单片机(如富士通的MB96F346)如果有集成的CAN控制器,则将单片机直接连接CAN收发器(例如PCA82C250),即可以通讯;若果单片机没有集成的CAN控制器(如51单片机),则需要将单片机连接CAN控制器,再连接CAN收发器,即可通讯,方案SJA1000+PCA82C251。具体接线线路可查看芯片数据手册。
4、首先,CAN通信需要有接口的,在有接收的基础上,再加一片CAN总线驱动芯片PCA82C250才行。这是要看你是什么单片机了,有的单片机带有CAN接口的,就像带有串口UART一样。带有CAN接口的单片机,有专用的通信用寄存器来实现通信,与串口无关。
单片机Can通讯怎么用,
首先,CAN通信需要有接口的,在有接收的基础上,再加一片CAN总线驱动芯片PCA82C250才行。这是要看你是什么单片机了,有的单片机带有CAN接口的,就像带有串口UART一样。带有CAN接口的单片机,有专用的通信用寄存器来实现通信,与串口无关。
如果单片机本身带有CAN接口,那么外部加好CAN收发器、连好线、跳好终端电阻,之后配置好相应的寄存器,就能通信了。如果单片机自身没有CAN接口,那么外部还需要额外添加CAN控制器,单片机通过SPI总线或并行总线访问CAN控制器进行配置和数据交换。
如果要解决的话就测到自身故障时,将切断输出,退出通信,并向上位机报警,同时发出声光报警.自订CAN高层协议问题,解决的办法就是:规范CAN0A规定标准的数据帧有11位标识符,用户可以自行规定其含义,将所需要的信息包含在内。
单片机(如富士通的MB96F346)如果有集成的CAN控制器,则将单片机直接连接CAN收发器(例如PCA82C250),即可以通讯;若果单片机没有集成的CAN控制器(如51单片机),则需要将单片机连接CAN控制器,再连接CAN收发器,即可通讯,方案SJA1000+PCA82C251。具体接线线路可查看芯片数据手册。
CAN_H跟CAN_H接呗,CAN_L对CAN_L,地可接可不接。但是要保证两边都接了120欧姆的终端电阻。
can总线怎么和单片机的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于can总线编程实例、can总线怎么和单片机的信息别忘了在本站进行查找喔。