當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]隨著IT技術(shù)的發(fā)展,多媒體教學(xué)已經(jīng)在學(xué)校得到廣泛的應(yīng)用。但傳統(tǒng)的多媒體教學(xué)存在互動性不強(qiáng)等缺點(diǎn),不利于師生的交流和溝通,基于這種情況,我們設(shè)計和實(shí)現(xiàn)了一種基于USB的無線觸摸鼠標(biāo)板,使得教師在學(xué)生座位旁依然

隨著IT技術(shù)的發(fā)展,多媒體教學(xué)已經(jīng)在學(xué)校得到廣泛的應(yīng)用。但傳統(tǒng)的多媒體教學(xué)存在互動性不強(qiáng)等缺點(diǎn),不利于師生的交流和溝通,基于這種情況,我們設(shè)計和實(shí)現(xiàn)了一種基于USB無線觸摸鼠標(biāo)板,使得教師在學(xué)生座位旁依然可以像站在講臺那樣自由控制電腦。

1系統(tǒng)組成

本系統(tǒng)可以大致分為兩個部分,其中一端是手持設(shè)備終端,提供PS/2接口供鼠標(biāo)觸摸板接入使用;另一端是PC接入端,通過USB接口與主機(jī)相連,二者之間通過無線傳輸協(xié)議聯(lián)系在一起。整體構(gòu)架圖如圖1所示。

圖1整體構(gòu)架圖

因?yàn)樵O(shè)計所選用的CC2420集成了發(fā)送和接收功能在同一芯片中,故在手持終端和接入設(shè)備部分的無線收發(fā)器可復(fù)用同一模塊,無需重新設(shè)計。而在PC端,為了實(shí)現(xiàn)設(shè)計的普遍適用性以及即插即用的特性,對接人設(shè)備采用了HID類設(shè)計從而使PC端無需增加任何軟件,即可使用操作系統(tǒng)提供的設(shè)備驅(qū)動程序。

本設(shè)計的實(shí)驗(yàn)開發(fā)板由筆者自行設(shè)計實(shí)現(xiàn),不僅包括了本設(shè)計所需要的功能,還有調(diào)試功能以及擴(kuò)展功能,供日后有需要時使用。

2 硬件設(shè)計與實(shí)現(xiàn)

2.1手持端硬件設(shè)計與實(shí)現(xiàn)

在手持端,主要包括的模塊有MCU控制模塊,無線發(fā)送模塊,PS/2接口模塊和調(diào)試模塊等。各模塊的功能示意圖如圖2所示:

圖2手持端模塊圖

2.1.1 MCU PIC整體控制模塊

MCU控制著整個系統(tǒng)的運(yùn)行,包括軟件的觸發(fā)、運(yùn)行,以及各個部分的協(xié)調(diào)工作。整個系統(tǒng)的軟件都是存儲并運(yùn)行在MCU當(dāng)中,在觸摸板事件響應(yīng)方面采用的是中斷觸發(fā)。而PS/2接口實(shí)際上只需兩條IO線,也就是說其只占用了MCU兩個管腳資源,其中一個為普通IO口,另一個則是中斷口,考慮到中斷12的可能沖突,可以通過跳線方式自行選擇。在CC2420方面,亦采用電平跳變中斷檢測其SFD及FIFOP的中斷請求,而其數(shù)據(jù)通信則是使用芯片集成的SPI接口中的RCA(SO)、RC5(si)、rico(CS-N)、RC3(SCK)等4條線來實(shí)現(xiàn)。

2.1.2串口模塊

由于USB的數(shù)據(jù)信息在其未被主機(jī)正確識別之前無法得到,并且在無線傳輸方面也需將數(shù)據(jù)及控制信息等傳回主機(jī)以供調(diào)試,所以在開發(fā)板上另外設(shè)計一個串口調(diào)試模塊,方便設(shè)計過程中的調(diào)試需要。

RS232規(guī)范使用12V供電,而開發(fā)板上使用的電壓為3.3V,這樣如果直接將數(shù)據(jù)線直接連到RS232接口上會將實(shí)驗(yàn)板上的元件燒毀。為了實(shí)現(xiàn)不同電壓之間的連接,采用了RS232電平轉(zhuǎn)換芯片MAX3232.利用這個芯片我們可將12V電壓的數(shù)據(jù)傳輸轉(zhuǎn)換為3V,這樣就可以達(dá)到將數(shù)據(jù)與主機(jī)進(jìn)行交互的目的。在數(shù)據(jù)傳輸線路上,由于PICl6F877A內(nèi)置了串口接口,所以只需使用RC6、RC7這兩根線就可以實(shí)現(xiàn)數(shù)據(jù)的傳輸,經(jīng)過MAX3232的電平變換到達(dá)主機(jī)。

