資源描述:
《基于Avalon總線的鍵盤和VGA控制接口設(shè)計》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于Avalon總線的鍵盤和VGA控制接口設(shè)計類別:電子綜合閱讀:1662引言SOPC(SystemOnProgrammableChip,可編程的片上系統(tǒng))是Altera公司提出的一種靈活、高效的SOC解決方案。它將處理器、存儲器、I/O口等系統(tǒng)設(shè)計需要的功能模塊集成到一個可編程器件上,構(gòu)成一個可編程的片上系統(tǒng)。SOPC是PLD和ASIC技術(shù)融合的結(jié)果,代表了半導(dǎo)體產(chǎn)業(yè)未來的發(fā)展方向。Altera公司的NiosII核是目前最具代衣性的軟核嵌入式系統(tǒng)處理器,本文描述的SOPC系統(tǒng)以AlteraNiosII為基礎(chǔ),利用SOP
2、CBuilder對NiosII及其外圍系統(tǒng)進(jìn)行構(gòu)建,使該嵌入式系統(tǒng)在碩件結(jié)構(gòu)、功能特點(diǎn)、資源占用等方面全面滿足系統(tǒng)設(shè)計的需求。設(shè)計課題的確立本文所描述的SOPC系統(tǒng)需耍完成以下功能:1.利用PS2接口的鍵盤作為設(shè)計的信號輸入和外部控制電路部分;2.利用VGA顯示接口作為設(shè)計的信號輸出和顯示電路部分;3.嵌入處理器+應(yīng)用軟件。根據(jù)以上要求,確立要完成本文設(shè)計的3個功能模型,分別是:兼容標(biāo)準(zhǔn)鍵盤的PS2控制接口邏輯;基于Avalon總線的VGA顯示接口邏輯,以及NiosII嵌入式處理器和PS2/VGA驅(qū)動程序。系統(tǒng)的組成和結(jié)
3、構(gòu)在SOPCBuilder中構(gòu)造整個系統(tǒng)的連接,包括基本的SOPC系統(tǒng)和自定義外設(shè)?;維OPC系統(tǒng)的核心是NiosII處理器Core,它還包含Avalon三態(tài)總線,以及掛在總線上的外部存儲設(shè)備接口,包括SRAM(或SDRAM)控制接口及Flash控制接口;以及定時計數(shù)Timer和調(diào)試Jtag_Uart模塊。而本課題設(shè)計的關(guān)鍵就是口定義的外設(shè)接口基于Avalon總線協(xié)議的PS2接口和VGA控制接口?;贏valon總線協(xié)議的PS2控制接口設(shè)計PS2控制接口協(xié)議PS2設(shè)備接口多用于當(dāng)今的鼠標(biāo)和鍵盤設(shè)計,它是由IBM開發(fā)并最
4、早出現(xiàn)在IBM技術(shù)參考手冊里。PS2鼠標(biāo)和鍵盤遵循雙向同步串行協(xié)議,每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù),時鐘線上的脈沖就被讀入。鍵盤/鼠標(biāo)可以發(fā)送數(shù)據(jù)到主機(jī),同樣主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤/鼠標(biāo)的通訊,而只需把時鐘拉低即可。從鍵盤/鼠標(biāo)發(fā)送到主機(jī)的數(shù)據(jù),在時鐘信號的下降沿被讀??;從主機(jī)發(fā)送到鍵盤/鼠標(biāo)的數(shù)據(jù)在上升沿被讀取。不管通訊的方向怎樣,鍵盤/鼠標(biāo)總是產(chǎn)生時鐘信號。如果主機(jī)要發(fā)送數(shù)據(jù),它必須先告訴設(shè)備開始產(chǎn)生時鐘信號。PS2設(shè)備最大的時鐘頻率是33kHz而大多數(shù)設(shè)備工作
5、在10-20kHzo設(shè)備到主機(jī)的通訊過程如圖2所示:所有數(shù)據(jù)安排在字節(jié)中,每個字節(jié)為一幀,包含了11/12個位,這些位的含義如下:1個起始位,總是為0;8個數(shù)據(jù)位,低位在前;1個校驗(yàn)位,奇校驗(yàn);1個停止位,總是為1;1個應(yīng)答位,僅在主機(jī)對設(shè)備的通訊中出現(xiàn)。鍵盤上包含了一個人型的按鍵矩陣,它們是由“鍵盤編碼器''來監(jiān)視的。監(jiān)視哪些按鍵被按下或釋放了,并在適當(dāng)?shù)臅r候傳送到主機(jī)。而主板上包含了一個“鍵盤控制器'‘負(fù)責(zé)解碼所有來自鍵盤的數(shù)據(jù),并告訴軟件什么事件發(fā)生。在主機(jī)和鍵盤之間的通訊使用IBM的協(xié)議,最初IBM使用Intel
6、8048微處理器作為它的鍵盤編碼器,而使用Intel8042微控制器作為它的鍵盤控制器,這些現(xiàn)己被兼容設(shè)備収代,并整合到主板的芯片組中。鍵盤的處理器花費(fèi)很多的時間來掃描或監(jiān)視按鍵矩陣。如果它發(fā)現(xiàn)有鍵被按下、釋放或按住,鍵盤將發(fā)送“掃描碼'啲信息包到計算機(jī)。掃描碼有兩種不同的類型:“通碼”和“斷碼”。當(dāng)一個鍵被按下或按住就發(fā)送通碼;當(dāng)一個鍵被釋放就發(fā)送斷碼。每個按鍵被分配了唯一的通碼和斷碼,這樣主機(jī)通過查找唯一的掃描碼就可以測定是哪個按鍵?;贏valon總線的鍵盤控制器的FPGA實(shí)現(xiàn)基于Avalon總線的鍵盤控制器的實(shí)現(xiàn)
7、,需模擬Intel8042的功能時序,完成鍵盤控制器的功能模型的建立,并完成其RTL代碼。本鍵盤控制器,不僅完成8042對鍵盤掃描碼的接收功能,還要把掃描碼轉(zhuǎn)換為處理器能夠識別的ASCII碼。從鍵盤讀數(shù)據(jù):當(dāng)從鍵盤收到有效的掃描碼就把它放置在輸入緩沖區(qū),IBF(輸入緩沖區(qū)滿)標(biāo)志被設(shè)置,產(chǎn)生IRQK如果中斷是使能,IRQ1將激活鍵盤驅(qū)動程序,它指向0x09中斷向量。驅(qū)動程序?qū)腁valon_PS2_BASE端口讀取ASCII碼。這個動作會釋放IRQ1并復(fù)位IBF標(biāo)志。接著ASCII被驅(qū)動程序處理。如下圖3顯示接收“c"通
8、碼的時序,經(jīng)過11個PS2_CLK接收到“c"的掃描碼為“0x21",同時掃描碼被轉(zhuǎn)換為ASCII碼,為“0x63”。圖4,模擬了鍵盤發(fā)送一個大寫“A”的數(shù)據(jù)傳輸時序,其過程為SHIFT通碼(0x12),“A"通碼(Oxlc),“A”斷碼(OxfO,Oxlc),SHIFT斷碼(OxfD,Ox12)。此過程中加入了兩個