




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖北民族學院科技學院信息工程學院數字系統與Verilog設計報告題 目: 基于FPGA的溫度檢測系統設計 姓 名: 學 號: 指導老師: 2014/6/23摘要本文利用數字溫度傳感器DS18B20的數據接口和特點,闡述了一種基于現場可編程門陣列( FPGA)控制DS18B20的方法。使用FPGA作為控制器,嚴格控制DS18B20 的時序,在單總線上實現讀寫功能,完成測量數字溫度的功能。將測量的二進制數轉換為BCD碼,并通過數碼管顯示。系統設計使用 Verilog 語言。關鍵字:數字溫度傳感器,數字溫度檢測,FPGA,Verilog語言目錄摘要I1 引 言12 設計實現2.1 FPGA簡介22.
2、2 DS18B20的通訊協議22.2.2 寫時序32.2.3 讀時序32.3 電源連接53 模塊設計3.1 DS18b20驅動模塊63.2 溫度數據處理模塊73.3 溫度顯示模塊74 整體模塊連接95 結束語10參考文獻111 引 言溫度是工業控制中主要的被控參數之一,特別是在冶金、化工、建材、食品、機械、石油等工業中,具有舉足重輕的作用。隨著電子技術和微型計算機的迅速發展,微機測量和控制技術得到了迅速的發展和廣泛的應用。單片機具有處理能強、運行速度快、功耗低等優點,應用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。FPGA(Field-Programmable Gate Arra
3、y),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。隨著溫度檢測理論和技術的不斷更新, 溫度傳感器的種類也越來越多,在微機系統中使用的傳感器,必須是能夠將非電量轉換成電量的傳感器,目前常用的有熱電偶傳感器、熱電阻傳感器和半導體集成傳感器等,每種傳感器根據其自身特性,都有它自己的應用領域。本設計所介紹的數字溫度計與傳統的溫度計相比,具有讀數方便,測溫范圍廣,測溫準確,其輸出溫度采用數字顯示,主要用于對測溫比較準確的場所,或科研
4、實驗室使用,該設計利用數字溫度傳感器DS18B20的數據接口和特點。使用FPGA作為控制器,嚴格控制DS18B20 的時序,在單總線上實現讀寫功能,完成測量數字溫度的功能。將測量的二進制數轉換為BCD碼,并通過數碼管顯示。 隨著人們生活水平的不斷提高,FPGA控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現代人工作、科研、生活、提供更好的更方便的設施就需要從數單片機技術入手,一切向著數字化控制,智能化控制方向發展。 21世紀科學技術的發展日新月異,科技的進步帶動了測量技術的發展,現代控制設備的性能和結構發生了巨大
5、的變化,我們已經進入了高速發展的信息時代,測量技術也成為當今科技的主流之一,被廣泛的應用于生產的各個領域。2 設計實現2.1 FPGA簡介FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。特點介紹:1) 采用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的芯片。2) FPGA可做其它全定制或半定制ASIC電路的中試樣片。3) FP
6、GA內部有豐富的觸發器和I/O引腳。4) FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電平兼容。可以說,FPGA芯片是小批量系統提高系統集成度、可靠性的最佳選擇之一。FPGA是由存放在片內RAM中的程序來設置其工作狀態的,因此,工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時,FPGA芯片將EPROM中數據讀入片內編程RAM中,配置完成后,FPGA進入工作狀態。掉電后,FPGA恢復成白片,內部邏輯關系消失,因此,FPGA能夠反復使用。FPGA的編程無須專用的FP
7、GA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。2.2 DS18B20的通訊協議根據DS18B20的通訊協議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。由于 DS18B20 是采用一根 I/ O 總線讀寫數據,因此DS18B20 對讀寫數據位有嚴格的時序要求。DS18B20 遵循相應的通信協議從而保證數
8、據傳輸的正確性和完整性。該通信協議定義了多種信號時序:初始化時序、 寫時序、 讀時序。2.2.1 初始化時序初始化時序中,控制器發送一個480us-960us的低電平的復位信號,然后釋放總線,也就是總線為高電平,此時,控制器準備接收DS18B20的反應信號,當總線釋放后,如果存在DS18B20,那么DS18B20將在15-60us內發送一個持續60-240us的反應信號。2.2.2 寫時序因為本設計總線上只掛了一個DS18B20,所以不用讀取64位序列號,直接發送rom命令寫時序有寫1和寫2時序首先將總線拉低電平拉低后15us之內必須把所要向DS18B20寫的數據傳到總線上DS18B20將在1
9、5us-60us內采樣總線上的數據,如果為高則寫1,為低則寫0,寫完一次后釋放總線。每兩次寫數據之間時隙要大于1us。2.2.3 讀時序 讀時序時總線拉低電平大于1us后然后釋放總線準備接收DS18B20傳來的數據,DS18B20將在總線拉低后15us之內將數據傳到總線上,因此控制器必須在拉低電平然后釋放總線15us之內采樣總線上的數據。每次讀取一位數據不小于60us。 2.3 DS18B20程序流程圖 FPGA 控制DS18B20 實現溫度轉換的程序流程如下圖所示。程序流程圖2.3 電源連接 DS18B20可使用寄生電源,可以在 I/ O 引腳處于高電平時 “偷” 些能量,儲存在電容中供正常
10、使用,但進行精確轉換時需要 I/ O 引腳保持大電流供電,這樣對 FPGA 芯片引腳造成很大壓力,所以使用 VDD 引腳接外部電源。DS18B20電源連接圖DS18B20 進行溫度轉換需要很大電流,工作最大電流可達 1 mA。使用 VDD 引腳接外部電源供電的優點在于I/ O 線上不需要在溫度變換期間保持高電平。這樣就可以有效的保護FPGA 芯片,也可在單總線上放置多數目的DS18B20。使用外部電源,通過發出 Skip ROM 跳過命令,然后發出 Convert T變換命令,可以完成溫度變換。3 模塊設計3.1 DS18b20驅動模塊DSl820數字溫度計提供12位(二進制)溫度讀數指示器件
11、的溫度信息經過單線接口送 入DSl820或從DSl820送出因此從主機CPU到DSl820僅需一條線(和地線)DSl820的電源可以由數據線本身提供而不需要外部電源因為每一個DSl820在出廠時已經給定了唯一的序號因此任意多個DSl820可以存放在同一條單線總線上這允許在許多不同的地方放置溫度敏感器件DSl820的測量范圍從-55度到+125度增量值為0.5度可在1 s(典型值)內把溫度變換成數字量。Verilog程序如下:module ds18b20(iCLK, iRESET, oWIRE, oFLAG, oDATA );input iCLK,iRESET;output reg11:0 oD
12、ATA;output reg oFLAG;inout reg oWIRE;parameter do_reset = 6'b000001, release_bus = 6'b000010, wait_presence = 6'b000100;parameter write = 6'b001000, wait_conver = 6'b010000, read = 6'b100000;parameter Skip_Word = 8'b11001100,Tconvert_Word = 8'b01000100,Tempreg_Word =
13、8'b10111110;reg63:0 counter;reg7:0 byte_counter;reg5:0 nstate;reg7:0 temp_word;reg7:0 addr;reg15:0 Temp_buffer;always (posedge iCLK) begin if(iRESET) begin nstate <= do_reset; byte_counter <= 0; counter <= 0; oFLAG <= 0; oDATA <= 0; temp_word <= Skip_Word; addr <= 1; Temp_bu
14、ffer<=0;oWIRE <=0;end else case(nstate) do_reset : begin oFLAG <= 0;if(counter = 499) begin nstate <= wait_presence;counter <= 0;oWIRE <=1;end else begincounter <= counter + 1;oWIRE <=0;end end wait_presence: begin if(counter = 400) begin nstate <= release_bus;counter <
15、= 0; oWIRE <=1;end .模塊創建如下:3.2 溫度數據處理模塊 得到的12bit的溫度數據信息,可相應進行各種處理,如多次到平均等,另外,需將其由二進制轉換為BCD碼。Verilog程序如下:module bin2bcd(in_bin,out_bcd); input 11:0 in_bin; output 11:0 out_bcd; reg 11:0 out_bcd;always (in_bin)beginout_bcd11:8=in_bin11:4/10;out_bcd7:4=in_bin11:4%10;if(in_bin3)out_bcd3:0 = 5;endendm
16、odule模塊創建如下:3.3 溫度顯示模塊 FPGA實現LED靜態顯示控制運用硬件描述語言設計一個顯示譯碼驅動器,即將要顯示的字符譯成8段碼。由于FPGA有相當多的引腳端資源,如果顯示的位數N較少,可以直接使用靜態顯示方式,即將每一個數碼管都分別連接到不同的8個引腳線上,共需要8×N條引腳線控制,如左圖所示。采用FPGA實現LED數碼管動態顯示控制 N個LED數碼管以靜態方式顯示時,需用到8×N條引腳線。在較為復雜的系統中,FPGA的引腳端資源是有限的。因此對于多個LED數碼管顯示,可以采用掃描方式來實現LED數碼管動態顯示。 實現方法是依次點亮各個LED數碼管,循環進行
17、顯示,即一個數碼管顯示之后另一個數碼管馬上顯示,利用人眼的視覺暫留特性,可以到多個數碼管同時顯示的效果。采用掃描方式來實現LED數碼管動態顯示,控制好數碼管之間的延時是相當重要。根據人眼視覺暫留原理,LED數碼管每秒的導通16次以上,人眼就無法分辨LED數碼管短暫的不亮,認為是一直點亮的(其實LED數碼管是以一定頻率在閃動的)。但是,延時(導通頻率)也不是越小越好,因為LED數碼管達到一定亮度需要一定時間。如果延時控制的不好則會出現閃動,或者亮度不夠。據經驗,延時0.005秒可以達到滿意的效果。修改延時,亦能得到更多的顯示效果,如加長延時,使得數碼管顯示一小段時間,再點亮下一個,即可得到數碼管
18、逐個顯示的效果。 另外,顯示的字符有變化時,可在延時到達后送一個低電平(共陰極數碼管)讓LED數碼管先短暫熄滅,再顯示下一個字符,可使在視覺上字符的變化更清晰。Verilog程序如下:module display_ds18b20(in_bcd,Seg,rst,se,clk);input 11:0 in_bcd;input clk,rst;output 7:0 Seg;output 2:0 se;reg 7:0 Seg;reg 3:0 r;reg 2:0 se;parameter st0 = 1,st1 = 2,st2 = 3;reg1:0 current_state,next_state;al
19、ways (posedge clk) begin case(current_state)st0:beginr<=in_bcd11:7;se<=3'b110;next_state<=st1;endst1:beginr<=in_bcd7:4;se<=3'b101;next_state<=st2;endst2:beginr<=in_bcd3:0;se<=3'b011;next_state<=st0;endendcaseendalways (*)case(r)4'h0: Seg = 8'b11111100;4
20、'h1: Seg = 8'b01100000;4'h2: Seg = 8'b11011010;4'h3: Seg = 8'b11110010;4'h4: Seg = 8'b01100110;4'h5: Seg = 8'b10110110;4'h6: Seg = 8'b10111110;4'h7: Seg = 8'b11100000;4'h8: Seg = 8'b11111110;4'h9: Seg = 8'b11110110;default:Seg = 8'b00000000;endcaseendmodule模塊創建如下:4 整體模塊連接5 結束語這次課程設計讓我又一次加深了對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒小班教學工作計劃總結(11篇)
- 大班幼小銜接家長會發言稿(13篇)
- 2025年挖掘機倉庫工作心得體會(4篇)
- 高考勵志感人演講稿(4篇)
- 安全主題班會演講稿范文(15篇)
- 家長會家長代表發言稿集錦(16篇)
- 企業租賃合同范文(16篇)
- 經營年終工作總結(22篇)
- 培訓的心得體會范文(18篇)
- 圖形的運動(二)(教學設計)-2024-2025學年二年級下冊數學人教版
- 絞車工考試題及答案
- 2025年度“基層法治建設年”活動實施方案
- 2025年升降機司機作業證理論考試筆試試題(200題)附答案
- DBJ51T 108-2018 四川省建筑巖土工程測量標準
- 2025年國家保密基本知識考試題庫及答案
- 2024年四川省成都市武侯區中考化學二模試卷附解析
- 《大學生創新創業基礎》全套教學課件
- CB/T 3784-1996木材產品物資分類與代碼
- 外科學試題庫及答案(共1000題)
- 303093 池國華 《內部控制與風險管理(第3版)》思考題和案例分析答案
- 產科運用PDCA循環減少產后尿潴留發生率
評論
0/150
提交評論