2.1.3無線傳輸模塊

考慮到工藝問題,靠手工無法完成,所以采用模塊購買的方式來獲得CC2420的使用,購買的模塊僅有非常簡單的外圍器件,以及12根控制引腳外引(包括電源和地),這樣我們就可以通過MCU利用這12根引腳控制CC2420的工作了。根據(jù)該模塊的外接引腳,在實(shí)際的電路設(shè)計中設(shè)計了一個兩排12根線的接口,可以直接接到MCU控制接口,因?yàn)镸CU和CC2420都是采用3.3V的電壓,所以不會有電壓過高的問題。

在CC2420的電路設(shè)計過程中發(fā)現(xiàn),對于控制引腳SFD、FIFOP這兩個用于檢測中斷接受數(shù)據(jù)的接口尤其重要,如果在這兩條線路出現(xiàn)了干擾的話,在軟件的實(shí)現(xiàn)方面將產(chǎn)生很多不必要的軟件開銷,例如去除干擾等。所以在PCB設(shè)計的時候要對這兩條線加寬,不要橫跨電源和地,這樣會產(chǎn)生很大的干擾。

2.2 PC接入端硬件設(shè)計與實(shí)現(xiàn)

此部分將介紹接人設(shè)備的硬件設(shè)計與實(shí)現(xiàn),在串口調(diào)試部分采用和手持端同樣的硬件設(shè)計,而在無線接受模塊,因?yàn)镃C2420集合接收發(fā)送功能在同一芯片中,而應(yīng)用電路也采用同樣電路,故在接入設(shè)備部分可以使用相同模塊。所以在這里將主要介紹USB模塊的設(shè)計與實(shí)現(xiàn)。

在USB接IZl方面,為了使用上的方便,將設(shè)備設(shè)計成標(biāo)準(zhǔn)的HID類鼠標(biāo),這樣可以直接使用操作系統(tǒng)自帶的驅(qū)動程序而無需安裝任何的驅(qū)動軟件。在供電方面使用標(biāo)準(zhǔn)USB接口提供的5V電源為USB芯片供電,接人端的主要硬件架構(gòu)可用圖3所示:

圖3接入端硬件構(gòu)架圖

在USB接口芯片的連接上,采用了與MCU控制器的INT0外部中斷的方式連接,這樣可以保證USB數(shù)據(jù)傳輸?shù)膶?shí)時性,而其他的控制接El使用一般的數(shù)據(jù)IO口,其8位數(shù)據(jù)傳輸口使用PICl6F877A的RD口連接。

3 系統(tǒng)軟件設(shè)計與實(shí)現(xiàn)

在本部分,主要將介紹本設(shè)計的軟件實(shí)現(xiàn),其中包括接入端和手持端兩大部分。

3.1整體設(shè)計方案的設(shè)計與實(shí)現(xiàn)環(huán)境

本次設(shè)計采用的控制芯片為PIC16F877A。

由于程序是在PC上設(shè)計,需要將程序下載到單片機(jī)上運(yùn)行和測試,所以需要一個程序下載工具,本次設(shè)計所采用的程序燒錄器為TOP WIN2004,該燒錄器自身提供有一個下載軟件,使用也非常方便,安裝按照軟件目錄下的README一步步操作即可。

本設(shè)計中的軟件均是在單片機(jī)內(nèi)實(shí)現(xiàn),運(yùn)行在MCU內(nèi)的軟件控制著整個設(shè)計所要實(shí)現(xiàn)的模塊。

但是由于MCU與傳統(tǒng)Pc有著巨大的差別,必須考慮存儲空間、運(yùn)行速度、外界干擾等因素。在實(shí)現(xiàn)此次設(shè)計的過程中,除了首先要保證硬件環(huán)境的設(shè)計正確和優(yōu)質(zhì)之外,軟件方面的嚴(yán)謹(jǐn)設(shè)計也是必不可少的一個重要部分。

本設(shè)計的軟件總體框架圖可如圖4所示,為了使兩端達(dá)到速度及任務(wù)的均衡,一些軟件處理將在手持端完成,然后以接收端可以識別的格式打包發(fā)送過去,由圖4也可以看出兩端的任務(wù)處理基本處于均衡狀態(tài)。

圖4軟件總體框架圖

3.2手持端軟件的設(shè)計與實(shí)現(xiàn)

在本部分將介紹手持終端的軟件設(shè)計過程,以及各個模塊部分的具體實(shí)現(xiàn)。軟件的運(yùn)行流程圖如圖5所示。

圖5手持端軟件流程

