长沙学院毕业设计
变化率为0.3851?/℃[1]。在实际应用中,需要在一稳定的温度中对其进行调零,采用可调精密电阻作为电桥平衡电阻,以达到预期的相对精度。由于金属固有的缺陷,事实上PT100的温度变化并不和电阻值成绝对的比例关系,而是呈略微抛物线关系,但是在一定的温度范围内它却是呈一定的比例关系,这点需要设计者在软件中进行自动调节。
下面为铂电阻的阻值随温度的变化而变化的计算一般公式 -200 Rt为t℃时的电阻值,R0为0℃时的阻值。公式中的A,B,系数为实验测定。这里给出标准的DIN IEC751系数:A=3.9083E-3、 B=-5.775E-7、 C=-4.183E-12,在实际设计中需要对A、B值进行计算,针对相应的硬件环境进行有效设定,然后在软件中编写相关算法来实现由电阻到温度之间的转换。 1.3.2 系统相关其它重要芯片简介 STM32F103RC是ST公司一款CM3核的中端ARM7芯片。STM32F103RC是32位的Cortex-M3核微控制器,最高主频72MHz,256K内部Flash,和48K内部SRAM,具有5个通用异步串口通信接口(USART),16位定时器,3个可配置的SPI/I2S标准协议接口,2个标准的I2C接口,1个USB2.0从设备接口,一个CAN2.0工业标准接口,3个12位的内部A/D转换,2个12位的内部D/A转换,以及1个SDIO接口[2]。之所以采用本款芯片,在于它的相关外围设备能够有效满足系统的需求,而且内部256K的Flash,和48K的SRAM正好能满足系统稳定运行的需求。相比于STM32F107和STM32F4系列的芯片来说,它也具有价格上的优势。同时STM32是基于最新的CM3核,相对于其它低中端微控制器,具有一定优势。ST公司针对STM32F3系列做了有效的开发指导,为用户提供了可供迅速开发的相关固件库,同时提供相应的工程应用例子,让用户更容易入手使用,加快开发周期。而且在工控领域STM32具有一定的市场优势。所以本系统采用STM32F103RC作为主控芯片。 串口通信使用RS485接口,相对于RS232接口,RS485采用差分传输方式,所以其可靠性和通信距离相比RS232可以更稳定更远。更重要的是RS485支持更多的节点,一般可达32个节点,最多可达400个节点,它们可以组成一个通信网络,这在多个温控系统共存的环境中是很有利的,可以减少通信线路。所以在这里采用RS485作为串口下,可以切换为RS485接口来保证系统通信的真正稳定性、温控的有效性实时性。因此RS485通常情况下只作为一个备用的通信接口。 以太网控制芯片采用ENC28J60,ENC28J60是一个具有SPI标准接口的以太网控制 通信接口。本设计在加入网络通信条件下,之所以还保留RS485是为了解决在特殊情况 长沙学院毕业设计 芯片,是IEEE 802.3兼容的控制器,集成的MAC,支持半双工和全双工通信方式,最高速度可达10M,具有内部的接收发送缓冲区,并且具有快速数据传输的内部DMA,支持硬件IP校验和计算,可编程填充和CRC校验,自动拒绝错误的数据包[3]。而采用此芯片的根本原因在于其拥有可便利操作的SPI接口,其引脚也相对其它以太网控制芯片而言较少,所以相对于其它网络芯片它需要的硬件资源更少,同时该芯片相对于其它网络芯片,如DM9000,RTL8019,CP2200而言,它的相关外围电路更简单,在一般的小型嵌入式系统中采用此以太网控制芯片具有很多优势。本系统采用TCP协议进行网络通信,因为TCP是面向连接,这样能保证数据的可靠性,为了实现TCP协议,在软件设计中需要引入TCP/IP协议栈,常用的开源TCP/IP协议栈有lwIP和uIP,因为lwIP通常需要多线程来进行处理,需要引入操作系统,这样系统的开发周期就会加长,同时实时性可能会有所降低,系统的稳定性也比较难处理。在本系统中采用uIP,它是一个比lwIP更轻量级的TCP/IP协议栈,不需要操作系统支持,所以它需要的RAM更少,它的大多操作都采用宏操作,采用纯C语言编写具有良好可移植性,在8位,16位微控制器上也能稳定运行。uIP最新开源版本为uIP1.0,在这里使用最新版本。 为提高系统的功能,尤其在物联网发展快速的今天,同时为扩展本系统的使用领域,特融入GSM模块,在这里GSM模块采用是Siemens公司的TC35模块,TC35是一款双频段的GSM模块,拥有精简的AT指令集和特殊的扩展AT命令集。同时该模块的稳定性相对较好,性价比也很高。在本系统中预留了此模块,用来实现应急通信,在实际应用中可以进行裁剪。 1.4 系统相关开发软件简介 1.4.1 Keil软件的相关简介 Keil是一家软件开发工具的独立供应商,最初由两家私人公司联合运行,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克斯萨的Keil Software Inc组成。2005年Keil被ARM公司收购。Keil软件到今天最新版本为Keil uVersion4,从最开始的Keil C51,到Keil uVersion2,Keil uVersion3 ,从Keil uVersion3开始Keil软件支持ARM核微处理器的软件集成开发。在这里采用最新的Keil uVersion4版本来编写本系统的软件。Keil被ARM收购后,其对ARM核芯片的开发环境支持,相对其它开发环境而言更便利。Keil uVersion4对Cortex-M3核的提供了最好的开发环境支持,对Cortex-M3的软件开发具有事半功倍的效果,它自动配置相关启动代码,和Flash烧写模块,以及强大的多种simulation设备模拟方案,让开发者的开发难度变少,同时系统的稳定性也可以得到极高保障。 长沙学院毕业设计 1.4.2 Visual C++6.0软件的相关简介 Visual C++6.0是微软推出的Windows平台应用程序开发集成环境。在Windows桌面应用程序开发中,Visual C++6.0是一个便于操作和使用的开发平台。在开发Windows平台应用程序常用开发语言是C++,在这里也采用C++来开发本系统上位机应用程序。而在Windows桌面应用程序开发中,微软提供了可供开发人员快速开发应用的一个C++集成类,就是MFC微软基础类库。通过使用MFC来开发本应用程序,可以快速开发周期,也能保证程序的稳定性,本系统的上位机应用控制软件就是使用MFC类库来开发的。 1.5 本设计主要内容和涉及技术简介 作为一个温控系统,首先最重要的是实现温度的采集,本系统使用PT100作为温度传感器,是因为它适用范围广,可测量的范围相对于数字温度传感器要广的多,而且对强酸强碱的环境都能很好的适用。在温度采集阶段主要解决的就是调零,保证PT100在0摄氏度时它的电阻值是100?,在PT100调零时,为达到电桥平衡,最简单的办法就是将PT100放在冰水中,然后调整电桥的微调电阻,以达到电桥的平衡。 微控制器能直接处理的只有数字信号。该系统中在需要将PT100的电阻转换成温度值,而电阻的变化会引起电压的变化,在平衡电桥中,如果PT100电阻发生变化,电桥就会失去平衡,电桥输出差分电压,应为它的变化非常微弱,所以要进行放大,在这里使用INA118差分放大芯片,然后将模拟电压信号转换为数字信号。因此模数转换的精度对温度采集的精度是起着决定性的作用。为了保证系统的温度检测精度,采用TI公司的16位A/D转换芯片ADS1115,它具有可选的转换速度,外围电路也很简单,抗干扰能力也很强,封装小,便于集成。对于ADS1115的控制也很简单,是采用标准的I2C接口。这样就解决了模数转换的问题,也保证了精度。 因为PT100的温度变化和电阻值变化并不是成完全的比例关系,而是呈一种微抛物线,但是在一定的温度段范围内,PT100是呈一定的比例关系,当通过ADS1115转换得到电压数字信号后,我们需要对电压数字信号进行转换,并通过指定算法计算出温度。因为温度与电阻值并不成比例关系,所以要在软件中进行处理,通过在软件中将在不同温度范围内的比例系数,存放在一个固定的数组中,在计算时通过查表法针对不同的温度范围使用针对该温度范围的比例系数去计算,保证温度转换的准确性。 得到温度值后,需要将温度值传送给上位机应用软件端,而通信的方式,采用的是可选的网络TCP和备用RS485串口,以及扩展应急用的GSM。在系统中主要是采用TCP网络方式通信。上位机应用控制软件可选择通信方式,同样下位机温控系统也可以 长沙学院毕业设计 自主选择通信方式。普通情况下下位机通过TCP网络与上位机应用软件进行数据交换,当网络出现故障时,下位机会自动切换通信方式,而采用备用的RS485通信,这样以保证温控的实时性和有效性。在最坏的情况下,通过GSM模块以发送文本短信息的方式,将温控系统通信故障的相关信息,发送到指定的控制者手机上。因为TCP网络通信需要TCP/IP协议栈的支持,在系统中采用uIP开源TCP/IP协议栈,所以uIP移植是一个很重要的部分,它是保证TCP通信可靠的关键部分。而网络的底层ENC28J60驱动是实现网络通信的基础,所以实现ENC28J60的底层驱动也是一个很重要的部分。与TC35的通信是采用标准的串口通信,该GSM模块具有可选硬件控制流,但在这里因为数据吞吐量不大所以不使用硬件控制流。 在PC控制端,用Visual C++6.0集成开发环境,使用MFC类库来实现应用软件的开发。该应用控制软件具有串口和TCP网络两种可选通信方式,所以上位机应用控制软件的开发需要实现串口和TCP通信。在这里不使用提供的串口控件,而直接使用底层API函数接口来操作,通过C++来封装一个串口类。为保证串口的发送接收的及时性,采用多线程实现机制,保证实时性。而网络TCP通信,也采用与socket通信相关的API函数接口操作,而不采用提供的socket类库,这样具有更好的灵活性。PC控制端具有实时显示当前温控系统传送过来的温度信息,可以设置温控的温度范围,即上下限温度值的功能。可以保存当前开始所有接收到的温度信息和控制操作信息,以便以后对历史温度数据做调用分析,需要使用文件操作相关技术,在这里是直接使用MFC类库提供的CFile类。
相关推荐: