關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 單總線溫度傳感器的EDA控制方法

        單總線溫度傳感器的EDA控制方法

        作者: 時間:2013-05-24 來源:網絡 收藏

        1 硬件接口電路

        本文引用地址:http://www.104case.com/article/159351.htm

        DS18B20是單數字,測量范圍從-55℃到125℃,測量精度為±0.5℃,通過單可直接輸出所測的二進制數據,數字量的輸出位數可通過編程,在9位至12位(含符號位)之間選擇。該器件有三個端口,分別是電源端、地端、單數據端,在使用時將FPGA的I/O口和DS18B20的單總線連接,通過單總線實現FPGA與DS18B20之間的數據收發,接口電路如圖1所示。

        單總線溫度傳感器的EDA控制方法

        2 軟件程序

        DS18B20進行溫度測量和讀取主要包括三個步驟:器件初始化、發送寫寄存器命令和發送讀寄存器命令,該功能代碼寫在核心控制模塊中,軟件流程如圖2所示。其中初始化是通過FPGA向總線發送低電平復位信號,持續時間為480-600us,然后FPGA釋放總線,單總線經過上拉電阻會被拉至高電平,當DS18B20檢測到上升沿之后,等待15-60us后將發出60-256us的低電平存在脈沖作為響應,如果FPGA檢測到響應脈沖則初始化成功。

        單總線溫度傳感器的EDA控制方法

        初始化成功后,FPGA通過向總線發送命令來控制的溫度采集,程序中用到的主要命令如下:0XCC為跳過ROM檢測命令;0X44為啟動溫度轉換命令;0XBE為從DS18B20讀取溫度測量數值。

        在頂層代碼中除了核心控制模塊外,還包括包括分頻模塊和顯示模塊。

        其中,分頻模塊將實驗板上50M Hz時鐘轉換為1MHz輸出到核心控制模塊,用于控制FPGA對單總線的讀、寫時序。

        顯示模塊用于將讀取到的溫度數據轉換為十進制數據,并通過數碼管進行動態顯示。由于溫度寄存器默認采用12位二進制數據來存儲,最高位為符號位,溫度分辨率為0.0625℃,如圖3所示。當溫度為正數時符號位為0;當溫度為負數時符號位為1,且數據位采用補碼的形式。因此,將溫度轉換成十進制數據時,首先判斷符號位,當符號位為1時,先由二進制數據求出原碼,再轉換為十進制,最后乘以溫度分辨率0.0625得到實測溫度;當符號位為0時,直接將二進制轉換為十進制,再乘以溫度分辨率。

        溫度寄存器的數據格式

        3 系統頂層文件

        將編譯好的sof程序下載到實驗板中運行,能夠實現環境溫度的測量和顯示,實際效果如圖5所示。基于以上的溫度控制系統硬件電路簡單,實時性強,能夠進行多路溫度監控,應用范圍廣泛。

        單總線溫度傳感器的EDA控制方法



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 措勤县| 临泉县| 延长县| 永和县| 黄大仙区| 丹寨县| 甘德县| 门头沟区| 柳州市| 黄陵县| 北京市| 克什克腾旗| 车险| 广平县| 和林格尔县| 宁远县| 临澧县| 永州市| 曲阜市| 庐江县| 大石桥市| 衢州市| 襄垣县| 淳化县| 京山县| 建始县| 呼伦贝尔市| 荣成市| 河曲县| 博白县| 平阳县| 若羌县| 祁东县| 宁强县| 赣榆县| 萍乡市| 天全县| 古浪县| 晋州市| 隆尧县| 怀宁县|