您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术DS1621在Linux下的IIC接口驱动设计 正文
DS1621在Linux下的IIC接口驱动设计

DS1621在Linux下的IIC接口驱动设计

点击数:7693 次   录入时间:03-04 11:52:37   整理:http://www.55dianzi.com   嵌入式系统-技术

图5 IIC总线读数据操作

  其中S为发送开始标志START,W为写信号位,R为读信号位,A为ACK应答信号,RS为重复开始信号REPEATED START,NA为主机收回数据后发送的NACK信号,P为停止信号STOP。


  3.5 主器件向IIC总线写数据


  3.6 S3C2440从DS1621获得温度数据,保存在内核空间并传送到用户空间


  4 驱动的加载以及测试

  应用程序将驱动从内核空间获得的数据保存下来,首先根据传回的DONE比特位判断温度传感器是否正在数据转换的过程中,如果是,则抛弃该数据,并打印数据不可用的信息;如果否,则接下来根据精度位判断小数点后的数据值,并将结果打印出来。


  最后将驱动程序编译成模块,可以动态地加载、卸载设备驱动,不用重新启动系统就能查看驱动程序结果,方便了驱动的编写与调试工作。

  经过动态编译后,得到目标文件iic.o、1621.o以及应用程序1621_iic_test,将文件下载到S3C2440中,通过#insmodiic.o、#insmod 1621.o加载模块,#./1621_iic_test运行测试程序,如图6所示。

运行测试程序并打印信息

图6 运行测试程序并打印信息

  5 结论

  本文以ARM920T内核的S3C2440为MCU与 数字温度传感器 模块DS1621搭建成多点数字测温电路。MCU通过IIC总线与DS1621进行通信,通过编写linux2.4版本下的IIC驱动程序,完成了S3C2440与带有IIC接口的外围芯片的通信,并实现了DS1621的配置和测温工作,正常工作中DS1621的典型温度转化时间为1 s,数据精度为0.5℃,典型的工作电压和电流值仅为3 V、10μA,具备较高的精度,且自身工作功耗小。通过增加DS1621的使用片数,还可扩展为一个低电压、低功耗的多点数字测温系统,可以广泛地应用在各种嵌入式系统中。驱动程序可使用于其他具有IlC接口的外围芯片的工作,也可将驱动应用于其他具有IIC接口的外围设备通信。



上一页  [1] [2] 


本文关键字:接口  Linux  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术