<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于USB的無(wú)線觸摸鼠標(biāo)板的設(shè)計(jì)方法

          基于USB的無(wú)線觸摸鼠標(biāo)板的設(shè)計(jì)方法

          作者: 時(shí)間:2013-08-06 來(lái)源:網(wǎng)絡(luò) 收藏

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

            1系統(tǒng)組成

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

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

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

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

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

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

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

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

          圖2手持端模塊圖

          圖2手持端模塊圖

            2.1.1 MCU PIC整體控制模塊

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

            2.1.2串口模塊

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

            RS232規(guī)范使用12V供電,而開(kāi)發(fā)板上使用的電壓為3.3V,這樣如果直接將數(shù)據(jù)線直接連到RS232接口上會(huì)將實(shí)驗(yàn)板上的元件燒毀。為了實(shí)現(xiàn)不同電壓之間的連接,采用了RS232電平轉(zhuǎn)換芯片MAX3232.利用這個(gè)芯片我們可將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)過(guò)MAX3232的電平變換到達(dá)主機(jī)。

            2.1.3無(wú)線傳輸模塊

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

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

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

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

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

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

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

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


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();