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

2021-01-04 電子產品世界

引言

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

1 NUC120概述

NUC120系列是Nuvoton公司推出的內嵌ARMCortex-M0核的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.eepw.com.cn/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位機來說較複雜的運算功能,具有很高的性價比。


相關焦點

  • 基於Cortex-M0的USB密碼鍵盤設計
    引言本文引用地址:http://www.eepw.com.cn/article/171417.htm密碼鍵盤廣泛地應用在金融、電信、會員卡等很多領域,現在市場的密碼鍵盤主要有三大類接口:PS2、串口和USB。
  • 基於STM32的 USB設計 --單片機程序篇
    首先,我們來看看usb的工作過程。本文引用地址:http://www.eepw.com.cn/article/170827.htm  當usb設備接入到主機時,主機開始枚舉usb設備,並向usb設備發出指令要求獲取usb設備的相關描述信息,其中包括設備描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端點描述(
  • 基於STM32的USB設計 (單片機程序篇)
    首先,我們來看看usb的工作過程。本文引用地址:http://www.eepw.com.cn/article/170775.htm當usb設備接入到主機時,主機開始枚舉usb設備,並向usb設備發出指令要求獲取usb設備的相關描述信息,其中包括設備描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端點描述(endpoint
  • 基於Qt實現USB CDC可攜式設備串口通信客戶端設計
    ,設計並製作上位機應用程式圖形界面,並根據Linux下串口通信的應用層協議,最終實現了在QT界面上實時顯示可攜式設備的數據、狀態和控制可攜式設備。因此,需要根據CDC類通信協議編寫設備驅動程序,以使用戶實現與USB CDC類設備的數據通信。同時,在上位機環境下,利用QT軟體設計實現CDC類設備串口通信應用程式,這樣用戶就可以輕鬆、方便地監視設備的當前狀態和控制設備行為。
  • 基於Cortex-M0的藍牙SOC晶片及開發系統的介紹
    打開APP 基於Cortex-M0的藍牙SOC晶片及開發系統的介紹 samsun2016 發表於 2020-12-16 15:45:19
  • 基於CORTEX-M3的多機通信網絡的設計與實現
    CORTEX—M3是基於ARM7架構的處理器內核,採用哈佛架構,其功耗低,性價比高。在多機通信網的設計中,經過需求分析,提出並設計了一種基於CORTEX—M3的多機通信網絡。設計中,CORTEX—M3用做系統終端,作為主機和從機。從機負責前端系統的各類數據測量,主機作為控制端,負責各從機測量信息的採集,並通過網絡實現對從機的控制。
  • 基於EM8620的IPTV機頂盒設計
    機頂盒不同於通用計算機,他是一個嵌入式系統,低成本、低功耗和穩定性是硬體設計要遵循的原則,一些早期的iptv機頂盒設計方案採用了基於intel的高性能通用處理器架構,雖然性能很好,但是在功耗和成本方面最終很難被市場和運營商認可。
  • 臺式機鍵盤鎖了怎麼辦 鍵盤解鎖方法分享
    臺式機鍵盤鎖了怎麼辦 鍵盤解鎖方法分享時間:2017-07-10 14:12   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:臺式機鍵盤鎖了怎麼辦 鍵盤解鎖方法分享 臺式機鍵盤鎖了怎麼辦?桌上型電腦鍵盤鎖住了,整體按鍵都沒反應,這個是怎麼回事呢?是不是電腦鍵盤鎖住了呢?
  • 支付寶實現安全密碼鍵盤讀屏 更新提示致謝內測視障用戶
    信息 支付寶實現安全密碼鍵盤讀屏 更新提示致謝內測視障用戶 2016-07-07 14:49:55來源:中國新聞網作者:$
  • 基於Cortex-M0的藍牙SOC晶片及開發系統
    上海巨微集成電路有限公司是一家高可靠,低成本的無線晶片原廠,2014年7月成立於上海張江,在香港和深圳設辦公室,在無線射頻晶片和協議技術方面擁有核心技術,研發人員超過85%,博士學位超過20%,授權多項發明專利,專注「無線傳感網絡末梢節點」通用無線晶片和方案研發,BLE產品線已經實現超過百萬顆級月銷售量,已經形成華南/華東市場的合作生態鏈,其核心技術能力覆蓋射頻和模擬,藍牙
  • 基於STM32CUBE的USB滑鼠鍵盤二合一
    前面兩篇文章分別說了如何實現基於STM32的USB滑鼠和基於STM32的USB鍵盤。這篇文章,我們試著同時在一個USB設備上,實現USB的滑鼠與鍵盤二合一。花一份的錢,實現兩樣東西,它不香嗎? 這裡要說一下,實現滑鼠鍵盤二合一的功能,方法有多種,這裡只說其中一種。 少廢話,開始幹!
  • 基於FPGA的RS232行列式矩陣鍵盤接口設計
    一、引言本文引用地址:http://www.eepw.com.cn/article/245960.htm本方案是用VHDL語言來實現的基於RS232按位串行通信總線的行列式矩陣鍵盤接口電路,具有復位和串行數據的接收與發送功能,根據發光二極體led0
  • USB萬能鍵盤驅動程序
    USB萬能鍵盤驅動程序是是一款不僅對有線鍵盤有效,還能用於無線鍵盤的驅動程序,匹配率非常高,支持三星、聯想、PS等設備,,可以解決大部分的鍵盤驅動問題,適合各種Windows作業系統安裝。
  • 基於Zigbee的智能門鎖控制終端設計
    ,智能門鎖控制終端以CC2530作為處理器,以Zigbee協議棧為通信載體,設計了相應外圍電路,如門鎖驅動電路、液晶顯示電路、鍵盤輸入電路和RFID讀卡器電路。實現了以RFID讀取卡號與密碼輸入的方式採集身份信息,將身份信息發送至上位控制機進行身份核實,上位控制器返回核實信息結果,智能門鎖控制終端根據核實後的結果進行開關門操作及液晶顯示頁面的更新。
  • 高速通信首選,十個USB接口經典案例輕鬆實現即插即用
    目前滑鼠、鍵盤、充電器等均使用USB連接接口,用途廣泛。作為一種PC機與外圍設備間的高速通信接口,USB具有許多突出的優點:連接簡便,可熱插拔,無需定位及運行安裝程序,無需連接外設時關機及重啟系統,實現真正的即插即用。針對USB接口種種好處,在此分享基於USB接口的經典製作案例,深度解析USB接口技術。
  • 一種基於嵌入式Linux系統的的無線路由器設計方案
    而在傳輸距離上,WiFi能夠在幾米到100m範圍內實現完全覆蓋。  本文正是基於3G/4G 不斷增長的接入帶寬以及WiFi技術的各項優點,提出了一種共享3G/4G 網絡帶寬的無線路由器設計方案。該方案首先利用嵌入式Linux系統,構建一個基於WiFi技術的無線區域網,智能終端等用戶可以利用自帶的WiFi功能接入該無線區域網,然後再將該無線區域網橋接至3G/4G網絡中,從而實現各個智能終端設備對3G/4G網絡帶寬的共享。  1. 3G/4G路由器設計方案  本路由器的設計是基於三個模塊來實現的,分別為3G模塊、WiFi模塊和Linux硬體平臺,如圖1所示。
  • 敏矽微電子Cortex-M0學習筆記07-串口通信詳解
    例如在我們學習敏矽微電子的cortex m0時,可以將開發板與電腦相連,通過串口調試助手來調試程序、觀察程序運行結果。還有很多其他的串口模塊,比如藍牙、 NBIOT、GPRS、4G 等模組,都是使用的串口來進行驅動的,因此掌握串口是嵌入式工程師必備的技能。接下來我們就來學習如何驅動ME32F030上的串口。在正式學習之前,我們先對UART串口的通信格式做一個了解。
  • PS2鍵盤接口設計之二(實現了從鍵盤輸入並顯示在LCD液晶屏上)
    打開APP PS2鍵盤接口設計之二(實現了從鍵盤輸入並顯示在LCD液晶屏上) 佚名 發表於 2017-02-10 18:58:12
  • 基於STM32智能家居系統的設計與實現
    5上位機控制軟體,PC端以及安卓手機端的設計  伺服器(一臺運行openwrt系統的路由器)運行起來後,USB攝像頭自動掛載,在PC端上的位機設置窗口設置好IP與密碼信息後,上位機通過TCP連接到伺服器,獲取視頻/圖片信息,顯示在上位機的GUI界面上。