《嵌入式技术概述_NIOSII常用外设编程.ppt》由会员分享,可在线阅读,更多相关《嵌入式技术概述_NIOSII常用外设编程.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、工程学院工程学院 自动化及测控系自动化及测控系WWW.OUC.EDU.CNWWW.OUC.EDU.CNOCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINA嵌入式技术概述嵌入式技术概述 NIOSII常用外设的硬件结构和软件编程刘兰军刘兰军1/14/2023工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optre
2、x 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)功能描述寄存器描述SOPC Builder例化软件编程1/14/20232工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/20233工程学院工程
3、学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPIO核 1)功能描述PIO核:Avalon存储器映射从端口与通用I/O端口直连的接口方案(1)PIO核的I/O端口可连接片内用户逻辑或FPGA芯片的引脚(2)PIO核可基于输入信号而发出中断请求(IRQ)用户逻辑:输入、输出、双向、中断引脚:输入、输出、三态、中断应用:开关输入、输出、与标准串行/并行设备通信1/14/20234工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF
4、 CHINAPIO核 1)功能描述1/14/20235工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPIO核 2)寄存器描述CPU通过读/写PIO核的映射寄存器来控制PIO端口读数据寄存器返回输入端口的数据,写数据寄存器驱动输出端口的数据;读数据寄存器与写数据寄存器是相互独立的,但地址相同方向寄存器只在PIO核配为双向模式时才存在,PIO的双向、输入、输出模式只在SOPC系统生成时指定。方向寄存器复位时所有位为0,即所有端口置为输入。中断掩码寄存器只在PIO核配为产生IRQ时才存在。中断掩码寄存
5、器复位时所有位为0,即所有中断被禁止。中断掩码寄存器可捕获上升沿、下降沿、双沿,边沿检测种类在SOPC系统生成时指定。PIO核的中断请求条件:电平触发:检测高电平边沿触发:根据边沿捕获寄存器的设置捕获上升沿、下降沿、双沿1/14/20236工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPIO核 3)SOPC Builder例化 1/14/20237工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPI
6、O核 4)软件编程(1)NIOSII IDE 提供了定义PIO核寄存器的HAL系统库头文件Altera_avalon_pio_regs.h定义了通用的PIO核的寄存器映射(2)多个PIO设备的个性信息在 system.h 中定义 1/14/20238工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPIO核 4)软件编程(1)Altera_avalon_pio_regs.h1/14/20239工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN
7、UNIVERSITY OF CHINAPIO核 4)软件编程(2)system.h 1/14/202310工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAPIO核 4)软件编程(3)对PIO设备的访问 1/14/202311工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD
8、控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/202312工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 1)功能描述具有Avalon总线接口的TIMER核是32位定时器,可提供如下特性:1/14/202313工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 1)功能描述TIMER核的内核结构:
9、1/14/202314工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 2)寄存器描述NIOSII处理器HAL系统库提供了TIMER的API,应用程序开发一般不必直接访问寄存器,寄存器映射对驱动程序开发有用1/14/202315工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 2)寄存器描述 状态寄存器1/14/202316工程学院工程学院 自动化及测控系自动化及测控系OCEA
10、N UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 2)寄存器描述控制寄存器1/14/202317工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 3)SOPC Builder例化1/14/202318工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 4)软件编程NIOSII IDE 为TIMER核提供了HAL系统库驱动程序
11、,用户可以使用 HAL API 访问TIMER核,而不是直接访问寄存器。(1)系统时钟驱动程序:驱动程序是中断驱动的,定时器需连接有中断信号(2)时间戳驱动程序:定时器具有可写的时钟周期寄存器,定时器未被设置 成系统时钟系统自动生成的相关软件文件:(1)altera_avalon_timer_regs.h:定义了寄存器映射(2)altera_avalon_timer.h altera_avalon_timer_sc.c altera_avalon_timer_ts.c altera_avalon_timer_vars.c:定义了驱 动程序(3)system.h:定义了具体的定时器设备的参数信息
12、 1/14/202319工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINATIMER核 4)软件编程system.h1/14/202320工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核
13、)直接存储器访问核(DMA核)1/14/202321工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 1)功能描述具有Avalon总线接口的UART核实现了RS-232通信协议,提供:可调的波特率;奇偶校验位;停止位;数据位;可选的RTS/CTS流控制信号1/14/202322工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 1)功能描述具有Avalon总线接口的UART核的功能框
14、图1/14/202323工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述NIOSII处理器HAL系统库提供了UART的API,应用程序开发一般不必直接访问寄存器,寄存器映射对驱动程序开发有用不管前一字符是否从rxdata中读出,新字符总是传输到rxdata中,若发生了未来得及读出现象,产生溢出错误只有txdata准备好,才允许写入新字符1/14/202324工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIV
15、ERSITY OF CHINAUART核 2)寄存器描述NIOSII处理器HAL系统库提供了UART的API,应用程序开发一般不必直接访问寄存器,寄存器映射对驱动程序开发有用1/14/202325工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述状态寄存器1/14/202326工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述状态寄存器1/14/2023
16、27工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述状态寄存器1/14/202328工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述NIOSII处理器HAL系统库提供了UART的API,应用程序开发一般不必直接访问寄存器,寄存器映射对驱动程序开发有用1/14/202329工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY
17、OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述控制寄存器1/14/202330工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述控制寄存器1/14/202331工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述NIOSII处理器HAL系统库提供了UART的API,应用程序开发一般不必直接访问寄存器,寄存器映射
18、对驱动程序开发有用Baud Rate=Freg/(Divisor+1)Divisor寄存器是一个可选的硬件特性决定可变长度DMA传输的包结束符,是一个可选的硬件特性1/14/202332工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 2)寄存器描述UART内核的中断行为UART核提供一个中断信号,该中断信号有多个中断源,通过读取状态寄存器得到中断源信息1/14/202333工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNI
19、VERSITY OF CHINAUART核 3)SOPC Builder例化 1/14/202334工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 4)软件编程NIOSII IDE 为UART核提供了HAL系统库驱动程序,用户可以使用 HAL API 访问UART核,而不是直接访问寄存器。(1)若UART核配置成标准设备,可采用ANSI C标准库函数访问(2)若UART核未被配置成标准设备,作为字符型设备,可采用访问子文 件系统的方式访问(3)可以采用ioctl()函数控制UART硬件
20、相关的操作 1/14/202335工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 4)软件编程NIOSII IDE 为UART核提供了HAL系统库驱动程序,用户可以使用 HAL API 访问UART核,而不是直接访问寄存器。驱动程序选项:(1)快速版本驱动程序:采用中断驱动的方法(2)小型版本驱动程序:采用查询驱动的方法 1/14/202336工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHIN
21、AUART核 4)软件编程NIOSII IDE 为UART核提供了HAL系统库驱动程序,用户可以使用 HAL API 访问UART核,而不是直接访问寄存器。ioctl()操作:1/14/202337工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAUART核 4)软件编程NIOSII IDE 为UART核提供了HAL系统库驱动程序,用户可以使用 HAL API 访问UART核,而不是直接访问寄存器。软件文件:altera_avalon_uart_regs.h:UART 核的寄存器映射altera_a
22、valon_uart.haltera_avalon_uart.c:UART核的驱动程序system.h:UART设备的参数宏定义 1/14/202338工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/202339工程学院工程学院 自动化及测控
23、系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAOptrex 16207 LCD控制器核 1)功能描述具有Avalon总线接口的Optrex 16207 LCD控制器核:提供了NIOSII处理器与16x2字符型LCD屏的接口方案HAL系统库给出了Optrex 16207 LCD控制器核的设备驱动程序(1)使用ANSI C标准库函数访问,如 printf()(2)作为字符型设备,同访问文件子系统一样访问1/14/202340工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN
24、 UNIVERSITY OF CHINAOptrex 16207 LCD控制器核 1)功能描述Avalon从端口,对LCD控制器寄存器的访问(通过HAL系统库函数访问,不需要寄存器定义细节)LCD屏接口1/14/202341工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINAOptrex 16207 LCD控制器核 2)SOPC Builder例化1/14/202342工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF
25、 CHINAOptrex 16207 LCD控制器核 3)软件编程(1)HAL系统库支持字符型LCD核是标准字符型设备,可以使用HAL提供的驱动程序API和ANSI C标准库函数访问,使用 printf()是最简单的显示字符方法;注:LCD 驱动程序要求HAL系统库包含系统时钟驱动程序(2)软件文件altera_avalon_lcd_16207_regs.h:定义了LCD核的寄存器映射altera_avalon_lcd_16207.h/altera_avalon_lcd_16207.c:定义了LCD核的设备驱动程序1/14/202343工程学院工程学院 自动化及测控系自动化及测控系OCEAN
26、UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/202344工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINACFI控制器核 1)功能描述具有Avalon总线接口的CFI控制器核:使用户很方便地将NIOS
27、II处理器系统与片外的遵循CFI规范的flash存储器连接。ALTERA为CFI控制器提供HAL设备驱动程序:提供通用的访问遵循CFI规范的flash存储器函数(用户不需要写任何的额外代码);允许用户采用HAL API或 ANSI C 标准库I/O函数 访问flash。NIOSII IDE 提供基于NIOSII处理器和CFI控制器的FLASH PROGRAMMER工具,用于编程任何遵循CFI规范的flash存储器。1/14/202345工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINACFI控制器核
28、 1)功能描述三态桥:生成一个片外存储器总线,为每个连接到存储器总线的芯片提供独立的片选、读、写信号CFI控制器:配置适合FALSH芯片的等待周期、建立时间、保持时间,支持三态传输1/14/202346工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINACFI控制器核 1)功能描述1/14/202347工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINACFI控制器核 2)SOPC Builder例化1/14
29、/202348工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINACFI控制器核 3)软件编程(1)HAL系统库支持ALTERA 提供 HAL系统库驱动程序,用户可以使用HAL API函数访问FLASH存储器。注:目前的CFI控制器只支持AMD和INTEL的flash芯片(2)软件文件altera_avalon_cfi_flash.h/altera_avalon_cfi_flash.c:定义了将驱动程序集成到HAL系统库中所需的函数、变量的头文件和源代码altera_avalon_cfi_flash_
30、funcs.h/altera_avalon_cfi_flash_table.c:定义了访问CFI表相关的函数的头文件和源代码altera_avalon_cfi_flash_amd_funcs.h/altera_avalon_cfi_flash_amd.c:定义了对AMD Flash 芯片编程的头文件和源代码altera_avalon_cfi_flash_intel_funcs.h/altera_avalon_cfi_flash_intel.c:定义了对INTEL Flash 芯片编程的头文件和源代码1/14/202349工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSI
31、TY OF CHINAOCEAN UNIVERSITY OF CHINANIOSII常用外设的硬件结构和软件编程 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/202350工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 1)功能描述具有Avalon总线接口的DMA控制器核:执行大块的数据传输,从一个源地址范围读数据,写
32、数据到不同的地址范围;DMA控制器能够执行具有流控制的Avalon传输,以保证其自动地按照外设允许的最大速率传输数据。DMA控制器具有两个Avalon主端口(一个读主端口、一个写主端口)和一个Avalon从端口,从端口用于控制DMA控制器。1/14/202351工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 1)功能描述典型的DMA处理流程:(1)CPU通过写控制端口使DMA控制器做好数据处理准备;(2)CPU使能DMA控制器:DMA控制器传输数据,读主端口从源地址读数 据,写主端口写数
33、据到目的地址,读主端口和写主端口之间的FIFO 缓存数据;(3)传输了设定长度的数据(固定长度的DMA传输)或END-OF-PACKET信 号有效(可变长度DMA传输)时,DMA传输结束,DMA控制器产生中 断请求(若允许);(4)DMA传输期间或之后,CPU可通过读取其状态寄存器判断DMA数据传 输的情况。1/14/202352工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 1)功能描述DMA控制器可配置的选项:(1)读(源)地址;(2)写(目的)地址;(3)传输的数据宽度:8,16,
34、32,64,128;(4)DMA传输完成使能中断;(5)使能源或目的外设使用END-OF-PACKET信号结束DMA传输;(6)指定源或目的是外设还是存储器1/14/202353工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 1)功能描述 DMA控制器使用字节地址编程:(1)读主端口和写主端口的地址与传输宽度对齐:如传输数据宽度32 位,地址每次增加4;(2)对于具有不同数据宽度从设备的系统,读和写主端口匹配的数据宽 度为从设备中最宽的数据宽度;(3)对于突发传输,突发传输长度设置成DM
35、A传输长度,突发计数端口 则要重新换算:如32位数据宽度的DMA传输要传输64字节数据,突 发传输长度设置为64,突发计数端口为16。1/14/202354工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 1)功能描述 DMA控制器的地址增加规则:(1)访问存储器时,读写地址根据数据宽度,按照1、2、4、8、16增 加;(2)访问外设时,读写地址保持不变;(3)地址的增加或不变由控制寄存器的RCON/WCON位控制(0 增加;1 不变)。1/14/202355工程学院工程学院 自动化及测控
36、系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 2)SOPC Builder例化DMA控制器核不输出任何信号给系统顶层模块1/14/202356工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 2)SOPC Builder例化 1/14/202357工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 3)软件编
37、程ALTERA提供HAL系统库驱动程序,用户可以使用HAL API访问DMA控制器核。HAL DMA驱动程序提供DMA过程的两端操作,分别注册为接收通道alt_dma_rxchan和发送通道alt_dma_txchan发送和接收通道的ioctl()允许用户控制DMA控制器的硬件,定义了两个函数:alt_dma_rxchan_ioctl()和alt_dma_txchan_ioctl()1/14/202358工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 3)软件编程1/14/202359工
38、程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINADMA核 3)软件编程相关软件文件altera_avalon_dma_regs.h:定义了DMA核的寄存器映射altera_avalon_dma.h/altera_avalon_dma.c:定义了DMA核的设备驱动 程序1/14/202360工程学院工程学院 自动化及测控系自动化及测控系OCEAN UNIVERSITY OF CHINAOCEAN UNIVERSITY OF CHINA本章总结 并行输入/输出内核(PIO核)定时器核(TIMER核)异步串口核(UART核)字符型LCD控制器核(Optrex 16207 LCD控制器核)通用FLASH接口控制器核(CFI核)直接存储器访问核(DMA核)1/14/202361