[日期: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學習 基於FPGA的簡易音訊採集系統
本篇部落格記錄乙個小專案的開發 基於fpga的簡易音訊採集系統,專案 是乙個寒假的活動的題目,直接購買了設計好的板卡,專案的基本要求如下 使用的板卡是lattice的ice40up5k,這裡首先記錄一下在lattice的軟體中開發fpga的簡單流程 參考 windows 下 ice40 fpga 開...
基於DSP的溫度採集系統設計
這學期終於要結束了,對於電子的工科學生來說,嘗試了文科期末考試背書的感覺。dsp這門課還是很有趣的,上課老師講的也很不錯,其中給我們布置了乙個用dsp設計的溫度採集系統,花了半天時間來了解dsp系列晶元的原理,又花了兩天時間在軟體上和文字上,最後迫於期末臨近,不得不拋棄些許質量上的考量,在此共享,不...
採集gpu GPU溫度的採集
監控gpu引數通常由以下幾種方式 一 直接檢視windows資源管理器裡面gpu引數。windows資源監控管理器,能看到gpu各種占有率引數,但看不到gpu的溫度,且通過這ui種方式只能在windows系統中檢視,無法將資料傳的傳輸後台監控。同時win7的任務管理器不支援gpu引數顯示。二.gpu...