在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于CY7C68013A芯片的USB鍵盤的設(shè)計(jì)

            基于CY7C68013A芯片的USB鍵盤的設(shè)計(jì)

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

            十分簡(jiǎn)單,CYTC68013A-56pin有PA、PB、PD三組24個(gè)IO端口,利用這些IO端口,就可常用的矩陣,如圖2所示,鍵的數(shù)目可達(dá)12*12個(gè)。和51單片機(jī)實(shí)現(xiàn)的一樣,固件程序需要對(duì)行和列進(jìn)行掃描,采用輪詢或中斷的方式,對(duì)按下的鍵值進(jìn)行判斷。

            本文引用地址:http://www.biyoush.com/article/177579.htm

            b.JPG


            另外,在制作電路板的時(shí)候,注意D+和D-的走線盡量的短而且相等,晶振盡量靠近。
            3.2 的固件程序
            EZ- FX2LP采用的是一種軟配置模式。也就是設(shè)備的各種驅(qū)動(dòng)程序都保存在上位機(jī),上電后,USB主機(jī)首先將程序下載到RAM中,然后從RAM開始執(zhí)行。在這個(gè)過(guò)程中,有兩次“枚舉”:剛加電時(shí),USB內(nèi)核中沒(méi)有固件,將被枚舉為一個(gè)默認(rèn)的USB設(shè)備;主機(jī)下載固件程序之后,在內(nèi)核中執(zhí)行固件程序,就會(huì)重新識(shí)別并枚舉這個(gè)USB設(shè)備,這個(gè)過(guò)程被稱為“重枚舉”。在第一次枚舉時(shí),根據(jù)芯片有沒(méi)有連接E2PROM,以及E2PROM中第一個(gè)字節(jié)的值,有不同的處理方式。當(dāng)沒(méi)有外接E2PROM時(shí),將根據(jù)驅(qū)動(dòng)程序中提供的VID,PID和DID,把主機(jī)上對(duì)應(yīng)的固件程序下載到片內(nèi)的RAM中,并執(zhí)行固件代碼。
            USB固件程序是USB設(shè)備功能的核心,通過(guò)兩次枚舉,固件程序被下載到的芯片里(程序也可以放在外接的EEPROM芯片里),用于配置芯片工作在需要的狀態(tài)下。
            固件程序使用Keil μVision來(lái)編寫??梢詤⒖糃ypress的例程。大體步驟是:
            (1)初始化休眠模式、遠(yuǎn)程喚醒等。
            (2)初始化用戶設(shè)備,主要是‘TD_Init()子程序。負(fù)責(zé)整個(gè)USB設(shè)備的初始化過(guò)程。
            (3)定向描述符。
            (4)把所用中斷打開,并開啟8051全局中斷EA=1。由于EZ-USB設(shè)備啟動(dòng)需要重列舉,因而需要通過(guò)設(shè)置和判斷USBCS寄存器的RENUM和DISCON位來(lái)模擬設(shè)備物理上的斷開和連接過(guò)程。
            (5)用戶外圍設(shè)備控制功能的實(shí)現(xiàn)放在TD_Poll()子程序中,同時(shí)主循環(huán)中的SetupCommand()子程序用于接收、分析上位機(jī)的控制信號(hào),響應(yīng)上位機(jī)請(qǐng)求(標(biāo)準(zhǔn)請(qǐng)求和用戶自定義請(qǐng)求)。
            3.3 USB通用驅(qū)動(dòng)程序的使用
            USB設(shè)備的使用需要驅(qū)動(dòng)程序的支持,Cypress提供了通用的USB驅(qū)動(dòng)程序。
            該驅(qū)動(dòng)包括兩部分:CyLoad.sys和CyUsb.sys,前者用于固件程序的下載,后者用于主機(jī)和固件程序的通信。這兩個(gè)驅(qū)動(dòng)程序提供的引導(dǎo)文件分別是CyLoad.inf和CyUSB.inf,用戶可以直接使用,也可以根據(jù)需要進(jìn)行改動(dòng)。
            為了在CyLoad.sys的幫助下實(shí)現(xiàn)固件的自動(dòng)下載,固件程序CyLoad.HEX必須轉(zhuǎn)換為適合自動(dòng)下載的CyLoad.spt文件,并且與CyLoa d.sys一起放在CyLoad文件夾下,拷貝到系統(tǒng)system32目錄下。在安裝文件CyUSB.inf中設(shè)置的PID,VID必須和描述符中的一致,使得能夠自動(dòng)加載對(duì)應(yīng)固件。
            USB設(shè)備使用時(shí),必須首先安裝驅(qū)動(dòng)程序,注意分別安裝上面提到的下載驅(qū)動(dòng)CyLoad.sys和通信驅(qū)動(dòng)CyUsb.sys。安裝驅(qū)動(dòng)之后,可以使用Cypress提供的主機(jī)控制函數(shù)庫(kù)CyAPI.lib開發(fā)主機(jī)程序,通過(guò)驅(qū)動(dòng)程序和USB設(shè)備進(jìn)行通信。
            3.4 USB主機(jī)的應(yīng)用程序設(shè)計(jì)
            USB主機(jī)程序可以使用Cypress提供的CyAPI.lib庫(kù)來(lái)進(jìn)行編程。CyAPI.lib對(duì)應(yīng)Cypress提供的驅(qū)動(dòng)程序CyUsb.sys,為其提供了簡(jiǎn)單而且功能強(qiáng)大的C++編程接口,通過(guò)CyAPI.lib庫(kù)提供的函數(shù),可以對(duì)USB設(shè)備進(jìn)行讀寫操作,這些函數(shù)主要是Open,Close和XferData。
            本文以VC++6.0為例,描述創(chuàng)建USB設(shè)備應(yīng)用程序的步驟。
            (1)新建工程,并將CyAPI.h,CyAPI.lib,cyioctl.h三個(gè)文件加載到項(xiàng)目中。
            CyAPI.h中定義了CCyUSBDevice、CCyControlEndPoint等幾個(gè)重要的類;而cyioctl.h中則定義了讀取USB設(shè)備的幾個(gè)重要的結(jié)構(gòu)和宏。
            (2)在相應(yīng)的文件中(視、框架或者對(duì)話框,依具體情況),包含頭文件CyAPI.h和cyioefl.h。
            然后定義USB設(shè)備全局變量和控制端點(diǎn)全局變量,并進(jìn)行初始化:
            CCyUSBDevice*USBDevice=new CCyUSBDevice();
            CCyControlEndPoint*ept=USBDevice->ControlEndPt;
            (3)在程序執(zhí)行時(shí),采用中斷方式,或者輪詢方式交換數(shù)據(jù)。以輪詢方式為例,則在幀循環(huán)中加入如下代碼:
            c.JPG
            首先判斷設(shè)備是否打開,然后指定操作碼,ept->XferData()完成傳輸,實(shí)現(xiàn)從端口讀數(shù)據(jù),或者向端口寫數(shù)據(jù)。數(shù)據(jù)傳輸?shù)姆较蛴蒭pt->Direction來(lái)設(shè)置。
            (4)結(jié)束程序時(shí),關(guān)閉USBDevice。
            USBDevice->Close;

            4 結(jié)論
            EZ-USB FX2芯片實(shí)現(xiàn)USB系統(tǒng),軟硬件程序設(shè)計(jì),相比較而言,簡(jiǎn)單、方便。本文介紹了設(shè)計(jì)USB系統(tǒng)的大體步驟,給出了USB鍵盤設(shè)計(jì)的實(shí)例。
            上述系統(tǒng)和程序經(jīng)過(guò)實(shí)際運(yùn)行,工作穩(wěn)定、可靠。

            DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


            pid控制相關(guān)文章:pid控制原理


            51單片機(jī)相關(guān)文章:51單片機(jī)教程


            c++相關(guān)文章:c++教程



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

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