單總線(xiàn)溫度傳感器的EDA控制方法
1 硬件接口電路
本文引用地址:http://dyxdggzs.com/article/159351.htmDS18B20是單總線(xiàn)數字溫度傳感器,測量溫度范圍從-55℃到125℃,測量精度為±0.5℃,通過(guò)單總線(xiàn)可直接輸出所測溫度的二進(jìn)制數據,數字量的輸出位數可通過(guò)編程控制,在9位至12位(含符號位)之間選擇。該器件有三個(gè)端口,分別是電源端、地端、單總線(xiàn)數據端,在使用時(shí)將FPGA的I/O口和DS18B20的單總線(xiàn)連接,通過(guò)單總線(xiàn)實(shí)現FPGA與DS18B20之間的數據收發(fā),接口電路如圖1所示。
2 軟件控制程序
控制DS18B20進(jìn)行溫度測量和讀取主要包括三個(gè)步驟:器件初始化、發(fā)送寫(xiě)寄存器命令和發(fā)送讀寄存器命令,該功能代碼寫(xiě)在核心控制模塊中,軟件流程如圖2所示。其中初始化是通過(guò)FPGA向總線(xiàn)發(fā)送低電平復位信號,持續時(shí)間為480-600us,然后FPGA釋放總線(xiàn),單總線(xiàn)經(jīng)過(guò)上拉電阻會(huì )被拉至高電平,當DS18B20檢測到上升沿之后,等待15-60us后將發(fā)出60-256us的低電平存在脈沖作為響應,如果FPGA檢測到響應脈沖則初始化成功。
初始化成功后,FPGA通過(guò)向總線(xiàn)發(fā)送命令來(lái)控制傳感器的溫度采集,程序中用到的主要命令如下:0XCC為跳過(guò)ROM檢測命令;0X44為啟動(dòng)溫度轉換命令;0XBE為從DS18B20讀取溫度測量數值。
在頂層代碼中除了核心控制模塊外,還包括包括分頻模塊和顯示模塊。
其中,分頻模塊將實(shí)驗板上50M Hz時(shí)鐘轉換為1MHz輸出到核心控制模塊,用于控制FPGA對單總線(xiàn)的讀、寫(xiě)時(shí)序。
顯示模塊用于將讀取到的溫度數據轉換為十進(jìn)制數據,并通過(guò)數碼管進(jìn)行動(dòng)態(tài)顯示。由于溫度寄存器默認采用12位二進(jìn)制數據來(lái)存儲,最高位為符號位,溫度分辨率為0.0625℃,如圖3所示。當溫度為正數時(shí)符號位為0;當溫度為負數時(shí)符號位為1,且數據位采用補碼的形式。因此,將溫度轉換成十進(jìn)制數據時(shí),首先判斷符號位,當符號位為1時(shí),先由二進(jìn)制數據求出原碼,再轉換為十進(jìn)制,最后乘以溫度分辨率0.0625得到實(shí)測溫度;當符號位為0時(shí),直接將二進(jìn)制轉換為十進(jìn)制,再乘以溫度分辨率。
3 系統頂層文件
將編譯好的sof程序下載到實(shí)驗板中運行,能夠實(shí)現環(huán)境溫度的測量和顯示,實(shí)際效果如圖5所示?;谝陨?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/方法">方法的溫度控制系統硬件電路簡(jiǎn)單,實(shí)時(shí)性強,能夠進(jìn)行多路溫度監控,應用范圍廣泛。
評論