單片機和FPGA 的人機交互系統(tǒng)的設計_第1頁
單片機和FPGA 的人機交互系統(tǒng)的設計_第2頁
單片機和FPGA 的人機交互系統(tǒng)的設計_第3頁
單片機和FPGA 的人機交互系統(tǒng)的設計_第4頁
單片機和FPGA 的人機交互系統(tǒng)的設計_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 單片機和FPGA 的人機交互系統(tǒng)的設計 在儀器儀表電路中,人機交互界面是必不可少的環(huán)節(jié)。為了解決單純采用單片機制作的系統(tǒng)功耗高、速度慢、電路構造繁瑣的問題,同時為了發(fā)揮出單片機的靈活性和FPGA 的高速性,系統(tǒng)采用C8051F020 單片機和CycloneFPGA 作為系統(tǒng), 設計實現(xiàn)了鍵盤、LCD 等人機交互功能, 同時預留了部分I/O 接口作為擴展接口使用。采用FPGA 掃描鍵盤可以極大程度地節(jié)省單片機的資源,利用單片機和FPGA 共同控制LCD 可以更好地表達出人機交互的特色。 在現(xiàn)代各類儀器的開發(fā)中,人機交互功能正起著無可替代的作用。人機交互界面友好的儀

2、器將更容易操作和使用,從而提高工作效率。液晶顯示器(LCD)具有功耗低、價格低、壽命長、接口控制方便等特點,在科研與設計領域正發(fā)揮著越來越大的作用。FPGA 作為單片機外設的接口芯片,可以大大簡化接口電路,通過對FPGA 開展編程,可以實現(xiàn)常用的譯碼、地址選通等功能。 本文以C8051F020 單片機與FPGA 互連系統(tǒng)為控制,以液晶顯示控制器T6963C 為例,結合行掃描鍵盤,簡述了一種人機交互功能的設計。 1 系統(tǒng)設計方案: FPGA 可在很大程度上擴展單片機的資源,然而人機交互功能仍應盡量減少對單片機及FPGA 的資源消耗, 以便將更多的片內(nèi)資源用于其他功能的擴展。采用FPGA 掃描鍵盤

3、可以節(jié)省單片機的資源, 同時也能靈活地實現(xiàn)鍵盤的擴展。而考慮到液晶控制較復雜, 依然采用單片機控制LCD,使LCD 的各種功能得到的利用,其系統(tǒng)框圖如圖1 所示。 2 硬件電路及FPGA 接口設計: 2.1 總線接口設計: 這里采用單片機C8051F020 與Cyclone FPGA 互連的系統(tǒng)。C8051F020 器件是完全集成的混合信號系統(tǒng)級MCU芯片,具有64 個數(shù)字I/O 引腳,與8051 完全兼容,而且速度得到了極大提高,70%的指令執(zhí)行時間為1 或2 個系統(tǒng)時鐘周期,只有4 條指令的執(zhí)行時間大于4 個系統(tǒng)時鐘周期。此外,C8051F020 系列MCU 對CIP-51 內(nèi)核和外設有幾

4、項關鍵性的改良,提高了整體性能,更易于在終應用中使用。如提供22 個中斷源、7 個復位源、可編程交叉開關、8 位A/D 轉換器、12 位D/A 轉換器等。 Cyclone系列FPGA 將低功耗FPGA 的密度規(guī)模擴展至68 416 個邏輯單元,并提供高達622 個可用的I/O 接口以及高達1.1 Mb 的片內(nèi)存儲單元。Cyclone系列成功實現(xiàn)了高效與低功耗的結合,可用于自動化、通信、視頻播放等領域。為兼顧成本問題, 本系統(tǒng)采用性價比較高的EP2C8 型FPGA 作為接口器件。 為使單片機的資源可以得到的開發(fā),將單片機的高端口,即P4P7 接入FPGA,并通過FPGA 對外部設備開展訪問。在F

