基于单片机的信号采集节点的设计
1 引言
在工程机械液压系统状态监测与故障诊断中,传感器信号的调理、采集和信号的特征提取,以及把采集的数据发送给主机(中心处理单元)要由信号采集单元实现。本文介绍了基于P87C591的CAN总线系统信号采集节点的设计。
CAN是1986年2月在SAE (汽车工程人员协会)大会上, 由Rober Bosch公司提出的新总线系统,称之为“汽车串行控制局域网”(Automotive Se.rial Controller Area Network),它是最主要的总线协议之一。由于CAN总线采用了许多新技术及独特的设计,使得它与一般的通信总线相比具有突出的可靠性、实时性和灵活性,从而使其应用范围不断扩展。目前,CAN已经形成国际标准,并被公认为是最有前途的现场总线之一。
P87C591是Philips半导体公司推出的单片8位高性能微控制器,具有片内CAN控制器,是从80C51微控制器家族派生而来。它采用80C51指令集并包括了Philips公司SJA1000 CAN控制器的PeliCAN功能。P87C591微控制器采用先进的CMOS工艺,设计用于汽车和通用的工业应用。 P87C591组合了P87C554 (微控制器)和SJAIO00(独立的CAN控制器)的功能,还具有以下增强型特性:
增强的CAN接收中断
扩展的验收滤波器
验收滤波器可动态变化
2 信号采集节点硬件电路设计
2.1 硬件电路设计
信号采集节点直接固定在工程机械液压系统的主要测点上,主要由MCU、信号调理、A/D转换、数字量输入模块、存储器和CAN总线接口组成。信号采集节点选择具有片内CAN控制器的高性能8位单片机P87C591作为处理器,可以完成基本的模拟量和数字量的采集及CAN总线通讯。该采集模块有8路模拟输入和4路光电耦合数字(开关)量输入,模拟输入前3路是专为ICP振动传感器设计,其余5路均可通过跳线选择0 V~5 V电压输入或4mA~20 mA电流环输入.以适应不同类型传感器的需要。图1为信号采集节点硬件结构示意图。
图1 信号采集节点硬件结构。
信号采集单元与主机(中心处理单元)之间通过四芯电缆连接,其中两芯为CAN总线信号线(CANH和CANL).另外两芯为电源线,可为信号采集单元各部分提供电源。
2.2 电路设计需要注意的问题
TJA1050是高速CAN收发器.是控制器区域网络(CAN)协议控制器与物理总线之间的接口。
TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接收性能O TJA1050可以选择两种工作模式:高速模式和静音模式。高速模式是普通的工作模式,将引脚8接地可以进入高速模式,如果引脚8没有连接.高速模式则为默认的工作模式。将引脚8连接到Vcc可以进入静音模式,静音模式可以防止在CAN控制器不受控制时对网络通讯造成堵塞,在静音模式中,发送器是禁止的,但是器件的其他功能可以继续使用。
总线的两端要连接两个120 n 的电阻,对匹配总线阻抗起着重要的作用。如果忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。
3 信号采集节点软件设计
信号采集节点的软件设计主要有:节点初始化、报文发送、报文接收、CAN总线错误处理、CAN总线中断处理等。本文重点介绍节点初始化、报文发送和报文接收。
3.1 节点初始化
在上电或硬件复位后,CAN控制器处于复位模式。如果CAN控制器不处于复位模式,置位模式寄存器RM位使其进入复位模式。CAN控制器复位后,必须初始化实现CAN通信,其内容主要有:操作模式、验收滤波器、总线定时及中断等。其中,定时器用来设置CAN总线上数据传输的波特率,注意总线上各节点的波特率须一致,否则将导致数据传输错误。信号采集节点初始化流程如图2所示。
图2 初始化流程图。
3.2 报文发送
数据的发送由CAN控制器根据CAN协议规范自动完成。CPU将要发送的数据传送到发送缓冲区并置位命令寄存器的TR(发送请求)位,发送处理可以通过中断请求或查询状态标志进行控制。报文发送流程如图3所示。
图3 报文发送流程图。
3.3 报文接收
CPU以一定周期读取CAN控制器的状态寄存器,检查RBS(接收缓冲器状态)。如果RBS指示0(空),则没有接收数据;如果RBS指示1(满),则R)(nFo中有一个或多个完整的可用信息。报文接收流程如图4所示。
图4 报文接收溉程图
其他子程序的设计这里不再介绍。
4 结束语
CAN以其独特的设计思想、良好的性能、极高的可靠性受到了业界青睐;具有片上CAN控制器的P87C591具有功能强大、设计方便等特性。可广泛应 用于工业领域。基于P87C591的信号采集节点充分利用了CAN以及P87C591的优良特性,很好地实 现了数据采集功能。
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)