數字溫度傳感器DS1621在Linux下的IIC接口驅動設計

2020-11-29 電子產品世界

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線上的時鐘信號為低時數據線上的狀態才能改變。

本文引用地址:http://www.eepw.com.cn/article/162269.htm


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所示。



3 驅動程序設計
Linux下的驅動程序將所有設備看作文件,驅動程序則為應用程式和硬體設備之間提供了操作訪問的接口,使應用程式可以像操作普通文件一樣對硬體設備操作訪問。Linux內核把驅動程序劃分為3種類型:字符設備、塊設備和網絡設備。其中,字符設備和塊設備可以像文件一樣被訪問。DS1621的IIC驅動屬於字符設備。
開始工作時,DS1621的工作方式是由片上的設置/狀態寄存器來決定的:1)當通過IIC總線向DS1621寫入讀寫設置命令ACh之後ARM發出的一字節將設置DS1621的工作方式,然後發出溫度轉換命令EEh,讀溫度命令AAh;2)DONE比特位表示工作在測溫功能時,溫度數據已轉換完畢,保存在非易失性寄存器中;3)THF、TLF是DS1621作為恆溫器時的狀態標識位,當超過TH預置值或低於TL預置值時被置為1;4)1SHOT為一次模式位,該位為1時每次收到溫度轉換命令就執行一次溫度轉換,為0時將執行連續溫度轉換。DS1621寄存器配置如圖3所示。


在調試過程中發現,若使用連續轉換模式時,在極少數情況下出現數據明顯不正確,故採用了逐次讀取數據模式,即逐次配置DS1621的溫度轉換,逐次獲取數據,並每次判斷DS1621工作狀態、數據範圍和精度,從而獲得了更加穩定、精確的實驗結果。
驅動程序的功能包括:初始化以及釋放硬體設備;S3C2440通過IIC總線對DS1621的控制寄存器進行配置;S3C2440讀取DS1621寄存器內的溫度數據,通過接口函數,將數據從內核空間發送到用戶空間。驅動程序設計流程圖如圖4所示。


3.1 設備驅動的主要函數
對於字符設備,Linux內核對這些操作進行了統一的抽象,把它們定義在結構體file-operation中。通常,字符設備提供給應用程式的是一個流控制接口,主要包括open、release、read、ioctl等。

linux作業系統文章專題:linux作業系統詳解(linux不再難懂)

linux相關文章:linux教程

傳感器相關文章:傳感器工作原理

風速傳感器相關文章:風速傳感器原理 上拉電阻相關文章:上拉電阻原理 溫溼度控制器相關文章:溫溼度控制器原理

