1 导言
在工业操控和工业出产领域中,传感器关于工业操控和出产环境的监控效果显而易见。传统的传感器监控体系大都选用单片机操控,其监控的准确度和实时性不太令人满意。本文寻找到一套切实可行的传感器设计计划,其运用温湿度传感器芯片,根据PXA310硬件渠道和Linux操作体系,能有用监控现场温湿度改变。在周围环境发生改变,不能满意作业要求时,能够获取监控数据并提出预警,进步出产和作业环境检测的可靠性及实时性。
2 温湿度传感器电路设计
比较了一些传感器运用设计计划后,选用SHT10芯片为嵌入式温湿度传感器的核心部件。它外围电路简洁,比较其他传感器芯片(DS18B20)有其独特优势。
STH10 每秒可进行3 次温湿度丈量,数据精度14 bit而且作业安稳。其丈量选用CMOSens 专利,所以在丈量功率和精度上要好于DS18B20.DS18B20 选用单总线操控计划(1-wire),大约每秒丈量一次,9 位数字式温度数据;只供给温度丈量。其在出产环境检测要求严厉时,就显得精度和功用有些缺乏。
2.1 sht10 简介
SHT10 是一款高度集成的温湿度传感器芯片,供给全量程标定数字输出。传感器包含一个电容性聚合体湿度灵敏元件和一个用能隙资料制成的温度灵敏元件,他们与一个14 位A/D 转换器以及一个串行接口电路设计在同一个芯片上面。其经过标定得到校准系数以程序办法储存在芯片OTP 内存中,并运用两线制串行接口与内部电压调整,使外围体系集成变得快速而简略。
2.2 SHT10 作业原理
SHT10 芯片电源3.3V .传感器上电后,等候11ms 来完结”休眠”状况。通讯复位和发动传输指令后,发送一组丈量指令(00000101表明相对湿度RH,00000011表明温度T),操控器要等候丈量完毕。这个进程需求大约11/55/210ms ,别离对应8/12/14bit 丈量。SHT10 经过下拉DATA 至低电平,表明丈量完毕。操控器触发SCK 时钟前,有必要等候这个”数据备妥”信号才能将丈量数据正确读入。
丈量和通讯完毕后,SHT10 主动转入休眠形式。数据传送选用两线制串行接口(与I2C 接口不兼容)。
2.3 SHT10 电路原理图
SHT10 选用LCC 封装,其DATA 和SCK 引脚别离连接到PXA310 的GPIO78 和GPIO79.PXA310经过模仿时序办法完结对外围温湿度传感器的操控和数据读写操作。因为SHT10 关于温湿度灵敏度很高,在体系集成时应尽量远离发热源(如MCU、LCD等),不然丈量成果会有所违背;为SHT10 布线时,周围应尽量铺地削减周围器材对其的搅扰。SHT10 电路原理图如图1 所示。
▲图1 SHT10 电路原理图
3 Linux温湿度传感器驱动程序完结
单片机操控的传感器设备中,单片机通常是单线程运转。在进行温湿度丈量时,单片机需求等候测验成果回来,其办法阻止了其他测验和操作的同步履行。
在嵌入式Linux 体系中,驱动程序将测验使命送入使命行列,交出CPU 操控权,继而进行其他实时使命运转,待内核闲暇再进入使命行列完结传感器的丈量,以此进步体系履行的功率和实时性。
3.1 Linux 温湿度传感器设备加载
温湿度传感器运用Linux 内核的Miscdevice 数据结构在驱动程序初始化时将设备注册到内核。
Miscdevice 是字符设备,其主设备号为10,设备及设备接口函数界说如下所示。
驱动程序加载设备时将调用内核的注册函数。在Linux2.4 和2.6 内核中,简直一切Linux 驱动程序都依托如下函数加载模块。
驱动程序初始化完结后,上层运用程序能够调用sht10_fops 中的sht10_read 函数进行温湿度的读取操作。
3.2 Linux 温湿度传感器设备操作
进行数据读取前,首要要在驱动程序中拓荒4 个字节的数据空间,用于寄存温度和湿度丈量值。这儿界说全局变量数据缓冲区为unsigned char buf[4].
读取SHT10 温湿度数据前,需求进行端口初始化和SHT10 复位操作,然后将使命送于使命行列并堵塞线程,当使命完结回来后再唤醒线程,将读到数据传递给上层运用程序做进一步处理。程序流程图和完结函数如图2 所示。