基于C8051的CAN多点实时数据通信系统
来源:ofweek 作者:—— 时间:2012-03-12 15:06
物理层定义了信号怎样进行发送,因而涉及位定时、位编码和同步的描述。详细层的功能参阅文献。
1.3 CAN多点实时通信
CAN是有效支持分布式(多点)实时控制的串行通信网络,在实际的系统设计中,用户可以根据振荡器时钟频率、总线波特率以及总线的最大传输距离等因素,对CAN控制器的位定时参数进行优化设置,协调影响位定时设置的两个主要因素:振荡器容差和最大总线长度,合理安排位周期中采样点的位置和采样次数,保证总线上位流的有效同步的同时,优化系统的通信性能,进一步推进CAN总线的应用。
2 C8051 F040单片机
Cygnal公司的51系列单片机C8051F040是集成在一块芯片上的混合信号系统级单片机,在一个芯片内集成了构成一个单片机数据采集或控制的智能节点所需要的几乎所有模拟、数字外设以及其他功能部件,代表了目前8位单片机控制系统的发展方向。芯片上有1个12位多通道ADC,2个12位DAC,2个电压比较器,1个电压基准,1个32 kB的Flash存储器,与MCS-51指令集完全兼容的高速CIP-51内核,峰值速度可达25 MI·s-1,并且还有硬件实现的UART串行接口、完全支持CAN2.0A和CAN2.0B的CAN控制器。
3 CAN多点实时数据通信系统设计
3.1 CAN多点实时数据通信系统硬件结构
设计的CAN多点实时数据通信系统由一台电脑,两块基于C8051F040单片机开发板组成。结构框图如图2所示。
图2 CAN通信结构框图
在这个系统中,电脑作为主机,通过USB/CAN转换器与CAN总线相连,使用软件工具CANTools-V6.2进行数据地发送、接收以及显示。系统中两个CAN节点分别为开发板1和开发板2,通过编译相应的程序,使得CAN节点能实时把数据发送到主机,主机可根据接收到的数据向CAN节点发出控制信号来改变CAN节点回发的数据,以此达到实时通信控制的目的。同时两个CAN节点之间也能互相进行数据通信,并把所接收到的数据显示在开发板的LCD屏上。
3.2 软件设计
软件设计分为两大部分:(1)主程序的设计。(2)CAN通信库函数程序的编写。
主程序主要涉及的是程序流程,包括调用初始化函数,打开中断,根据与主机通信还是与其他节点通信调用CAN通信库函数编写出相应的通信流程,流程图如图3所示。
图3 主程序流程图
上一篇:LED封装技术探讨