CAN总线智能采集卡

  控制器局域网CAN(Controller Area Network)作为一种多线路网络通信系统,以其时分多主、非破坏性总线仲裁和自动检错重发等灵活、可靠的通信技术,及低廉的价格,被广泛地应用于工业自动化生产线、汽车、传感器、医疗设备、智能化大厦、电梯控制、环境控制等分布式实时系统。采集卡采用的是一款Atmel公司新近推出的带有CAN控制器的微控制器,是一款很有前途的新型芯片,其内部集成CAN控制器,用它来组建CAN总线实时监控系统,与传统的CAN总线组网方式相比,系统具有结构简单、设计容易、抗干扰性强等应用优势。

功能描述

  1) 采集温箱里的温度数据,并对其进行滤波处理。

  2) 监视温度信号的变化情况,实现报警功能。

  3) 将采集到的数据通过CAN总线传给上位机及其它节点。

  采集卡带有8279键盘/显示接口,可通过手工或上位机来设定各种采集用的参数。

工作流程

  采集卡上电复位以后,首先根据默认的参数初始化CAN总线的各个寄存器及DS18B20,然后对8279及显示LED的状态进行初始化,接着给T0定时器装载初值及设置中断寄存器等。待初始化完成之后,就向主机发送控制帧,要求主机设定采样周期、发送时间间隔、当前时间、发送主机地址、本机标识符等参数。设定完之后,就根据不同的状态进入到不同的中断服务程序中。

  数据类型根据传输方向可分为上行数据(采集卡→主机)和下行数据(主机→采集卡)。

  上行数据主要是采集卡采集到的温度数据。它的处理主要经过以下几个步骤:T89C51CC01对温度传感器DS18B20执行一个其RAM存储器操作命令完成一次温度测量。测量结果放在DS18B20的暂存器里,然后CPU用一条读暂存器内容的存储器操作命令将暂存器中数据读出,存放在数据存储区中。到满足发送条件之后,短数据直接形成帧送到发送缓冲区,超过帧长的数据则要经过分解,打包后再送入CAN总线控制器发送缓冲区。CAN控制器通过CAN物理接口向CAN总线发送数据,总线的所有节点都侦听该数据,但并非所有节点都接收此数据,只有通过接收滤波的节点才接收此数据。采集卡的数据主要是发送给主机、监控节点和相关的控制节点。当采集卡采集到的温度数据超过报警上限、报警下限或变化速率过快的时候,采集卡还通过CAN控制器向主机发送报警信息。

  下行数据主要是主机向采集卡发送的各种控制信息。虽然采集卡可以接收任何节点的信息,但它主要起的是智能传感器的作用,所以一般只接收主机来的各种控制信息。控制信息通过CAN物理接口进入到CAN控制器的接收缓冲器中,采集卡根据帧类型来区分不同的控制帧并设定相应的参数,并进行相应的接收、发送处理。

总体组成

  智能采集卡主要由单片机系统,8279键盘/显示控制芯片,译码驱动电路,LED,按键阵列,温度传感器DS18B20,光电隔离以及CAN总线物理接口等组成,其硬件组成原理图见图1。

图1

软件设计

  在采集卡的软件设计中,主要采用模块化的设计思想,主要分为系统初始化程序、CAN中断服务程序、INT1中断服务程序(即8279中断服务程序)、ADC中断服务程序、T0中断服务程序和“看门狗”定时器服务程序等几个部分。

  系统初始化程序主要是对CAN控制器、8279芯片、DS18B20、定时器、ADC控制寄存器、中断控制寄存器、中断优先级寄存器等进行初始化设置。然后根据发生事件的不同来进行不同的处理。

  CAN中断服务程序主要包括CAN接收中断服务程序和CAN发送中断服务程序,主要处理CAN总线通信过程中的各种情况。

  INT1外部中断是由8279引起的中断,当8279的FIFO寄存器不为空的时候,就向CPU发出中断申请,CPU进入中断后,首先读8279的状态寄存器,如果发生错误,就进入键盘出错处理程序。否则,进入键盘处理程序。在键盘处理程序中,从FIFO寄存器中读出键值,根据键值的不同,进行相应的处理。

  T0中断程序主要处理跟定时有关的操作,可以起到时钟的作用,并且根据实现设定好的参数,实现定时采样,定时发送的功能。

  T2定时器是专门防止单片机“死机”而设置的“看门狗”定时器。

相关百科