本發(fā)明屬于一種溫度采集報警裝置,更具體地說,是一種基于FPGA的工業(yè)現(xiàn)場溫度采集報警方法及裝置。
背景技術:
新興的溫度采集報警系統(tǒng)要求同時具備高精度和遠距離傳輸,用FPGA和以太網(wǎng)來實現(xiàn)能更好的滿足這些需求,并且體積小、質量輕、修改方便、開發(fā)周期短易于移植和制作相應的專用ASIC和批量生產(chǎn),在現(xiàn)代工業(yè)溫度采集報警領域中得到了十分廣泛的應用。
隨著科學技術的發(fā)展和工業(yè)自動化水平的不斷提高,工業(yè)現(xiàn)場溫度的采集和傳輸越來越重要。通過千兆以太網(wǎng)對工業(yè)現(xiàn)場溫度進行實時傳輸,可以實現(xiàn)高速、遠距離的數(shù)據(jù)傳輸。
目前溫度測量采集報警主要是通過單片機來實現(xiàn)控制,但單片機處理速度慢,過程繁瑣,信號采集頻率受單片機時鐘的限制,難以實現(xiàn)高速的溫度測量且不易在線修改。
技術實現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術的不足或缺陷,提供一種基于FPGA的工業(yè)現(xiàn)場溫度采集報警方法,該方法以FPGA為主要平臺,采用邏輯設計的方式,利用溫度采集控制器多路采集溫度,實時、高速傳輸溫度數(shù)據(jù),有效的實現(xiàn)對工業(yè)現(xiàn)場的安全實時保護。
為了實現(xiàn)上述目的,本發(fā)明采用了如下技術方案:
一種基于FPGA的工業(yè)現(xiàn)場溫度采集報警方法,包括以下步驟:
步驟一,主機控制現(xiàn)場的溫度采集模塊進行現(xiàn)場溫度采集;
步驟二,所述溫度采集模塊將采集的溫度數(shù)據(jù)通過單總線傳輸給主機的數(shù)據(jù)處理發(fā)送模塊;
步驟三,所述數(shù)據(jù)處理發(fā)送模塊將所述溫度數(shù)據(jù)處理打包成標準的以太網(wǎng)包,并通過發(fā)送端以太網(wǎng)控制模塊發(fā)送出去;
步驟四:客戶端以太網(wǎng)控制模塊接收所述以太網(wǎng)包,并傳輸給數(shù)據(jù)處理接受模塊,所述數(shù)據(jù)處理接收模塊接收所述以太網(wǎng)包,并處理、解析所述溫度數(shù)據(jù)供給顯示及溫度報警模塊;
步驟五:所述顯示及溫度報警模塊顯示所述溫度數(shù)據(jù)并根據(jù)所述溫度數(shù)據(jù)判斷是否超過預設溫度,若超過則給發(fā)出報警信號。
較佳的是,所述溫度采集模塊包括多個溫度傳感器,所述主機控制溫度采集模塊進行每一次讀寫溫度數(shù)據(jù)之前都要對所述溫度采集模塊進行復位操作,且復位成功后所述溫度采集模塊依次發(fā)送一ROM指令和一RAM指令給所述主機。
較佳的是,在復位操作時,所述主機將數(shù)據(jù)線下拉500us,然后釋放,當所述溫度采集模塊收到所述主機將數(shù)據(jù)線下拉的信號后等待16~60us,發(fā)出60~240us的存在低脈沖,所述主機收到此低脈沖信號后表示復位成功。
較佳的是,所述溫度采集模塊包括讀時序、寫時序,其中,所述寫時序,所有寫時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間,所述寫時序包括寫“1”時序和寫“0”時序:當主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,寫“1”時序開始,15us后釋放總線,所述總線被5K上拉電阻拉成高電平,在第15us到60us進行采樣,這樣采到的就是高電平;當主機把總線持續(xù)拉到低電平并持續(xù)保持至少60us,主機生成一個寫“0”時序;所述讀時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間;當主機把所述數(shù)據(jù)線從邏輯高電平拉到低電平的時候,讀時序開始,所述數(shù)據(jù)線保持至少1us,然后主機釋放所述總線,所述溫度采集模塊通過拉高或拉低所述總線來傳輸“1”或“0”,傳輸“0”和“1”的時間為15us內有效,所以必須在讀時序開始后15us內讀取數(shù)據(jù),之后所述總線將會被上拉電阻拉成高電平。
較佳的是,所述數(shù)據(jù)處理發(fā)送模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、后級模塊發(fā)送完成信號輸入端口、溫度傳感器的溫度數(shù)據(jù)輸入端口、溫度數(shù)據(jù)有效使能信號輸入端口、后級模塊先進先出存儲器寫滿信號輸入端口、數(shù)據(jù)發(fā)送長度輸入端口;該模塊的主要輸出端口有:送給網(wǎng)口模塊的數(shù)據(jù)輸出端口、數(shù)據(jù)有效使能輸出端口、網(wǎng)口數(shù)據(jù)發(fā)送起始信號輸出端口。
較佳的是,所述數(shù)據(jù)處理發(fā)送模塊將所述溫度采集模塊傳送過來的16bit數(shù)據(jù)第15位表示符號位,第0到10位表示數(shù)據(jù)有效位,將第11到14位進行編碼,第一個溫度傳感器編碼為4’b0000,第二個溫度傳感器編碼為4’b0001,重新組合成16位數(shù)據(jù);所述數(shù)據(jù)處理發(fā)送模塊將2個16位數(shù)據(jù)拼接組合成4字節(jié)32bit發(fā)送給發(fā)送端以太網(wǎng)控制模塊使用,當接收到所述發(fā)送端以太網(wǎng)控制模塊發(fā)送結束信號后,等待1us,再次發(fā)送網(wǎng)口數(shù)據(jù)起始信號。
較佳的是,所述發(fā)送端以太網(wǎng)控制模塊由以太網(wǎng)數(shù)據(jù)發(fā)送子模塊、第一MAC寄存器配置子模塊、第一復位子模塊、第一MDIO配置子模塊、第一三速以太網(wǎng)IP子模塊組成,其中:所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊,其將從所述數(shù)據(jù)處理發(fā)送模塊送過來的數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊的先進先出存儲器,當所述數(shù)據(jù)處理發(fā)送模塊給出發(fā)送命令后,按照所述MAC寄存器配置子模塊幀格式,從所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊先進先出存儲器中取出數(shù)據(jù),發(fā)送給所述第一MAC寄存器配置子模塊的先進先出存儲器,統(tǒng)計發(fā)送的數(shù)據(jù)和傳輸速率;所述第一MAC寄存器配置子模塊,其主要對所述第一三速以太網(wǎng)IP子模塊進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置;所述第一復位子模塊,其主要是完成上電后對以太網(wǎng)發(fā)送子模塊和第一MAC寄存器配置子模塊的復位;所述第一MDIO配置子模塊,按照設定的模式,上電對以太網(wǎng)發(fā)送子模塊進行配置;上電后,當以太網(wǎng)發(fā)送子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b;所述第一三速以太網(wǎng)IP子模塊,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
較佳的是,所述客戶端以太網(wǎng)控制模塊由以太網(wǎng)數(shù)據(jù)接收子模塊、第二MAC寄存器配置子模塊、第二復位子模塊、第二MDIO配置子模塊、第二三速以太網(wǎng)IP子模塊組成,其中:所述以太網(wǎng)數(shù)據(jù)接收子模塊,其對從所述第二MAC寄存器配置子模塊傳輸過來的報文,經(jīng)過數(shù)據(jù)收集的媒體存取控制協(xié)議、傳感器介質訪問控制協(xié)議及以太網(wǎng)類型匹配進行過濾處理,對符合要求的報文,將其數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)接收子模塊的先進先出存儲器,供所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊讀取,按字節(jié)統(tǒng)計收包數(shù)據(jù),計算吞吐率;所述第二MAC寄存器配置子模塊,其主要對所述第二三速以太網(wǎng)IP子模塊進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置;所述第二復位子模塊,其主要是完成上電后對以太網(wǎng)數(shù)據(jù)接收子模塊和第二MAC寄存器配置子模塊的復位;所述第二MDIO配置子模塊,按照設定的模式,上電對以太網(wǎng)數(shù)據(jù)接收子模塊進行配置;上電后,當以太網(wǎng)數(shù)據(jù)接收子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第二MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b;所述第二三速以太網(wǎng)IP子模塊,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
較佳的是,所述數(shù)據(jù)處理接收模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、前級模塊先進先出存儲器輸出數(shù)據(jù)輸入端口,前級模塊先進先出存儲器輸出數(shù)據(jù)有效使能輸入端口,前級模塊先進先出存儲器空信號輸入端口;該數(shù)據(jù)處理接收模塊的主要輸出端口有:讀前級模塊先進先出存儲器請求信號輸出端口,第一個溫度傳感器的數(shù)據(jù)輸出端口,第一個溫度傳感器的數(shù)據(jù)有效使能輸出端口,第二個溫度傳感器的數(shù)據(jù)輸出端口,第二個溫度傳感器的數(shù)據(jù)有效使能輸出端口。
較佳的是,當所述數(shù)據(jù)處理接收模塊檢測到所述客戶端以太網(wǎng)的先進先出存儲器為非空時立即給一個讀請求信號,讀取所述數(shù)據(jù)處理接收模塊的先進先出存儲器里面的數(shù)據(jù);讀取出來的數(shù)據(jù)根據(jù)第11位至14位和第27位至30位來判斷為哪個溫度采集器的數(shù)據(jù),4’b0000為第一個溫度采集器的數(shù)據(jù),4’b0001為第二個溫度采集器的數(shù)據(jù),并根據(jù)第15位和第30位來還原溫度的正負值。
較佳的是,所述顯示及溫度報警模塊由按鍵消抖子模塊、LCD1602顯示子模塊、led燈顯示子模塊、報警系統(tǒng)控制子模塊組成;其中:所述按鍵消抖子模塊,是通過按鍵的延時消抖來進行控制,所述按鍵消抖子模塊內部采用參數(shù)化設計,可以通過參數(shù)的改變來改變按鍵的控制數(shù)目;LCD1602顯示子模塊,其用于驅動LCD1602進行顯示,其操作步驟是先寫指令,后寫數(shù)據(jù);led燈顯示子模塊,其由多個LED燈組成,當出現(xiàn)報警信號時對應的LED燈按照流水燈形式進行不停的閃爍;報警系統(tǒng)控制子模塊,其完成報警溫度閥值的加減,將溫度采集模塊當前的實時溫度與設定的閥值溫度進行比較,當超過閥值溫度時給出報警信號,低于報警溫度時取消報警。
本發(fā)明還提出一種基于FPGA的工業(yè)現(xiàn)場溫度采集報警裝置,其包括:溫度采集模塊,其設于工業(yè)現(xiàn)場,該溫度采集模塊用于工業(yè)現(xiàn)場的溫度采集;主機,該主機連接并控制所述溫度采集模塊;所述主機包括一數(shù)據(jù)處理發(fā)送模塊,該數(shù)據(jù)處理發(fā)送模塊與所述溫度采集模塊相連,將所述溫度采集模塊傳輸過來的溫度數(shù)據(jù)處理打包成標準的以太網(wǎng)包,控制所述溫度數(shù)據(jù)的發(fā)送;發(fā)送端以太網(wǎng)控制模塊,其連接所述數(shù)據(jù)處理模塊,該所述發(fā)送端以太網(wǎng)控制模塊在所述數(shù)據(jù)處理模塊的控制下將所述溫度數(shù)據(jù)進行傳輸;客戶端以太網(wǎng)控制模塊,其與所述發(fā)送端以太網(wǎng)控制模塊網(wǎng)路連接,該客戶端以太網(wǎng)控制模塊接收所述發(fā)送端以太網(wǎng)控制模塊傳輸?shù)囊蕴W(wǎng)包并將其傳輸給數(shù)據(jù)處理接收模塊;所述數(shù)據(jù)處理接收模塊,其與所述客戶端以太網(wǎng)控制模塊相連,所述數(shù)據(jù)處理接收模塊接收所述以太網(wǎng)包并將其處理、解析出所述溫度數(shù)據(jù),所述數(shù)據(jù)處理接收模塊將解析出的溫度數(shù)據(jù)發(fā)送給一報警及顯示模塊;所述顯示及溫度報警模塊,其與所述數(shù)據(jù)處理接收模塊相連,所述顯示及溫度報警模塊接收所述溫度數(shù)據(jù),顯示所述溫度數(shù)據(jù)并根據(jù)所述溫度數(shù)據(jù)判斷是否超過預設溫度,若超過則給發(fā)出報警信號。
較佳的是,所述溫度采集模塊包括多個溫度傳感器。
較佳的是,所述數(shù)據(jù)處理發(fā)送模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、后級模塊發(fā)送完成信號輸入端口、溫度傳感器的溫度數(shù)據(jù)輸入端口、溫度數(shù)據(jù)有效使能信號輸入端口、后級模塊先進先出存儲器寫滿信號輸入端口、數(shù)據(jù)發(fā)送長度輸入端口;該模塊的主要輸出端口有:送給網(wǎng)口模塊的數(shù)據(jù)輸出端口、數(shù)據(jù)有效使能輸出端口、網(wǎng)口數(shù)據(jù)發(fā)送起始信號輸出端口。
較佳的是,所述發(fā)送端以太網(wǎng)控制模塊由以太網(wǎng)數(shù)據(jù)發(fā)送子模塊、第一MAC寄存器配置子模塊、第一復位子模塊、第一MDIO配置子模塊、第一三速以太網(wǎng)IP子模塊組成,其中:所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊,其將從所述數(shù)據(jù)處理發(fā)送模塊送過來的數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊的先進先出存儲器,當所述數(shù)據(jù)處理發(fā)送模塊給出發(fā)送命令后,按照所述MAC寄存器配置子模塊幀格式,從所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊先進先出存儲器中取出數(shù)據(jù),發(fā)送給所述第一MAC寄存器配置子模塊的先進先出存儲器,統(tǒng)計發(fā)送的數(shù)據(jù)和傳輸速率;所述第一MAC寄存器配置子模塊,其主要對所述第一三速以太網(wǎng)IP子模塊進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置;所述第一復位子模塊,其主要是完成上電后對以太網(wǎng)發(fā)送子模塊和第一MAC寄存器配置子模塊的復位;所述第一MDIO配置子模塊,按照設定的模式,上電對以太網(wǎng)發(fā)送子模塊進行配置;上電后,當以太網(wǎng)發(fā)送子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b;所述第一三速以太網(wǎng)IP子模塊,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
較佳的是,所述客戶端以太網(wǎng)控制模塊由以太網(wǎng)數(shù)據(jù)接收子模塊、第二MAC寄存器配置子模塊、第二復位子模塊、第二MDIO配置子模塊、第二三速以太網(wǎng)IP子模塊組成,其中:所述以太網(wǎng)數(shù)據(jù)接收子模塊,其對從所述第二MAC寄存器配置子模塊傳輸過來的報文,經(jīng)過數(shù)據(jù)收集的媒體存取控制協(xié)議、傳感器介質訪問控制協(xié)議及以太網(wǎng)類型匹配進行過濾處理,對符合要求的報文,將其數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)接收子模塊的先進先出存儲器,供所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊讀取,按字節(jié)統(tǒng)計收包數(shù)據(jù),計算吞吐率;所述第二MAC寄存器配置子模塊,其主要對所述第二三速以太網(wǎng)IP子模塊進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置;所述第二復位子模塊,其主要是完成上電后對以太網(wǎng)數(shù)據(jù)接收子模塊和第二MAC寄存器配置子模塊的復位;所述第二MDIO配置子模塊,按照設定的模式,上電對以太網(wǎng)數(shù)據(jù)接收子模塊進行配置;上電后,當以太網(wǎng)數(shù)據(jù)接收子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第二MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b;所述第二三速以太網(wǎng)IP子模塊,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
較佳的是,所述數(shù)據(jù)處理接收模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、前級模塊先進先出存儲器輸出數(shù)據(jù)輸入端口,前級模塊先進先出存儲器輸出數(shù)據(jù)有效使能輸入端口,前級模塊先進先出存儲器空信號輸入端口;該數(shù)據(jù)處理接收模塊的主要輸出端口有:讀前級模塊先進先出存儲器請求信號輸出端口,第一個溫度傳感器的數(shù)據(jù)輸出端口,第一個溫度傳感器的數(shù)據(jù)有效使能輸出端口,第二個溫度傳感器的數(shù)據(jù)輸出端口,第二個溫度傳感器的數(shù)據(jù)有效使能輸出端口。
較佳的是,所述顯示及溫度報警模塊由按鍵消抖子模塊、LCD1602顯示子模塊、led燈顯示子模塊、報警系統(tǒng)控制子模塊組成;其中:所述按鍵消抖子模塊,是通過按鍵的延時消抖來進行控制,所述按鍵消抖子模塊內部采用參數(shù)化設計,可以通過參數(shù)的改變來改變按鍵的控制數(shù)目;LCD1602顯示子模塊,其用于驅動LCD1602進行顯示,其操作步驟是先寫指令,后寫數(shù)據(jù);led燈顯示子模塊,其由多個LED燈組成,當出現(xiàn)報警信號時對應的LED燈按照流水燈形式進行不停的閃爍;報警系統(tǒng)控制子模塊,其完成報警溫度閥值的加減,將溫度采集模塊當前的實時溫度與設定的閥值溫度進行比較,當超過閥值溫度時給出報警信號,低于報警溫度時取消報警。
較佳的是,所述按鍵消抖子模塊設有三個按鍵,一個按鍵用來控制溫度報警閥值的選擇,另兩個按鍵用來調節(jié)閥值溫度的大小。
由于采用上述技術手段,本申請以FPGA為主處理器,通過編寫邏輯代碼驅動相應的硬件,完成整個溫度監(jiān)控和溫度數(shù)據(jù)的傳輸系統(tǒng),相對現(xiàn)有技術,其優(yōu)點在于能夠實現(xiàn)高精度的采集,實時、高速傳輸溫度信號,有效的實現(xiàn)對工業(yè)現(xiàn)場的安全實時保護。
附圖說明
通過以下實施例并結合其附圖的描述,可以進一步理解其發(fā)明的目的、具體結構特征和優(yōu)點。附圖中:
圖1為本申請的結構示意圖;
圖2為本申請的方法步驟示意圖;
圖3為溫度采集流程圖;
圖4以太網(wǎng)控制模塊流程圖。
具體實施方式
實施例一
參見圖1所示,本申請的整個溫度控制流程如圖1所示。本申請包括了:溫度采集模塊1、主機2、以太網(wǎng)控制模塊3、客戶端數(shù)據(jù)處理接收模塊4和顯示及溫度報警模塊5。其中,主機由FPGA構成,主機2包括了一個數(shù)據(jù)處理發(fā)送模塊21。
如圖1所示,本申請的溫度控制流程分為了5個過程:
1.溫度采集模塊1在主機2的控制下采集工業(yè)現(xiàn)場的溫度。
2.溫度采集模塊1將采集到的溫度數(shù)據(jù)通過單總線傳輸給數(shù)據(jù)處理發(fā)送模塊21。
3.數(shù)據(jù)處理發(fā)送模塊21接收溫度數(shù)據(jù)并對溫度數(shù)據(jù)進行處理,將其打包成標準的以太網(wǎng)包,然后控制所述以太網(wǎng)控制模塊3將其發(fā)送給客戶端。
4.客戶端的數(shù)據(jù)處理接收模塊4接收所述溫度數(shù)據(jù),將其進行處理、解析,并將解析后的溫度數(shù)據(jù)傳輸給顯示及報警模塊。
5.顯示及報警模塊接收該現(xiàn)場溫度數(shù)據(jù),顯示所述溫度數(shù)據(jù)并根據(jù)所述溫度數(shù)據(jù)判斷是否超過預設溫度,若超過則給發(fā)出報警信號,開始報警;若低于則取消警報。
關于本申請的基于FPGA的工業(yè)現(xiàn)場溫度采集報警方法詳細請參見圖2所示,具體闡述如下:
步驟S1:溫度采集模塊1在主機2的控制下對工業(yè)現(xiàn)場溫度進行采集。
溫度采集模塊1包括了多個溫度傳感器,可以進行多路的溫度數(shù)據(jù)采集。
根據(jù)溫度采集模塊1的通訊協(xié)議,主機(FPGA)2控制溫度采集模塊1完成將傳感器的溫度信息轉換成數(shù)據(jù)信息時必須要經(jīng)過三個步驟。每一次讀寫之前都要對溫度采集模塊1進行復位操作,復位成功之后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對溫度采集模塊1進行預定的操作。復位要求主機2將數(shù)據(jù)線下拉500us,然后釋放,當溫度采集模塊1收到信號后等待16~60us左右,發(fā)出60~240us的存在低脈沖,主機2收到此信號后表示復位成功。
參見圖3所示溫度采集流程圖,是溫度采集模塊的操作時序,圖3只是大概的過程表,大致流程為:溫度采集模塊指令CCH:跳過ROM,忽略64位ROM地址,直接向溫度采集模塊發(fā)溫度變換指令,溫度采集模塊RAM指令BEH:讀暫存器,讀內部RAM中的內容。
溫度采集模塊1的讀寫時序,其中有兩種寫時序:寫“1”時序和寫“0”時序,所有寫時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間。當主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,寫“1”時序開始,15us后釋放總線,總線被5K上拉電阻拉成高電平,在第15us到60us進行采樣,這樣采到的就是高電平。主機要想生成一個寫“0”時序,就必須要把數(shù)據(jù)總線持續(xù)拉到低電平并持續(xù)保持至少60us。所有讀時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間。當主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,讀時序開始,數(shù)據(jù)線保持至少1us,然后主機釋放總線,溫度采集模塊1通過拉高或拉低總線來傳輸“1”或“0”,傳輸“0”和“1”的時間為15us內有效,所以必須在讀時序開始后15us內讀取數(shù)據(jù),之后總線將會被上拉電阻拉成高電平。
步驟S2:所述溫度采集模塊1將采集的溫度數(shù)據(jù)通過單總線傳輸給主機2的數(shù)據(jù)處理發(fā)送模塊21。
步驟S3:數(shù)據(jù)處理模塊21接收所述溫度數(shù)據(jù),將所述溫度數(shù)據(jù)處理打包成標準的以太網(wǎng)包,并通過發(fā)送端以太網(wǎng)控制模塊發(fā)送出去。
該數(shù)據(jù)處理模塊21首先對多路溫度傳感器采集的溫度數(shù)據(jù)分別添加相應的協(xié)議,控制溫度數(shù)據(jù)的發(fā)送。該數(shù)據(jù)處理模塊21將溫度數(shù)據(jù)送入主機FPGA的數(shù)據(jù)處理接收模塊的先進先出存儲器。
所述數(shù)據(jù)處理發(fā)送模塊21主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、后級模塊發(fā)送完成信號輸入端口、溫度傳感器的溫度數(shù)據(jù)輸入端口、溫度數(shù)據(jù)有效使能信號輸入端口、后級模塊先進先出存儲器寫滿信號輸入端口、數(shù)據(jù)發(fā)送長度輸入端口。
所述數(shù)據(jù)處理發(fā)送模塊21的主要輸出端口有:送給網(wǎng)口模塊的數(shù)據(jù)輸出端口、數(shù)據(jù)有效使能輸出端口、網(wǎng)口數(shù)據(jù)發(fā)送起始信號輸出端口。
所述溫度采集模塊1傳送給數(shù)據(jù)處理發(fā)送模塊21的16bit數(shù)據(jù)第15位表示符號位,第0到10位表示數(shù)據(jù)有效位,將第11到14位進行編碼,第一個傳感器編碼為4’b0000,第二個傳感器編碼為4’b0001,重新組合成16位數(shù)據(jù)。采用該協(xié)議編碼,最多可以支持16個溫度采集模塊1的溫度傳輸。為了配合后級模塊的數(shù)據(jù)格式,所述數(shù)據(jù)處理發(fā)送模塊將2個16位數(shù)據(jù)拼接組合成4字節(jié)32bit發(fā)送給發(fā)送端以太網(wǎng)控制模塊使用,當接收到所述發(fā)送端以太網(wǎng)控制模塊發(fā)送結束信號后,等待1us,再次發(fā)送網(wǎng)口數(shù)據(jù)起始信號。因而相對于16bit,本申請的32bit傳輸速度更加快。
所述發(fā)送端以太網(wǎng)控制模塊3由以太網(wǎng)數(shù)據(jù)發(fā)送子模塊31、第一MAC寄存器配置子模塊32、第一復位子模塊33、第一MDIO配置子模塊34、第一三速以太網(wǎng)IP子模塊35組成。其中:
所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊31,其將從數(shù)據(jù)處理發(fā)送模塊21送過來的數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊的先進先出存儲器,當數(shù)據(jù)處理發(fā)送模塊21給出發(fā)送命令后,按照所述第一MAC寄存器配置子模塊幀格式,從所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊先進先出存儲器中取出數(shù)據(jù),發(fā)送給所述第一MAC寄存器配置子模塊的先進先出存儲器,統(tǒng)計發(fā)送的數(shù)據(jù)和傳輸速率。
所述第一MAC寄存器配置子模塊32,其主要對所述第一三速以太網(wǎng)IP子模塊按照RGMII模式進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置。
所述第一復位子模塊33,其主要是完成上電后對以太網(wǎng)發(fā)送子模塊和第一MAC寄存器配置子模塊的復位。第一MAC寄存器配置子模塊的復位是上電后將復位信號高10拍然后拉低取消復位。
第一MDIO配置子模塊34,按照設定的模式,上電對以太網(wǎng)發(fā)送子模塊進行配置;上電后,當以太網(wǎng)發(fā)送子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第一MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b。
第一三速以太網(wǎng)IP子模塊35,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
請參見圖4所示,圖4以太網(wǎng)控制模塊流程圖。
步驟S4:客戶端以太網(wǎng)控制模塊4接收所述以太網(wǎng)包,并傳輸給數(shù)據(jù)處理接受模塊5,所述數(shù)據(jù)處理接收模塊5接收所述以太網(wǎng)包,并處理、解析所述溫度數(shù)據(jù)供給顯示及溫度報警模塊6。
所述客戶端以太網(wǎng)控制模塊4由以太網(wǎng)數(shù)據(jù)接收子模塊41、第二MAC寄存器配置子模塊42、第二復位子模塊43、第二MDIO配置子模塊44、第二三速以太網(wǎng)IP子模塊45組成。其中:
所述以太網(wǎng)數(shù)據(jù)接收子模塊41,其對從所述第二MAC寄存器配置子模塊42傳輸過來的報文,經(jīng)過數(shù)據(jù)收集的媒體存取控制協(xié)議、傳感器介質訪問控制協(xié)議及以太網(wǎng)類型匹配進行過濾處理,對符合要求的報文,將其數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)接收子模塊的先進先出存儲器,供所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊讀取,按字節(jié)統(tǒng)計收包數(shù)據(jù),計算吞吐率。
所述第二MAC寄存器配置子模塊42,其主要對所述第二三速以太網(wǎng)IP子模塊45進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置。
所述第二復位子模塊42,其主要是完成上電后對以太網(wǎng)數(shù)據(jù)接收子模塊41和第二MAC寄存器配置子模塊42的復位。
所述第二MDIO配置子模塊44,按照設定的模式,上電對以太網(wǎng)數(shù)據(jù)接收子模塊進行配置;上電后,當以太網(wǎng)數(shù)據(jù)接收子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第二MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b。
所述第二三速以太網(wǎng)IP子模塊45,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
所述數(shù)據(jù)處理接收模塊5主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、前級模塊先進先出存儲器輸出數(shù)據(jù)輸入端口,前級模塊先進先出存儲器輸出數(shù)據(jù)有效使能輸入端口,前級模塊先進先出存儲器空信號輸入端口。
該數(shù)據(jù)處理接收模塊5的主要輸出端口有:讀前級模塊先進先出存儲器請求信號輸出端口,第一個溫度傳感器的數(shù)據(jù)輸出端口,第一個溫度傳感器的數(shù)據(jù)有效使能輸出端口,第二個溫度傳感器的數(shù)據(jù)輸出端口,第二個溫度傳感器的數(shù)據(jù)有效使能輸出端口。
當所述數(shù)據(jù)處理接收模塊5檢測到客戶端以太網(wǎng)控制模塊4的先進先出存儲器為非空時立即給一個讀請求信號,讀取所述數(shù)據(jù)處理接收模塊的先進先出存儲器里面的數(shù)據(jù);讀取出來的數(shù)據(jù)根據(jù)第11位至14位和第27位至30位來判斷為哪個溫度傳感器的數(shù)據(jù),4’b0000為第一個溫度傳感器的數(shù)據(jù),4’b0001為第二個溫度傳感器的數(shù)據(jù),并根據(jù)第15位和第30位來還原溫度的正負值。
步驟S5:所述顯示及溫度報警模塊6顯示所述溫度數(shù)據(jù)并根據(jù)所述溫度數(shù)據(jù)判斷是否超過預設溫度,若超過則給發(fā)出報警信號;若沒有超過則取消報警信號。
所述顯示及溫度報警模塊6由按鍵消抖子模塊61、LCD1602顯示子模塊62、led燈顯示子模塊63、報警系統(tǒng)控制子模塊64組成。
按鍵消抖模塊61主要是通過按鍵的延時消抖來進行控制,模塊內部采用參數(shù)化設計,可以通過參數(shù)的改變來改變按鍵的控制數(shù)目。本申請采用了3個按鍵,一個按鍵用來控制溫度報警閥值的選擇,另外兩個按鍵用來調節(jié)閥值溫度的大小。
LCD1602顯示模塊62的主要作用是驅動LCD1602進行顯示,其操作步驟是先寫指令,后寫數(shù)據(jù)。由于LCD1602的顯示內容有限,但是又考慮到要顯示多路實時溫度以及多路報警溫度,所以采用了分行顯示報警閥值和實時溫度發(fā)方式。實時溫度精確值達到了0.0625度。
led燈顯示模塊63由18個LED燈組成,右邊8個用作第一路溫度數(shù)據(jù)的報警,左邊8個用作第二路溫度數(shù)據(jù)的報警。當出現(xiàn)報警信號時對應的LED燈按照流水燈形式進行不停的閃爍。
報警系統(tǒng)控制模塊64主要完成報警溫度閥值的加減,將兩路溫度傳感器當前的實時溫度與設定的閥值溫度進行比較,當超過閥值溫度時給出報警信號,低于報警溫度時取消報警。
實施例二
實施例二為本申請的一個基于FPGA的工業(yè)現(xiàn)場溫度采集報警裝置的實施例。
本申請的基于FPGA的工業(yè)現(xiàn)場溫度采集報警裝置包括了溫度采集模塊1、主機2以及主機的數(shù)據(jù)處理發(fā)送模塊21、發(fā)送端以太網(wǎng)控制模塊3、客戶端以太網(wǎng)控制模塊4、數(shù)據(jù)處理接收模塊5和顯示及溫度報警模塊6。
溫度采集模塊1,其設于工業(yè)現(xiàn)場,該溫度采集模塊用于工業(yè)現(xiàn)場的溫度采集。溫度采集模塊1包括了多個溫度傳感器,可以實現(xiàn)多路溫度采集。溫度采集模塊1通過單總線將溫度數(shù)據(jù)傳送給數(shù)據(jù)處理發(fā)送模塊21。
主機(FPGA)2控制溫度采集模塊1完成溫度轉換必須要經(jīng)過三個步驟。每一次讀寫之前都要對溫度采集模塊1進行復位操作,復位成功之后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對溫度采集模塊1進行預定的操作。復位要求主機2將數(shù)據(jù)線下拉500us,然后釋放,當溫度采集模塊1收到信號后等待16~60us左右,發(fā)出60~240us的存在低脈沖,主機2收到此信號后表示復位成功。
溫度采集模塊1的讀寫時序,其中有兩種寫時序:寫“1”時序和寫“0”時序,所有寫時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間。當主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,寫“1”時序開始,15us后釋放總線,總線被5K上拉電阻拉成高電平,在第15us到60us進行采樣,這樣采到的就是高電平。主機要想生成一個寫“0”時序,就必須要把數(shù)據(jù)總線持續(xù)拉到低電平并持續(xù)保持至少60us。所有讀時序必須持續(xù)最少60us,包括兩個周期之間最少1us的恢復時間。當主機把數(shù)據(jù)線從邏輯高電平拉到低電平的時候,讀時序開始,數(shù)據(jù)線保持至少1us,然后主機釋放總線,溫度采集模塊1通過拉高或拉低總線來傳輸“1”或“0”,傳輸“0”和“1”的時間為15us內有效,所以必須在讀時序開始后15us內讀取數(shù)據(jù),之后總線將會被上拉電阻拉成高電平。
主機2,該主機2連接并控制所述溫度采集模塊1。所述主機2包括一數(shù)據(jù)處理發(fā)送模塊21,該數(shù)據(jù)處理發(fā)送模塊21與所述溫度采集模塊1相連,將所述溫度采集模塊1傳輸過來的溫度數(shù)據(jù)處理打包成標準的以太網(wǎng)包,控制所述溫度數(shù)據(jù)的發(fā)送。所述數(shù)據(jù)處理發(fā)送模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、后級模塊發(fā)送完成信號輸入端口、溫度傳感器的溫度數(shù)據(jù)輸入端口、溫度數(shù)據(jù)有效使能信號輸入端口、后級模塊先進先出存儲器寫滿信號輸入端口、數(shù)據(jù)發(fā)送長度輸入端口;該模塊的主要輸出端口有:送給網(wǎng)口模塊的數(shù)據(jù)輸出端口、數(shù)據(jù)有效使能輸出端口、網(wǎng)口數(shù)據(jù)發(fā)送起始信號輸出端口。
所述溫度采集模塊1傳送給數(shù)據(jù)處理發(fā)送模塊21的16bit數(shù)據(jù)第15位表示符號位,第0到10位表示數(shù)據(jù)有效位,將第11到14位進行編碼,第一個傳感器編碼為4’b0000,第二個傳感器編碼為4’b0001,重新組合成16位數(shù)據(jù)。采用該協(xié)議編碼,最多可以支持16個溫度采集模塊1的溫度傳輸。為了配合后級模塊的數(shù)據(jù)格式,所述數(shù)據(jù)處理發(fā)送模塊將2個16位數(shù)據(jù)拼接組合成4字節(jié)32bit發(fā)送給發(fā)送端以太網(wǎng)控制模塊使用,當接收到所述發(fā)送端以太網(wǎng)控制模塊發(fā)送結束信號后,等待lus,再次發(fā)送網(wǎng)口數(shù)據(jù)起始信號。
所述發(fā)送端以太網(wǎng)控制模塊3由以太網(wǎng)數(shù)據(jù)發(fā)送子模塊31、第一MAC寄存器配置子模塊32、第一復位子模塊33、第一MDIO配置子模塊34、第一三速以太網(wǎng)IP子模塊35組成。其中:
所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊31,其將從數(shù)據(jù)處理發(fā)送模塊21送過來的數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊的先進先出存儲器,當數(shù)據(jù)處理發(fā)送模塊21給出發(fā)送命令后,按照所述第一MAC寄存器配置子模塊幀格式,從所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊先進先出存儲器中取出數(shù)據(jù),發(fā)送給所述第一MAC寄存器配置子模塊的先進先出存儲器,統(tǒng)計發(fā)送的數(shù)據(jù)和傳輸速率。
所述第一MAC寄存器配置子模塊32,其主要對所述第一三速以太網(wǎng)IP子模塊按照RGMII模式進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置。
所述第一復位子模塊33,其主要是完成上電后對以太網(wǎng)發(fā)送子模塊和第一MAC寄存器配置子模塊的復位。第一MAC寄存器配置子模塊的復位是上電后將復位信號高10拍然后拉低取消復位。
第一MDIO配置子模塊34,按照設定的模式,上電對以太網(wǎng)發(fā)送子模塊進行配置;上電后,當以太網(wǎng)發(fā)送子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第一MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b。
第一三速以太網(wǎng)IP子模塊35,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
所述客戶端以太網(wǎng)控制模塊4由以太網(wǎng)數(shù)據(jù)接收子模塊41、第二MAC寄存器配置子模塊42、第二復位子模塊43、第二MDIO配置子模塊44、第二三速以太網(wǎng)IP子模塊45組成。其中:
所述以太網(wǎng)數(shù)據(jù)接收子模塊41,其對從所述第二MAC寄存器配置子模塊42傳輸過來的報文,經(jīng)過數(shù)據(jù)收集的媒體存取控制協(xié)議、傳感器介質訪問控制協(xié)議及以太網(wǎng)類型匹配進行過濾處理,對符合要求的報文,將其數(shù)據(jù)存入所述以太網(wǎng)數(shù)據(jù)接收子模塊的先進先出存儲器,供所述以太網(wǎng)數(shù)據(jù)發(fā)送子模塊讀取,按字節(jié)統(tǒng)計收包數(shù)據(jù),計算吞吐率。
所述第二MAC寄存器配置子模塊42,其主要對所述第二三速以太網(wǎng)IP子模塊45進行配置初始化,按照數(shù)據(jù)手冊寄存器初始化步驟進行配置。
所述第二復位子模塊42,其主要是完成上電后對以太網(wǎng)數(shù)據(jù)接收子模塊41和第二MAC寄存器配置子模塊42的復位。
所述第二MDIO配置子模塊44,按照設定的模式,上電對以太網(wǎng)數(shù)據(jù)接收子模塊進行配置;上電后,當以太網(wǎng)數(shù)據(jù)接收子模塊的模式需要改變時,再次進行MDIO配置;每次模式改變后,需要對第二MDIO配置子模塊的寄存器進行軟復位,即:0.31:0=32’h8140,當使用光口時,27.15:0=4’hb003,當使用電口時,27.15:0=4’h800b。
所述第二三速以太網(wǎng)IP子模塊45,其主要功能是線路側與系統(tǒng)側的時序轉換,收端前導碼檢測、去除,發(fā)端前導碼添加,收端循環(huán)冗余校驗檢查,發(fā)端循環(huán)冗余校驗插入,以及回環(huán)功能,包括線路側環(huán)回,系統(tǒng)側環(huán)回。
數(shù)據(jù)處理接收模塊5,該數(shù)據(jù)處理接收模塊5與所述以太網(wǎng)控制模塊4相連,所述數(shù)據(jù)處理接收模塊5接收所述溫度數(shù)據(jù)并處理、解析所述溫度數(shù)據(jù),所述數(shù)據(jù)處理接收模塊將解析出的溫度數(shù)據(jù)發(fā)送給一報警及顯示模塊6。所述數(shù)據(jù)處理接收模塊主要輸入端口有:復位信號輸入端口、時鐘信號輸入端口、前級模塊先進先出存儲器輸出數(shù)據(jù)輸入端口,前級模塊先進先出存儲器輸出數(shù)據(jù)有效使能輸入端口,前級模塊先進先出存儲器空信號輸入端口;該數(shù)據(jù)處理接收模塊的主要輸出端口有:讀前級模塊先進先出存儲器請求信號輸出端口,第一個溫度傳感器的數(shù)據(jù)輸出端口,第一個溫度傳感器的數(shù)據(jù)有效使能輸出端口,第二個溫度傳感器的數(shù)據(jù)輸出端口,第二個溫度傳感器的數(shù)據(jù)有效使能輸出端口。
當所述數(shù)據(jù)處理接收模塊5檢測到客戶端以太網(wǎng)控制模塊4的先進先出存儲器為非空時立即給一個讀請求信號,讀取所述數(shù)據(jù)處理接收模塊的先進先出存儲器里面的數(shù)據(jù);讀取出來的數(shù)據(jù)根據(jù)第11位至14位和第27位至30位來判斷為哪個溫度采集器的數(shù)據(jù),4’b0000為第一個溫度采集器的數(shù)據(jù),4’b0001為第二個溫度采集器的數(shù)據(jù),并根據(jù)第15位和第30位來還原溫度的正負值。
所述顯示及溫度報警模塊6,其與所述數(shù)據(jù)處理接收模塊5相連,所述顯示及溫度報警模塊接收所述溫度數(shù)據(jù),顯示所述溫度數(shù)據(jù)并根據(jù)所述溫度數(shù)據(jù)判斷是否超過預設溫度,若超過則給發(fā)出報警信號,若沒有超過則取消報警信號。所述顯示及溫度報警模塊6由按鍵消抖子模塊61、LCD1602顯示子模塊62、led燈顯示子模塊63、報警系統(tǒng)控制子模塊64組成;其中:
按鍵消抖模塊61主要是通過按鍵的延時消抖來進行控制,模塊內部采用參數(shù)化設計,可以通過參數(shù)的改變來改變按鍵的控制數(shù)目。本申請采用了3個按鍵,一個按鍵用來控制溫度報警閥值的選擇,另外兩個按鍵用來調節(jié)閥值溫度的大小。
LCD1602顯示模塊62的主要作用是驅動LCD1602進行顯示,其操作步驟是先寫指令,后寫數(shù)據(jù)。由于LCD1602的顯示內容有限,但是又考慮到要顯示多路實時溫度以及多路報警溫度,所以采用了分行顯示報警閥值和實時溫度發(fā)方式。實時溫度精確值達到了0.0625度。
led燈顯示模塊63由18個LED燈組成,右邊8個用作第一路溫度數(shù)據(jù)的報警,左邊8個用作第二路溫度數(shù)據(jù)的報警。當出現(xiàn)報警信號時對應的LED燈按照流水燈形式進行不停的閃爍。
報警系統(tǒng)控制模塊64主要完成報警溫度閥值的加減,將兩路溫度傳感器當前的實時溫度與設定的閥值溫度進行比較,當超過閥值溫度時給出報警信號,低于報警溫度時取消報警。