系統級RF收發(fā)芯片nRF24E1及其在無(wú)線(xiàn)鍵盤(pán)中的應用
無(wú)線(xiàn)鍵盤(pán)大部分都由電池供電,所以需要用到許多節能技術(shù)?;诠澞艿哪康?,許多無(wú)線(xiàn)鍵盤(pán)沒(méi)有使用有線(xiàn)鍵盤(pán)上的“Num Lock”、“Caps Lock”、“Scroll Lock”這3個(gè)LED指示燈。另外,無(wú)線(xiàn)鍵盤(pán)應該合理有效地使用RF模塊,從鍵盤(pán)到PC的RF數據包可能包含多達8個(gè)的擊鍵信息。鍵盤(pán)掃描矩陣約每秒鐘掃描500次,一般每個(gè)掃描周期內,所檢測到的擊鍵不多于1個(gè)。因為人感覺(jué)不到150ms的檢測延時(shí),所以,當鍵盤(pán)檢測到1個(gè)擊鍵和發(fā)送RF數據包到PC后,可以空閑150ms以上的時(shí)間,直到有下一個(gè)按鍵被按下,這樣可以盡量減少RF模塊的工作時(shí)間[2]。
對于只需要發(fā)送數據的鍵盤(pán),使用nRF24E2即能滿(mǎn)足一般鍵盤(pán)的需要。如果要求鍵盤(pán)不僅能夠發(fā)送信息而且還要接收PC機反饋信息,則需要使用nRF24E1來(lái)做鍵盤(pán)中的無(wú)線(xiàn)模塊。雙向收發(fā)更利于實(shí)現密碼編制、數據包重發(fā)和當系統關(guān)閉時(shí)鍵盤(pán)處于節能狀態(tài)。
3nRF24E1在無(wú)線(xiàn)鍵盤(pán)中的應用
3.1 鍵盤(pán)掃描矩陣
nRF24E1與無(wú)線(xiàn)鍵盤(pán)的接口方式如圖2所示。普通PC鍵盤(pán)的按鍵是104個(gè),而圖2所示的鍵盤(pán)矩陣為8行20列,最多可定義160個(gè)按鍵開(kāi)關(guān)。設計過(guò)程中,其中的某些按鍵可以不進(jìn)行定義。每個(gè)按鍵布置在行列交接處,當按鍵被按下時(shí),與該按鍵相接的行和列即被短接。為了進(jìn)行鍵盤(pán)矩陣掃描,nRF24E1按時(shí)序把列掃描信號送到移位寄存器。列掃描信號由1個(gè)“0”和19個(gè)“1”組成,“0”在移位寄存器中逐位往后移,每移動(dòng)1次,鍵盤(pán)行的狀態(tài)就被掃描1次。如果此列的某按鍵被按,則與該按鍵相對應的行值為“0”,其他的為“1”。本文引用地址:http://dyxdggzs.com/article/166861.htm
在鍵盤(pán)掃描的過(guò)程中,按鍵可能會(huì )出現抖動(dòng),因此編寫(xiě)軟件時(shí)應該考慮到去抖動(dòng)問(wèn)題。常用的去抖動(dòng)方法:一旦系統檢測到某按鍵被按下,則延時(shí)30~50ms后再去檢測該按鍵。如果此時(shí)檢測到的該按鍵狀態(tài)還是被按下?tīng)顟B(tài),就把該按鍵當作被按下一次處理。
3.2 系統軟件
nRF24E1有4KB的片內RAM,這對于鍵盤(pán)軟件已經(jīng)夠用。系統上電后,E2PROM中的程序自動(dòng)下載到該4KB的RAM中,MCU即可直接對RAM中的代碼進(jìn)行讀寫(xiě)。
鍵盤(pán)軟件的功能:
(1)提供移位寄存器所需要的列掃描信息。
(2)讀出行掃描值。
(3)檢測按鍵被按下和去抖動(dòng)。
(4)發(fā)送掃描到的被按下按鍵的信息到PC。
(5)節能狀態(tài)循環(huán)。
無(wú)線(xiàn)鍵盤(pán)應該使用節能技術(shù)以延長(cháng)電池的壽命。nRF24E1片內nRF2401的ShockBurstTM技術(shù)是為用戶(hù)節能設計的,所以設計人員在編寫(xiě)軟件時(shí)可以不考慮節能問(wèn)題。但是,設計人員應該考慮在系統空閑時(shí)怎樣進(jìn)一步減小電流。
nRF2401的晶振為16MHz時(shí),其片內的8051內核工作電流為3mA。由于鍵盤(pán)是周期性工作的,相對工作時(shí)間來(lái)說(shuō),鍵盤(pán)的空閑時(shí)間很長(cháng)。所以,當鍵盤(pán)不工作時(shí),有必要把片內8051設為空閑狀態(tài),且片內8051空閑狀態(tài)的工作電流只有2μA,用此來(lái)減小電池消耗。系統在空閑狀態(tài)和工作狀態(tài)時(shí)的任務(wù)分述如下。
空閑狀態(tài):
?。?)完成所有的鍵盤(pán)掃描(約需要0.5ms)。
?。?)如果有按鍵被按下,則進(jìn)入工作狀態(tài)。
?。?)把8051設為空閑狀態(tài),同時(shí)RTC的喚醒時(shí)間設為20ms。
?。?)空閑狀態(tài)循環(huán)。
工作狀態(tài):
?。?)每秒鐘掃描鍵盤(pán)500次。
?。?)發(fā)送所有的按鍵信息給PC。
?。?)如果10秒鐘內沒(méi)有按鍵被按下,則進(jìn)入空閑狀態(tài)。
?。?)工作狀態(tài)循環(huán)。
一般來(lái)說(shuō),按照上述方法考慮電池節能的問(wèn)題,可以使電池的壽命提高約40倍。所以,在系統軟件設計時(shí),進(jìn)行電池節能的考慮至關(guān)重要。
4 結 論
實(shí)踐證明,nRF24E1非常適合用來(lái)實(shí)現無(wú)線(xiàn)鍵盤(pán)與PC機之間的通信,其優(yōu)點(diǎn):
?。?)nRF24E1內嵌8051,更易于減小體積。
?。?)采用了ShockBurstTM技術(shù),使編程更方便。
?。?)更易于實(shí)現安全的鍵盤(pán)信息發(fā)送。
?。?)2.4GHz的收發(fā)頻段為全球開(kāi)放頻段。
?。?)電池監管更方便,并且功耗低。
?。?)nRF24E1具有的GPIO使得擴展其他功能,如LED指示等更加容易。
評論