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