基於FPGA的智能溫度採集控制器

來源:互聯網
上載者:User
基於FPGA的智能溫度採集控制器
[日期:2008-9-3] 來源:無憂電子開發網  作者:穆振海 [字型: ]

 

 

1引言

目前基於智能溫度感應器DS18B20的測溫設計大多是單片機程式。本課題嘗試使用FPGA晶片進行設計。FPGA內部有豐富的觸發器和I/O引腳,同時具有靜態可重複編程和動態在系統重構的特性,極大地提高了設計的靈活性和通用性,更適用於電子系統的開發。如果使用者需求量非常大,採用ASIC流片能極大地節省成本,經濟效益十分顯著。FPGA可做其它全定製或半定製ASIC電路的中試樣片。鑒於此,本課題使用硬體描述語言設計FPGA控制器來實現感應器控制,同時用VC來實現使用者控制介面。

一線匯流排(l-wire)感應器的出現(如DS18B20),使得在倉庫、工廠、樓宇等需要即時測溫的網路布線得以大大改善。在大體積混凝土的建造過程中,為了防止混凝土的開裂而造成工程的失敗,需要對若干點的溫度進行即時監控。由於施工現場的限制,使得可利用的布線地區越簡單越好。與此同時,現場溫度的採集與控制也有一定的要求。這時就可以在需要的測溫點橫向或縱向構成多層網路,而各個一線匯流排感應器直接掛接在上面即可。而對於每層的溫度採集和控制則可以由“FPGA控制器”去實現,使用和拆卸都很方便。並且由於FPGA移植性好、升級方便,對於各企業的成本也可以大大降低。隨著FPGA的進一步發展,此溫度採集控制器的應用範圍將不斷擴大,所體現的價值也將越來越高。

現場可程式化門陣列(Field Programmable Gate Array,FPGA)是當今應用最廣泛的一類可程式化專用整合電路(ASIC)。FPGA作為專用整合電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可程式化器件門電路數有限的缺點。電子設計工程師利用它可以在辦公室或實驗室裡設計出所需的專用整合電路,從而大大縮短了產品上市時間,降低了開發成本。此外,可程式邏輯元件還具有靜態可重複編程和動態在系統重構的特性。這使得硬體的功能可以像軟體一樣通過編程來修改,極大地提高了電子系統設計的靈活性和通用性。

2智能溫度採集器的設計

在FPGA的設計中一般有兩種方法:自上而下和自下而上。任何複雜的數字系統,都可以按層次細分,一直分到對每個部分都有比較明確而簡單的設計方案為止。這就是常常說的分而治之的方法。自上而下的方法之所以重要,就在於只有在上面的層次上才能全面確定下面模組的輸入輸出和功能行為的規格。而自下而上有時也行得通的原因是有些模組的規格本身是就是事先確定的或者基本可以確定的。

針對溫度採集控制器系統的特點,決定採用自上而下的設計方法,並將整個系統分為Control Unit和Data Path來進行設計(圖1)。這樣實現有以下優點:(1)Control Unit在內部FSM的控制下,在每一個State會有Outputs,控制Data Path中資料的傳輸,滿足DS18B20的時序要求;(2)Data Path則完成了所有的資料流傳輸,並即時的反饋給Control Unit一些Inputs,從而使其State轉換能夠正確完成;(3)如果要有附加的控制流程和資料流要添加進整個FPGA系統,則只要在Control Unit中更改相應的State和Data Path中做相應修改就可。這樣設計出來的系統穩定、擴充性好。

1、智能溫度採集器的系統結構框圖

在設計Control Block的時候一般採取有限狀態機器(FSM)的方法。FSM分兩大類:米裡型(Inputs對輸出邏輯和下一狀態邏輯有影響)和摩爾型(Inputs只對下一狀態邏輯有影響)。FSM設計中首要的是確定狀態變數。這是以對設計問題的深入瞭解為基礎的。每一個狀態都有可以實現的進入條件,每個狀態在所有輸入條件下都有明確的下一狀態,包括下一狀態和目前狀態相同的狀態的情況。顯然,如果下一狀態只有和目前狀態相同的狀態才是可實現的,那麼FSM一旦進入這個狀態就不會再改變了,這種“死機”狀態當然是要避免的。在此系統的 Control Block中的FSM採用摩爾型,設計出“下一狀態邏輯”從而使得“狀態寄存器”能在每一個時鐘沿正確的進行狀態轉換,並確定好“輸出邏輯”,在每一個狀態都能輸出正確的控制流程來對 Data Path中的資料流進行正確的控制,保證整個系統能夠正確的工作。

資料通道實現的是資料間的運算和傳輸。資料可能是8/16/32/64位的,一般所有位的運算並沒有太大的不同。但是,它又要同時實現Control Block中的FSM的功能,其設計是要和 Control Block中的FSM的結構一起考慮的。一旦FSM確定了,資料通道的計劃就要著手進行。由於資料通道的效能決定了整個系統的效能的高低,所以它又非常的關鍵。以往通用處理器因為生產數量大,資料通道用全定製的方法設計比較多,線路和版圖設計的精雕細刻,以求換得低的晶片生產成本和用其他方法難以達到的效能水平。這種情況在現代的SOC產品裡有了很大的改變,因為SOC產品的產量一般都比較小,而且設計者都希望同一個處理器核的設計能夠用於不同工藝生產的產品。這樣,全定製的設計就不合適了。一般來說,資料通道是一定形式的流水線,因為資料的讀取、運算和結果的寫入都在同一個周期內實現,時鐘頻率就很難提高,所以高效能處理器的資料通道現在都採用流水線設計。資料通道和資料寄存器和資料存放區器的關係十分密切,這當然是由處理器的結構確定的。在此系統中的 Data Path的資料流處理功能並不是非常的複雜,可以不用採取流水線設計,並在FSM的控制下進行正確的資料流傳輸,同時會反饋給FSM中的“下一狀態邏輯”一些Inputs訊號來使其能夠進行正確的狀態轉換。

