同理,上位机也需要sja1000和pca89c250作为can接口。有两种解决方案:一种是在电脑上安装一个can卡,需要购买的话,从can卡上接canH和canl两条线,实现通信与下位机,但是这个方案不靠谱,那个CAN卡容易出问题,当然,电脑端也必须做一个/。

1、假如CAN通讯为一主多从,且从节点MCU可变换,CAN通讯从节点ID怎么设置,CAN...

CAN通讯不是一主多从。CAN通信允许节点立即联机和脱机。节点ID设置可以属于CAN应用层协议,应用协议可以自己定义。1.如果从节点的ID与MCU“无关”,可以通过多种方式实现。ID预先载入EEPROM或由硬件的dip开关指示。如果逻辑复杂,可以自动分配和识别ID。2.“如果程序从主节点下载到从节点”,主节点可以同时向多个从节点发送数据(广播),也可以向特定的ID发送数据(单问单答)。

2、【基于CAN总线的压电贾卡控制系统】can总线控制系统

3、怎么使两个单片机间进行CAN 通信

配置主从模式。如果单片机本身有CAN接口,通过增加一个CAN收发器,连接导线,跳终端电阻,配置相应的寄存器就可以通信。如果微控制器本身没有CAN接口,则需要在外部增加一个额外的CAN控制器,微控制器通过SPI总线或并行总线访问CAN控制器进行配置和数据交换。

4、STM32HAL库写CAN 通信 程序最近遇到了难题,有谁有具体例子不

供参考,半年前接触STM32,开始用32F1做MCU,库用标准外设库3.5。我写了一些简单的东西。后来发现ST里还有一个叫STM32CUBEMX的软件,可以自动生成初始化程序,对于我这个32岁的新手来说无疑是天赐之物!终于不用担心复杂的配置了(其实我对各种配置都不熟悉,也没有自己积累的程序 CtrlC CtrlV)。

不过我对标准外设库不太熟悉,CUBE的界面设计确实让配置项目非常方便。另外它还有一个类似FPGA的管脚分配接口,使得资源分配和PCB布局布线方便很多,所以我选择了使用CUBE和HAL库。很多很久以前开始写32的朋友都尝试过HAL库,但是最后都无一例外的选择了继续使用标准外设库。

5、能不能详细介绍下can总线与上位机 通信的方式方法,好的话的会再加分...

CAN总线是多主总线,你可以理解为工作在全双工模式(其实不是),和上层的232没什么区别。CAN无法直接连接pc 通信。Can需要一个转换器来与PC交换数据。常见的有can232或基于can232的canusb。我已经设计好了,但是还没做usb。其实很简单。自己做的话可以买个转换器,也不是很贵。

6、C#开发上位机与CAN总线 通信 程序

can bus 通信,没你想的那么简单。如果只用两根线就能实现,还需要sja1000和pca89c250吗?同理,上位机也需要sja1000和pca89c250作为can接口。有两种解决方案:一种是在电脑上安装一个can卡,需要购买的话,从can卡上接canH和canl两条线,实现通信与下位机,但是这个方案不靠谱,那个CAN卡容易出问题。当然,电脑端也必须做一个/。

7、CAN总线 通信中,如果是多节点 通信。多 通信中遇到了问题。问题在补充中...

只需读取CAN控制器接收缓冲区中的数据。注意,如果你下面有很多节点,建议给每个节点做一个简单的协议延时来回复数据(比如根据每个从节点的ID),否则总线仲裁时间会很长,影响通信效率;此外,您的主机应该足够快地处理接收缓冲区,否则它可能会丢失数据(总线溢出)。不是重发,而是小ID发完之后再发。这个动作都是由CAN控制器完成的。

但是CAN本身的协议中是没有主从的。其次,楼上提到的仲裁延时问题,在CAN协议本身就考虑到了。当然可以按照他的方法用协议延迟来解决,但是既然CAN协议已经给了我们解决方案,那就一定是更科学有效的。具体去CAN仲裁吧。你需要一个节点无延迟的发送消息,给它分配一个高优先级的ID就行了,这当然是从网络规划的角度来说,没那么简单。

8、多组can线接同一个端子会怎样

会导致以下问题:1。信号冲突:当多组CAN线连接到同一个端子时,不同节点发出的信号会相互干扰重叠,造成信号冲突,无法正确分析识别数据。这会导致通信错误和数据错误,影响整个CAN网络的正常运行。2.总线信号质量下降:将多组CAN线连接到同一端子会增加总线上的电流和噪声,从而降低信号质量。这样缩短了信号传输距离,增加了误码率,容易出现通信故障。

9、我现在在做2292的can,如何实现当can1总线发现错误时切换can2 通信...

我觉得你应该把这个问题和CAN总线协议分开,因为CAN总线硬件链路层协议和数据链路层协议都是标准的,也就是CAN2.0A和CAN2.0B协议。我觉得你应该定义上层的应用协议,专门针对你的通讯信息,比如你要传输“设置范围的上下限,上下限报警,绘制历史和实时曲线”等信息的协议,如果是这样,那就简单了。解释:协议是两端之间的通信语言,你至少要有两个CAN节点,然后通过线路(也就是一对差分线)连接起来,然后就可以用CAN底层协议互相通信了。您要决定的协议是定义可以接收的数据代表什么,一般来说,一个协议应该包括头尾和中间内容。比如当一帧的第一个字节是0xfe (CAN协议一帧可以传输8个字节)时,它被认为是你的一个协议包的起始标志字节,一个协议包被定义为8个字节,最后一个字节是0xEF作为结束字节标志,这样当你的CAN接收到0xfe的第一个字节,帧的最后一个字节是你需要的协议包时,你就可以定义第二个字节来表示这个包的传输意义,比如0xef。


文章TAG:通信  程序  多can通信程序  
下一篇