黄锋刘杨东谭山黄甦
(1.广州计量检测技术研究院 2.广州机场出入境检验检疫局 3.珠海市质量计量监督检测所)
基于I2C总线的湿度数字传感器的设计与实现
黄锋1刘杨东2谭山1黄甦3
(1.广州计量检测技术研究院 2.广州机场出入境检验检疫局 3.珠海市质量计量监督检测所)
本文介绍基于I2C总线的湿度数字传感器的设计方案,给出了具体的应用电路,并提出了一种提高电路准确度的方式,拓展了I2C总线器件的应用。
I2C;传感器;湿度
智能传感技术是涉及微机械电子技术、计算机技术、信号处理技术、传感技术与人工智能技术等多种学科的综合密集型技术,它能实现传统传感器所不能完成的功能,是传感器技术发展的主要方向之一。智能传感器系统的总线标准概括可分为基于典型芯片级的总线、USB总线和IEEE1451智能传感器接口标准,其中典型芯片级的 I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,在消费类电子产品、智能仪器仪表和工业测控领域应用广泛。据研究报道,美国火星探测计划的“勇士”号和“机遇”号火星车上采用的就是100kb/s的I2C总线;美国宇航局喷气推进实验室(JPL)的深空系统技术计划(X2000)已将I2C总线作为低功耗总线标准,在其后续项目中仍将采用,证明了I2C总线的价值和可靠性。
目前除了芯片级的I2C数字传感器件,其它传感器一般需通过信号调理后由I2C总线的A/D芯片来实现。市面上I2C总线的湿度数字传感器极少,SHTXX系列和HTD2230湿度传感器仅是采用了类似I2C的两线式串行总线,其电气标准并不是I2C标准,不能兼容I2C总线,不能在总线上挂多只传感器。本文提出一种真正的 I2C总线的湿度数字传感器的实现方案,其总体思路是采用振荡器调理湿度传感器信号,通过计数器测量RC振荡器的输出频率,使用I2C的I/O器件对计数值进行读取,从而实现I2C接口。
I2C总线由飞利浦半导体公司开发,总线标准已经成为国际标准的一种,目前 I2C总线规范版本为2.1,I2C总线是用于芯片之间连接的总线。该总线使用两根信号线进行数据的传输,包括:串行时钟线(Serial Clock Line,SCL)和串行数据线(Serial Data line,SDA)。连接到I2C总线上的任何器件都拥有唯一的地址,分7位地址器件和10位地址器件两种。
I2C总线最显著的特点是规范的完整性、结构的独立性和用户使用时的简单化。I2C总线有严格的规范,如接口的电气特性、信号时序、信号传输的定义、总线状态设置、总线管理规则及总线状态处理等。
作为一种串行总线,I2C总线虽没有并行总线的数据吞吐能力,但它只需要很少的配线和IC连接管脚,电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。其优点包括:
① 根信号线组成了I2C总线,结构简单;
② 容易实现的协议内容。由于协议规范非常简单,I2C各部件的逻辑很容易在芯片内部以硬件方式实现;
③ 数十个器件可以同时挂在同一条I2C总线上,I2C总线上的器件可带电接入或撤出即热插拔,非常便于组网应用;
④ 电气兼容性好。器件之间以开漏 I/O相互连接,兼容3V/5V的逻辑电平只要选取适当的上拉电阻就能轻易实现;
⑤ 通信速率非常高。标准模式下,I2C总线传输速率为100 kb/s;快速模式下为400 kb/s;高速模式下可达3.4Mb/s。
常用的湿度传感器分为电阻式和电容式两种。湿敏电阻的优点是灵敏度高,缺点是线性和产品的互换性差;湿敏电容的优点是灵敏度高、产品互换性好、响应速度快、湿度的滞后量小、便于制造、容易实现小型化和集成化,但精度一般比湿敏电阻要低。另外还有电解质离子型湿敏元件、重量型湿敏元件、光强型湿敏元件、声表面波湿敏元件等,这些湿敏元件的线性度及抗污染性差,容易被污染而影响其测量精度及长期稳定性。因此,市场常见的是电容式湿度传感器。
以常用的HS1100电容式湿度传感器为例,其相对湿度RH与输出电容Cx之间的关系如下:
式中:Cx为传感器输出电容值;C@55%为相对湿度55%时的传感器输出电容值;RH为相对湿度。
C@55%的典型值为 180pF,相对湿度在 0%~100%范围其电容值范围约为160pF~200pF,电容值变化范围约40pF,典型工作频率在5kHz~10kHz。这样的电容范围目前没有CDC转换芯片,可采用经典的振荡器电容测量电路,或采用NE555实现电容/频率的转换。
以准确度为2%的湿度传感器为设计目标,电路部分的误差分配定在0.5%,则电容/频率转换准确度要达到:0.5%×40pF/200pF=0.1%。由于NE555的电容/频率转换稳定性远达不到0.1%,故采用RC文氏电桥振荡电路,其电路原理如图1所示。考虑I2C总线只有单电源,为简便不另增加电源电路,将RC文氏电桥振荡电路调整为单电源振荡电路,直接使用I2C总线的电源工作,电路原理如图2所示。
该振荡电路的振荡频率如下:
其中,R3、R4取值相同;C4取传感器在 55%相对湿度时的电容值;Cx为传感器的输出电容。R1/R2取3左右,R21=R22。电路参数的设计要求频率f介于5 kHz~10 kHz。
图1 RC文氏电桥振荡电路
图2 单电源供电的RC文氏电桥振荡电路
频率计数方式有两种:一是在已知时间T内测量频率信号f 的脉冲个数n,则f =n/T,T为采样周期;二是在m个被测频率信号f 的脉冲个数周期内测量已知频率信号f0的脉冲个数n,则f =n/mf0,mf 为采样周期。鉴于被测频率不高(小于10 kHz),秒级的基准时间信号获得较为麻烦,故采用方式二较易实现高准确度的测量。
常用的分频器/计数器CD4040为12位,以被测信号7kHz为例,3级分频后可获得约0.5 ms的采样周期,测量4 MHz的标准频率可获得约2000个计数值,计数准确度可达0.05%,达到设计要求。
电路具体实现时,还需采用锁存器对计数器的计数值进行锁存,直至下一个采样周期完成时予以更新并再次锁存,使得随时采集锁存器的输出均是有效的计数值。电路器件的选择为CD4040计数器、74LS174锁存器、4 MHz有源晶振,电路原理如图3所示。
图3 频率计数电路原理图
上述方案获得的计数值最大只能达4096(212),对相对湿度测量而言,并不是振荡器的整个频率范围都是有效的湿度测量范围,湿度测量范围仅相对于计数值范围的约25%,因此可以采用将高位无效计数值“溢出”的方式提高测量的准确度。
计数“溢出”的原理是:以振荡器参数实现相对湿度0%对应频率7.3 kHz,相对湿度100%对应频率6 kHz为例,3级分频后获得的采样周期T分别为:
对4 MHz晶振信号的计数值n分别为:
n值均在12位计数器的计数范围内,但湿度测量的有效计数值只有2667-2192=475。
采用“溢出”计数,则可将3级分频提高至5级分频,可获得8776~10667个计数值,湿度测量有效计数值为1891。理论上需要14位(214=16384)的计数器,但即使仍使用12位的计数器,虽然此时12位计数器计数溢出,只可获得低 12位的计数值8776-8192=584和10667-8192=2475,但通过补值计算仍可获得真实的计数值,此时获得湿度测量的有效计数值为1891,对比“溢出”前提高了4倍的有效计数值,可获得4倍的测量准确性。
对计数电路的锁存器输出进行读取即可获得计数值,从而通过计算获得相对湿度。采用I2C总线的I/O器件便实现了I2C总线的湿度数字传感器。
I2C总线的12位以上的I/O器件有PCA9535、PCA9555、PCA9539、PCA9671等,本例采用低廉的PCA9535。PCA9535为16位I/O器件,具有3位可设置的地址位,可赋予8个I2C器件地址,方便多只传感器的组网使用,实现多路测量。PCA9535有 2组8位I/O通道,每位均可单独设置为输入或输出,本例需至少设置12位输入,具体I2C总线命令见表1。
表1 PCA9535的I2C传输命令
此时,只需将PCA9535A组的8位数据线和B组的低4位数据线与锁存器74LS174的输出端相连即可实现I2C接口的湿度数字传感器。
湿度传感器电路的最关键性能是频率稳定性,对本电路分别连接标准电容和HS1100湿度传感器进行了频率稳定性实验,实验数据分别见表2、表3。
表2 接标准电容时电路频率稳定性实验数据
表3 接HS1100时电路频率稳定性实验数据(20℃)
实验数据表明,频率稳定性良好,说明本电路是有效可行的。
本文提出了基于I2C总线的湿度数字传感器的设计方案:采用RC振荡器实现电容/频率的稳定转换,采用计数器的方式测量频率,并提出采用计数“溢出”的方式提高湿度信号的测量准确度;同时,仅采用I2C总线电源,设计了单电源供电的振荡器。整体设计方案简单,通过实验验证,本方案有效、可行,通过I2C接口实现了湿度传感器的数字化。
[1] 赖宜章,刘冰茹.试验室温度湿度测量控制系统[J].广东自动化与信息工程,1999,(02):31-33.
[2] 孙延辉.基于I~2C总线的多点温度采集系统设计[J].科学技术与工程,2009,(22):6843-6846,6852.
[3] 匡宇国.智能传感器 SHT11及其在便携式温湿度检测仪中的应用[J].电子器件,2006,(04):1312-1315.
[4] 黄晓因,王伟.基于频率测量的自校正高精度湿度仪[J].计算机测量与控制,2004,(07):693-694,700.
[5] 吕艳.I~2C总线技术在并行口扩展方面的应用[J].安徽冶金科技职业学院学报,2009,(02):58-60,75.
[6] 于拴道,张江亚,唐尧华.环境温、湿度及光照三合一传感器设计[J].电子科技,2011,(06):112-115.
[7] 李国柱.利用温湿度传感器SHTxx实现湿度测量[J].西安文理学院学报(自然科学版),2008,(01):101-103.
Design and Implementation of a Digital Humidity Sensor Based on I2C
Huang Feng1Liu Yangdong2Tan Shan1Huang Shu3
(1.Guangzhou Institute of Measuring and Testing Technology 2.Guangzhou Airport Entry-Exit Inspection and Quarantine 3.Zhuhai Supervision Testing Institute of Quality and Metrology)
This paper introduces design of a humidity digital sensor and specific applied circuit, provides a circuit of improving accuracy and application of I2C bus and devices.
I2C; Sensor; Humidity
黄锋,男,1968年5月生,硕士,高级工程师,主要研究方向:热工力学检测技术、虚拟仪器、测量不确定度分析等。
刘洋东,男,1977年4月生,硕士,工程师,主要研究方向:进出口商品检测。
谭山,男,1960年3月生,本科,高级工程师,主要研究方向:仪器仪表、电子电路技术等。
黄甦,男,1968年8月生,硕士,高级工程师,主要研究方向:无线电技术、电学计量等。