新闻中心

EEPW首页>嵌入式系统>设计应用> 如何设计基于ARM的智能测温系统?

如何设计基于ARM的智能测温系统?

作者: 时间:2018-08-01 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201808/384918.htm

3.2 温度传感器驱动程序的设计

在Linux中,为实现模型抽象和统一操作接口,设备驱 动程序隐藏了设备的具体细节,向用户提供了统一的设备接 口。Linux设备驱动运行于内核中,完成直接硬件操作、设 备管理等工作,并向用户提供了统一的接口模型。Linux下 将设备分为字符、块和网络设备三类,同样设备驱动也分为 字符驱动、块设备驱动和网络设备驱动。字符设备面向的设 备是流式设备,如鼠标、键盘等;块设备面向的是需要随 机存储的设备,它主要包括硬盘、光驱等存储设备;其中 DS18B20属于字符设备。

在字符与块设备中由一个主设备号和一个次设备号(minor number)标识驱动设备。主设备号用于标识设备类 型,次设备号用于识别同类设备序号。字符驱动程序通过 file_operaTIons结构的指针向用户程序提供接口抽象。

其内核定义如下:

struct file_operaTIons

{

int (*read) (struct inode *inode,struct file *filp,char *buf,int count); /*设备读*/

int (*write) (struct inode *inode,struct file *filp,char *buf,int

count); /*设备写*/int (*ioctl) (struct inode *inode,struct file *filp,unsigned int

cmd,unsigned int arg); /*I/O控制*/

int (*open) (struct inode *inode,struct file *filp); /*设备打 开*/

void (*release) (struct inode *inode,struct file *filp); /*设备 关闭*/

??????

};

在结构file_operations里,指出了设备驱动程序所提供的 入口点位置,分别是:

read读操作,完成由应用设备向应用程序传递的数据。 write写操作,完成由应用程序向设备发送的数据。 ioctl,进行读、写以外的其它命令操作。 open,打开设备准备进行I/O操作。 release,设备释放操作。 每一个字符设备驱动由一个cdev结构体抽象,具体的驱动的实现由 file_operations实现,用户程序通过dev_t代表设 备号查找到内核中的cdev,由cdev调用到file_operations,从 而调用到实际的硬件操作函数。

4 结论

本文以便携式手持温度测试仪为技术、应用背景,设计了一套具备温度测量、数据记录、LCD显示以及网络通信 功能的温度测试设备。

由于便携式手持温度测试仪具有体积小、功耗低同时 又具备较高性能的要求,采用了微控制器作为系 统的核心控制单元,并在平台上移植了Linux操作以满 足对联网、存储方面的需要。对比众多的处理器,选用 了三星公司基于Cortex-A8 内核的 S5PC100处理器,围绕核心电路设计了温度采集,大容量存储、人机交互、以及网络 通讯等单元电路;在平台电路的基础上实现了Linux系统的 移植工作,并完成了这些设备接口电路的驱动移植工作; 在Linux系统下实现了DS18B20的驱动设计工作,并编写了基 于液晶显示的测试程序。经过实际测试,应用程序能够在 Linux下采集DS18B20的温度数据,并能够实现在LCD上的显示、存储功能,存储文件能够通过网络的NFS服务导出到PC 端,实现了课题设计的功能。


上一页 1 2 3 下一页

关键词:ARM智能测温系统

评论


相关推荐

技术专区

关闭