對于事件發(fā)生的獲取是采用中斷模式,也就是在有鼠標(biāo)觸摸板事件發(fā)生的時候,將喚醒MCU進(jìn)行數(shù)據(jù)的采集處理,然后將采集到的PS/2數(shù)據(jù)進(jìn)行一定規(guī)則的轉(zhuǎn)換,然后將其打包發(fā)送。若沒有數(shù)據(jù)需要處理,則進(jìn)入睡眠狀態(tài)以節(jié)省功耗。

3.2.1芯片初始化

在芯片初始化階段,主要是芯片的內(nèi)部工作的時鐘的設(shè)置、IO口的初始化設(shè)置、以及CC2420的初始化。

在芯片的初始化階段需要注意對每個IO口的數(shù)據(jù)方向進(jìn)行設(shè)置,并且要準(zhǔn)確設(shè)置時鐘以及串口的傳輸數(shù)率,否則在調(diào)試階段無法獲取數(shù)據(jù)。不用的IO口全部設(shè)置成輸出端口,這樣可減少端口不必要的干擾。

3.2.2鼠標(biāo)觸摸板事件的信息采集

首先要對觸摸板進(jìn)行初始化,其初始化序列請參照PS/2協(xié)議的命令序列。初始化成功后,該觸摸板將正常工作,只要有觸摸事件發(fā)生,將產(chǎn)生連續(xù)三幀的數(shù)據(jù)發(fā)送,而按鍵事件發(fā)生,則在按下產(chǎn)生三幀數(shù)據(jù)發(fā)送,彈起產(chǎn)生三幀數(shù)據(jù)發(fā)送。我們需要做的工作就是在觸摸板發(fā)送數(shù)據(jù)的時候?qū)ζ溥M(jìn)行采集。采集過程也非常簡單,在熟悉PS/2協(xié)議的基礎(chǔ)上,中斷產(chǎn)生后,按照時序?qū)?shù)據(jù)進(jìn)行采集,一定要在讀完一幀的基礎(chǔ)上再讀下一幀,讀取完三幀數(shù)據(jù)后就馬上進(jìn)行數(shù)據(jù)轉(zhuǎn)換和打包發(fā)送,然后再次等待中斷事件發(fā)生。所選擇的MCU在速度處理上完全可以滿足一般鍵盤鼠標(biāo)數(shù)據(jù)包發(fā)送的間隔時間,也就是說在讀取完一個數(shù)據(jù)包后,就處理該數(shù)據(jù)包而不需要完全讀取完一次事件產(chǎn)生的數(shù)據(jù)堆。

3.2.3 CC2420數(shù)據(jù)發(fā)送

在CC2420的數(shù)據(jù)發(fā)送階段,MCU將數(shù)據(jù)發(fā)送命令傳送給CC2420之后,可以通過SFD引腳來判斷其發(fā)送過程。該引腳會有一個由低電平向高電平跳變的過程,其過程如圖6所示。

圖6發(fā)送過程示意圖

控制器向CC2420發(fā)送了發(fā)送數(shù)據(jù)的命令之后,并不能馬上把數(shù)據(jù)發(fā)送出去,而是要經(jīng)過12個時鐘周期之后發(fā)送器才啟動,之后將數(shù)據(jù)添加了其實(shí)序列和幀頭之后,才能開始數(shù)據(jù)發(fā)送進(jìn)程。在數(shù)據(jù)發(fā)送完畢之前,SFD引腳將一直為高電平,這樣在MCU就可以根據(jù)此引腳的變化來跟蹤發(fā)送過程,發(fā)送過程具體的軟件實(shí)現(xiàn),可用圖7表示。

圖7 CC2420發(fā)送實(shí)現(xiàn)過程

在CC2420的數(shù)據(jù)發(fā)送階段,發(fā)射校正和添加起始序列和幀頭可以由硬件自動完成,但是幀的長度需要在軟件中計算得到再寫入幀中,并且需要將數(shù)據(jù)寫入發(fā)送器的發(fā)送緩沖區(qū)之后向CC2420發(fā)送發(fā)送啟動命令。

3.3接入端軟件的設(shè)計與實(shí)現(xiàn)

接入設(shè)備部分的軟件設(shè)計,主要是分為兩部分:CC2420的接收和USB數(shù)據(jù)傳輸。CC2420由于是發(fā)送和接收集成在同一模塊中,所以其初始化可采用發(fā)送端的設(shè)計。而在USB數(shù)據(jù)傳輸部分,則采用HID的協(xié)議與主機(jī)進(jìn)行通信,這樣在軟件設(shè)計上可以減少復(fù)雜度。

3.3.1無線數(shù)據(jù)接收

無線數(shù)據(jù)接收的軟件實(shí)現(xiàn),使用RB5端口的電平中斷觸發(fā)接收進(jìn)程。當(dāng)CC2420發(fā)現(xiàn)有幀傳輸過來時其引腳會產(chǎn)生相應(yīng)的變化,MCU通過檢測這些引腳的變化可以得知CC2420所在的接收階段與狀態(tài)。在接收過程中,有3根引腳可以檢測出CC2420的狀態(tài),其數(shù)據(jù)接收的變化示意圖限于篇幅,在此略去。

