色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的溫度傳感器(ds18b20)驅動設計

FPGA技術江湖 ? 來源:FPGA技術江湖 ? 2025-01-16 14:08 ? 次閱讀

本篇主要討論基于FPGA溫度傳感器(ds18b20)驅動設計---第一版

b1a3256c-d39f-11ef-9310-92fbcf53809c.jpg

設計實現:利用FPGA驅動DS18b20,讀取到溫度數值顯示到數碼管上。

首先介紹DS18b20。

DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。

DS18B20 數字溫度計提供 9-12位攝氏溫度測量(9-12位是測量精度),它的測溫范圍為-55~+125℃。

編程的分辨率為9-12位,對應的分辨率溫度分別為0.5度、0.25度、0.125度、0.0625度。 測量溫度是需要轉換時間的(將外界的問題轉換為數字量),9bit的精度需要最大93.75ms;10bit的精度需要最大187.5ms;11bit的精度需要最大375ms;12bit的精度需要最大750ms。 上電后,默認的精度為12位,我們一般也采用這個精度。如果覺得這個轉換時間較長,可以考慮配置為其他的精度。

每個DS18B20都有一個獨特的64位序列號,從而允許多只 DS18B20同時連在一根單線總線上;因此很簡單就可以用一個微控制器去控制很多覆蓋在一大片區域的DS18B20。這一特性在HVAC環境控制、探測建筑物、儀器或機器的溫度以及過程監測和控制等方面非常有用。

b1bdac3e-d39f-11ef-9310-92fbcf53809c.png

通過上述實物圖可以看到,DS18B20有三個管腳,VDD(電源管腳),DQ(數據線),GND(地線)。 在使用時,也可以不通過VDD供電,而采用DQ供電(此種模式在此不再介紹)。 在平常使用時,VDD接電源3V~5V,GND接地,DQ上面需要接一個上拉電阻(阻值通常為4.7K,或者10K),DQ就是進行通信的數據線(單數據總線)。 了解了使用的電路特性后,就得琢磨一下,如何利用一個數據線DQ來進行控制這個溫度傳感器。 下圖是DS18B20的框圖:

b1ccd218-d39f-11ef-9310-92fbcf53809c.png

64bit的rom中的數值時固定的。高八位為:28h(表示為DS18b20);后續的48位為:芯片的序列號(每一個DS18B20都不相同);最后八位:前面56位的CRC校驗序列。 DS18B20支持在一個總線上面加載多個DS18B20,那么此時就需要獲取每一個DS18B20的ROM,這樣就可以精準的控制每一個器件了。 在此我們不對在一個總線上加載多個DS18B20的情況,只討論加載一個DS18B20的情況。 讀取ROM的64bit的命令為33H,后面跟著讀取64bit,就是器件的ROM值(只能用在總線上只有一個器件的情況)。 匹配ROM的命令為55H,后面跟著寫入64bit數據,只有和這64bit的數據相同的器件才會開始工作。 跳過ROM的命令為CCH,接收到這個命令的器件,不需要匹配就可以直接工作(只能用在總線上只有一個器件的情況)。 在此我們不做多器件的情況,所以可以直接發送跳過ROM的命令。 DS18B20的測溫是需要被通知的,也就說我們需要給器件發送一個開始測溫的命令,他才會開始測量溫度,并且轉換稱為數字信號(16bit的有符號數)。 分頻率為12位,使用16bit后面的12位(11:0)。 分頻率為11位,則16bit的最后一個bit不使用(11:1)。 ······

b1e344c6-d39f-11ef-9310-92fbcf53809c.png

b1f3d6c4-d39f-11ef-9310-92fbcf53809c.png

上圖為默認精度(12bit、0.0625度),如果第12位為0,表示為正溫度,測量出來的數據乘以0.0625就可以了。如果第12為1,表示為負溫度,則需要將測量出來的數據減去1,然后所有位取反,得到的結果再乘以0.0625度。上述的表示方式就是有符號數在數字電路中的表示形式。 16bit的數字信息存儲在內部暫存器中,占用兩個字節(在0、1字節)。