相關焦點

  • Linux下I2C總線EEPROM驅動程序設計方法
    可以針對某個I2C總線設備來設計一個I2C設備驅動程序,而不需要關心系統的I2C總線控制器是何種類型,所以提高了其可移植性。另一方面,在設計I2C總線驅動時也可以不要考慮其將用來支持何種設備。因為i2c-core提供了統一的接口,所以也為設計這兩類驅動提供了方便。
  • 帶I2C接口的數字溫度傳感器TMP101及其應用
    關鍵詞:溫度傳感器;I2C;SMBus;PrPMC800;TMP1011 TMP101的引腳功能和主要特性TMP101是TI公司生產的12位低功耗、高精度的數字溫度傳感器?它採用與I2C和SMBus相兼容的2線數字接口,可應用於許多高解析度和寬量程溫度測量場合,如溫度控制系統、個人計算機保護、電子測試儀器、辦公設備以及生物醫學儀器等方面。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    對上層用戶提供調用接口。完成計算機應該完成的功能。B、關於可移植性可移植性指與軟體從某一環境轉移到另一環境下的難易程度。為獲得較高的可移植性,在設計過程中常採用通用的程序設計語言和運行支撐環境。儘量不用與系統的底層相關性強的語言。可移植性是軟體質量之一,良好的可移植性可以提高軟體的生命周期。
  • 數字溫度傳感器DS1722原理及應用
    摘要:在分析數字溫度傳感器DS1722的功能、特點、應用領域以及時序的基礎上,設計了由而數字溫度傳感器更因適用於各種微處理器接口組成的自動溫度控制系統具有可以克服模擬傳感器與微處理器接口時需要信號調理電路和A/D轉換器的弊端等優點,被廣泛應用於工業控制、電子測溫計、醫療儀器等各種溫度控制系統中。其中,比較有代表性的數字溫度傳感器有DS1820、MAX6575、DS1722、MAX6635等。
  • 無線溫度傳感器設計方案集錦
    使用USB通訊時,首先將USB電路板一端與傳感器節點的電路板連接,另一端與計算機連接,然後將CP2102的驅動程序安裝在計算機上,計算機將 CP2102虛擬成一個COM口,最後就能夠以訪問一個標準COM口的硬體方式訪問CP2102。USB通訊電路如圖5所示,網絡系統將µPD78F0485的異步串行接口UART6與CP2102的異步串行接口相連接。
  • STM32直接驅動RGB接口的TFT數字彩屏設計
    一般來說,對於RGB總線接口的數字屏都需要有控制器才能正常顯示,但是本文利用STM32處理器設計出了一種能直接掛載RGB接口數字屏的方法。實際應用驗證了該CPU有足夠的時間來處理用戶程序,一般中低端的CPU很難做到這一點。
  • ADT75型數字溫度傳感器的原理和應用
    關鍵詞:數字溫度傳感器;ADT75;溫度控制系統1 引言 ADT75是ADI公司推出的數字溫度傳感器,內置1個高度集成的溫度傳感器,其額定工作溫度範圍為-55℃~+125℃,能夠對溫度進行準確測量。其內部還包含1個12位的ADC,用來監測並數位化溫度值,其解析度可達0.0625℃,功耗低,工作電壓範圍是3 V~5.5 V。若工作電壓在3.3 V,其典型電流值為300 μA;在關斷模式下,典型電流值僅為3μA。ADT75是一款完善的數字溫度傳感器,集傳感器和模數轉換器於一體,可大大簡化溫度測試系統的設計,提高系統的集成化。
  • 高精度數字溫度傳感器為基於RTD和醫療應用的設計帶來簡便性
    - TI的單晶片數字溫度傳感器可在寬範圍內實現高達 �0.1�C 的精度,幫助工程師簡化設計工作。北京2018年10月26日電 /美通社/ -- 德州儀器(TI)近日推出新的溫度傳感器系列,可在寬溫度範圍內實現高達�0.1�C的精度,有助於簡化工業和醫療應用的系統設計。TMP117是第一款具有與Platinum RTD相似性能的單晶片溫度傳感器,同時顯著降低設計複雜性和功耗。TMP117M是一款適合醫療應用的數字溫度傳感器,符合醫療溫度計的要求。
  • 由ATmega324p實現的數位化無線溫度傳感器設計方案
    2 系統硬體設計  所設計的無線溫度傳感器主要由以下幾部分組成:溫度測量、發射部分、接收部分、LCD顯示部分以及操控部分。系統結構圖如圖1所示。    2.1 溫度測量電路  在溫度測量電路中採用Dallas公司生產的1-Wire總線數字溫度傳感器DS18B20
  • 嵌入式智能化傳感器的設計
    傳感器本身的智能化給現代儀表設計提供了更大的空間,一些微控制器本身帶有A/D和D/A轉換器、通訊接口(SPI,CAN等)和保存校正參數的非易失存儲器的功能,這種微控制器應用於傳感器不僅給傳感器功能提供了很多的附加功能,給用戶提供了方便,而且減小了系統的有效空間,與一般系統設計中採用放大器、電阻及A/D轉換器相比,這種微型控制器在性能/價格比上更具有競爭優勢(其具備的A/D功能和D/A功能,通訊接口和程序存儲器等可以節約更多的硬體成本
  • 基於Linux系統的多種串行總線統一接口的實現
    關鍵詞:統一接口;嵌入式系統:Linux;設備驅動;串行總線0 引言在Linux內核中單獨實現TTY、I2C、SPI、ISA、USB等多種總線驅動時,每一種總線的實現都有各自的特點,如參數設置不同,實現的結構不同等。
  • 艾邁斯半導體創新推出全球最高精度的數字溫度傳感器
    · AS6221是一套完整的溫度傳感器系統,測量精度可達±0.09°C,性能優於市場上同類的數字溫度傳感器晶片· 藉助該傳感器,健康狀態監測產品能夠實現更精準的人體/皮膚溫度測量性能
  • 基於單片機和溫度傳感器實現數字溫度計的設計
    打開APP 基於單片機和溫度傳感器實現數字溫度計的設計 夏曉玲 發表於 2021-01-11 09:39:42 1 DS1620
  • 基於PXA310平臺的溫溼度傳感器設計與實現方法
    的設計與實現方法。在Linux 作業系統下通過對驅動程序接口調用,完成溫溼度數據讀取和預警,並對Linux 驅動程序編寫進行比較。2 溫溼度傳感器電路設計比較了一些傳感器應用設計方案後,選用SHT10晶片為嵌入式溫溼度傳感器的核心部件。它外圍電路簡便,相比其他傳感器晶片(DS18B20)有其獨到優勢。STH10 每秒可進行3 次溫溼度測量,數據精度14 bit並且工作穩定。
  • 不同類型溫度傳感器選型及應用設計
    電機控制、組裝生產線、過程和生產等工業應用也要求連續監測和溫度控制。 為了支持各種溫度檢測需求和應用,出現了不同類型的溫度傳感器。有些傳感器設計用於測量大廈內的環境溫度,在不同氣候下控制溫度,有些傳感器則用於惡劣環境下的液體溫度測量,例如汽車冷卻液。 本指南介紹不同類型溫度傳感器及其優缺點,以及選擇溫度傳感器時的重要考慮事項。
  • STM32 FSMC接口驅動TFT-LCD設計
    目前驅動TFT彩屏的方案有很多,可以用底端單片機驅動一個終端類型的液晶模組,這種模組價格比較貴,當然用起來還是很方便的。  只要單片機通過串口或並行口向TFT發送幾個字節的命令,就能在屏幕上顯示你需要的效果。本設計利用STM32 的FSMC 總線直接驅動TFT 數字彩屏。
  • 數字溫度傳感器AD7416及其應用
    AD7416 是美國模擬器件公司(ADI)出品的單片機溫度監控系統集成電路。其內部包含有帶隙溫度傳感器和10位模數轉換器,可將感應溫度轉換為0.25℃量化間隔的數位訊號,以便用來與用戶設置的溫度點進行比較。
  • 基於嵌入式Linux的語音識別系統硬軟體設計
    3.硬體電路設計方案  硬體電路主要包括語音識別部分、主控部分、超聲波測距部分和舵機控制部分,如圖2所示。處理器為三星公司的S3C2440,系統主頻最高可達533 MHz,支持SPI、I2C、UART等接口,能夠滿足控制系統的需求。主控晶片S3C2440通過SPI總線完成對語音識別模塊的讀寫操作,超聲波測距部分和舵機控制部分由處理器的GPIO進行統一控制。
  • 基於單片機的溫度傳感器設計
    打開APP 基於單片機的溫度傳感器設計 發表於 2016-12-27 15:07:07 通過對AT89C2051單片機原理分析,研究了一種對環境溫度測量、控制的設計方案,實現了採用AT89C2051單片機編程達到控制溫度,精確測量的目的。
  • 智能集成溫度傳感器的分類和應用
    智能化集成溫度傳感器自從二十世紀九十年代中後期發明以來,世界範圍內在物聯網相關行業中都迅速推廣應用。當前,國際上新型傳感器正從模擬式向數字式、從集成化向智能化的方向發展。在眾多溫度傳感器種類當中,集成溫度傳感器具有線性好、精度適中、靈敏度高、體積小、使用方便等優點,得到廣泛應用。