5、PGA 中通過Verilog HDL 語言編程實現(xiàn)了3-8 譯碼器,從而實現(xiàn)了對單片機地址總線的擴展。該3-8 譯碼器對LCD 以及鍵盤的鍵值讀取提供使能信號,如圖2 所示。 2.2 T6963C 及其接口設計: T6963C 液晶顯示控制器多用于小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。 單片機對T6963C 有2 種訪問方式: 直接訪問與間接訪問。直接訪問利用三總線以I/O 設備訪問形式開展控制;間接訪問則由單片機提供并行接口,以程序控制時序的方式開展控制。為簡化程序,這里采用直接訪問方式。 該LCM 的FS1 引腳用于控制顯示字符的字體

6、。FS1 為高時,LCD 顯示68 字符;FS1 為低時,LCD 顯示88 字符。經(jīng)實踐,在顯示英文與數(shù)字時,68 字符更為美觀;在顯示中文字符時,88 字符更為方便。一般系統(tǒng)采用將FS1 接地或接高的方式來固定字體,而本系統(tǒng)采用P2.1 對FS 開展控制,通過改變地址實現(xiàn)改變字體的功能,使得界面的顯示更靈活。 2.3 鍵盤電路設計: 鍵盤是常用的單片機輸入設備,分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用硬件譯碼器實現(xiàn),并產(chǎn)生鍵編號或鍵值的稱為編碼鍵盤;靠軟件識別的稱為非編碼鍵盤。在單片機組成的測控系統(tǒng)及智能化儀器中使用多的是非編碼鍵盤,本系統(tǒng)設計在FPGA 中編程實現(xiàn)36 鍵盤的行掃

7、描。 由于按鍵的機械特性,在閉合和斷開的瞬間會伴隨著一連串的抖動,鍵抖動會引起按鍵被誤讀多次,所以必須開展去抖處理,常用的方法為延時去抖動。FPGA 產(chǎn)生鍵值之后向單片機發(fā)送中斷,并等待單片機讀取鍵值。由于人腦反應時間相對較長, 鍵盤中斷可以處于相對較低的優(yōu)先級,因此本文將鍵盤中斷接于外部中斷7。 3 軟件設計: 軟件設計遵循構造化和層次化的設計原則。底層函數(shù)直接與硬件溝通,而上層函數(shù)直接通過調(diào)用底層函數(shù)來實現(xiàn)相應功能,從而使上層函數(shù)與硬件環(huán)境徹底分開。當硬件環(huán)境發(fā)生變化時,僅修改底層函數(shù)便能實現(xiàn)程序的移植。 3.1 液晶驅動模塊的編程設計: 本模塊的底層函數(shù)需要實現(xiàn)寫控制字、寫參數(shù)、查忙等功

8、能。由于采用直接訪問,寫控制字與寫參數(shù)的函數(shù)只需向控制口或數(shù)據(jù)口的地址送數(shù)即可。由于LCD 是慢速器件,因此在每次寫控制字及寫參數(shù)之前都需要開展查忙。T6963C的狀態(tài)字共有7 位有效的狀態(tài)位,如下表1 所示。其中STA1STA3 為常用,一般情況下可以不需要對STA5STA7 開展查忙的程序。 3.1.1 液晶驅動模塊的初始化: T6963C 的特點是具有獨特的硬件初始值設置功能,顯示驅動所需的參數(shù)如占空比系數(shù)。驅動傳輸?shù)淖止?jié)數(shù)/行及字符的字體選擇等均由引腳電平設置, 這樣T6963C 的初始化在上電時就已經(jīng)基本設置完成,軟件操作的重心就可以全部用于顯示畫面的設計上。因此,初始化時僅需根據(jù)實

9、際情況設置文本區(qū)域和圖形區(qū)域的首地址和寬度, 以及CGRAM 偏置地址、合成方式、光標形狀等即可正常使用。 液晶驅動模塊的初始化函數(shù)如下: void LcdInitial(void) LcdWriteDataD(0 x00,0 x00,0 x40); /設置文本區(qū)域首地址為0000H LcdWriteDataD(0 x20,0 x00,0 x41); /設置文本區(qū)域寬度為20H 字節(jié) LcdWriteDataD(0 x00,0 x04,0 x42); /設置圖形區(qū)域首地址為0400H LcdWriteDataD(0 x20,0 x00,0 x43); /設置圖形區(qū)域寬度為20H 字節(jié) LcdW

