![NiosII系統(tǒng)的外圍設備課件_第1頁](http://file4.renrendoc.com/view/54d220710368c1ee9c26ed45cba510ff/54d220710368c1ee9c26ed45cba510ff1.gif)
![NiosII系統(tǒng)的外圍設備課件_第2頁](http://file4.renrendoc.com/view/54d220710368c1ee9c26ed45cba510ff/54d220710368c1ee9c26ed45cba510ff2.gif)
![NiosII系統(tǒng)的外圍設備課件_第3頁](http://file4.renrendoc.com/view/54d220710368c1ee9c26ed45cba510ff/54d220710368c1ee9c26ed45cba510ff3.gif)
![NiosII系統(tǒng)的外圍設備課件_第4頁](http://file4.renrendoc.com/view/54d220710368c1ee9c26ed45cba510ff/54d220710368c1ee9c26ed45cba510ff4.gif)
![NiosII系統(tǒng)的外圍設備課件_第5頁](http://file4.renrendoc.com/view/54d220710368c1ee9c26ed45cba510ff/54d220710368c1ee9c26ed45cba510ff5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SOPC技術第5章
NiosII系統(tǒng)的外圍設備NO.3.11謝謝觀賞2019-8-26SOPC技術第5章NiosII系統(tǒng)的外圍設備NO.34.使用IDEFlashProgrammer編程完成所有的軟/硬件開發(fā)工作后,可以使用NiosⅡ?IDE提供的FlashProgrammer工具將程序下載到FPGA平臺上的FLASH存儲器中。FlashProgrammer是NiosⅡIDE6.0提供的新工具,它可以將配置數據、NiosⅡ程序及其他數據文件下載到目標板上的FLASH存儲器中,這里所說的FLASH存儲器包括業(yè)界標準的CFI或CFI兼容的FLASH存儲器,以及Altera公司的EPCS系列串行配置器件。2謝謝觀賞2019-8-264.使用IDEFlashProgrammer編程完IDEFlashProgrammer通過2個過程將數據寫入flash:(1)用Altera提供的“Flash編程設計”對FPGA進行配置;(2)IDEFlashProgrammer將文件內容→“Flash編程設計”→FlashFlash編程設計3謝謝觀賞2019-8-26IDEFlashProgrammer通過2個過程將數據每個Flash編程設計應包含的元件:4謝謝觀賞2019-8-26每個Flash編程設計應包含的元件:4謝謝觀賞2019-8-使用IDEFlashProgrammer編程,首先要保證在SOPCBuilder中,在Target選項區(qū)中的Board的下拉列表框中選擇用戶當前使用的目標板Flash編程設計。SmartSOPC_Board_1C6是現(xiàn)用核心板提供的目標板Flash編程設計,可以對核心板上的NORFlash(元件標號U7)和EPCS(元件標號U10)進行編程。5謝謝觀賞2019-8-26使用IDEFlashProgrammer編使用NiosⅡIDE對FLASH存儲器編程的步驟:
啟動NiosIIIDE。建立軟件工程,然后編譯連接(BuildProject)選中要進行編程的工程,然后選Tools>FlashProgrammer菜單啟動FlashProgrammer對話框,如圖5.5.2。單擊FlashProgrammer對話框左下角的New命令按鈕,建立一個新編程任務,可以修改這個新任務的名稱。
6謝謝觀賞2019-8-26使用NiosⅡIDE對FLASH存儲器編程的步驟:6謝謝若選中programsoftwareprojectintoflashmemoryproject,可將工程的.elf文件寫入Flash(EPCS)。若選中programFPGAconfigurationdataintohardware-imageregionofflashmemory,可將FPGA的配置文件寫入Flash(EPCS)。若選中Programfileintoaflashmemory選項,可將二進制文件寫入Flash。需要選擇要編程的二進制文件及要編程的存儲器(U7為Flash,U10為EPCS)。
(5)在Main頁面中可以選擇所要編程的內容,包括工程名稱、FPGA配置文件的名稱以及目標存儲器。
7謝謝觀賞2019-8-26若選中programsoftwareprojectin圖5.5.2FlashProgrammer對話框8謝謝觀賞2019-8-26圖5.5.2FlashProgrammer對話框8謝
(4)在TargetConnection頁面中選擇與目標板相連的下載電纜,如圖5.5.3。(5)設置好這些內容之后,單擊Apply按鈕,然后單擊ProgramFlash按鈕,NiosⅡ?IDE重新編譯工程并對FLASH存儲器進行編程。(若在SOPCBuilder中沒有指定目標板,則ProgramFlash按鈕將是灰色不能使用。)從IDE的Console窗口可以看見編程過程。(見圖5.5.4)完成Flash編程后,需讓系統(tǒng)重新上電,使FPGA使用EPCS中配置數據重新配置FPGA,程序才能正常運行。9謝謝觀賞2019-8-26(4)在TargetConnection頁面中選擇與圖5.5.3FlashProgrammer中目標連接設置10謝謝觀賞2019-8-26圖5.5.3FlashProgrammer中目標連接設在console窗口顯示編程過程及編程結束標志圖5.5.411謝謝觀賞2019-8-26在console窗口顯示編程過程及編程結束標志圖5.5.41通信接口目前存在的所有計算機通信接口在嵌入式領域中都有其廣泛的應用,應用最為廣泛的接口設備包括
RS-232接口(串口UART)
USB接口(通用串行總線接口)
IrDA(InfraRedDataAssociation-紅外線接口)
SPI(串行外圍設備接口)、
I2C、CAN總線接口、藍牙接口(Bluetooth)
Ethernet(以太網接口)、
IEEE1394接口和通用可編程接口GPIO。12謝謝觀賞2019-8-26通信接口目前存在的所有計算機通信接口在5.5UART內核UART(UniversalAsynchronousReceiver/Transmitter通用異步接收器/發(fā)生器)內核帶有Avalon接口,為嵌入式系統(tǒng)和外部設備提供了串行字符流動通信方式,其數據以RS-232協(xié)議的形式與外界進行交互。提供可調整的波特率;可配置奇偶校驗位、停止位和數據位等。13謝謝觀賞2019-8-265.5UART內核UART(UniversalAsyncUART內核的結構框圖14謝謝觀賞2019-8-26UART內核的結構框圖14謝謝觀賞2019-8-26UART內核寄存器映射15謝謝觀賞2019-8-26UART內核寄存器映射15謝謝觀賞2019-8-26UART內核配置選項1、波特率設置2、數據位、停止位、奇偶校驗位3、流控制4、Avalon流控制傳輸16謝謝觀賞2019-8-26UART內核配置選項1、波特率設置16謝謝觀賞2019-8-軟件編程Altera提供的驅動程序執(zhí)行HAL字符模式設備驅動程序。HAL用戶應通過熟悉的HALAPI函數和ANSIC標準庫函數訪問UART,而不是訪問UART寄存器。altera_avalon_uart_regs.h寄存器級訪問頭文件altera_avalon_uart.h,altera_avalon_uart.cHAL系統(tǒng)庫的UART內核設備驅動程序17謝謝觀賞2019-8-26軟件編程Altera提供的驅動程序執(zhí)行HAL字符模式設備驅動實驗4.10:ANSIC標準庫來訪問UART;如果檢測到字符’t’,則報告檢測到字符’t’;如果檢測到字符’v’,則退出程序。#include<stdio.h>#include<string.h>#include"system.h"intmain(){char*msg="Detectedthecharacter't'.\n";FILE*fp;charprompt=0;
printf("PleaseEntersomecharacters:\n");fp=fopen(UART_NAME,"r+");//打開文件進行讀和寫18謝謝觀賞2019-8-26實驗4.10:ANSIC標準庫來訪問UART;如果檢測到字
if(fp){while(prompt!='v')//循環(huán)直至接收到'v'
{
prompt=getc(fp);//從UART中獲取字符
if(prompt=='t'){//如果字符為't'打印信息
fwrite(msg,strlen(msg),1,fp);}if(ferror(fp))//檢查錯誤是否在UART連接上出現(xiàn)
clearerr(fp);//如果是,清除它
}
fprintf(fp,"ClosingtheUARTfilehandle.\n");fclose(fp);}else{printf("Failtoopenfile...\n");}return0;}19謝謝觀賞2019-8-26if(fp)19謝謝觀賞2019-8-26System.h描述的UART設備#defineUART_NAME"/dev/uart"#defineUART_TYPE"altera_avalon_uart"#defineUART_BASE0x00B00840#defineUART_IRQ1#defineUART_BAUD115200#defineUART_DATA_BITS8#defineUART_FIXED_BAUD0#defineUART_PARITY'N'#defineUART_STOP_BITS1#defineUART_USE_CTS_RTS0#defineUART_USE_EOP_REGISTER0#defineUART_SIM_TRUE_BAUD0#defineUART_SIM_CHAR_STREAM""#defineUART_FREQ4800000020謝謝觀賞2019-8-26System.h描述的UART設備#defineUART21謝謝觀賞2019-8-2621謝謝觀賞2019-8-26具有Avalon接口的JTAGUART核是實現(xiàn)在PC機和FPGA上的SOPCBuilder系統(tǒng)間進行串行通信的一種實現(xiàn)方式JTAGUART用來替代RS-232完成與PC主機的字符輸入/輸出,NiosII處理器通過讀/寫控制和數據寄存器與JTAGUART核通信5.6JTAG-UART內核22謝謝觀賞2019-8-26具有Avalon接口的JTAGUART核是實現(xiàn)在PC機和F對于NiosII處理器,HAL系統(tǒng)庫中包含該設備的驅動程序,允許使用ANSIC標準庫stdio.h訪問JTAGUART核對PC機,Altera提供JTAG終端軟件來管理PC機與目標系統(tǒng)的連接,對JTAG數據流解碼和在屏幕上顯示字符5.7JTAG-UART內核23謝謝觀賞2019-8-26對于NiosII處理器,HAL系統(tǒng)庫中包含該設備的驅動程JTAGUART核方框圖24謝謝觀賞2019-8-26JTAGUART核方框圖24謝謝觀賞2019-8-26缺省的深度值(64)IRQ門限值(8)是最優(yōu)的,不用改變JTAGUART核配置25謝謝觀賞2019-8-26缺省的深度值(64)IRQ門限值(8)是最優(yōu)的,不用改變JT軟件編程HAL用戶應通過HALAPI
和ANSIC標準庫訪問JTAG-UART,而不是訪問JTAG-UART寄存器。對JTAGUART核的操作與下列文件有關。
altera_avalon_jtag_uart_regs.haltera_avalon_jtag_uart.haltera_avalon_jtag_uart.c26謝謝觀賞2019-8-26軟件編程HAL用戶應通過HALAPI和ANSIC標準#include<stdio.h>#include<string.h>#include"system.h"intmain(){char*msg=“Detectedthecharacter’t’.\n”;FILE*fp;charprompt=0;printf("PleaseEntersomecharacters:\n");fp=fopen(“/dev/jtag_uart”,”r+”);//為讀寫操作打開文件If(fp){while(prompt!=‘v’)//循環(huán)直到接收一個”v”
{prompt=getc(fp);//從JTAGUART中讀取一個字符if(prompt==‘t’)//若字符是“t”,則輸出信息{fwrite(msg,strlen(msg),1,fp);}例:使用標準庫通過JTAGUART核讀和發(fā)送一個消息27謝謝觀賞2019-8-26#include<stdio.h>例:使用標準庫通過JTAif(ferror(fp))//檢查是否有錯誤產生clearerr(fp);}//若有則清除fprintf(fp,”ClosingtheJTAGUARTfilehandle.\n”);fclose(fp);}else{printf("Failtoopenfile...\n");}return0;}28謝謝觀賞2019-8-26if(ferror(fp))//檢查是否有錯誤產生25.7定時器內核定時器可作為系統(tǒng)的周期性時鐘源(Tick);可以作為計數器測定事件發(fā)生的時間;作“看門狗”(Watchdog)。定時器內核特性:可控制定時器的啟動、停止或復位兩種計數模式:單次減一和連續(xù)減一計數模式計數器達到0時產生中斷請求(IRQ)可作為看門狗定時器可選擇輸出周期性脈沖可由軟件使能或屏蔽定時器中斷29謝謝觀賞2019-8-265.7定時器內核定時器可作為系統(tǒng)的周期性時鐘源(Tick)定時器內核結構框圖30謝謝觀賞2019-8-26定時器內核結構框圖30謝謝觀賞2019-8-26定時器寄存器31謝謝觀賞2019-8-26定時器寄存器31謝謝觀賞2019-8-261.狀態(tài)寄存器(status)32謝謝觀賞2019-8-261.狀態(tài)寄存器(status)32謝謝觀賞2019-8-22.控制寄存器(control)33謝謝觀賞2019-8-262.控制寄存器(control)33謝謝觀賞2019-8-3.periodl&periodh寄存器periodl和periodh寄存器一起存儲超時周期的計數值。當對此寄存器進行寫操作或內部計數器減到0時,保存在periodl&和periodh中的值會裝載到內部計數器中。34謝謝觀賞2019-8-263.periodl&periodh寄存器4.snapl&snaph寄存器可通過對snapl&snaph寄存器的寫操作來獲取32位內部計數器的當前值。5.中斷操作只要內部計數器減到0且控制寄存器的ITO位設為1,定時器內核就會產生IRQ.用戶可用以下任一方式應答IRQ:
清除狀態(tài)寄存器的TO位,等待下一個超時事件的發(fā)生;通過將控制寄存器的ITO位清零來禁止中斷。35謝謝觀賞2019-8-264.snapl&snaph寄存器可通過對定時器內核(intervaltimer)配置選項TimeoutPeriod:
設置periodl和periodh寄存器的初始值,此值可根據系統(tǒng)輸入時鐘頻率和initialperiod中的設置計算獲得。36謝謝觀賞2019-8-26定時器內核(intervaltimer)配置選項Timeo定時器內核配置選項PresetConfigurations:
提供的預定義硬件配置:Simpleperiodicinterrupt
Full-featured
Watchdog37謝謝觀賞2019-8-26定時器內核配置選項PresetConfigurationsWriteableperiod:主控制器可通過寫periodl和periodh改變向下計數周期Readablesnapshot:主控制器可讀當前向下計數的值Start/stopcontrolbits:主控制器可通過寫控制寄存器的START和STOP位來啟動后停止定時器。Timeoutpulse:當定時器計數到0時將輸出持續(xù)一個周期的高電平。Systemresetontimeout:配置定時器用于看門狗。當使能以下各項時:38謝謝觀賞2019-8-26Writeableperiod:主控制器可通過寫perio定時器提供了硬件的寄存器級訪問和HAL層的API函數:altera_avalon_time_regs.h:定義內核的寄存器映射并提供硬件設備訪問宏定義;
altera_avalon_timer.h、altera_avalon_timer_sc.c、altera_avalon_timer_ts.c、altera_avalon_timer_vars.c實現(xiàn)了HAL系統(tǒng)庫的定時器設備驅動程序(在components/altera_avalon_timer中)軟件設計39謝謝觀賞2019-8-26定時器提供了硬件的寄存器級訪問和HAL層的API函數:軟件設計HALAPI提供如下兩種定時器設備的驅動程序:系統(tǒng)時鐘定時器---該驅動程序支持報警(alarms)。時間戳定時器-----該驅動程序支持高精度的時間測量。HAL特定的訪問定時器設備的API函數在components/altera_hal/HAL/inc/sys/alt_alarm.h和sys/alt_timestamp.h中定義。40謝謝觀賞2019-8-26軟件設計HALAPI提供如下兩種定時器設備的驅動程序:40【實驗4.5】利用系統(tǒng)時鐘服務產生1s的周期性事件,并借此控制LED閃爍#include<stdio.h>#include"system.h"http://包含基本的硬件描述信息#include"altera_avalon_pio_regs.h"http://包含基本的IO寄存器信息#include"alt_types.h"http://Altera定義的數據類型#include"sys/alt_alarm.h"
//系統(tǒng)時鐘服務頭文件41謝謝觀賞2019-8-26【實驗4.5】利用系統(tǒng)時鐘服務產生1s的周期性事件,并借此控#ifndefLED_PIO_BASE//這是LED_PIO核的基地址#defineLED_PIO_BASE0xffffffff//user'sdefinitionhere#endif#ifLED_PIO_BASE==0xffffffff#error"NodefinitionofLED_PIOcore...\n"#endif#defineLEDCON0xffstaticalt_alarmalarm;//按調用API函數規(guī)定定義的變量staticunsignedcharled=0xff;42謝謝觀賞2019-8-26#ifndefLED_PIO_BASE
功能:按調用規(guī)定系統(tǒng)時鐘回調函數,在該函數中實現(xiàn)用戶功能入口參數:context,系統(tǒng)傳給回調函數的參數出口參數:返回下一次的系統(tǒng)時鐘服務的周期值alt_u32my_alarm_callback(void*context){if(led==0xff){led=0x00;}else{led=0xff;}IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led);//操作IO口
returnalt_ticks_per_second();}43謝謝觀賞2019-8-26功能:按調用規(guī)定系統(tǒng)時鐘回調函數,在該函數中實現(xiàn)用戶功能入功能:初始化LED_PIO為輸出,其余輸入,屏蔽中斷,清邊沿捕獲寄存器voidInitPIO(void){/*LED_PIO為輸出,其余輸入*/IOWR_ALTERA_AVALON_PIO_DIRECTION(LED_PIO_BASE,LEDCON);/*禁止所有PIO中斷*/IOWR_ALTERA_AVALO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代簡約風格與科技公司辦公環(huán)境的融合
- 現(xiàn)代物流技術與醫(yī)療物資保障體系
- 溝通技巧在教育工作中的創(chuàng)新應用
- 環(huán)保技術在現(xiàn)代城市建設中的應用
- 物流信息技術在商業(yè)領域的應用
- Unit 3 Where did you go?PartB (說課稿)-2023-2024學年人教PEP版英語六年級下冊
- 2《燭之武退秦師》說課稿-2024-2025學年高一語文下學期同步說課稿(統(tǒng)編版必修下冊)
- 2024新教材高中地理 第四章 區(qū)域發(fā)展戰(zhàn)略 第二節(jié) 我國區(qū)域發(fā)展戰(zhàn)略說課稿 湘教版必修第二冊
- Unit3 Amazing animals(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊001
- 2024年高中化學 第三章 晶體結構與性質 章末整合說課稿 新人教版選修3
- 地理聽課學習記錄(六篇)
- 空氣能熱泵系統(tǒng)設計與安裝融資計劃書
- 2021中考地理真題試卷 山東省煙臺地理含答案
- 非法捕撈水產品罪
- 新概念第一冊單詞匯總帶音標EXCEL版
- 作用于血液及造血器官的藥 作用于血液系統(tǒng)藥物
- 心肺復蘇(最全版)完整版
- 春節(jié)節(jié)后施工復工安全培訓
- GB/T 3478.1-1995圓柱直齒漸開線花鍵模數基本齒廓公差
- GB/T 1346-2001水泥標準稠度用水量、凝結時間、安定性檢驗方法
- FZ/T 25001-2012工業(yè)用毛氈
評論
0/150
提交評論