新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何設計基于ARM的智能測溫系統?

        如何設計基于ARM的智能測溫系統?

        作者: 時間:2018-08-01 來源:網絡 收藏

        本文引用地址:http://www.104case.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 智能測溫 系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鞍山市| 曲阜市| 和林格尔县| 卓尼县| 镇康县| 东港市| 三门峡市| 麦盖提县| 麻栗坡县| 漾濞| 彩票| 溧阳市| 逊克县| 嘉善县| 滨海县| 伊金霍洛旗| 金堂县| 陆丰市| 定安县| 始兴县| 福建省| 抚松县| 南开区| 耒阳市| 偏关县| 犍为县| 临汾市| 阳信县| 韩城市| 石首市| 平陆县| 西峡县| 马龙县| 奉贤区| 吉隆县| 新河县| 静乐县| 新巴尔虎左旗| 平定县| 茶陵县| 肇庆市|