数字温度传感器DS1621在Linux下的IIC接口驱动设计
IIC总线作为一种申行传输总线,其使用连线少,结构简单,是一种应用广泛的高性能总线方式。而Linux作为一个源代码公开、易于裁剪的操作系统,非常适合于嵌入式系统的应用。Linux操作系统下的嵌入式设备驱动,通过IIC总线,实现ARM与外围模块间的协同工作,有着广泛的应用。
1 IIC总线协议以及选用芯片功能
1.1 IIC总线的特点以及工作协议
IIC串行总线由两根信号线组成:一根双向传输的数据线SDA;另一根是时钟线SCL。IIC总线通过简单的结构即能实现半双工的同步数据传输。
IIC总线采用一主多从的运行机制,在同一时间只能有一台设备作为主设备,总线的运行由主设备控制,主设备控制数据的传送起始信号、发出时钟信号、从机地址信号、数据信号,由接收数据方在传送结束时发出应答信号,每个IIC总线上的设备都有一个唯一的地址,和主设备进行通信。
IIC总线时序如图1所示,在IIC总线使用过程中,传输开始和停止的条件如下:当SCL持续为“1”而SDA从“1”变为“0”时表示将要开始发送数据;而当SCL持续为“1”而SDA从“0”变为“1”表示停止发送数据。其中SDA线上的数据在时钟线SCL为“1”期间必须是稳定的,只有当SCL线上的时钟信号为低时数据线上的状态才能改变。
图1 IIC总线时序图
SDA线上的每个字节必须为8位,每次传输的字节数不限制,每发送1个字节都有1个ACK应答位。
1.2 选用ARM9芯片功能介绍
MCU采用某公司的S3C2440芯片,S3C2440A是某公司的一款基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比、低功耗的应用,且集成了1个IIC总线控制器,能够方便的与带有IIC接口外设的通信。
1.3 数字温度传感器DS1621的芯片功能介绍
DS1621是DALLAS公司生产的一种功能强大的数字式温度传感器和恒温控制器。接口与IIC总线兼容,一片控制器控制可控制多达8片的DS1621,工作电压为2.7~5.5 V,适用于低功耗应用系统。
DS1621可作为恒温控制器单独使用,也可通过2线接口在ARM的控制下完成温度的测量及计算。可以通过寄存器设置调整。DS1621无需外围元件即可测量温度,结果以9位数字量(两字节)给出,测量范围为-55~+155℃,精度为0.5℃:典型转换时间为1 s。
2 电路结构设计
设计采用了S3C2440作为电路中的主设备,控制IIC总线上从器件,由主设备控制IIC总线上的时钟信号以及各种数据信号。采用2片DS16 21作为IIC总线上的从设备,由于DS1621具备IIC总线接口,可直接与S3C2440的SDA和SCL脚相接,通过对DS1621的A2、A1、A0脚(5、6、7脚)组合输入不同的片选信号,可以确定其在IIC总线下工作的从机地址。因为IIC从设备一般都是MOS工艺,所以总线都有上拉电阻。工作时,通过IIC总线将DS1621设置为温度传感器功能和逐次获取数据的工作方式,电路的原理图设计如图2所示。
相关文章
- 2021-11-16嵌入式主板在医用B超诊断仪中的应用
- 2023-08-10基于落锤实验机和虚拟仪器的微加速度计性能测试与分析
- 2022-11-15基于V80系列PLC的制袋封切机控制系统
- 2022-07-04金属波纹管膨胀节某些构件设计问题讨论
- 2023-11-22基于图像识别的精密露点仪
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。