當(dāng)CC2420收到有符合其起始序列的時候,其自動接收幀頭和幀的長度,并且SFD、FIFO、FIFOP這3根輸出引腳分別輸出上圖所示電平。當(dāng)接收到幀的目的地址時候,CC2420自動進(jìn)行地址匹配,若地址匹配成功,則接收進(jìn)程繼續(xù)進(jìn)行,如果地址匹配不成功,則馬上停止接收過程,并把3根輸出引腳都置為低電平。MCU在控制時可以通過檢測這3根輸出引腳的電平來判斷接收過程的狀態(tài)。

如果地址匹配成功且接收完整個幀,則可以啟動數(shù)據(jù)讀取進(jìn)程。

在數(shù)據(jù)讀取階段,CC2420提供了幀的正確接收的初始判斷,由此可以知道該幀是否被正確接收,以決定是讀取該幀還是放棄該幀。按照CC2420的規(guī)定,當(dāng)一個幀接收完畢之后,如果出現(xiàn)FIFOP=l并且FIFO=0的情況,則說明該幀錯誤接收,應(yīng)當(dāng)向其連續(xù)寫人兩個CC2420_SFLUSHRX命令將數(shù)據(jù)沖刷。如果沒有出現(xiàn)這種情況,則按照幀發(fā)送的相反過程從接收緩沖中讀取數(shù)據(jù)。

3.3.2 USB設(shè)備HID類設(shè)計與實(shí)現(xiàn)

USB數(shù)據(jù)傳輸?shù)能浖O(shè)計,主要是集中在USB芯片的初始化以及協(xié)議的初始化、以及之后的枚舉過程,在成功枚舉并被主機(jī)正確識別之后,只需將數(shù)據(jù)寫入發(fā)送緩沖即可將數(shù)據(jù)發(fā)送到主機(jī)。在協(xié)議的初始化時,需要將協(xié)議中規(guī)定的各個參數(shù)設(shè)定都按照設(shè)計的要求設(shè)定,并且將各種描述符,包括配置描述符、端點(diǎn)描述符、接口描述符、報告描述符等初始完畢,以供枚舉過程使用。

USB芯片的初始化過程的最后一步是將其SoftConnect功能打開,從這時起,主機(jī)才能開始檢測到設(shè)備的接入,也從這個時候起,USB芯片才真正開始與主機(jī)通信并開始設(shè)備枚舉過程。在枚舉過程中,主機(jī)首先向設(shè)備發(fā)送啟動信號,設(shè)備在接收到這個信號之后向主機(jī)發(fā)送回送的協(xié)議數(shù)據(jù)以供主機(jī)識別,當(dāng)識別到這個信號之后,主機(jī)則開始向設(shè)備獲取描述符等信息,進(jìn)而完成設(shè)備枚舉過程。

初始化完成之后,主循環(huán)實(shí)際上不再參與USB通信。每次PDIUSBDl2接口芯片檢測到USB總線上主機(jī)發(fā)給這個設(shè)備的信號時候就觸發(fā)一次單片機(jī)的外部中斷。中斷處理子程序要做的工作就是首先D12讀取中斷信息,查看D12收到了什么樣的封包,然后根據(jù)主機(jī)的不同要求做出響應(yīng),中斷處理程序流程如圖8所示。

%%%%%%%%%%7

圖8中斷處理程序流程

本系統(tǒng)設(shè)備中,固件程序只須處理端點(diǎn)0的輸出和輸入要求就可以完成設(shè)備的正常配置和基本工作。

在圖8中,SOF包處理程序是自定義的部分,是為了更好地配合設(shè)備工作而添加的代碼,與設(shè)備的實(shí)質(zhì)沒有太大關(guān)系,而結(jié)束狀態(tài)改變引起的中斷在這里不需要做處理。由于USB的數(shù)據(jù)傳輸都是由D12自動完成,端點(diǎn)1和2的輸出/輸入中斷處理就沒有什么實(shí)質(zhì)內(nèi)容。

4結(jié)束語

本設(shè)計所實(shí)現(xiàn)的基于USB的無線觸摸鼠標(biāo)板除了具有無線空中鼠標(biāo)的所以功能外,且成本低廉,容易實(shí)現(xiàn),無線傳輸距離遠(yuǎn)(20 m),無指向性,適應(yīng)性強(qiáng),能廣泛應(yīng)用于現(xiàn)有的多媒體教室。

更多計算機(jī)與外設(shè)信息請關(guān)注21ic計算機(jī)與外設(shè)頻道

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