10、riteDataD(0 x03,0 x00,0 x22); /設置CGRAM 偏置地址,顯示存儲器的首地址為1800H LcdWriteDataN(0 xa7); /光標形狀設置為87 LcdWriteDataN (0 x80); /啟用內(nèi)部字符發(fā)生器,邏輯“或”合成 LcdWriteDataN(0 x9c); /開文本和圖形顯示,禁用光標 LcdClear(3); /清屏 3.1.2 英文及漢字的文本顯示: 由于英文及數(shù)字等常用字符的字模已經(jīng)固化在CGROM中,因此開展英文的顯示時,只需指定顯示的地址,再輸入該字符對應的標號即可。漢字的顯示與英文的顯示類似。然而出于其復雜性,一個漢字需要使用

11、4 組點陣才能完整顯示。在初始化后將漢字的4 部分字模順序輸入CGRAM 中, 在使用時僅需計算好每一部分的顯示地址即可對漢字開展完美顯示。 對于一串英文字符的輸入, 可以利用字符串的特性開展操作。通過檢測0字符來判斷英文字符串的結尾,從而防止了在調(diào)用此顯示函數(shù)時人工計算句子長度的工作。英文字符的ASCII碼值與其在CGROM 中對應的標號恰相差0 x20,因此僅需簡單的減法即可實現(xiàn)標號的轉換。此外,在開展英文的連續(xù)顯示時,使用了T6963C 的數(shù)據(jù)自動寫指令,從而提高了顯示效率。 對于一串中文的顯示,則僅需通過循環(huán)調(diào)用單個中文的顯示程序開展實現(xiàn)。注意由于C51 語言中字符串無法支持中文,因此

12、必須人工計算中文字串的長度并將其作為函數(shù)傳遞給此顯示函數(shù)。 字符發(fā)生器CGRAM 中總共可存儲32 個漢字,對于需顯示較多漢字的應用, 可從需顯示的漢字中選出16 個常用的漢字,固定存放于CGRAM 中,其余漢字僅在需要使用時動態(tài)寫入CGRAM。這樣, 既提高了顯示效率, 又解決了CGRAM 過小的問題。 3.1.3 圖形顯示: 除使用文本顯示漢字外,還可采用圖形顯示的方式。具體方式是將字模以數(shù)組的方式保存于單片機的代碼段,在需要顯示時將數(shù)據(jù)送入圖形區(qū)即可。此外,利用圖形顯示,還可以編寫描點程序顯示相應波形或者編寫繪圖程序繪制簡易表格,使系統(tǒng)顯示結果更加直觀,便于分析。 3.1.4 文本特效:

13、 T6963C 可以設置文本屬性區(qū),并對文本實現(xiàn)反白、正向閃爍、反向閃爍等特效。使用時僅需將圖形顯示設置為文本屬性區(qū)即可。此時圖形區(qū)的內(nèi)容將無法顯示,若圖形區(qū)與文本屬性區(qū)劃分在CGRAM 的不同區(qū)域,則圖形區(qū)的內(nèi)容可以得到保存。利用文本特效,可通過反白或閃爍等效果指示可選選項以及當前選項,從而使界面更易于操作。 3.2 人機交互界面設計: 除基本的10 個數(shù)字鍵以外,還設定了上、下、左、右、確定、取消等按鍵。此外,按鍵位置的設計,更符合人們的按鍵習慣。在界面中采用分級的菜單, 在菜單中選定功能之后將進入下菜單對功能開展更詳細的設定。在人機交互界面中可以使用方向鍵開展功能的選擇,數(shù)字鍵僅用于數(shù)據(jù)的輸入。 界面充分利用了文本特效,對選項采用反向顯示表示該選項已選定;對選項采用反向閃爍表示用戶可通過方向鍵改變選項。在需要開展數(shù)字輸入的界面中打開光標,即可向用戶標示數(shù)字輸入的地方。此外,必要的警告和出錯界面的設計將為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論