新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Cortex-M0的USB密碼鍵盤的設計與實現

        基于Cortex-M0的USB密碼鍵盤的設計與實現

        作者: 時間:2017-06-04 來源:網絡 收藏

        引言

        廣泛地應用在金融、電信、會員卡等很多領域,現在市場的主要有三大類接口:PS2、串口和。但是隨著個人計算機通用外圍設備越來越少地使用串口和PS2接口,這兩種接口正在逐漸從個人計算機特別是便攜式電腦上消失。而現在市場上的很多往往是采用在原來設計的基礎上加PS2轉芯片(HID類)或者UART轉USB芯片(CDC類)實現,這就造成硬件版本不兼容,生產必須有兩個硬件版本。本方案基于一套硬件結構,通過軟件的升級方便地實現HID類和CDC類產品之間的轉換。

        1 NUC120概述

        NUC120系列是Nuvoton公司推出的內嵌ARM核的32位微控制器,該系列最高可運行至50MHz外部時鐘,內建32 KB/64 KB/128 KB的Flash存儲器和4 KB/8 KB/16 KB的內建SRAM;并內置定時器、看門狗定時器、RTC、PDMA、UART、SPI/SSP、I2C、I2S、PWM定時器、GPIO、USB 2.0 FS設備、12位ADC、模擬比較器、低電壓檢測和欠壓檢測功能。

        2 USB協議簡介

        USB通用串行總線不是一種新的總線標準,而是應用在PC領域的接口技術,USB接口支持設備的即插即用和熱插拔功能。USB協議將設備分為幾大類,每一大類義分為若干子類,分別滿足不同場合的應用需求。每一大類都用一個類型號標識,如音頻設備為01,人機界面設備為03,海量存儲設備為08。USB的數據傳輸共有4種類型:控制傳輸、中斷傳輸、批量傳輸、同步傳輸。在USB標準子類中,本文主要討論兩類子集——HID類和CDC類。

        2.1 HID類

        HID(Human Interface Device,人機交互設備)類是比較大的一個類,用于控制計算機操作的一些方面,如USB鼠標、USB鍵盤、USB游戲操縱桿、USB觸摸板、USB軌跡球、電話撥號設備、VCR遙控等設備。另外,使用HID設備的一個好處就是,操作系統自帶了HID類的驅動程序,而用戶無需去開發很麻煩的驅動程序,只要直接使用API調用即可完成通信。所以很多簡單的USB設備,喜歡枚舉成HID設備,這樣就可以不用安裝驅動而直接使用。

        2.2 CDC類

        CDC(Commuuication Devce Class,通信設備類)類是USB組織定義的一類專門給各種通信設備(電信通信設備和中速網絡通信設備)使用的USB子類。根據CDC類所針對通信設備的不同,CDC類又被分成以下不同的模型:USB傳統純電話業務(POTS)模型、USB ISDN模型和USB網絡模型。其中,USB傳統純電話業務模型又可分為直接線控制模型(Direct Line Control Model)、抽象控制模型(Abstract Control Model)和USB電話模型(USBTelephone Model)。通常一個CDC類又包括兩個接口子類——通信接口類(Communication Interface Class)和數據接口類(Data Interface Class)。該子類可以實現虛擬串口通信的協議。

        3 硬件設計

        3.1 鍵盤設計

        矩陣鍵盤又稱為行列式鍵盤,本方案是用4根I/O線作為行線,3根I/O線作為列線組成行列式鍵盤,鍵盤設計方案如圖1所示。在行線和列線的每一個交叉點上,設置一個按鍵。這樣鍵盤中按鍵的個數是3×4個。這種行列式鍵盤結構能夠有效地提高單片機系統中I/O接口的利用率。NUC120系列每個I/O接口都可以作為外部中斷輸入腳,在此硬件基礎上,可以采用中斷式或查詢式程序設計思路,本方案采用一個單獨的定時器來定時掃描按鍵。


        3.2 USB通信接口設計

        本文引用地址:http://www.104case.com/article/201706/348318.htm

        NUC120系列自帶USB接口,該接口直接采用內置USB串行接口引擎(SIE),而且兼容USB 2.0全速規格。

        其主要特征如下:

        ◆提供1個中斷向量和4個中斷事件(WAKEUP、FLDET、USB和BUS);
        ◆支持Control/Bulk/Interrupt/Isochronous傳輸類型;
        ◆在沒有總線活動超過3 ms后支持暫停功能;
        ◆為可配置的Control/Bulk/Interrupt/Isochronous傳輸類型提供6個端點和最大512字節的緩存;
        ◆提供遠程喚醒功能。

        USB通信接口電路如圖2所示。在D+、D-線上采用100Ω電阻進行限流。


        4 軟件設計

        4.1 USB接口程序

        Nuvoton公司為NUC120系列CPU提供了所有外設的驅動庫函數,并在USB應用方面提供了大量的例程。

        本方案的兩套軟件分別參照Smpl_HID和Smpl_VCOM設計,大大縮短了開發時間。庫函數提供的例程如圖3所示。


        4.2 鍵盤掃描程序

        鍵盤掃描采用定時器0,設置定時器0為每1 ms中斷一次來判斷是否有按鍵。鍵盤掃描程序流程如圖4所示。長按不連續輸出,同一個按鍵,必須按下、抬起才有效。讀者可以根據自己系統的實際要求進行修改。鍵盤防抖處理可以根據自己的鍵盤類型來設置具體的時間(本方案是10ms)。


        結語

        本方案采用基于ARM cortex-M0內核的NUC120系列微控制器,并且有很大的擴展性,可以方便地連接液晶、語音芯片;由于內核主頻最高可達50 MHz,能夠實現3DES加/解密等對于8位機來說較復雜的運算功能,具有很高的性價比。



        關鍵詞: 密碼鍵盤 USB Cortex-M0

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南召县| 汶川县| 赤峰市| 台南县| 河池市| 乌什县| 扬中市| 广河县| 汾阳市| 阜新市| 南昌市| 微山县| 濮阳市| 驻马店市| 永兴县| 宜川县| 宜州市| 靖边县| 蓬安县| 全州县| 盐城市| 土默特左旗| 嘉荫县| 蓝田县| 枣阳市| 辽阳县| 灵川县| 普兰店市| 宁安市| 湛江市| 行唐县| 利津县| 武功县| 乌海市| 蓬莱市| 大竹县| 蒲城县| 和顺县| 漳平市| 怀集县| 雷波县|