logo资料库

论文研究-基于SC16IS752芯片的环境数据采集系统设计 .pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
5 10 15 20 25 30 35 40 中国科技论文在线 基于 SC16IS752 芯片的环境数据采集系统 http://www.paper.edu.cn 设计 潘野,童玲,田雨** (电子科技大学自动化工程学院,成都 611731) 摘要:以 NXP 公司 SC16IS752 芯片为核心设计的环境数据采集系统,在控制,管理和调配上 实现了对环境数据采集的智能化和集成化。系统电路直接匹配温度,湿度,风速风向等传感 器接口,经过核心芯片的调控,采集到的环境数据经过差分运算,电压跟随,滤波等过程, 通过与上层系统相连接的接口上传并进行储存和显示。整个系统自身可外接多种不同传感 器,并且能够通过上层系统对其核心芯片进行通信和编程,因此具备较高的扩展性和可塑性, 在环境监测,数据采集等实际应用中有较高的价值。 关键词:SC16IS752;环境数据采集;智能化与集成化;通信和编程 中图分类号:TP212 Design of environmental Data acquisition Based on (School of Automation,University of Electronic Science and Technology of China, SC16IS752 Chip Pan Ye, Tong Ling, Tian Yu ChengDu 611731) Abstract: The environmental data acquisition systemt taking SC16IS752 chip of NXP company as core,which realized for data acquisition of intelligent and integration in control, management and allocate,with the expansibility and plasticity etc. System circuit directly matching temperature, humidity, soil and wind speed & direction sensor interface, after core chip’s regulation and management,the collecting environmental data go through difference operation, the voltage followed, filtering process,passed by upper system matching interface and then uploading, store and display. The whole system itself can external different sensors, and be able to communication and programming with upper system on its core chips , so it has a high expansibility and attribute,at the same time when practice have higher value in environmental monitoring, data acquisition. Keywords:SC16IS752; Environmental data acquisition;Intelligence and integration; Programming and communication 0 引言 随着人们环保意识的提高以及对自然环境的不断深入了解和开拓,环境检测和环境数据 采集是日常科学研究中的一项重要工作。传感器和传感器电路的普及让环境数据采集工作不 断向高度智能化和高度集成化的方向发展[1],自主性的环境数据采集系统具有广泛的应用前 景。 本设计在采集系统中使用了一种智能化的扩展口芯片 SC16IS752,使得单个系统在独立 的电路板上可集成多个采集传感器,利用芯片的调控和管理功能,对多组数据实现选择性上 传。通过与上层系统通信和数据读写,整个系统具备了一定的可编程能力;而系统提供的多 种电源电压又可作为上层系统的能源供给,使得系统具备较高的集成化和智能化。 作者简介:潘野,(1986- ) 男,重庆人,电子科技大学硕士研究生,研究方向为测试计量技术与仪器 通信联系人:童玲,(1963- ),女,四川成都人,教授,博士生导师,研究方向为测试计量技术及仪器. E-mail: tianyu@uestc.edu.cn - 1 -
中国科技论文在线 1 核心芯片简介 http://www.paper.edu.cn SC16IS752 具备 I2C 总线和 SPI 总线接口,双通道高性能的 UART 提供高达 5Mbit/s 的 数据率,低操作和睡眠电流;它还为应用提供了 8 个额外的可编程 I/O 引脚。器件可采用极 小的 HVQFN32 封装,使其非常适用于便携式和小型电子电路板的设计[2]。 SC16IS752 所支持的 IrDA 速率为 115.2kbit/s,其内部寄存器兼容广泛使用和普遍流行 的通用异步收发器(例如 16C450)。这就使得软件容易编写或从另一个平台移植过来。 SC16IS752 还提供其它高级特性,例如自动硬件和软件流控制,自动的 RS-485 支持和软件 复位,这允许软件可在任何时候复位 UART 而与硬件的复位信号无关。 SC16IS752 自身并不带有处理器,因此它并不具有直接编程或储存数据的能力。以 SC16IS752 为核心的数据采集系统采用双排插针接口与上层系统相连接,利用上层系统的核 心芯片对采集系统进行编程和控制。这种将整个传感器节点分为数据采集系统和上层系统的 设计独立了数据采集电路,电源电路和传感器电路,配合不同的上层系统和不同的上层软件, 采集系统具备较强的灵活性和扩展性。本设计采用 TI 公司的无线收发芯片 CC2531 及相应 的软件编写作为上层核心芯片。 2 系统硬件设计 如图 1 所示,系统主要分为 4 个部分:电源部分,传感器采集电路,模拟开关,核心芯 片及外围电路。而其中各种调理信号的有序传输通过模拟开关和扩展口芯片来共同实现。外 部配备一块 8V10W 的太阳能电池板,利用其与 6V 铅酸电池的压差对电池进行不间断的充 电,解决了系统在野外长时间工作的能源问题。 45 50 55 60 图 1 系统框图 - 2 -
中国科技论文在线 2.1 电源部分 65 http://www.paper.edu.cn 系统的电源部分一共包括 3 个电压转换电路:6V 铅酸电池提供总电源,为风速风向传 感器等部分直接供电,并提供电池电压检测信号;芯片 NCP3335A 将 6V 电压转换为 5V 电 压,对 CC2531 接口,8 选 1 模拟开关 ADG708 以及湿度传感器提供 5V 供电;芯片 LM4040 将 5V 电压转换为 2.5V 电压,并通过 OPA354 精密放大器对温度传感器提供 10 毫安的基准 电流;5V 电压又通过芯片 SP6200 转换为 3.3V 电压为核心芯片 SC16IS752 提供电源。 在实际设计中,需要注意 6V 转 5V 芯片 NCP3335A 的散热问题;由于多个电源电压共 存在模拟部分和数字部分,一些必要的滤波手段也是必须的。电压转换电路如图 2 所示: 70 75 80 85 图 2 电源部分 2.2 传感器采集电路 环境数据采集需要由特定的传感器来完成,而采集系统则对传感器采集到的数据进行管 理和传输,不同的外接传感器可以实现不同数据的采集,同时连接多组不同传感器并利用 SC16I752 芯片进行编程调控则形成了多组数据同时采集的完整系统。本设计中同时外接了 空气温度传感器,土壤温度传感器,空气湿度传感器,土壤湿度传感器和风速风向传感器 5 组传感器进行相应的环境数据采集工作。 如图 3 所示的 PTWD-3A 型空气温度传感器采用精密铂电阻作为温度感应探头,其阻值 随温度变化而变化。电源部分提供的 2.5V 电压通过 OPA354 精密放大器及其外围电路形成 稳定的 10 毫安恒流源流过铂电阻,电阻两端形成的压差再通过 LT1991 运算放大器进行差 - 3 -
中国科技论文在线 http://www.paper.edu.cn 分运算得到差分电压,这个电压传输进入上层系统进行计算则可得到温度数据读数。 如图 4 所示的 TDR-3 型土壤湿度传感器,根据不同的采集数据得到两个不同电压信号, 通过由 LT1991 运算放大器所组成差分电路进行运算和滤波,在根据相应的公式进行计算得 到湿度数据读数。 90 在数据采集系统设计中不同的传感器只要对应相应的采集电路,即可进行相应的数据采 集工作。本设计中的采集系统还包括了空气湿度,土壤温度和风速风向传感器电路,它们的 基本原理和图 3,图 4 中的电路相同或类似,这里不再累述。 95 图 3 PTWD-3A 型空气温度传感器及外围电路 图 4 TDR-3 型土壤湿度传感器及外围电路 2.3 模拟开关 100 105 数据采集系统包括了多路不同的采集信号电路,在实际应用中,每一路传感器信号由于 传感器种类的不同,需要单独的信号传输电路[3]。因此,在设计中采用 ADG708 八选一模拟 开关进行信号传输调理。如图 5 所示,A0-A2 为片选信号,决定在某一时刻具体哪一路采集 到的 AD 信号被选通传至上层系统(本设计中用到了 5 个传感器,因此是 5 路信号参与片选, 至多可以片选 8 路信号)。片选信号的低电平由 SC16IS752 的可编程 GPI/O 口提供,同时 这些 GPI/O 口还提供传感器的使能信号 CN,配合片选信号,以确保传感器在片选到时被唤 醒并进行数据采集工作,而未被选通的传感器则处于休眠以节约能源。 - 4 -
中国科技论文在线 http://www.paper.edu.cn 通过 SC16IS752 可编程 GPI/O 控制的 ADG708 模拟开关让多路传感器得以有序的合理 的进行数据采集工作,在同一时刻只会有一路信号传输到上层系统,大大减少了数据冗长带 来的软件编写复杂度,而使能信号的引入则节约了能源。关于 SC16IS752 的可编程 GPI/O 将在后文中介绍。 110 图 5 模拟开关 2.4 核心芯片及外围电路 115 120 SC16IS752 芯片是整个数据采集系统的核心部分,它提供的片选信号和使能信号直接控 制和调理传感器的传输。而上层系统也是通过它来对采集工作进行指令给予和调度。如图 6 所示,CC2531 表示与上层系统核心芯片 CC2531 相连接的双排针插座,上层系统可以设计 相应的接口与采集系统对接并进行通信;1.8432M 晶振为 SC16IS752 提供稳定的波特率; MAX809 为复位芯片,低电平有效,由于供电电压为 3.3V,这里的复位芯片选用的掉电电 压为 2.93V(MAX809SD),它能够在忽然掉电的情况下起到保护核心芯片的作用。 SC16IS752 与上层系统核心芯片 CC2531 之间采用 SPI 通信模式,通过上层系统的软件 编程,可对采集系统核心芯片的 I/O 口进行赋值,同时上层系统接受采集系统的采集数据, 并同时提供风速风向传感器的使能信号 dig_EN。 125 3 系统软件设计 图 6 SC16IS752 及外围电路 SC16IS752 本身并不能进行编程,因此在编写串口(或 I/O 口)程序时,我们通过上层 - 5 -
中国科技论文在线 http://www.paper.edu.cn 130 135 系统的处理器芯片 CC2531 对 SC16IS752 进行 SPI 通信,采用 SPI_P1 模式的 4 个引脚对其 内部的寄存器进行读写操作,从而达到控制采集系统的目的。它们之间的 SPI 通信结构如图 7 所示。 这是一个典型的 SPI 通信模式,CS 为片选信号,低电平有效,CL 为时钟信号,CC2531 的波特率为 9600,而 SI 为数据写入口,SO 为数据输出口,提供一个反馈信号。在实际通 信中,数据以每 8 位为一个周期,按照设定的时钟频率进行发送,而这些数值通过:地址/ 值的结构,在 SC16IS752 内部进行寄存器访问,改变它们的值,以按要求对所有 GPI/O 口 进行配置。 图 7 采集系统与上层系统通信原理 140 3.1 核心芯片及外围电路始化程序 145 150 首先对 CC2531 进行初始化配置操作,将 CC2531 通信模式设置为 SPI 模式,并将相对 应的 P1_5,6,7(也就是与 SC16IS752 相连接的引脚)设置为 SPI 主机模式,并赋予它们对应 的功能[4]。 在对 CC2531 配置完毕过后,则可以通过 SC16IS752 的 SI 接口对其内部寄存器进行初 始化赋值,所有的赋值语句均采用:地址/值的 16 位形式,发送过程则采用每 8 位一发的方 式。程序编写如下: Void EEPROM_iospread_WRITE() //uint16address,uint8*Sdata,uint8 SpiLen { //uint8 DCounter=0; //uint8 *userData; //userData=Sdata; write_iospread(0x03,0x80); //修改地址为 0x03 的 线控制寄存器 LCR 的 8 位值为 0x80,二进制数 1000 0000,LCR 155 【7】 =1,可访问特殊寄存器。 write_iospread(0x01,0x00); //修改地址为 0x01 的除数寄存器(特殊寄存器)DLH 的 8 位值为 0x00,二进制数 0000 0000,设置波波特率产生的 16 位除数的高 8 位为 0。 160 write_iospread(0x00,0x0C); - 6 -
中国科技论文在线 http://www.paper.edu.cn //修改地址为 0x00 的除数寄存器(特殊寄存器)DLL 的 8 位值为 0x0C,二进制数 0000 1100, 设置波波特率产生的 16 位除数的低 8 位为 12(10 进制)。 write_iospread(0x03,0xBF); //修改地址为 0x03 的线控制寄存器 LCR 的 8 位值为 0xBF,二进制数 1011 1111,LCR 【7】=1,可访问增强型特性寄存器 EFR。 write_iospread(0x02,0x10); //修改地址为 0x02 的增强型特性寄存器 EFR 的值为 0x10,二进制数 0001 0000,设置如 下:禁止 CTS 流控制;禁止 RTS 流控制;禁止特殊字符检测;开启增强型功能,使得 IER 【7:4】,FCR【5:4】,MCR【7:5】可以被修改。 write_iospread(0x03,0x00); //修改地址为 0x03 的线控制寄存器 LCR 的 8 位值为 0x00,二进制数 0000 0000,LCR 【7】=0,可访问通用寄存器。 write_iospread(0x04,0x00); //修改地址为 0x04 的 Moedm 控制寄存器 MCR 的 8 位值为 0x00,二进制数 0000 0000, 设置如下:设定为 1 分频时钟输入;设定为正常 UART 模式;禁用 Xon Any 功能;使能正 常操作模式;保留位=0;禁用 TCR/TLR 寄存器;强制 RTS 输出无效(高电平);强制 DTR 输出无效(高电平)。 write_iospread(0x0E,0x00); //修改地址为 0x0E 的 I/O 控制寄存器 I/OControl 的 8 位值为 0x00,二进制数 0000 0000, 设置如下:I/OControl【7:4】=0,保留为设置为 0;软件复位,写该位将复位器件,一旦器 件复位,该位自动设为 0;设定 GPIO【3:0】为 I/O 口;设定 GPIO【7:4】为 I/O 口;输入值 不被锁存,任何输入改变将产生中断,读输入寄存器清除中断。 write_iospread(0x0A,0xFF); //修改地址为 0x0A 的 I/O 方向寄存器 I/ODir 的 8 位值为 0xFF,二进制数 1111 1111, 设置 GPI/O【7:0】为输出口。 } 以上所有语句均是对 SC16IS752 内部寄存器进行赋值,以达到初始化寄存器的目的。 165 170 175 180 185 经过一系列的寄存器写操作,SC16IS752 的 8 个 GPI/0 口的初始化完成。 3.2 配置 I/O 口 190 SC16IS752 的 8 个可编程 I/O 口中,GPI/O_7-5 为 ADG708 提供片选地址;GPI/O_4 悬 空不用;GPI/O_3-0 为传感器提供使能信号,而 P0_0 为采集数据传输口。数据采集工作流 程如下:CC2531 通过 SPI 通信模式控制 SC16IS752 的 8 个可编程 I/O 口的电平,4 个使能 信号端口选择具体哪一个传感器被允许传输数据,3 个地址端口选择具体那一路片选信号得 以传输进 CC2531。通过对 I/O 口的编程配置即可调理采集信号[5]。 例如,当与使能信号 CN2 连接的 GPI/O_2 输出电平为导通电平(低电平)时,片选地 址同时选择 S2 这一路的信号传输,则受 CN2 使能的传感器所采集到的数据便通过 P0_0 口 传输到 CC2531。因此,对于采集数据的编程也是通过对 I/O 口赋值来完成的。程序如下: { write_iospread(0x0B,0x07); //修改地址为 0x0B 的 I/O 状态寄存器 I/OState 的 8 位值为 0x07,二进制数 0000 0111, 195 200 - 7 -
中国科技论文在线 http://www.paper.edu.cn 即设置 GPI/O_3 的输出管脚为低电平,关闭其他传感器,使能信号 CN1 仅导通空气湿度传 感器。同时对 ADG708 进行片选,片选地址 000,使 AD1 信号(空气湿度)通过 P0_0 采集 入 CC2531。 write_iospread(0x0B,0x8B); //修改地址为 0x0B 的 I/O 状态寄存器 I/OState 的 8 位值为 0x8B,二进制数 1000 1011, 即设置 GPI/O_2 的输出管脚为低电平,关闭其他传感器,使能信号 CN2 仅导通空气温度传 感器。同时对 ADG708 进行片选,片选地址 001,使 AD2 信号(空气温度)通过 P0_0 采集 入 CC2531。 write_iospread(0x0B,0x4D); //修改地址为 0x0B 的 I/O 状态寄存器 I/OState 的 8 位值为 0x4D,二进制数 0100 1101, 即设置 GPI/O_1 的输出管脚为低电平,关闭其他传感器,使能信号 CN3 仅导通土壤湿度传 感器。同时对 ADG708 进行片选,片选地址 010,使 AD3 信号(土壤湿度)通过 P0_0 采集 入 CC2531。 write_iospread(0x0B,0xCE); //修改地址为 0x0B 的 I/O 状态寄存器 I/OState 的 8 位值为 0xCE,二进制数 1100 1110, 即设置 GPI/O_0 的输出管脚为低电平,关闭其他传感器,使能信号 CN4 仅导通土壤温度传 感器。同时对 ADG708 进行片选,片选地址 011,使 AD4 信号(土壤温度)通过 P0_0 采集 入 CC2531。 write_iospread(0x0B,0x0F); //关闭所有传感器,关闭片选信号。 } 通过以上软件编写,在实际应用中可以依次打通一个(且仅在一个时间打通一个传感器 以减少能源损耗)传感器进行数据采集,当依次采集完毕后关闭所有的传感器,主程序进入 循环,等待新一轮的采集。风速风向传感器由于采集电路略有不同,这里没有给出程序编写。 本设计中跳过了采集系统而利用上层芯片对它提供使能信号 dig_EN。当然,利用采集系统 的芯片控制同样可以达到目的,方法和其他传感器类似。这也从另一个角度说明了整个系统 的灵活性与扩展性。 4 结论 本文设计了一套基于 SC16IS752 芯片的环境数据采集系统,并对其核心软硬件部分进 行了较为详细的描述。利用 SC16IS752 芯片强大的扩展功能和可编程 I/O 口,能对采集系统 中的多路不同传感器电路进行调控,而并不拘泥于本文中所提到的传感器设计。配合适当的 上层系统,本系统既可以充当传感器节点的数据采集系统,也可以作为上层系统的信号调理 板,具有一定的扩展性[6]。 而在本设计中以 CC2531 无线收发芯片作为上层系统核心芯片则是对该环境数据采集 系统的一个具体应用。一方面外接的 5 个环境参数传感器将采集到的环境数据上传,上层系 统可以对这些电讯号进行储存,处理和显示;另一方面,上层系统又可以通过软件编写对下 层系统进行调控,大大丰富了采集系统的功能。此外,采集系统所包括的电源部分和模拟开 关部分提供能源并进行分配,符合现代单片机系统高度集成化的特点。 实际应用中,环境数据采集系统作为直接外接传感器的基础,对构建更加复杂和完善的 环境数据无线传感器网络起着至关重要的作用。 205 210 215 220 225 230 235 240 - 8 -
分享到:
收藏