微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于C8051的CAN多点实时数据通信系统

基于C8051的CAN多点实时数据通信系统

时间:02-16 来源:互联网 点击:

在这个系统中,电脑作为主机,通过USB/CAN转换器与CAN总线相连,使用软件工具CANTools-V6.2进行数据地发送、接收以及显示。系统中两个CAN节点分别为开发板1和开发板2,通过编译相应的程序,使得CAN节点能实时把数据发送到主机,主机可根据接收到的数据向CAN节点发出控制信号来改变CAN节点回发的数据,以此达到实时通信控制的目的。同时两个CAN节点之间也能互相进行数据通信,并把所接收到的数据显示在开发板的LCD屏上。
3.2 软件设计
软件设计分为两大部分:(1)主程序的设计。(2)CAN通信库函数程序的编写。
主程序主要涉及的是程序流程,包括调用初始化函数,打开中断,根据与主机通信还是与其他节点通信调用CAN通信库函数编写出相应的通信流程,流程图如图3所示。

CAN通信库函数主要包括:系统初始化函数、CAN初始化函数、CAN中断服务函数、CAN接收数据函数和CAN发送数据函数。
这里详细讲述CAN通信库函数中,CAN接收数据函数、CAN发送数据函数和CAN中断服务函数。
CAN接收数据函数和发送数据函数的流程图,如图4所示。

CAN中断服务函数程序流程图,如图5所示。

4 结束语
系统可以完成各个节点之间以及节点与主机之间的实时数据收发,基本完成了多点实时数据通信任务,能做到速度快、延迟低、错误率低、稳定性高,并且能够在电脑上直观地看到实验结果。通过示波器测得该系统完成一次通信需要10.8μs,能满足工业上实时监控的要求,这说明基于C8051F040的CAN多点实时数据通信的可能性,且因为其多节点设备接入简易,使其在远程工业实时监控上有较好的前景。缺点在于节点的数量不够多,节点之间的距离不够远,没有测试出多点通信的节点数量上限和实时通信距离上限。

 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top