【FPGA】單總線——DS18B20

目錄

項目:項目(含quartus工程、仿真文件)

1. 單總線通信時序詳解

1.1 初始化(復位脈沖 + 存在脈沖)

1.2 寫時隙(寫“0”和寫“1”)

1.3 讀時隙

2. DS18B20 暫存器與溫度數據格式

2.1 暫存器結構

2.2 溫度數據格式(16位補碼)

2.3 常用 ROM 命令

3. 溫度讀取工作流程

3.1 狀態機流程(ds18b20_driver.v)

3.2 數據處理流程(data_process.v)

4. 系統框架結構

4.1 頂層模塊(sys_top.v)

4.2 模塊功能說明

4.3 數據流圖

總結


項目:項目(含quartus工程、仿真文件)

1. 單總線通信時序詳解

DS18B20 采用單總線(1-Wire)協議進行通信,所有操作都通過一根數據線(DQ)完成,包括初始化、寫時隙和讀時隙。

1.1 初始化(復位脈沖 + 存在脈沖)

  • 主機行為:拉低總線至少 480μs,然后釋放總線。

  • 從機響應:DS18B20 在接收到復位脈沖后,會在 15~60μs 內拉低總線 60~240μs,作為存在脈沖。

  • 代碼實現ds18b20_driver.v):

if(cnt_xx < 480) begindq_out <= 1'b0;dq_out_en <= 1'b1;
end else begindq_out <= 1'b0;dq_out_en <= 1'b0;
end

1.2 寫時隙(寫“0”和寫“1”)

  • 寫“0”:主機拉低總線至少 60μs。

  • 寫“1”:主機拉低總線 1~15μs,然后釋放總線。

  • 代碼實現

if(wr_data[cnt_bit] == 0) begindq_out <= 1'b0;dq_out_en <= (cnt_xx < 61) ? 1'b1 : 1'b0;
end else begindq_out <= 1'b0;dq_out_en <= (cnt_xx < 1) ? 1'b1 : 1'b0;
end

1.3 讀時隙

  • 主機行為:拉低總線 1μs,然后釋放并采樣。

  • 從機響應:DS18B20 在時隙內保持輸出數據。

  • 代碼實現

dq_out <= 1'b0;
dq_out_en <= (cnt_xx < 1) ? 1'b1 : 1'b0;
if(cnt_xx == 13)rd_data_r[cnt_bit] <= dq_in;

2. DS18B20 暫存器與溫度數據格式

2.1 暫存器結構

字節內容說明
0-1溫度值LSB 和 MSB
2-3TH 和 TL報警閾值
4配置寄存器分辨率設置
5-7保留
8CRC校驗碼

