本發(fā)明屬于溫度傳感器溫度測量,特別涉及一種單總線溫度傳感器多片共用單io口的fpga測試方法。
背景技術:
1、在現代電子系統中,溫度傳感器一直是一個非常重要的組件,特別是在硬件設計和系統運行過程中,它們的作用越來越被重視。如圖1中(a)所示的一款單總線溫度傳感器是一種數字溫度傳感器,由于其精度高、體積小、功耗低以及所需的線路簡單等優(yōu)點,已經被廣泛應用于各種物聯網和嵌入式系統中。這款溫度傳感器采用一根控制總線,實現指令的輸入及數據的輸出,精度高可達±0.5℃,范圍廣泛從-55℃到+125℃。使用方便,僅有電源、地和一個數據輸入輸出口,只需要通過mcu或fpga,對數據輸入輸出口控制即可實現溫度的測量。
2、現有測試系統中,常采用一個io口控制一片該溫度傳感器的方法,每個溫度傳感器的輸入輸出口均需連接上拉電阻。這在現代航空或航天電子系統中,具有以下缺陷:fpga的io口資源寶貴,卻需要對多個位置進行溫度值的測量,即需在盡量少的改動硬件前提下,增加多個溫度傳感器進行測量。
技術實現思路
1、本發(fā)明的目的在于提供一種單總線溫度傳感器多片共用單io口的fpga測試方法,用fpga實現一個io口同時控制多片溫度傳感器,對不同位置的溫度進行測量。
2、為解決上述技術問題,本發(fā)明提供了一種單總線溫度傳感器多片共用單io口的fpga測試方法,包括如下步驟:
3、步驟1:對溫度傳感器進行開始及初始化,確保單總線上連接有溫度傳感器;
4、步驟2:發(fā)送搜索rom編碼地址指令,單總線上有不同rom編碼地址,則溫度傳感器數量加1,并將n個不同的rom編碼地址存儲在對應的寄存器中;
5、步驟3:發(fā)送匹配rom編碼地址指令和溫度轉換指令,使相應的溫度傳感器響應并開始轉換溫度;
6、步驟4:等待1s使溫度轉換完成,發(fā)送溫度讀取指令,讀取數字溫度數據并轉換成溫度值;
7、步驟5:將當前rom編碼地址及轉換的溫度值發(fā)送至串口,并打印顯示出來;
8、步驟6:重復步驟3~步驟5,依次發(fā)送第2個到第n個匹配rom編碼地址指令,并轉換及打印顯示;
9、步驟7:重復步驟1~步驟6,再次搜索、匹配和溫度轉換及顯示。
10、優(yōu)選的,所述步驟2中的發(fā)送搜索rom編碼地址指令的算法具體包括如下步驟:
11、步驟21:總線主機fpga在單總線上發(fā)出搜索rom編碼地址指令;
12、步驟22:各溫度傳感器同時將從第0位到第m位地址回傳至總線主機fpga,即先傳該位原碼,再傳該位反碼;
13、步驟23:總線主機fpga從單總線過程中讀該位原碼和反碼時,將該兩位存儲,分別有00、01、10和11四種結果,并對每種結果進行判斷,若有沖突位,則說明有多個溫度傳感器在單總線上;
14、步驟24:若有沖突位,當前寄存的m位按0處理時,則寄存的個數加1;當前寄存的m位按1處理時,則寄存?zhèn)€數減1;
15、步驟25:當前寄存的m位按0處理時,重復步驟22~步驟24,依次發(fā)送第m+1位到第64位地址,獲取第1個溫度傳感器的rom編碼地址;
16、步驟26:當前寄存的m位按1處理時,重復步驟22~步驟24,依次發(fā)送第m+1位到第64位地址,獲取第2個溫度傳感器的rom編碼地址;
17、步驟27:重復以上步驟21~步驟26,依次搜索出第n個溫度傳感器的rom編碼地址,并儲存起來,當沖突位寄存?zhèn)€數減至0時,則結束搜索。
18、優(yōu)選的,所述步驟22中,單總線上為線與功能,當多個溫度傳感器同時回傳1和0時,則在單總線上電平為0。
19、優(yōu)選的,所述步驟23中:
20、00表示有總線主機fpga與單總線連接,在此數據位上它們的值發(fā)生沖突;
21、01表示有總線主機fpga與單總線連接,在此數據位上它們的值均為0;
22、10表示有總線主機fpga與單總線連接,在此數據位上它們的值均為1;
23、11表示沒有總線主機fpga與單總線連接。
24、優(yōu)選的,每個所述溫度傳感器均有唯一的64位rom編碼地址。
25、優(yōu)選的,所述溫度傳感器與總線主機fpga的連接電路為:多個溫度傳感器的dq端均并聯于1個總線主機fpga的io口上。
26、本發(fā)明與現有技術相比,具有如下有益效果:
27、本發(fā)明的一種單總線溫度傳感器多片共用單io口的fpga測試方法及方法,本發(fā)明在不增加fpga的io口的基礎上,能同時對多個單總線溫度傳感器進行溫度測量,僅需升級軟件即可,滿足航空航天系統研制時不改動電路板的需要,具有改動周期短、成本低等優(yōu)點。
1.一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,包括如下步驟:
2.如權利要求1所述的一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,所述步驟2中的發(fā)送搜索rom編碼地址指令的算法具體包括如下步驟:
3.如權利要求2所述的一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,所述步驟22中,單總線上為線與功能,當多個溫度傳感器同時回傳1和0時,則在單總線上電平為0。
4.如權利要求2所述的一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,所述步驟23中:
5.如權利要求1所述的一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,每個所述溫度傳感器均有唯一的64位rom編碼地址。
6.如權利要求1所述的一種單總線溫度傳感器多片共用單io口的fpga測試方法,其特征在于,所述溫度傳感器與總線主機fpga的連接電路為:多個溫度傳感器的dq端均并聯于1個總線主機fpga的io口上。