b2105a56-d39f-11ef-9310-92fbcf53809c.png

測溫的命令為44H。 暫存器的第四個4字節就是配置分辨率的寄存器

b225bc16-d39f-11ef-9310-92fbcf53809c.png

TM設置為0即可;

b2417c12-d39f-11ef-9310-92fbcf53809c.png

可以通過配置這個寄存器的值,來配置我們想要的分辨率。在此,我將不配置此寄存器,使用默認分辨率12bit。 寫入暫存器的命令為4EH,后面跟著寫入3個字節的數據,這三個字節寫入到暫存器的2、3、4的位置。 讀出暫存器的命令為BEH,后面跟著讀出N個字節的數據,如果只是想讀取溫度,那么只需要讀出兩個字節的數據就可以了。 基本的命令差不多都介紹完事了,那么下面開始介紹時序。 首先:在發送命令之前,器件要求必須要被初始化。時序如下:

b24fcc2c-d39f-11ef-9310-92fbcf53809c.png

控制器需要拉低DQ,至少保持480us(最大不超過960us,建議:600us),然后釋放總線控制(由于DQ被上拉,所以會被拉成高電平)。如果器件存在并且可以正常工作,器件會拉低DQ一段時間60-240us。 所以建議:控制器拉低DQ960us,釋放總線控制,檢測DQ是否還會拉低。主機從釋放總線控制開始,要等待600us的時間去檢測DQ是否拉低,如果有拉低則證明器件存在并且可以工作,如果沒有拉低,則證明器件不存在或者不可以工作。 證明器件存在并且可以工作后,我們就可以向器件發送命令了。 發送命令和和數據以低位優先。 發送1bit的時序為:

b26a38e6-d39f-11ef-9310-92fbcf53809c.png

如果控制器想要發送1bit0,那么直接拉低DQ100us即可,然后釋放總線;如果控制器想要發送1bit1,那么拉低DQ5us,然后釋放總線即可。無論是寫0,還是寫1,建議每一bit的時長110us。 讀取命令和數據以低位優先。 讀取1bit的時序為:

b282a07a-d39f-11ef-9310-92fbcf53809c.png

如果控制器想要讀取的話,那么拉低DQ5us的時間,釋放總線,在10us時,讀取總線的電平值即可獲得讀取值。建議每一bit的時長110us。 實現DS18B20的驅動主要有三步: 第一步:初始化DS18B20; 第二步:ROM命令(緊跟任何數據交換請求); 第三步:DS18B20功能命令(緊跟任何數據交換請求); 所以我們上電后,工作的過程如下: 初始化、發送跳過ROM命令 、發送轉換溫度命令;等待750ms;初始化、發送跳過ROM命令、發送讀取暫存器的命令、讀取兩個字節的數據。不斷重復以上的過程即可。 上面的工作方式模式為:總線上是一個器件、分辨率為默認的12bit、沒有匹配ROM。 DS18B20一般會制作到一個板卡上面,下面是筆者自制的板卡;

b2988f84-d39f-11ef-9310-92fbcf53809c.png

如果有需要的小伙伴,可以點擊下面的鏈接:

https://item.taobao.com/item.htm?ft=t&id=862024382902
設計實現:利用FPGA驅動DS18b20,讀取到溫度數值顯示到數碼管上。

1. 溫度傳感器為DS18B20。

2. 總線上只有一個器件、溫度分辨率為12bit(默認)、跳過ROM指令。

3. 將溫度顯示到數碼管上。

4. 溫度精確到小數點后2位。

5. 數碼管共計6個,最前面顯示是否為負溫度(不顯示為正溫度,顯示一橫杠為負溫度)。

6. 數碼管共計6個,后面五個顯示溫度,前面三個顯示整數、后面兩個顯示小數。

7. 數碼管共計6個,整數與小數中間點亮小數點。

8. 利用LED顯示是否初始化成功,LED點亮表示初始化成功,LED熄滅表示初始化失敗。

