張鑫 張慶力 周吉
摘要:隨著時代的發(fā)展,科技的進步,以及某些特殊場合情況下控制模塊的深入研究和快速發(fā)展,我們需要研究出一種滿足用戶可自定義按鍵功能要求的用戶專用鍵盤模塊。本設計采用帶有USB微控制器單片機芯片AT89C5131為通信的控制核心,AT89C5131有較快的處理速度和較大的存儲容量,還可以在系統(tǒng)編程,是USB接口設計的理想選擇,通過編寫單片機固件驅動程序和CPLD控制程序,將硬件構造模塊化,應用至相關特殊行業(yè)中。
關鍵詞:AT89C5131;CPLD;USB;鍵盤設計
中圖分類號:TP368.11文獻標識碼:A文章編號:1007-9599 (2013) 06-0000-02
隨著時代的發(fā)展,科技的進步,以及某些特殊場合中情況下控制模塊的深入研究和快速發(fā)展,我們需要研究出一種滿足用戶可自定義按鍵功能要求的用戶專用鍵盤模塊。在用戶專用鍵盤模塊上可按用戶要求布局各種功能按鍵,在模塊面板上與按鍵內(nèi)印制功能指示說明,例如設備的“開”、“關”、“升”、“降”等功能,用戶可根據(jù)指示說明的詳細流程,進而進行操作鍵盤模塊以控制設備。操作功能按鍵,按鍵鍵碼由用戶專用鍵盤發(fā)送至主機,主機返回對應點燈碼或滅燈碼控制用戶專用鍵盤按鍵內(nèi)部指示燈的亮、滅,同時主機接收鍵碼調(diào)用對應函數(shù)控制外部設備以實現(xiàn)相應功能。
1用戶專用鍵盤硬件設計
本次設計用戶專用鍵盤模塊主要由AT89C5131單片機、CPLD、EAO功能按鍵組成。AT89C5131單片機控制電路的主要功能是與主機進行通信,執(zhí)行主機按鍵狀態(tài)查詢命令。因單片機GPIO口數(shù)量相對較少,故選擇CPLD作為按鍵和按鍵指示燈的擴展電路,這樣的選擇更適合我們的用戶專用鍵盤的擴展設計。
1.1單片機控制設計
AT89C5131單片機是ATMEL公司生產(chǎn)的基于52內(nèi)核的高性能微處理器芯片。用戶可以使用片上的Boot loader或FLASHAPI,通過USB接口或其他接口對FLASH存儲器(32KB)和E2PROM存儲器(1KB)進行ISP或者IAP編程。AT89C5131可滿足USB2.0協(xié)議并兼容USB1.1協(xié)議,AT89C5131擁有1個控制端口、6個可編程端口,可支持控制、中斷、同步與批量傳輸共4種傳輸方式,并且支持串行I/O接口模式以及Slave與Master的SPI接口模式。參照AT89C5131引腳定義圖設計單片機控制電路,單片機控制電路見圖1-1。
圖1-1 單片機控制電路圖
1.2CPLD控制設計
CPLD芯片采用成都華微公司生產(chǎn)的HWD240,該芯片可支持2.5V、3.3V和5V共三種IO口電壓,GPIO口最大預留100個,核心電壓為3.3V。CPLD按鍵、鍵燈擴展控制電路如圖1-2所示。
圖1-2 CPLD按鍵、鍵燈擴展控制電路圖
1.3對外接口
USB是英文Universal Serial BUS(通用串行總線)的縮寫,是一個外部總線標準,用于規(guī)范電腦與外部設備的連接和通訊。其最大的特點是支持熱插拔和即插即用,當設備插入時,主機枚舉到此設備并加載所需的驅動程序。目前,USB接口已逐漸代替了一些老式通信接口,例如串口、并口和PS/2口等。表1-1中列出了一些常用計算機接口,從表中數(shù)據(jù)可以比較出USB接口所具有的優(yōu)點。
表1-1 常用計算機接口
接口種類 接口數(shù)據(jù)格式 接口傳輸速度 接口最大支持設備數(shù) 接口是否允許熱插拔
RS232 串行格式 20Kbit/s 2 否
IEEE1394 串行格式 400Mbit/s,3.2Gbit/s 63 是
RS485 串行格式 10Mbit/s 32 否
并口 并行格式 8Mbit/s 2個或8個 否
USB 串行格式 1.5Mbit/s,12Mbit/s,480Mbit/s 127 是
2用戶專用鍵盤模塊功能實現(xiàn)
2.1單片機控制功能
整個程序的關鍵部分就是單片機的控制程序,它不僅僅負責與主機的之間的通信,還要與CPLD通信。當單片機與主機通信時單片機屬于從控設備,與CPLD通信時單片機又是主控設備。
要使上述設計在工程應用中以及在操作中得以實現(xiàn)和運用,在硬件設計的基礎上,還需要對接口進行相應的軟件設計。AT89C5131的軟件設計主要包括USB固件程序的設計,包括環(huán)境初始化、USB接口數(shù)據(jù)的收發(fā)以及功能按鍵的功能實現(xiàn)。采用C語言編程進行軟件設計,最后通過FLIP軟件下載至AT89C5131芯片中。
2.2CPLD控制功能
EAO功能按鍵的一端連接至可編程邏輯芯片HWD240的GPIO口,該端同時連接上拉電阻,EAO功能按鍵的另一端與信號地連接。當按鍵抬起時,上拉電阻將按鍵信號置高;當按鍵按下時,通過接地將按鍵信號置低。這時單片機由可編程邏輯芯片判斷按鍵信號的高或低,從而確定功能按鍵的抬起或者按下狀態(tài)。
因為可編程邏輯芯片HWD240的驅動能力有限,還需要通過達林頓驅動電路驅動功能按鍵內(nèi)部指示燈(見圖2-1)。指示燈信號端(LED)連接CPLD的GPIO口,指示燈另一端連接電源,在中間加達林頓反向驅動芯片F(xiàn)X2003以提高驅動能力。當指示燈信號是低電平時,熄滅指示燈;當指示燈信號是高電平時,點亮指示燈。
圖2-1 達林頓反向驅動芯片F(xiàn)X2003
3結束語
本用戶專用鍵盤模塊可以滿足不大于30個按鍵設計要求。運行HID檢測軟件SimpleHIDWrite,操作功能按鍵,軟件可正確接收按鍵鍵碼,由主機發(fā)送指示燈點燈碼、滅燈碼,可正常控制按鍵內(nèi)指示燈的亮滅,由主機發(fā)送按鍵狀態(tài)檢測碼,用戶專用鍵盤模塊可返回30個按鍵抬起或者按下狀態(tài)碼。經(jīng)過多次操作功能按鍵、亮滅指示燈,USB接口通信正常,用戶專用鍵盤模塊運行可靠。經(jīng)過高低溫等試驗證明,用戶專用鍵盤模塊性能可以滿足用戶自定義按鍵功能要求,可以將其推廣到某些特殊行業(yè)現(xiàn)場操控環(huán)境的控制臺中使用。
參考文獻:
[1]李英偉.USB2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社,2007.
[2]ATMEL.AT89C5131,Full Speed USB device 8-bit Flash Microcontroller,2003.
[3]陳啟美,丁傳鎖.計算機USB接口技術[M].南京:南京大學出版社,2003.
[4]湯競南,沈國琴.51單片機C語言開發(fā)與實例[M].北京:人民郵電出版社,2008.