999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種用于嵌入式系統的USB鍵盤控制接口電路設計

2015-10-08 14:57:41劉海艷等
科技視界 2015年27期

劉海艷等

【摘 要】本文介紹了一種基于STM32的可定制的USB鍵盤控制接口電路,與傳統鍵盤方案進行了比較,介紹了電源部分、USB接口部分的設計,針對矩陣鍵盤多按鍵的特殊需求,對基本按鍵提出了改進思路及軟件識別方法,在嵌入式系操作系統如WINCE、LINUX上有較高的通用性和靈活性。

【關鍵詞】STM32;USB接口;矩陣鍵盤;多按鍵

0 引言

隨著科技的不斷進度與發展,嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,像常見到的手機、PDA、機頂盒、高清電視(HDTV)、路由器、汽車電子、智能家電、醫療儀器、航天航空設備等都是典型的嵌入式系統。

嵌入式系統中人機交互技術最為重要,WINCE和LINUX系統比較流行,然而這兩種系統的驅動開發門檻較高,尤其對于特殊的矩陣鍵盤而言,實現基于USB接口的控制電路具有一定的難度。本文設計了一種基于STM32的可定制的USB鍵盤控制電路,比一般的專用的USB鍵盤接口芯片更加簡單方便,利用軟件的可以進行靈活的修改,大大的提高矩陣鍵盤的通用性。

1 方案比較

傳統方案:標準的PC104鍵盤大多采用專用的USB鍵盤芯片(如MC178-04B),其價格便宜而被廣泛運用,但是其接口比較固定,不利于開發者自己定制,例如按鍵連發、多鍵識別(A,E同時按下)等特定的功能需求,傳統方案的缺陷就慢慢的凸顯出來了。

本文設計的方案:運用帶USB接口功能的MCU(STM32F103ZET芯片)制作USB HID設備,根據矩陣鍵盤設計鍵碼掃描程序,可以完美的解決類似于上面的需求,同時STM32的芯片的性價比高、開發簡單,適合一般的嵌入式開發工程師。

2 系統的硬件設計(圖1)

系統總共分為5部分:系統供電部分,JTAG調試接口,矩陣鍵盤模塊,USB從設備接口,STM32F103ZET芯片內部包含AD模塊,為了能夠使系統能夠正常運行,盡管AD模塊未使用,設計時應給予相應正常供電,使引腳VREF+、VDDA接VCC,引腳VREF-、VSSA接GND,否則系統不能正常運行。

2.1 電源部分

系統供電部分采用LT1117三端可調線性穩壓芯片,輸出電流可達800mA,采用SOT-223封裝以減小空間,輸入端和輸出端分別接入100nF和10uF電容進行濾波降低電壓紋波,最終使電壓穩定到3.3V。

2.2 USB 模塊接口電路設計(圖2)

根據USB1.1官方協議可知,USB為主從設備區分是有硬件電路實現的,USB HID設備屬于從設備,USB上拉電壓接在D+線上,所以本設計USB實現全速通訊。當開關開啟時,嵌入式系統就能自動開始枚舉該USB設備。

2.3 矩陣鍵盤接口設計

傳統的矩陣的鍵盤識別方法為掃描法和線反轉法,只能識別單個按鍵,硬件電路設計如圖3所示:

由上圖可知當雙按鍵按下時產生了線與邏輯沖突,對該設計進行改進,采用行線為開漏輸出,列線上有10K的上拉電阻,當雙按鍵按下時1和0線與產生0,這樣有效的識別了雙按鍵,如圖4所示:

3 軟件設計要點

3.1 USB鍵盤配置

USB通信協議中涉及了大量的描述符等相關信息其中包括設備描述符,配置描述符,接口描述符,HID描述符等,在STM32的庫文件中給出了相關的框架hw_config.c usb_desc.c usb_istr.c usb_prop.c usb_pwr.c嵌入式開發者進行相關的框架填寫便可進行正確的USB通信,USB鍵盤相關配置如下:

//開啟相關時鐘

/* Select USBCLK source */

RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);

/* Enable USB clock */

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);

//開啟相關USB通信中斷

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel =

USB_LP_CAN_RX0_IRQChannel;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

//USB發送緩存

u8 Key_Buffer[8] = {0,0,0,0,0,0,0,0};

Key_Buffer[0] = cmd;

Key_Buffer[2] = Keys;

/*copy mouse position info in ENDP1 Tx Packet Memory Area*/

UserToPMABufferCopy(Key_Buffer, GetEPTxAddr(ENDP1),8);

SetEPTxValid(ENDP1)。

3.2 多按鍵鍵盤識別

