基于Avalon總線SHT11溫濕度傳感器自定義IP核開發(fā)流程
2.2 接口模塊的設(shè)計(jì)
根據(jù)SHT11的描述,確定該模塊與Avalon所需要的接口信號(hào)。通過(guò)使用較少的信號(hào)來(lái)處理讀寫。系統(tǒng)通過(guò)時(shí)鐘線、數(shù)據(jù)線和SHT11相連,根據(jù)時(shí)鐘的時(shí)序向數(shù)據(jù)線寫命令,SHT11通過(guò)數(shù)據(jù)線輸出數(shù)據(jù)。設(shè)計(jì)模塊的輸入信號(hào)為:clk,sysclk, n_rest, data_i,data_o,wr,rd, addr。輸出信號(hào)為:SCK,DATA(DATA是雙向數(shù)據(jù)線)。端口信號(hào)的部分說(shuō)明如下:
moduleSHT11(
clk,//系統(tǒng)時(shí)鐘
n_rest,//系統(tǒng)復(fù)位
wr,//Avalon寫請(qǐng)求
rd,//Avalon讀請(qǐng)求
sysclk,//系統(tǒng)時(shí)鐘
addr,//Avalon地址總線
SCK,//時(shí)鐘線輸出
DATA,//數(shù)據(jù)輸入輸出(雙向)
);
2.3 行為模塊的實(shí)現(xiàn)
行為模塊實(shí)現(xiàn)的是SHT11的功能。該部分是整個(gè)設(shè)計(jì)的核心,實(shí)現(xiàn)對(duì)SHT11的控制。設(shè)計(jì)時(shí)必須根據(jù)驅(qū)動(dòng)控制的規(guī)范以及時(shí)序的要求來(lái)編寫。設(shè)計(jì)的過(guò)程中,信號(hào)的控制較為復(fù)雜,但在時(shí)序邏輯中,這又十分重要??梢栽O(shè)定一系列的寄存器,作為訪問(wèn)硬件的通道[78]。
根據(jù)其驅(qū)動(dòng)規(guī)范,不同的命令實(shí)現(xiàn)相應(yīng)的功能。傳輸開始時(shí),應(yīng)該發(fā)出啟動(dòng)信號(hào)。啟動(dòng)信號(hào)包括時(shí)鐘線為高,數(shù)據(jù)線由高變低,并在下一個(gè)時(shí)鐘線為高的時(shí)候?qū)?shù)據(jù)線變高。當(dāng)啟動(dòng)信號(hào)開始后,輸入相應(yīng)指令(包含3位地址和5位命令),通過(guò)數(shù)據(jù)線,確定接收到ACK信號(hào)后,表示SHT11已經(jīng)正確接收命令。待一定的時(shí)間后,當(dāng)數(shù)據(jù)線由高拉低后開始信號(hào)的傳輸。系統(tǒng)通過(guò)確認(rèn)數(shù)據(jù)線上的ACK來(lái)確定每個(gè)字節(jié)的傳輸。數(shù)據(jù)傳輸完畢,進(jìn)行CRC校驗(yàn)。校驗(yàn)完畢后,ACK為高,結(jié)束傳輸。
在進(jìn)行設(shè)計(jì)時(shí),采用嵌套狀態(tài)機(jī)來(lái)實(shí)現(xiàn)驅(qū)動(dòng)邏輯。根據(jù)驅(qū)動(dòng)控制器的讀寫命令及讀寫時(shí)序,采取不同狀態(tài)機(jī)來(lái)實(shí)現(xiàn),如圖2所示。輸入命令之后,根據(jù)不同的讀寫請(qǐng)求,進(jìn)入不同的狀態(tài)機(jī)。

圖2 狀態(tài)機(jī)
通過(guò)rd和wr以及地址addr控制數(shù)據(jù)線的讀寫。當(dāng)addr=1wr,則向數(shù)據(jù)線寫數(shù)據(jù)(data_i),data_i的輸入格式是crc(1位)wr_data(16位)command(2位),當(dāng)addr=0wr,進(jìn)入狀態(tài)機(jī);當(dāng)addr=2rd,從數(shù)據(jù)線讀取數(shù)據(jù)data_o。
設(shè)內(nèi)部寄存器command,根據(jù)不同的命令,進(jìn)入不同的狀態(tài)機(jī)循環(huán):若command為01,通過(guò)數(shù)據(jù)線向寄存器寫數(shù)據(jù);若command為10,通過(guò)數(shù)據(jù)線從寄存器讀數(shù)據(jù);若command為其他,則讀取數(shù)據(jù)。當(dāng)傳送8位數(shù)據(jù)后,需判斷雙向數(shù)據(jù)線DATA的ACK信號(hào)的高低,當(dāng)接收到ACK信號(hào)時(shí),再根據(jù)相應(yīng)的命令,進(jìn)行數(shù)據(jù)的傳輸。當(dāng)數(shù)據(jù)傳輸完畢后,需要經(jīng)行CRC校驗(yàn)。圖3是仿真時(shí)序圖,實(shí)現(xiàn)向寄存器寫數(shù)據(jù)的功能。
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
評(píng)論