0.引言
控制器局域网CAN(Controller Area Network)作为一种多线路网络通信系统,以其时分多主、非破坏性总线仲裁和自动检错重发等灵活、可靠的通信技术,及低廉的价格,被广泛地应用于工业自动化生产线、汽车、传感器、医疗设备、智能化大厦、电梯控制、环境控制等分布式实时系统。本采集卡采用的是一款Atmel公司新近推出的带有CAN控制器的微控制器,是一款很有前途的新型芯片,其内部集成CAN控制器,用它来组建CAN总线实时监控系统,与传统的CAN总线组网方式相比,系统具有结构简单、设计容易、抗干扰性强等应用优势。
1.采集卡的功能描述
本采集卡完成的主要功能有:
1) 采集温箱里的温度数据,并对其进行滤波处理。
2) 监视温度信号的变化情况,实现报警功能。
3) 将采集到的数据通过CAN总线传给上位机及其它节点。
采集卡带有8279键盘/显示接口,可通过手工或上位机来设定各种采集用的参数。
2.总体组成
智能采集卡主要由单片机系统,8279键盘/显示控制芯片,译码驱动电路,LED,按键阵列,温度传感器DS18B20,光电隔离以及CAN总线物理接口等组成,其硬件组成原理图见图1。
采集卡的总体工作流程如下:
采集卡上电复位以后,首先根据默认的参数初始化CAN总线的各个寄存器及DS18B20,然后对8279及显示LED的状态进行初始化,接着给T0定时器装载初值及设置中断寄存器等。待初始化完成之后,就向主机发送控制帧,要求主机设定采样周期、发送时间间隔、当前时间、发送主机地址、本机标识符等参数。设定完之后,就根据不同的状态进入到不同的中断服务程序中。
数据类型根据传输方向可分为上行数据(采集卡→主机)和下行数据(主机→采集卡)。
上行数据主要是采集卡采集到的温度数据。它的处理主要经过以下几个步骤:T89C51CC01对温度传感器DS18B20执行一个其RAM存储器操作命令完成一次温度测量。测量结果放在DS18B20的暂存器里,然后CPU用一条读暂存器内容的存储器操作命令将暂存器中数据读出,存放在数据存储区中。到满足发送条件之后,短数据直接形成帧送到发送缓冲区,超过帧长的数据则要经过分解,打包后再送入CAN总线控制器发送缓冲区。CAN控制器通过CAN物理接口向CAN总线发送数据,总线的所有节点都侦听该数据,但并非所有节点都接收此数据,只有通过接收滤波的节点才接收此数据。采集卡的数据主要是发送给主机、监控节点和相关的控制节点。当采集卡采集到的温度数据超过报警上限、报警下限或变化速率过快的时候,采集卡还通过CAN控制器向主机发送报警信息。
下行数据主要是主机向采集卡发送的各种控制信息。虽然采集卡可以接收任何节点的信息,但它主要起的是智能传感器的作用,所以一般只接收主机来的各种控制信息。控制信息通过CAN物理接口进入到CAN控制器的接收缓冲器中,采集卡根据帧类型来区分不同的控制帧并设定相应的参数,并进行相应的接收、发送处理。
3.硬件具体组成描述
1)核心CPU —T89C51CC01
T89C51CC01主要具有以下特性:其片内具有8051内核,具有1个CAN控制器, 8路模拟量输入的10位ADC变换器,可在系统编程的32K字节Flash程序存储器,2K字节程序加载Flash程序存储器,256字节RAM,1K字节XRAM和2K字节E2PROM数据存储器,一个21位看门狗定时器。该微控制器基于高性能的静态结构设计,采用先进的CMOS制造工艺,包含5个端口34根双向I/O线,3个16位定时/计数器、14个中断源4级嵌套中断结构、1个全双工UART、其提供很宽的操作频率范围,支持12时钟和6时钟操作。另外,使用者可利用片上Boot加载程序,通过CAN或UART接口对该控制器进行在系统或在应用编程。
T89C51CC01的最显著的一个特点是内部集成强大功能的CAN控制器。该控制器支持CAN2.A和CAN 2.B协议,通过报文对象页寄存器管理15个独立的报文对象.每个报文对象可分别编程为发送、接收或缓冲接收的报文,并可通过标识符寄存器和标识符屏蔽寄存器来设置11位或29位标识符和标识符屏蔽码来确定报文对象的优先级,以及CAN控制器对该报文对象是否接收或拒绝。其通信的波特率可根据实际通信距离和需要对位定时寄存器进行设定,最大波特率可达1Mbps。T89C51CC01的结构图如图2所示。其P0口为8位并行I/O口,将P0.0与DS18B20连接, P4.0(TxDC)和P4.1(RxDC)与82C250连接。P3.4(T0)、P3.5(T1)和P1.0(T2)是T89C51CC01内部定时器的引脚,P3.2(INT0)和P3.3(INT1)是T89C51CC01的外部中断引脚、低电平有效。