由于需要多按鍵識別處理,使用全鍵盤掃描另外再添加了橫向多按鍵處理,縱向多按鍵處理,處理步驟如下所示:

(1)行循環輸出senCode[RSIZE] =

{0X00FE,0X00FD,0X00FB,0X00F7,0X00EF,0X00DF,0X00BF,0X007F};

(2)列循環讀入getColDate();

(3)全掃描完畢后分別對獲取的列數據進行解析:

如果數據為下列之一

{0XFE00,0XFD00,0XFB00,0XF700,0XEF00,0XDF00,0XBF00,0X7F00};

則說明為單按鍵按下直接發送相關字符;

否則,dat & 0XFF00 != 0XFF00 則說明為雙按鍵按下,分別對數據的每一位進行處理判斷在哪一位為0說明在那一列當中有按鍵按下,同時與行輸出相結合從而有效的識別出了相關多按鍵按下;

(4)從按鍵映射表中找到相關的字符鍵碼,利用USB_SendChar()接口函數與主機設備進行通信。

4 結論

本文提出的基于USB接口的矩陣鍵盤控制接口電路,與傳統鍵盤方案進行了比較,其可定制的特點具有更大的靈活性。針對矩陣鍵盤多按鍵的特殊需求,對基本按鍵提出了改進的方法,對應多按鍵的識別上,提出了合理的解決步驟。在嵌入式系操作系統如WINCE、LINUX上有較高的通用性和靈活性,對于有外接4X4、8X8等矩陣鍵盤,手機鍵盤等,具有一定的實用價值。

【參考文獻】

[1]李小琦,汪紅.基于嵌入式Linux的USB鍵盤驅動設計[J].科技資訊,2009(19):97-98.

[2]李麗宏, 郝志剛. 嵌入式Linux的USB驅動設計[J]. 電子設計工程.2011(11): 170173.

[3]張淼,趙冒童.基于STM32F103RBT6芯片的USB鍵盤設計與實現[J]..福建電腦.2014.

[4]12:122-125[Z].

[責任編輯:鄧麗麗]

主站蜘蛛池模板: 国产精品嫩草影院av| 美女内射视频WWW网站午夜| 欧亚日韩Av| igao国产精品| 国产在线自在拍91精品黑人| 99久久99视频| 日本久久免费| 欧美三级日韩三级| 日本不卡在线| 国产欧美专区在线观看| 中国成人在线视频| 国产自无码视频在线观看| 性色一区| 婷婷色婷婷| 亚洲制服中文字幕一区二区| 一区二区三区精品视频在线观看| 亚洲伦理一区二区| 久久精品中文无码资源站| 欧美精品在线免费| 国产二级毛片| 九九九久久国产精品| 国产爽妇精品| 国产精品视频系列专区| 国产高清无码第一十页在线观看| 欧美亚洲一区二区三区在线| 午夜在线不卡| 99久久亚洲综合精品TS| 97se亚洲| 国产精品美乳| 亚洲一区无码在线| 国产污视频在线观看| 亚洲欧美自拍中文| 亚洲日产2021三区在线| 色悠久久综合| 欧美伦理一区| 国产幂在线无码精品| 国产美女无遮挡免费视频网站 | 人妻丰满熟妇av五码区| 高潮毛片无遮挡高清视频播放| 亚洲天堂视频在线播放| 国产99免费视频| 国产成人8x视频一区二区| 国产成人a毛片在线| 无码专区国产精品一区| 精品一区二区三区波多野结衣 | 亚洲视频在线青青| 四虎影视国产精品| 国产尤物视频网址导航| 一级毛片a女人刺激视频免费| 国产va在线观看| 又大又硬又爽免费视频| 欧美黑人欧美精品刺激| 亚洲国产理论片在线播放| 亚洲精品在线观看91| 色亚洲成人| 操美女免费网站| 99精品这里只有精品高清视频| 性欧美在线| 成人在线天堂| 国内自拍久第一页| 久久久久久高潮白浆| 亚洲欧洲AV一区二区三区| 无码高潮喷水在线观看| 日韩欧美91| 国产成人a在线观看视频| 中文字幕日韩久久综合影院| 理论片一区| 久久99精品久久久久纯品| 91视频区| 国产精品免费电影| 亚洲人成在线精品| 国产综合日韩另类一区二区| 中文字幕在线日本| 精品福利网| 亚洲日本中文综合在线| 国内精品视频在线| a级毛片免费看| 99无码中文字幕视频| 国产91视频免费观看| 综合亚洲网| 国产无吗一区二区三区在线欢| 欧美激情视频二区|