自动光学检测仪通信系统设计
2.2 CAN总线硬件电路设计
为了保证控制系统的技术指标,完成实时数据处理和电路保护功能,并考虑到系统的扩展性,采用16位微控制器系列中的XCl64CS。该芯片尺寸小、运算速度高,并集成有TwinCAN模块,该模块用于控制帧的自动发送和接收。该模块有2个全功能的CAN节点共享模块的资源,提供32个报文对象,它们可独立分配给2个CAN节点中的任意一个,还可以组合构成FIFO结构。每个报文对象分别对应有利于滤波的验收屏蔽寄存器。
全CAN功能和FIFO结构的灵活组合可满足复杂嵌入式控制应用的实时要求。CAN总线监控功能的增强以及报文对象个数的增加使得CAN的总线通信处理更加精确和方便。网关功能允许在2个独立的CAN总线系统之间进行自动数据交换,减轻了CPU负载,提高了整个系统的实时性。2
个CAN节点的位定时都从主时钟得到,可通过编程使数据速率达到1 Mb/s,
CAN总线收发器采用英飞凌公司的TLE6250G,支持传送速率高达1 Mb/s,具有抗瞬变、抗射频和抗电磁干扰的特性,并具有宽泛的工作范围(-40~150℃),以及短路保护和过温保护功能。具体的CAN总线节点原理图设计如图3所示。

另外,总线连接时两端各加一只120 Ω的电阻,它们对于匹配总线阻抗起着相当重要的作用,可减少信号反射干扰。
2.3 CAN总线节点软件设计
CAN总线节点软件设计与整个系统的实时性和可靠性密切联系。本系统中各部分间的数据交换比较频繁,CAN总线上传输的数据帧包括有:1)主机发送的控制指令帧,主机控制着整个系统的工作模式,通过PCB板为好板或坏板的信号来控制分拣1和分拣2的运作;2)各控制部分传给主机的状态信息,将正在上板中、正在出板中或者系统故障等消息传给主机,方便操作人员实时了角整个系统信息;3)各控制部分之间的信息交换,如上板部分检测到一批PCB板检测完成,通知分拣部分出板的信号,任何部分检测到故障通知报警信号等。
根据系统的实际情况未编写相应的软件程序。这里使用的XCl64CS单片机的CAN控制器遵循CAN V2.0B规范。报文缓存单元最多保存32个报文对象,每个对象的最大数据长度为8字节。每个报文对象有一个标识符和自己的控制和状态位集。通过控制相应寄存器来存放通信时发出或者接收到的数据以及报文寄存器组的设置。对报文寄存器进行初始化之后,报文缓存单元无需CPU监控就能够处理数据的接收和发送,简化了软件代码的编写。而CPU通过访问CAN控制器状态寄存器或者由CAN控制器以中断的方式通知CPU,即可得到当前通信状态,从而节省了CPU的占用时间。
2.3.1 CAN控制器的初始化
要实现CAN通信,首先要对CAN控制器进行正确初始化设置。初始化主要完成下面的工作:节点控制寄存器ACP/BCR的设定;CCE和 INIT置位;错误计数器最大值的设定;节点输出管脚的设定;节点传输速率的设定;给节点配置发送、接收消息体。对于XCl64CS,CAN控制器的初始化可以使用DAVE进行配置,来自动生成代码,也可以用户自行编写。初始化流程如图4所示。

以下为相应的程序代码:本文引用地址:https://www.eepw.com.cn/article/156906.htm
评论