




已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1,綜合創(chuàng)新實驗,2,提綱,1、設(shè)計任務(wù)2、設(shè)計分析3、FPGA設(shè)計基礎(chǔ)4模塊分析5驅(qū)動設(shè)計6測試程序設(shè)計7GUI程序設(shè)計,3,1.設(shè)計任務(wù),設(shè)計題目:FGPA擴展子板系統(tǒng)設(shè)計設(shè)計內(nèi)容:擴展一塊FPGA子板,合理選用FPGA器件。有效使用XSBase255擴展槽資源。擴展以下硬件資源:16鍵鍵盤、8個LED燈、撥碼開關(guān)、2路A/D和D/A。,4,設(shè)計要求合理選擇各種元器件,包括FPGA、A/D、D/A芯片。合理使用XSBase255開發(fā)系統(tǒng)擴展槽資源,設(shè)計原理圖,要考慮子板和母板的安裝。布局圖:,5,軟件測試要求:LED顯示A/DD/AKeyPad開關(guān)量輸入,6,2.設(shè)計分析,嵌入式系統(tǒng)項目開發(fā)流程要經(jīng)歷項目分析、設(shè)計和實現(xiàn)與維護四個階段本設(shè)計:前期準備FPGA邏輯設(shè)計設(shè)備驅(qū)動設(shè)計驅(qū)動測試GUI應(yīng)用程序設(shè)計,7,3.FPGA設(shè)計基礎(chǔ),可編程邏輯器件簡介什么是FPGA?什么是CPLD?FPGA與CPLD的主要區(qū)別為什么要使用CPLD/FPGA?可編程邏輯器件有哪些?如何使用可編程邏輯器件進行開發(fā)?如何使用Xscale和FPGA進行開發(fā)?,8,3.1VHDL語言介紹,隨著EDA技術(shù)的發(fā)展,使用硬件描述語言(HDL)設(shè)計CPLD/FPGA成為一種趨勢VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,分成外部(端口)和內(nèi)部(涉及實體的內(nèi)部功能實現(xiàn)部分)VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,跟原理圖有對應(yīng)的關(guān)系,9,一個簡單的VHDL例子:,10,3.2QuartusII使用簡介,QuartusII軟件為設(shè)計者提供了一個完整的圖形化多平臺開發(fā)環(huán)境,它包含整個FPGA和CPLD的開發(fā)方案QuartusII的使用,操作步驟主要有工程建立、設(shè)計輸入、編譯、仿真和下載操作,11,擴展板邏輯主要包括:總線接口邏輯中斷管理邏輯鍵盤掃描邏輯撥碼開關(guān)邏輯AD部分邏輯DA部分邏輯,3.3擴展板邏輯設(shè)計要點總線接口邏輯,12,總線接口,總線接口部:,13,總線接口要完成的功能是實現(xiàn)各寄存器的讀寫操作。包括地址譯碼、寄存器輸入、總線輸出和各模塊讀寫信號產(chǎn)生總線信號有:輸入到FPGA的外部總線的信號有SA_A25.0、SA_CS4、SA_D31.0、SA_WE、SA_OESA_A25.0為地址信號SA_CS4為擴展板的片選信號,低有效SA_D31.0為32位雙向數(shù)據(jù)信號SA_WE為寫信號,低有效SA_OE為讀信號,低有效,14,地址譯碼,使用兩個Decode兆功能模塊(寫譯碼模塊和讀譯碼模塊)實現(xiàn)譯碼操作寫譯碼模塊用于產(chǎn)生各內(nèi)部寄存器的寫信號,寫譯碼模塊的使能直接由SA_CS4控制讀譯碼模塊用于產(chǎn)生內(nèi)部寄存器的讀信號,讀譯碼模塊的使能信號受SA_CS4和SA_OE控制,15,中斷管理部分,當各內(nèi)部中斷產(chǎn)生后,中斷狀態(tài)寄存器對應(yīng)位將置“1”,這主要由DFF觸發(fā)器來實現(xiàn),16,鍵盤掃描邏輯,采用硬件描述語言方式設(shè)計,17,AD部分邏輯,向AD提供采樣時鐘,并讀取轉(zhuǎn)換數(shù)據(jù)自動循環(huán)采集模式下,AD的采樣時鐘由ADCNTR寄存器控制FPGA將轉(zhuǎn)換結(jié)果自動存入內(nèi)部的雙口RAM進行緩存,當緩存滿后,產(chǎn)生中斷通知處理器讀取,18,AD采樣時鐘,19,AD地址發(fā)生器及其中斷產(chǎn)生邏輯,20,4.模塊分析,鍵盤模塊:功能說明當16鍵中的任一按鍵被按下時,即產(chǎn)生4位鍵碼值,更新鍵碼寄存器,并置位狀態(tài)寄存器中的按鍵標志位鍵盤的掃描周期為20毫秒,以實現(xiàn)硬件消抖功能,若無按鍵動作,鍵碼寄存器的值保持不變當有按鍵動作,如果中斷控制寄存器中的鍵盤中斷允許位置1,則產(chǎn)生中斷信號,21,鍵盤模塊,相關(guān)寄存器定義鍵碼寄存器(KEY),8位中斷控制寄存器(ICNTR),16位,中斷方式為電平觸發(fā),高有效中斷標志寄存器(IFLAG),8位,22,鍵盤模塊,使用方法中斷工作模式操作設(shè)置中斷控制寄存器的D0位為1,使能鍵盤中斷;當有按鍵時,鍵盤產(chǎn)生中斷;讀取鍵碼寄存器的鍵碼值;往中斷標志寄存器對應(yīng)的鍵盤標志位置“1”,清除中斷查詢模式操作讀取中斷標志寄存器判斷按鍵標志位是否為1。否,則返回;是,則繼續(xù)讀取鍵碼寄存器的鍵碼值往中斷標志寄存器對應(yīng)的鍵盤標志位置“1”,清除該標志,23,A/D模塊,功能說明A/D模塊的精度為12位,輸入電壓范圍為0-2V(DC/AC)。A/D模塊共2路,每路的數(shù)據(jù)輸出為并行12位,2路A/D共用一個32位寄存器存放數(shù)據(jù)。相關(guān)寄存器定義使用方法,24,5.驅(qū)動設(shè)計,驅(qū)動設(shè)計總思路:考慮驅(qū)動程序操作的對象。根據(jù)對FPGA擴展各模塊的性能分析,驅(qū)動程序應(yīng)該盡可能的體現(xiàn)硬件的功能考慮協(xié)議和算法在驅(qū)動中實現(xiàn)還是在應(yīng)用層中實現(xiàn)。根據(jù)應(yīng)用程序的需要,在驅(qū)動中實現(xiàn)相應(yīng)的方法。,25,5.1驅(qū)動方法概要(1),設(shè)備的方法集中包含了8個方法:open這個方法在驅(qū)動中必須實現(xiàn),因為應(yīng)用程序打開設(shè)備文件時就就會調(diào)用此方法release這個方法與open是成對出現(xiàn)的,當應(yīng)用程序調(diào)用close關(guān)閉設(shè)備文件時,就會調(diào)用此方法ioctl應(yīng)用程序中必須通過ioctl方法向驅(qū)動傳遞命令字,來通知驅(qū)動操作的模塊,同時也通過ioctl來通知或改變模塊的工作模式。,26,5.1驅(qū)動方法概要(2),read,write應(yīng)用程序?qū)嵸|(zhì)對擴展板的操作是通過這兩個函數(shù)完成的poll實現(xiàn)此方法主要目的是滿足當應(yīng)用程序調(diào)用select或poll時設(shè)備能正確的響應(yīng)。fasync實現(xiàn)異步信號通知select,27,5.2驅(qū)動具體實現(xiàn)要點,注冊中斷號中斷號與設(shè)備所使用的中斷引腳息息相關(guān),內(nèi)核維護中斷號FPGA擴展板以GPIO11作為中斷信號線,鍵盤,撥碼開關(guān),ADC共用這一中斷信號線注冊中斷號前,必須先初始化GPIO11,這里可以通過一個函數(shù)完成:GPIO80也必須初始化為nCS4功能管腳board_irq_handle為中斷處理函數(shù),SA_INTERRUPT|SA_SHIRQ用于設(shè)置中斷的屬性,28,模塊選擇與命令字當應(yīng)用程序選擇操作擴展板上的模塊時,或選擇模塊的操作模式時,需要通過ioctl傳遞命令字到驅(qū)動,驅(qū)動代碼如圖:,29,阻塞與非阻塞操作阻塞操作的目的是當應(yīng)用程序去讀寫設(shè)備時,如果此時設(shè)備沒有數(shù)據(jù)流經(jīng)過,則應(yīng)用程序會進入睡眠狀態(tài),并一直等待數(shù)據(jù)令應(yīng)用程序進入睡眠狀態(tài)的原因是因為驅(qū)動程序里使用了令進程睡眠的函數(shù)或宏以鍵盤為例,鍵盤的read驅(qū)動如下:,30,31,poll方法分兩步完成第一步,poll方法需要將所有這些可讓進程睡眠的事件隊列都加入到poll_table結(jié)構(gòu)的鏈表中第二步是返回一個用來描述操作是否可以立即無阻塞執(zhí)行的位掩碼,32,Poll方法代碼如下:,33,fasync方法當應(yīng)用程序修改文件描述符的FASYNC標志(filp-f_flags)時,該方法就會被調(diào)用。fasync方法代碼如下:,34,中斷處理函數(shù)在注冊中斷號中,使用如下函數(shù):參數(shù)filp用于傳遞信息給中斷處理函數(shù),中斷處理函數(shù)通過參數(shù)dev_id接收中斷處理函數(shù)的代碼,以鍵盤為例:,35,36,驅(qū)動的加載,1.安裝位置將以上的驅(qū)動程序文件放入嵌入式Linux的源代碼目錄中:driver/char/2.修改Makefile在位于driver/char/目錄下的Makefile文件中加入如下語句:obj-$(CONFIG_FPGA)+=fpga_board_0.ofpga_board_1.ofpga_board_2.ofpga_board_3.ofpga_board_4.o,37,3.修改菜單文件修改config.in文件,增加如下語句:,38,4.初始化FPGA擴展板的中斷引腳修改include/asm-arm/arch-pxa/xsbase255.h,增加以下語句:修改arch/arm/mach-pxa/xsbase255.c,增加以下語句:,39,5.編譯Linux內(nèi)核進入Linux源代碼目錄中,執(zhí)行makemenuconfig,進入Linux內(nèi)核配置菜單將FPGA擴展板的驅(qū)動加入內(nèi)核中進入Characterdevices菜單選擇“FPGA_BOARD”編譯內(nèi)核,40,6.測試程序設(shè)計,測試程序(應(yīng)用程序)可以通過驅(qū)動提供的接口函數(shù)來操作設(shè)備文件結(jié)點來控制設(shè)備6.1設(shè)備文件FPGA擴展板的設(shè)備文件為“fpga_board_x”在應(yīng)用程序中通過以下指令打開設(shè)備文件:,41,6.2操作命令字,操作命令字是一些符號,通過ioctl系統(tǒng)調(diào)用,將這些符號傳遞到底層驅(qū)動程序,告訴驅(qū)動程序?qū)⒁獔?zhí)行的操作FPGA擴展板上有五個部件:分別是燈,鍵盤,撥碼開關(guān),A/D控制器,D/A控制器,相應(yīng)的操作對象可以使用對象選擇命令字來表示:LED、KEYBOARD、SWBOARD、DAC和ADC,42,如果需要操作擴展板上燈,鍵盤,撥碼開關(guān),可使用以下程序:,43,select系統(tǒng)調(diào)用:是用在訪問多個設(shè)備文件,但又不想阻塞于任何一個設(shè)備文件時使用異步通知:是應(yīng)用程序中通過向系統(tǒng)注冊一個信號,并且將該信號與某一處理函數(shù)相關(guān)聯(lián),當中斷產(chǎn)生時,激發(fā)該信號,然后系統(tǒng)調(diào)用與該信號相關(guān)聯(lián)的處理函數(shù)FPGA擴展板中只有鍵盤,撥碼開關(guān),A/D控制器才能使用異步通知,當使用異步通知前需要開啟中斷,44,KEYBOARD對象KEYBOARD對象命令字使用方式:鍵盤的操作模式有查詢和中斷方式兩種,45,ADC對象A/D控制器有兩個輸入通道,并且每個通道的工作模式都有兩種選擇:模式一.即時輸入方式模式二.自動緩沖采集采集頻率設(shè)置,46,板級對象有一些命令字是針對整個FPGA擴展板的,包括如下:,47,7.GUI程序設(shè)計,著重介紹如何為FPGA擴展板設(shè)計具有圖形用戶介面的應(yīng)用程序建立回調(diào)函數(shù)監(jiān)控I/O繪制圖形,48,Key&Led界面,49,DA控制界面,50,AD控制界面,51,完成界面后,還需完成以下工作:響應(yīng)ADC發(fā)出的中斷。為控件的事件添加回調(diào)函數(shù)。繪制圖形。,52,建立回調(diào)函數(shù)以普通按鈕控件為例,在Glade的Properties窗口的Signal下拉菜單中,為按鈕的clicked事件添加回調(diào)函數(shù),53,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025近距離沙石運輸合同樣本
- 網(wǎng)絡(luò)安全設(shè)備配置與防護題庫 (信息安全領(lǐng)域?qū)崙?zhàn)項目)
- 幼兒園課件-認識蔬菜
- 肺癌放療飲食護理
- 人教版小學一年級數(shù)學下冊期中試題
- 眩暈護理方案及護理常規(guī)
- 三角形全等的判定(復習)教學任務(wù)分析
- 視網(wǎng)膜毛細血管前小動脈阻塞的臨床護理
- 山東省濟寧市2025年高考模擬考試地理試題及答案(濟寧三模)
- 浙江省寧波市鎮(zhèn)海中學2025年5月第二次模擬考試語文試卷+答案
- 餡料間管理制度
- 2025年消防知識培訓
- 上海健康醫(yī)學院《SpringSpringMVCMyBais》2023-2024學年第二學期期末試卷
- 馬爾代夫旅游介紹
- 保險行業(yè)檔案管理培訓
- 無廢城市知識培訓課件
- 2025煤炭礦區(qū)水土保持監(jiān)測技術(shù)服務(wù)合同書
- 五金產(chǎn)品購銷合同清單
- 2024年全國高中數(shù)學聯(lián)賽(四川預賽)試題含答案
- 東北三省精準教學聯(lián)盟2024-2025學年高三下學期3月聯(lián)考地理試題(含答案)
- 2024北京西城區(qū)初一(下)期末道法試題和答案
評論
0/150
提交評論