温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于I2C总线的多通道温度实时采集系统的设计与实现
计算机专业
基于
I2C
总线
通道
温度
实时
采集
系统
设计
实现
基于I2C总线的多通道温度实时采集系统的设计与实现
傅煜
目 录
摘 要 I
Abstract II
1 绪论 1
1.1数据采集系统及发展历程 1
1.2 I2C总线及优点 1
2 系统方案 3
2.1 系统方案简介 3
2.2 系统总体方案的确定 3
2.2.1 主控制器方案的选型 3
2.2.2 I2C扩展芯片的选型 4
2.2.3 温度传感器的选型 4
2.2.4 LCD液晶驱动器的选型 5
2.2.5 A/D转换器的选型 5
2.3总结 5
3 P89LPC922单片机及I2C接口 6
3.1 P89LPC922单片机概述 6
3.1.1 芯片内部框图 6
3.3.2 引脚配置 7
3.4 I/O口 7
3.4.1 I/O端口配置 8
3.4.2 准双向口输出配置 8
3.4.3 开漏输出配置 8
3.4.4 仅为输入配置 8
3.4.5 推挽输出配置 9
3.5 中断 9
3.6 I2C总线接口 9
3.6.1 概述 9
3.6.2 I2C特殊功能寄存器描述 10
3.6.3 I2C操作模式 12
3.7总结 13
4 硬件电路设计 14
4.1 单片机控制电路 14
4.2 LED显示模块 15
4.3 远程传输模块 16
4.4 电源模块 18
4.5 温度测量模块 18
4.5.1 A/D转换器 PCF8591 19
4.5.2 温度传感器AD590 19
4.6总结 20
5 系统软件设计 21
5.1 Main函数设计 21
5.2 I2C发送数据函数 22
5.3 键盘中断函数 23
5.4 键盘处理函数 23
5.5 LED显示函数 24
5.6 A/D转换函数 24
5.7总结 25
6 总结与展望 26
6.1 课题总结 26
6.2 课题展望 26
致 谢 28
参 考 文 献 29
附 录Ⅰ 元器件清单 30
附 录Ⅱ 原理图 31
基于I2C总线的多通道温度实时采集系统的设计与实现
摘要:针对远距离多点数据的采集,节省微处理器的输入输出引脚,满足多器件控制的要求,设计一套基于I2C总线的远程数据采集系统。本系统以带有I2C接口的LPC900系列单片机作为主控MCU,来实现数据的处理;以P82B96驱动器提高I2C总线的负载能力,提高传输距离从而实现数据的远程传输;以带有I2C接口的A/D转换器PCF8591来采集数据并进行数据类型的转换;以温度传感器AD590来测量环境温度;以LED驱动器ZLG7290驱动数码管显示数据。通过不断的调试和完善实现多点的温度测量,在数码管上显示即时温度。
本系统采用LPC922单片机为主控制器,通过I2C总线实现远距离的温度测量。本系统分为以下几个模块:微处理器核心模块、LED显示模块、键盘模块、温度测量模块、数据远距离传输模块、电源模块。
关键词:单片机,I2C总线,远程数据采集
Design and implementation of real time data acquisition system for multi channel temperature based on I2C bus
Abstract: For long-distance multi-point data collection, to save the input and output pins of the microprocessor, to meet the requirementsthe control of multiple devices, design a set of I2C bus based remote data acquisition system. The system interfaces with LPC900 MCU I2C as a master MCU, to achieve data processing; to P82B96 I2C bus drive to improve load capacity and improve transmission range in order to achieve the remote transmission of data; to I2C interface with A /D PCF8591 converter to capture data and perform data type conversions; to AD590 temperature sensor to measure ambient temperature; to drive ZLG7290 LED digital display driver data. Debug and improve through continuous multi-point temperature measurement, digital display in real-time temperature.
This system uses the LPC922 microcontroller-based controller, through the I2C bus for remote temperature measurements. The system is divided into the following modules: microprocessor core module, LED display module, keyboard module, temperature measurement module, remote data transmission module, power supply module.
KEY WORDS: microcontroller, I2C bus, remote data acquisition
1 绪论
1.1数据采集系统及发展历程
数据采集是将被测对象(外部世界、现场)的各种参量(如物理量、化学量、生物量等)通过各种传感元件作适当转换后,再经信号调理、采样、放大、滤波、量化、编码,然后通过无线或有线的方式进行传输等步骤,最后送到控制器进行数据处理或存储纪录的过程。
在进行数据采集时,由于许多被测对象离主控中心距离较远或现场环境不允许数据采集系统就近放置,只能用长线通过远距离传送给主控制器,这便产生了远程数据采集系统。应用远程数据采集系统可对生产现场的各种参数进行采集、监视和记录,是提高产品质量、降低成本、增加生产效率和节省人力的重要手段;另外,远程数据采集是控制系统实现控制的基本条件,只有准确实时的获取对象的运行数据才能实施有效的控制。
数据采集系统经历了几个发展阶段。早期的数据采集系统基于ISA、PCI总线,采集的数据是模拟量,系统庞大,采集后需要将模拟信号经过放大、调理通过长线传送给计算机系统;在长线传输过程中信号的电磁干扰是不可避免的,信号转换的过程也存在干扰;基于串口传输数据的数据采集系统传输速度慢,而且多为主从式结构,系统稳定性低。基于单片机的数据采集系统利用数字传感器直接输出数字信号,经过总线的传输直接送给计算机系统,操作方便,无需信号转换。
1.2 I2C总线及优点
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时连接到I2C总线上,所有I2C兼容的器件都具有标准的接口,通过地址来识别通信对象,使他们可以经由I2C总线互相通信。
I2C总线很大程度上减轻了系统对I/O口需求的压力,弥补了系统主处理芯片I/O口的不足,通过扩展芯片总线的传输长度可高达1000米,并且能够以最高以3.4Mbps的最大传输速率支持40个组件。
I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接受数据。在CPU与被控IC之间,IC和IC之间进行双向传送,各种被控电路均并联在这条总线上,每个电路都有唯一的地址。在信息传输过程中,I2C总线上并联的每一个模块电路既是被控器(或是主控器),又是发生器(或是接收器),这取决与它所要完成的功能。CPU发出的控制信号分为地址码和数据码两部分:地址码用来选址,及接通需要控制的电路;数据码是通信的内容,这样各控制电路虽然挂在同一条总线上,却彼此独立。
利用I2C总线实现远程数据采集不但布线方便,传输速度快,操作方便,节省I/O资源,多主式的结构更增加了系统的稳定性。
2 系统方案
2.1 系统方案简介
该系统设计是利用LPC900系列单片机,通过I2C总线,实现远程的温度采集。基于I2C的远程数据采集系统由主控制模块和数据采集模块两大部分构成。主控制模块以LPC900系列单片机为核心控制器,集成了键盘操作功能。温度传感器AD590测得温度后转换为电信号经过放大和信号调理送入A/D转换器PCF8591实现模数转换,再通过由扩展芯片P82B96扩展后的I2C总线实现远距离通信。显示模块利用I2C总线可以并联多个I2C接口器件的特性,使用ZLG7290作为LED驱动器驱动数码管显示。系统方案如下:
图2-1 系统设计框图
2.2 系统总体方案的确定
2.2.1 主控制器方案的选型
方案一:常用的51单片机89C51
89C51无硬件I2C,需用软件模拟I2C时序,操作繁琐,调试麻烦,内部资源不充足,且5V工作电压功耗高、速度低,用于该课题无明显优势。
方案二:LPC900系列单片机
LPC900系列单片机具有体积小、有I2C引脚、超低的功耗(完全掉电时电流低至1µA,工作电压低至2.4~3.6V)、6倍速于80C51、工业级芯片、可靠性高、增强型I/O口、丰富的片内资源和ICP在线编程方便快捷等优势。
用LPC93X系列单片机能满足要求但资源浪费,价格高,故最终确定选用LPC922单片机。
2.2.2 I2C扩展芯片的选型
I2C的传输距离有限。实际应用时,必须扩展I2C通信距离。P82B715和P82B96是Philips研制的应用于远距离通信的I2C扩展器。P82B715只有3000pF的输出容性负载,且不可电平转换,而P82B96的最大输出容性负载高达4000pF,支持电平转换,还可以作为通用的准双向总线缓冲器。当通信速率为31KHz可达到1000米。因此在这个系统里选用P82B96。
2.2.3 温度传感器的选型
方案一:热电偶传感器
热电偶传感器的原理是将温度变化转换为电势的变化。它是利用两种不同材料的金属连接在一起,构成的具有热点效应原理的一种感温元件。其优点为精确度高、测温范围广、结构简单、使用方便、型号种类比较多且技术成熟。目前广泛应用于工业和民用产品中。热电偶传感器的种类很多,在选择时必须考虑其灵敏度、可靠性、稳定性等条件。
方案二:热电阻传感器
热电阻传感器的原理是将温度变化转换为电阻值的变化。热电阻传感器是中低温区最常用的一种温度传感器。它的主要特点是:测量精度高,性能稳定、其中铂电阻的测量精度是最高的,被制作成标准的基准仪。从热电阻的测温原理可以知道,被测温度的变化是直接通过热电阻阻值的变化来变现的。因此,热电阻的引出线的电阻的变化会给测温带来影响。为了消除引线电阻的影响