2 智能节点硬件设计
传统的从节点设计是将CPU与CAN总线控制器和总线收发器相连后再连入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商都将CAN控制器集成在单片机上。本文中选用C8051F550该单片机,它是内部集成的CAN控制器,完全按照BoshchCAN全功能的CAN模块实现,符合CAN2.0B协议,工作位速率可达1Mpbs。控制器包含有一个CAN内核,消息缓冲区,报文处理状态机和CAN控制寄存器。通信控制器有32个消息对象,可以配置为发送或接收数据。输入数据,消息对象及其标识符存储在CAN消息缓冲区中,能实现CAN协议的数据链路层的全部功能及物理层大部分功能。CIP-51CPU可通过特殊功能寄存器直接或间接访问CAN控制寄存器(CANOCN),测试寄存器(CANOTST)和状态寄存器(CANOSTA)。所有其它寄存器只能通过CANOADR,CANODATH和CANOTAL寄存器以地址索引方式间接访问。
CAN总线的驱动器采用隔离CAN总线收发器CTM1050,通信速率1Mbps,至少可连接110个节点。内部集成的电气输入级隔离电路,可隔离高达2 500V的直流电压。输入级兼容3.3V和5V的CAN控制器,输出级驱动具有温度保护,内部TVS管可防止总线过压功能。与传统的PCA82C250总线收发器相比,主要优点是无需外加光耦可直接使用,外围电路简单,安全,可满足工业现场恶劣条件的使用。图2所示为C805117550与CTM1050的接口电路。
3 智能节点软件设计
图1中三个节点与上位机的通信方式采用的是节点1、3与上位机实现点对点通信工作方式。节点1、3的微处理器C8051F550上电复位后,自动采集模拟电压信号,通过C8051F550内部集成的12位A/D转换,将数字量发送到上位机。上位机实时进行数据监控,如果收到的数据出现错误,可以通过CANtool软件,发送自定义的错误数据标识给两个节点,两节点收到该数据后,停止A/D采样工作。节点1、3与节点2是主从工作方式。当节点2的开关量有按键按下时,1、3节点将实时采集到的数据在发送给节点2,并在节点2的LCD上显示。
3.1 初始化CAN控制器
C8051F550上电复位后,控制寄存器CANOCN的INIT位和CCE位置‘1’。允许寄存器初始化并写入设置信息。需要写入的寄存器主要包括位定时寄存器和扩展寄存器,命令掩码寄存器。主要完成时序参数的配置和消息对象的初始化。本设计中,使用晶振频率为11.05MHz,位定时设置为996.65~1000ns。初始化程序如下:
上一页 [1] [2] [3] 下一页