3智能溫度採集器的實現

系統開發環境。本課題硬體設計採用XILINX公司SPARTAN-3器件開發板進行編程驗證,其特性如下:(1)具有二十萬門,十二個嵌入式18x18乘法器支援高效能DSP應用,216 Kbit的塊RAM,50 MHZ內部時鐘晶振;(2)板上2Mbit Platform Flash;(3)八個開關,四個按鈕,八個LED,四個七段顯示;(4)串口,VGA口,PS/兩個滑鼠/一個鍵盤口;(5)三組各40個引腳的擴充串連;(6)三個強電流的電壓整流器(3.3V,2.5V,1.2V);(7)配合JTAG3編程線和Xilinx的P4&MultiPRO線。系統硬體設計採用Verilog HDL設計語言,設計流程在Xilinx公司提供的開發工具ISE中完成,配合MODELSIM SE模擬工具。SPARTAN-3開發板上使用MAX3222電平轉換器,轉換RS-232C的EIA電平+12V與TTL電平+3.3V。在本系統中,由於串口通訊的雙方都是自訂製的,因此本課題中的RS-232C的串列傳輸傳輸速率選擇使用了PC機所能達到的最快傳輸速度:115200 bit/s。上位機軟體編程採用VC++ 6.0。

控制器邏輯功能流程圖。首先設計各個硬體模組,其中主控模組狀態機器先只實現一些準系統指令的流程式控制制,模擬測試單獨的模組。然後串連各個模組組成完整的硬體電路並進行一些準系統指令的測試。再利用串口調試助手及示波器檢驗硬體電路對一線匯流排上單個DS18B20的初始化(INITAILIZATION)、發送匹配ROM命令(MATCH ROM)、發送溫度轉換命令(CONVERT T)、發送引腳讀取命令(READ SCRATCHPAD)、發送讀時隙脈衝(READ TIMESLOTS)的操作結果。串口調試結果正確後聯合上位機程式實現最基本的“Read Temperature”功能。上位機調試結果正確後硬體電路繼續添加其他功能,調試“搜尋ROM命令(SEARCH ROM)和讀取ROM ID命令”,在FSM中實現搜尋演算法將溫度採集擴充至一線匯流排上多個DS18B20。整個系統邏輯框圖可見圖2。

2、智能溫度控制器邏輯功能流程圖

 

控制器邏輯功能模組。FPGA實現的控制器處於PC端上位機與溫度感應器DS18B2O中間。FPGA的主要設計任務便是接收從串口得來的PC端上位機命令,通過內部狀態機器邏輯的判斷和控制,通過Data Path將命令傳達至溫度感應器DS18B20,並將命令的執行結果返回給上位機。FPGA主要實現1-wire收發器和RS232收發器,對兩邊起溝通作用。整個硬體模組大致分成三層(圖3),第一層為RS232串列通訊模組和時鐘分頻模組fenpin,第二層為主控模組 Control Block,第三層為 Data Path部分:讀/寫模組bytebit。

3、智能溫度控制器系統模組階層圖

l)RS232串列通訊模組。負責外部上位機串列bit與主控模組Control Block並行byte間的資料轉送。RS232串列通訊速率採用 115200 bit/S。Uartrec從上位機接受一個位元組com命令發給主控模組Control Block,同時Uarttran從主控模組Control Block接收一個位元組result回應發給上位機。

2)分頻模組fenpin由50 MHZ內部晶振產生與DS18B20同步的1 MHZ時鐘。

3)主控模組 Control Block負責狀態轉化控制,實現 Data Path和RS232收發器的溝通。通過內部FSM邏輯的判斷和控制,將命令傳達至感應器,並將命令的執行結果返回給上位機。由兩個延時子模組組成。初始化模組init,負責初始化匯流排上所有DS18B20,並在初始化成功後報告主控模組初始化狀態。若初始化失敗,將繼續初始化。若超過設定初始化時間仍不能成功初始化,將停止初始化並警示。溫度轉化等待模組Convert,負責在讀/寫模組bytebit向DS18B20發出convert命令後延時800 ms再報告主控模組轉化完畢。根據DS18B20使用者手冊,溫度轉化最多用750 ms。所以採用800 ms的保守估算。

4)Data Path由讀/寫模組bytebit構成,負責主控模組Control Block和DS18B20之間的資料通訊。由主控模組Control Block的r_w訊號決定是發WRITE TIME SLOTS還是發READ TIME SLOTS。

4結束語

本文作者的主要創新點:分析並設計了一個基於FPGA的智能溫度測控系統。本系統已經廣泛地應用到各種相關的實際系統。本項目已經產生經濟效益越230萬元。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.