一种基于CAN总线的测温仪的制作方法

文档序号:11130927阅读:636来源:国知局
一种基于CAN总线的测温仪的制造方法与工艺

本发明涉及一种基于CAN总线的测温仪。



背景技术:

现有技术中的测温仪,大多为专项开发,通用性差,而对于考虑到通用性的方案,其网络传输速度却比较慢,实时性差。



技术实现要素:

为解决上述技术问题,本发明提供了一种基于CAN总线的测温仪,该基于CAN总线的测温仪通过测量通道等单元的设置,解决了远距离多点测试的问题,且实时性好,网络传输速度快,有良好的通用性,根据实际需要,用户可选择不同的方案,既解决了问题,又降低了成本。

本发明通过以下技术方案得以实现。

本发明提供的一种基于CAN总线的测温仪,包括测量通道、A/D转换电路、单片机、控制电路、显示电路、总线接口、输入电路;所述测量通道、A/D转换电路、单片机、控制电路、显示电路依次连接,单片机还连接总线接口和输入电路;所述测量通道连接多个测温元件;所述A/D转换电路为串行数据输出方式;所述控制电路核心为锁存器;所述总线接口为CAN总线接口,且通过CAN连接至上位机。

所述测温元件数量为八个,所述测量通道为74S151。

所述A/D转换电路核心为MAX187。

所述控制电路核心为锁存器74LS373。

所述显示电路为74LS139,并连接LED显示器。

所述输入电路连接4×4键盘。

本发明的有益效果在于:解决了远距离多点测试的问题,且实时性好,网络传输速度快,有良好的通用性,根据实际需要,用户可选择不同的方案,既解决了问题,又降低了成本,如监控计算机控制多个测温节点,每个节点又可在小范围内多点测温,完全根据用户实际选择,可靠性好,实时性强,用户甚至可以选择多个监控计算机,方便灵活,系统生命力强。

附图说明

图1是本发明的结构示意图;

图2是本发明的控制流程图;

图3是本发明中CAN报文的一种标识方式。

具体实施方式

下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。

如图1所示的一种基于CAN总线的测温仪,包括测量通道、A/D转换电路、单片机、控制电路、显示电路、总线接口、输入电路;所述测量通道、A/D转换电路、单片机、控制电路、显示电路依次连接,单片机还连接总线接口和输入电路;所述测量通道连接多个测温元件;所述A/D转换电路为串行数据输出方式;所述控制电路核心为锁存器;所述总线接口为CAN总线接口,且通过CAN连接至上位机。

所述测温元件数量为八个,所述测量通道为74S151。

所述A/D转换电路核心为MAX187。

所述控制电路核心为锁存器74LS373。

所述显示电路为74LS139,并连接LED显示器。

所述输入电路连接4×4键盘。

由此,测温元件的信号经过仪用运放进行差动放大,再经过74S151和12位串行输出的A/D转换器MAX187,与传统A/D芯片并行数据输出方式不同,MAX187采用串行数据输出方式,可以通过单片机输出的串行移位脉冲来控制采样数据的读取。

对于控制电路和显示电路,由锁存器74LS373、通用可编程逻辑芯片74LS139和LED显示器组成,其中,74LS139芯片起译码作用,把4个锁存器的端口地址设定为:8F00H(读)、8F01H(写)、8F02H(读)和8F03H(写)。控制码由2个字节组成,是2个锁存器的输出值,其中A2、A1、A0用于选择输入通道(000:第1通道;001:第2通道;…;111:第8通道),仪用运放的8个放大倍数K(K=1,5,10,50,62,125,250,500),分别对应5V,1V,500mV,100mV,80mV,40mV,20mV,10mV的电压输入),该字节的最高位控制一个发光二极管LED,用于指示温度测量系统的故障状态(0:正常;1:故障)。

测温程序通过对输入点的数据结构进行操作,完成信号采样、信号预处理和温度值的计算,如图2所示为主程序流程图,其中采样间隔是在定时器中断中计数,间隔时间到时设置标记为1,该标记由主程序清0。

每个输入端的数据结构由8个字节组成,连续地存放在8个RAM单元中,它内容依次为1个字节的测温元件型号TYPE(0:该输入端不使用;1:Pt100;2:Cu50;3:S;4:B;5:K;6:E;7:T;8:J;9:R)、2个字节是控制码、2个字节是分度表在程序存储器EPROM中的首地址和3个字节是BCD码形式(***.*℃)的温度测量值。

CAN应用节点的通信程序主要包括三部分:初始化子程序、发送子程序、接收子程序。

为了完成通信,必须在CAN应用层协议上加一层用户层协议,来约定数据和命令的意义,在本系统中,现场单元一共有两种:现场采集单元和现场测控单元,协议遵从CAN2.0,对仲裁场的11位标识符进行定义分组,将其分为4个单独的报文组:组1、组2、组3、和组4。组成如下表所示:

①报文ID:在特定端点内的报文组中识别一个报文。用报文ID在特定端点内单个报文组中可以建立多重连接,该端点利用报文ID与MAC ID的结合,生成一个连接ID,该连接ID在于相应传输有关的CAN表示符内指定,组2和组3则预定义了确定报文ID的使用。

②源MAC ID:此MAC ID分配给发送节点。组1和组3需要在CAN标识符中指定源MAC ID。

③目的MAC ID:此MAC ID分配给接收设备,报文组2允许在CAN标识符的部分指定源MAC ID或目的MAC ID,为了保证系统的实时性要求,在MAC ID中定义了各设备的优先级,低数据位的ID具有高的优先级,在实现过程中采用C语言实现,协议通过面向对象的方式加以描述,其中对于协议中各个对象都详细定义了他们的属性、数据类型等基本信息,而且通过事件触发方式来具体定义了各个对象的行为,因此在实现过程中,可以按照面向对象的编程方法来编制协议源代码,除了定义对象的属性以外,还要构造事件驱动的机制,即事件的产生、事件队列的实现、事件处理优先级的规定,以及事件的处理等。这里主要指的是完成事件的处理,在完成对CAN控制器等的初始化工作后,主程序进入事件处理的无限循环,为了能够及时响应高优先级事件,在每完成一次事件的处理以后,都要执行“e=global event”语句,刷新事件中间变量e。

如图3所示,假定第一个数据位表示I/O轮询请求事件,它就具有最高优先级,高优先级的事件的响应较低优先级的事件为先,在进入事件处理程序部分以后,首先清除事件队列中的此事件,以表明此事件已得到响应,然后再进行相应的程序执行,部分程序如下,头文件函数声明:

本发明在使用前,需要在上位机进行设置,填写一张数据表格,确定8个输入端连接测温元件的型号和量程,表格共有8项,每一项都由3个参数组成:型号TYPE、量程下限和量程上限,输入量程主要是为了确定测量电路的放大倍数,以提高测量精度,上位机接收数据表格后,经过上位机应用程序分析,确定智能测温仪数据结构的具体数值,并把该数据结构中的参数通过CAN总线送到智能温度变送器中。

在测量过程中,AT89S52能对输入端的开路、短路等故障情况进行实时检测,以及定期对片内RAM进行读写检验,一旦发生故障可及时向上位机报告,以便上位机作相应处理。

本发明利用CAN总线局域网的特殊优势,解决了远距离多点测试的问题,且实时性好,网络传输速度快,有良好的通用性,根据实际需要,用户可选择不同的方案,既解决了问题,又降低了成本,如监控计算机控制多个测温节点,每个节点又可在小范围内多点测温,完全根据用户实际选择,可靠性好,实时性强,用户甚至可以选择多个监控计算机,方便灵活,系统生命力强。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1