中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 利用FPGA實現(xiàn)與DS18B20的通信功能

        利用FPGA實現(xiàn)與DS18B20的通信功能

        作者: 時間:2012-04-09 來源:網(wǎng)絡(luò) 收藏

        420的通信

        4.120的操作模塊

        需要完成20的初始化、讀取DS18的48位ID號、啟動DS18溫度轉(zhuǎn)換、讀取溫度轉(zhuǎn)化結(jié)果。讀取48位ID號和讀取溫度轉(zhuǎn)換結(jié)果過程中,還要實現(xiàn)CRC校驗碼的計算,保證通信數(shù)據(jù)的可靠性。
        以上操作反復(fù)進(jìn)行,可以用狀態(tài)機來實現(xiàn)。狀態(tài)機的各種狀態(tài)如下:

         RESET1:對DS18進(jìn)行第一次復(fù)位,然后進(jìn)入DELAY狀態(tài),等待800μs后,進(jìn)入CMD33狀態(tài)。
        CMD33:對DS18B20發(fā)出0×33命令,讀取48位ID值。
        GET_ID:從DS18B20中讀取48位ID值。
        RESET2:對DS18B20進(jìn)行第二次復(fù)位,然后進(jìn)入DELAY狀態(tài)等待800μs后,進(jìn)入CMDCC狀態(tài)。
        CMDCC:向DS18B20發(fā)出忽略ROM命令,為進(jìn)入下一狀態(tài)作準(zhǔn)備。
        CMD44:向DS18B20發(fā)出啟動溫度轉(zhuǎn)換命令,然后進(jìn)入DELAY狀態(tài)等待900ms后進(jìn)入下一狀態(tài)。
        RESET3:對DS18B20進(jìn)行第三次復(fù)位。
        CMDCC2:
        向DS18B20發(fā)出忽略ROM命令,為了進(jìn)入下一狀態(tài)作準(zhǔn)備。
        GET_TEMP:從DS18B20中讀取溫度測量數(shù)值。
        DELAY:等待狀態(tài)。
        WRITE_BIT:向DS18B20中寫入數(shù)據(jù)位狀態(tài)。
        READ_BIT:從DS18B20中讀取數(shù)據(jù)位狀態(tài)。在該狀態(tài)中每讀取1位數(shù)據(jù),同時完成該數(shù)據(jù)位的CRC校驗計算。所有數(shù)據(jù)都讀取后,還要讀取8位CRC校驗位。這8位校驗位也經(jīng)過CRC校驗計算,如果通信沒有錯誤,總的CRC校驗結(jié)果應(yīng)該是0。這時可將通信正確的數(shù)據(jù)保存到id和temp_data寄存器中。

        設(shè)計中采用Verilog語言建立DS18B20操作模塊”DS18B20_PROC”。在該模塊中實現(xiàn)以上的狀態(tài)機功能。該模塊的定義為module DS18B20?PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。

        21.jpg

        從仿真波形可以看出,系統(tǒng)上電后的10ms左右,F(xiàn)PGA可以讀出DS18B20的48位ID值,這樣,主CPU在系統(tǒng)復(fù)位后很短的時間內(nèi)就可以讀取ID值,進(jìn)行相應(yīng)的處理。



        關(guān)鍵詞: FPGA 18B B20 DS

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