基于51單片機(jī)和FPGA 的人機(jī)交互系統(tǒng)的設(shè)計(jì)
在現(xiàn)代各類(lèi)儀器的開(kāi)發(fā)中,人機(jī)交互功能正起著無(wú)可替代的作用。人機(jī)交互界面友好的儀器將更容易操作和使用,從而提高工作效率。液晶顯示器(LCD)具有功耗低、價(jià)格低、壽命長(zhǎng)、接口控制方便等特點(diǎn),在科研與設(shè)計(jì)領(lǐng)域正發(fā)揮著越來(lái)越大的作用。FPGA 作為單片機(jī)外設(shè)的接口芯片,可以大大簡(jiǎn)化接口電路,通過(guò)對(duì)FPGA 進(jìn)行編程,可以實(shí)現(xiàn)常用的譯碼、地址選通等功能。
本文以C8051F020 單片機(jī)與FPGA 互連系統(tǒng)為控制核心,以液晶顯示控制器T6963C 為例,結(jié)合行掃描鍵盤(pán),簡(jiǎn)述了一種人機(jī)交互功能的設(shè)計(jì)。
1 系統(tǒng)設(shè)計(jì)方案:
FPGA 可在很大程度上擴(kuò)展單片機(jī)的資源,然而人機(jī)交互功能仍應(yīng)盡量減少對(duì)單片機(jī)及FPGA 的資源消耗, 以便將更多的片內(nèi)資源用于其他功能的擴(kuò)展。采用FPGA 掃描鍵盤(pán)可以節(jié)省單片機(jī)的資源, 同時(shí)也能靈活地實(shí)現(xiàn)鍵盤(pán)的擴(kuò)展。而考慮到液晶控制較復(fù)雜, 依然采用單片機(jī)控制LCD,使LCD 的各種功能得到最大程度的利用,其系統(tǒng)框圖如圖1 所示。
2 硬件電路及FPGA 接口設(shè)計(jì):
2.1 總線接口設(shè)計(jì):
這里采用單片機(jī)C8051F020 與CycloneⅡ FPGA 互連的系統(tǒng)。C8051F020 器件是完全集成的混合信號(hào)系統(tǒng)級(jí)MCU芯片,具有64 個(gè)數(shù)字I/O 引腳,與8051 完全兼容,而且速度得到了極大提高,70%的指令執(zhí)行時(shí)間為1 或2 個(gè)系統(tǒng)時(shí)鐘周期,只有4 條指令的執(zhí)行時(shí)間大于4 個(gè)系統(tǒng)時(shí)鐘周期。此外,C8051F020 系列MCU 對(duì)CIP-51 內(nèi)核和外設(shè)有幾項(xiàng)關(guān)鍵性的改進(jìn),提高了整體性能,更易于在最終應(yīng)用中使用。如提供22 個(gè)中斷源、7 個(gè)復(fù)位源、可編程交叉開(kāi)關(guān)、8 位A/D 轉(zhuǎn)換器、12 位D/A 轉(zhuǎn)換器等。
CycloneⅡ系列FPGA 將低功耗FPGA 的密度規(guī)模擴(kuò)展至68 416 個(gè)邏輯單元,并提供高達(dá)622 個(gè)可用的I/O 接口以及高達(dá)1.1 Mb 的片內(nèi)存儲(chǔ)單元[3]。CycloneⅡ系列成功實(shí)現(xiàn)了高效與低功耗的結(jié)合,可用于自動(dòng)化、通信、視頻播放等領(lǐng)域。為兼顧成本問(wèn)題, 本系統(tǒng)采用性?xún)r(jià)比較高的EP2C8 型FPGA 作為接口器件。
為使單片機(jī)的資源可以得到最大的開(kāi)發(fā),將單片機(jī)的高端口,即P4~P7 接入FPGA,并通過(guò)FPGA 對(duì)外部設(shè)備進(jìn)行訪問(wèn)。在FPGA 中通過(guò)Verilog HDL 語(yǔ)言編程實(shí)現(xiàn)了3-8 譯碼器,從而實(shí)現(xiàn)了對(duì)單片機(jī)地址總線的擴(kuò)展。該3-8 譯碼器對(duì)LCD 以及鍵盤(pán)的鍵值讀取提供使能信號(hào),如圖2 所示。
評(píng)論