關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于Avalon總線SHT11溫濕度傳感器自定義IP核開發流程

        基于Avalon總線SHT11溫濕度傳感器自定義IP核開發流程

        作者: 時間:2013-02-27 來源:網絡 收藏

        2.2 接口模塊的設計

        根據的描述,確定該模塊與所需要的接口信號。通過使用較少的信號來處理讀寫。系統通過時鐘線、數據線和相連,根據時鐘的時序向數據線寫命令,通過數據線輸出數據。設計模塊的輸入信號為:clk,sysclk, n_rest, data_i,data_o,wr,rd, addr。輸出信號為:SCK,DATA(DATA是雙向數據線)。端口信號的部分說明如下:

        moduleSHT11(

        clk,//系統時鐘

        n_rest,//系統復位

        data_i,//寫數據

        data_o,//讀數據

        wr,//Avalon寫請求

        rd,//Avalon讀請求

        sysclk,//系統時鐘

        addr,//Avalon地址

        SCK,//時鐘線輸出

        DATA,//數據輸入輸出(雙向)

        );

        2.3 行為模塊的實現

        行為模塊實現的是SHT11的功能。該部分是整個設計的核心,實現對SHT11的控制。設計時必須根據驅動控制的規范以及時序的要求來編寫。設計的過程中,信號的控制較為復雜,但在時序邏輯中,這又十分重要。可以設定一系列的寄存器,作為訪問硬件的通道[78]。

        根據其驅動規范,不同的命令實現相應的功能。傳輸開始時,應該發出啟動信號。啟動信號包括時鐘線為高,數據線由高變低,并在下一個時鐘線為高的時候將數據線變高。當啟動信號開始后,輸入相應指令(包含3位地址和5位命令),通過數據線,確定接收到ACK信號后,表示SHT11已經正確接收命令。待一定的時間后,當數據線由高拉低后開始信號的傳輸。系統通過確認數據線上的ACK來確定每個字節的傳輸。數據傳輸完畢,進行CRC校驗。校驗完畢后,ACK為高,結束傳輸。

        在進行設計時,采用嵌套狀態機來實現驅動邏輯。根據驅動控制器的讀寫命令及讀寫時序,采取不同狀態機來實現,如圖2所示。輸入命令之后,根據不同的讀寫請求,進入不同的狀態機。

        基于Avalon總線SHT11溫濕度傳感器自定義IP核開發流程

        圖2 狀態機

        通過rd和wr以及地址addr控制數據線的讀寫。當addr=1wr,則向數據線寫數據(data_i),data_i的輸入格式是crc(1位)wr_data(16位)command(2位),當addr=0wr,進入狀態機;當addr=2rd,從數據線讀取數據data_o。

        設內部寄存器command,根據不同的命令,進入不同的狀態機循環:若command為01,通過數據線向寄存器寫數據;若command為10,通過數據線從寄存器讀數據;若command為其他,則讀取數據。當傳送8位數據后,需判斷雙向數據線DATA的ACK信號的高低,當接收到ACK信號時,再根據相應的命令,進行數據的傳輸。當數據傳輸完畢后,需要經行CRC校驗。圖3是仿真時序圖,實現向寄存器寫數據的功能。

        土壤濕度傳感器相關文章:土壤濕度傳感器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高尔夫| 临高县| 闻喜县| 铁岭县| 乡宁县| 容城县| 阳东县| 林口县| 淮北市| 龙胜| 邳州市| 洛川县| 琼结县| 缙云县| 淮滨县| 安仁县| 桐梓县| 府谷县| 板桥市| 瑞丽市| 界首市| 武川县| 左贡县| 砀山县| 邯郸县| 长武县| 兴化市| 海原县| 柘城县| 西宁市| 武陟县| 尼木县| 虎林市| 延津县| 且末县| 沽源县| 沾化县| 来宾市| 西畴县| 仲巴县| 改则县|