2.2 溫度數據格式(16位補碼)

  • 示例0x0550?表示 +85.0°C,0xFC90?表示 -55.0°C。

  • 數據處理data_process.v):

    src_data <= rd_data[15] ? (~rd_data[10:0] + 1'b1) : rd_data[10:0];

2.3 常用 ROM 命令

命令功能
SKIP_ROM0xCC跳過 ROM 尋址
CONVERT_T0x44啟動溫度轉換
READ_SCRATCH0xBE讀取暫存器

3. 溫度讀取工作流程

3.1 狀態機流程(ds18b20_driver.v

  1. INIT:發送復位脈沖,檢測存在脈沖。

  2. SKIP_ROM:發送 0xCC 跳過 ROM 尋址。

  3. CONVERT_T:發送 0x44 啟動溫度轉換。

  4. WAIT:等待 750ms 轉換完成。

  5. 再次 INIT 和 SKIP_ROM

  6. READ_SCRATCH:發送 0xBE 讀取暫存器。

  7. RXDATA:讀取 2 字節溫度數據。

3.2 數據處理流程(data_process.v

  1. 將補碼溫度轉換為原碼。

  2. 將溫度值乘以 625(擴大 10000 倍,便于顯示小數)。

  3. 使用?binary2bcd?模塊將二進制轉換為 BCD 碼。

  4. 輸出到數碼管和串口。


4. 系統框架結構

4.1 頂層模塊(sys_top.v

  • 實例化各子模塊:

    • ds18b20_driver:驅動溫度傳感器。

    • data_process:處理溫度數據。

    • uart_tx:串口發送數據。

    • seg_driver:驅動數碼管。

4.2 模塊功能說明

模塊名功能
ds18b20_driver實現單總線協議,讀取溫度數據
data_process數據轉換與處理
binary2bcd二進制轉 BCD 碼
uart_tx串口發送數據
seg_driver動態數碼管顯示

4.3 數據流圖

DS18B20 → ds18b20_driver → data_process → uart_tx → PC↓seg_driver → 數碼管

總結

本項目實現了一個基于 FPGA 的 DS18B20 溫度測量系統,具備以下特點:

  • ? 單總線協議完整實現(初始化、讀、寫)

  • ? 溫度數據補碼轉原碼、BCD 轉換

  • ? 數碼管實時顯示溫度

  • ? 串口輸出溫度值(含小數點)

  • ? 狀態機控制流程清晰,代碼可讀性強

適用于嵌入式系統、FPGA 學習、溫度監控等場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95432.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95432.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95432.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JUC的安全并發包機制

目錄 1. Lock機制&#xff1a;明鎖控制 2. 柵欄機制(CyclicBarrier) 3. 閉鎖機制(CountDownLatch) 4. 信號量機制(Semaphore) 5. 無鎖機制 1. Lock機制&#xff1a;明鎖控制 Lock接口提供了比synchronized更靈活的鎖機制&#xff0c;屬于明鎖&#xff08;需要手動獲取和釋…

開源企業級快速開發平臺(JeecgBoot)

JeecgBoot 是一款基于 Spring Boot Vue 技術棧的開源企業級快速開發平臺&#xff0c;旨在通過「低代碼代碼生成」模式降低企業級應用的開發成本&#xff0c;提升開發效率。其核心定位是“開箱即用的中后臺解決方案”&#xff0c;覆蓋權限管理、表單報表、工作流、代碼生成等核…

探索 PostgreSQL 和 MySQL 之間的主要差異和相似之處,找到滿足您項目需求的最佳數據庫解決方案。

探索 PostgreSQL 和 MySQL 之間的主要差異和相似之處&#xff0c;找到滿足您項目需求的最佳數據庫解決方案。 探索 PostgreSQL 和 MySQL 之間的主要差異和相似之處&#xff0c;找到滿足您項目需求的最佳數據庫解決方案。 關系數據庫已經存在了很長時間。事實上&#xff0c;關系…

如何畫時序圖、流程圖、狀態流轉圖

如何畫時序圖、流程圖、狀態流轉圖流程圖符號約定時序圖元素交互框最佳實踐狀態流轉圖在研發或者寫技術方案的時候&#xff0c;我們經常會畫各種圖。圖比文字更加容易理解一些&#xff0c;那么如何畫出優秀好看的圖呢下面簡單介紹一些畫圖時需要注意的點 流程圖 流程圖是流程…

CSDN 與 掘金 高效學習指南

CSDN 和掘金&#xff08;juejin.cn&#xff09;是國內最活躍的技術社區&#xff0c;但信息量巨大、質量參差不齊。高效運用的關鍵是&#xff1a;從“被動瀏覽”轉向“主動獲取”&#xff0c;避免陷入“收藏一堆文章卻學不會”的陷阱。 以下是為你量身定制的CSDN 與 掘金 高效學…

容器tomcat鏡像制作

pull-tomcat鏡像 docker pull tomcat啟動 –security-opt 禁用默認的安全策略&#xff0c;放寬限制 docker run -d --name mysql-tomcat -p 8080:8080 --security-opt seccompunconfined tomcat:latest進入容器直接訪問404&#xff0c;網頁相關的webapps下面為空&#xff0c;將…

AC安全認證方式全解析

AC的幾種安全認證方法認證方式 安全性 便捷性 典型應用場景 所需配置Portal認證 ??中 高 訪客網絡、商場、 Portal服務 酒…

《壘球江西百科》男子壘球世界紀錄·壘球9號位

男子壘球世界紀錄終極盤點? | 冷知識科普&#xff01;1. 最遠本壘打距離 | Longest Home Run Distance紀錄保持者&#xff1a; Jeff Hall (美國)距離&#xff1a; 643英尺 (約196米)賽事&#xff1a; 2012年 USSSA 慢投壘球錦標賽? 科普&#xff1a; 慢投壘球中&#xff0c;球…

設計模式六大原則2-里氏替換原則

肯定有不少人跟我剛看到這項原則的時候一樣&#xff0c;對這個原則的名字充滿疑惑。其實原因就是這項原則最早是在1988年&#xff0c;由麻省理工學院的一位姓里的女士&#xff08;Barbara Liskov&#xff09;提出來的。定義1&#xff1a;如果對每一個類型為 T1的對象 o1&#x…

Spring Security 深度學習(五): 過濾器鏈與自定義過濾器

目錄1. 引言&#xff1a;揭開Spring Security的內部奧秘2. Spring Security 過濾器鏈核心機制2.1 DelegatingFilterProxy&#xff1a;整合Spring與Servlet容器2.2 FilterChainProxy&#xff1a;管理安全過濾器鏈的“總管”2.3 Security Filters&#xff1a;核心安全功能的承載者…

微軟GraphRAG 端到端使用及自用工具類

文章目錄一. 環境準備1.安裝 Python 環境2.安裝依賴3.配置 LLM API Key二. 初始化項目三. 文檔上傳 & 索引構建四. 問答&#xff08;CLI 方式&#xff09;示例&#xff1a;五. 代碼中調用 GraphRAG工具概覽核心工具詳解1. simple_graphrag_integration.py - 智能問答核心2.…

sqlserver2008導入excel表數據遇到的問題

1.如果表格為.xlsx格式時可能會提示“沒有為此鏈接管理提供列”&#xff0c;無法點擊下一步的話&#xff0c;建議可以使用.csv格式 .csv格式可能也會存在此提示&#xff0c;但是可以不用管 2.導入.csv數據時&#xff0c;字段為int時&#xff0c;填null導入不進去的話可以給個0作…

Unity游戲打包——打包流程

本文由 NRatel 歷史筆記整理而來&#xff0c;如有錯誤歡迎指正。一、基本流程二、組合步驟把上述每步做成獨立的輸入輸出邏輯 y fuc(x)然后&#xff0c;控制/組合其過程&#xff0c;可靈活產生不同的流程&#xff1a;1、單渠道出測試包2、單渠道出正式包3、單渠道包熱更三、構…

卷積神經網絡(二):手寫數字識別項目(一)

文章目錄手寫數字識別項目一、準備數據集二、定義模型三、模型訓練3.1 導入依賴庫3.2 設備設置&#xff08;CPU/GPU 自動選擇&#xff09;3.3 超參數定義3.4數據集準備1.獲取數據集2.劃分訓練集與驗證集3.創建 DataLoader&#xff08;按批次加載數據&#xff09;3.5模型初始化與…

批量給文件夾添加文件v2【件批量復制工具】

代碼功能介紹 這個代碼的功能就是一個&#xff0c;給某個文件夾里面添加某個文件&#xff08;含父級文件夾下的每一個子文件夾&#xff09; 舉個例子&#xff0c;父級文件夾是&#xff1a;“D:\Desktop\1&#xff0c;要添加的文件路徑是&#xff1a;D:\1.txt” 則最后會把文件…

Qt實現2048小游戲:看看AI如何評估棋盤策略實現“人機合一

2048 是一款經典的數字益智游戲,其簡單的規則背后蘊含著豐富的策略性。該項目不僅完整實現了 2048 的核心玩法,還包含了一個基于啟發式評估和蒙特卡洛方法的智能 AI 玩家。 我們將從項目整體架構入手,逐一解析游戲核心邏輯、UI 渲染、事件處理、AI 策略等關鍵模塊,并通過展…

封裝紅黑樹實現mysetmymap

1. 源碼分析 set實例化rb_tree時第二個模板參數給的是key&#xff0c;map實例化rb_tree時第?個模板參數給的是 pair<const key,T>&#xff0c;這樣一顆紅黑樹既可以實現key搜索場景的set&#xff0c;也可以實現key/value搜索場 景的map源碼里面模板參數是用T代表value&…

以OWTB為核心以客戶為基礎的三方倉運配一體化平臺分析V0.2

一、系統概述以OWTB&#xff08;Order-Warehouse-Transportation-Billing&#xff0c;訂單-倉儲-運輸-結算&#xff09;為核心的三方倉運配一體化平臺&#xff0c;是專為第三方物流企業打造的深度定制化解決方案。該平臺以第三方倉運配為主線&#xff0c;以多客戶/多SKU/個性化…

技術框架之腳手架實現

一、 序言在日常的企業級Java開發中&#xff0c;我們經常會發現自己在重復地做著一些項目初始化工作&#xff1a;創建相似的項目結構、引入一堆固定的依賴包、編寫通用的配置文件、拷貝那些幾乎每個項目都有的基礎工具類和日志配置。這些工作不僅枯燥乏味&#xff0c;而且容易出…

小迪安全v2023學習筆記(七十七講)—— 業務設計篇隱私合規檢測重定向漏洞資源拒絕服務

文章目錄前記WEB攻防——第七十七天業務設計篇&隱私合規檢測&URL重定向&資源拒絕服務&配合項目隱私合規 - 判斷規則&檢測項目介紹案例演示URL重定向 - 檢測判斷&釣魚配合介紹黑盒測試看業務功能看參數名goole語法搜索白盒測試跳轉URL繞過思路釣魚配合資…