使用平臺:本次設計應用Altera的平臺設計(芯片:EP4CE10F17C8)、使用的DS18B20板卡為市面上常見的,如果沒有的同學,可以聯系筆者購買。

開發軟件:quartus 18.0

開發語言:Verilog HDL

作者QQ:746833924

說明:本篇設計中不涉及到ip電路,如果在其他平臺,rtl代碼依然可以適用,當其他板卡電路不同時,會導致不同的現象出現,如有需要修改代碼請聯系作者;如需作者使用的板卡,請聯系作者;

設計思想如下:

b2b3d802-d39f-11ef-9310-92fbcf53809c.png

ds18b20_drive模塊的功能為驅動ds18b20,獲取溫度,并且輸出符號和溫度的BCD碼;seven_tube_drive模塊的功能將符號和溫度的BCD碼輸出,并且在右側第三個數碼管點亮小數點用以區分整數和小數。 ds18b20_drive模塊采用狀態機的方式實現。 讀取到溫度信息后,轉換為BCD碼輸出; 首先判斷溫度的正負性,然后計算它的絕對值。 絕對值要乘以0.0625,此時乘以625,相當于擴大了10000倍,然后除以100,則表示擴大了100倍(因為我們需要保留兩位小數 ,正好擴大100倍使小數都變成了整數)。

  if(data_r[12] ==1'b1) begin
     temp_sign <= 4'he;
? ? ? ? ? data_1 = (~(data_r -?1'b1)) * 16'd625 /7'd100;
? ? ? ? end
? ? ? else begin
? ? ? ? ? temp_sign <= 4'hf;
? ? ? ? ? data_1 <= (data_r *?16'd625) /7'd100;
? ? ??end

數碼管驅動采用最基本動態驅動即可,在此不做介紹;

相關參考代碼為:

通過網盤分享的文件:溫度傳感器DS18b20驅動--第一版
鏈接: https://pan.baidu.com/s/1es-KpmP4PqZbaR76kTDlYA?pwd=vins
提取碼: vins

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1640

    文章

    21903

    瀏覽量

    611435
  • 溫度傳感器
    +關注

    關注

    48

    文章

    3008

    瀏覽量

    157372
  • DS18B20
    +關注

    關注

    10

    文章

    782

    瀏覽量

    81746

原文標題:基于FPGA的溫度傳感器(ds18b20)驅動設計

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦

    基于STM32的DS18B20溫度傳感器設計

    DS18B20內置了64位產品序列號,方便識別身份,在一根線上可以掛接多個DS18B20傳感器,通過64位身份驗證,可以分別讀取來至不同傳感器采集的
    的頭像 發表于 03-07 11:44 ?1.4w次閱讀
    基于STM32的<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>設計

    DS18B20數字溫度傳感器驅動設計與實現

    在一時候我們需要相對簡單的檢測溫度信號,而DS18B20就是一款功能和應用都相對簡單的溫度傳感器,通過單線就可以實現檢測溫度信號的需求。這一
    發表于 12-12 14:47 ?4619次閱讀
    <b class='flag-5'>DS18B20</b>數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的<b class='flag-5'>驅動</b>設計與實現

    DS18B20溫度傳感器是什么

    DALLAS最新單線數字溫度傳感器DS18B20簡介新的“一線器件”體積更小、適用電壓更寬、更經濟 Dallas 半導體公司的數字化溫度傳感器
    發表于 04-27 08:14

    DS18B20溫度傳感器實驗

    STM32學習記錄:DS18B20溫度傳感器實驗(HAL庫)實驗摘要DS18B20簡述STMCubeMX引腳配置芯片選型引腳和時鐘配置生成ARM-MDK工程編寫
    發表于 08-18 07:44

    DS18B20數字溫度傳感器驅動過程是怎樣的

    DS18B20數字溫度傳感器的特性有哪些?DS18B20數字溫度傳感器
    發表于 10-26 07:24

    數字溫度傳感器DS18B20的設計及應用

    數字溫度傳感器DS18B20的設計及應用 1引言 DS18B20是DALLAS公司生產的一線式數字溫度
    發表于 04-02 18:00 ?2940次閱讀
    數字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的設計及應用

    溫度傳感器DS18B20驅動方法

    在這一小節中將對DS18B20 溫度傳感器進行介紹,包括其功能、結構、驅動方法等內 容。 (1)DS18B20
    發表于 02-26 17:17 ?578次下載
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的<b class='flag-5'>驅動</b>方法

    DS18B20完成溫度檢測的技巧

    介紹了DS18B20 溫度傳感器 的結構和特點以及用DS18B20溫度傳感器進行
    發表于 08-23 10:44 ?190次下載
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>溫度</b>檢測的技巧

    溫度傳感器DS18B20

    溫度傳感器DS18B20 51例程,親測可用
    發表于 06-14 15:36 ?21次下載

    智能溫度傳感器DS18B20的原理與應用

    DS18B20是DALLAS公司生產的單線數字溫度傳感器,他具有獨特的單線總線接口方式。文章詳細的介紹了單線數字溫度傳感器
    發表于 10-11 18:19 ?49次下載

    DS18B20溫度傳感器溫度程序和驅動以及案例實現資料說明

    本文檔的的主要內容詳細介紹的是DS18B20溫度傳感器溫度程序和驅動以及案例實現資料說明,本文件包含整個
    發表于 04-09 08:00 ?1次下載
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的<b class='flag-5'>溫度</b>程序和<b class='flag-5'>驅動</b>以及案例實現資料說明

    ds18b20的特性_ds18b20溫度傳感器應用

    本文首先介紹了ds18b20的特性,其次介紹了DS18B20工作原理,最后介紹了ds18b20溫度傳感器應用。
    發表于 04-24 09:10 ?1.2w次閱讀
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>應用

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數字溫度傳感器,它具有高精度、低功耗和易于使用的特點。 DS18B20溫度
    的頭像 發表于 09-03 16:51 ?1283次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數字溫度傳感器,它基于1-Wire(一線)通信協議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B2
    的頭像 發表于 10-18 14:50 ?3246次閱讀

    DS18B20溫度傳感器的工作原理和硬件設計

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設計、DS18B20單總線接口驅動編寫。
    的頭像 發表于 10-24 14:38 ?7572次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理和硬件設計
    主站蜘蛛池模板: 色欲AV人妻精品麻豆AV | 一区二区三区国产 | 中文字幕 亚洲 有码 在线 | 精品国产成人a区在线观看 精品国产成人AV在线看 | 新图解av吧| 最新日本免费一区 | caoporn超碰在线 | 在线观看黄色小说 | 91国在线视频 | 欧美高清videos 360p | 老女老肥熟国产在线视频 | 伊人成综合网伊人222 | 91青青草原 | 拔擦拔擦8X永久华人免费播放器 | 麻豆XXXX乱女少妇精品 | 免费毛片a在线观看67194 | 久久久久嫩草影院精品 | 超碰v | 亚洲精品拍拍央视网出文 | 91福利在线观看 | 97超碰免费人妻中文 | 亚洲乱码国产一区三区 | 浪潮色诱AV久久久久久久 | 婚后被调教当众高潮H喷水 回复术士勇者免费观看全集 | 男人狂躁进女人免费视频公交 | 俄罗斯一级毛片aaaa | 2020亚洲 欧美 国产 日韩 | 国产97精品久久久天天A片 | 日本夜爽爽一区二区三区 | 国产国产成人人免费影院 | 肉奴隷 赤坂丽在线播放 | 亚洲天堂久久久 | 国产亚洲一区二区三区啪 | WWW国产精品内射熟女 | 国产精品久久久久久久久免费下载 | 2022一本久道久久综合狂躁 | 免费。色婬网站 | 69夫妇交友群 | 青草伊人久久 | 色宅男看片午夜大片免费看 | 日日射日日操 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品