虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

中断处理程序

  • 基于FPGA的PCI软核模块的研究与实现.rar

    本课题是在课题组已实现的高速串行通信平台的基础上,进一步引伸,设计开源的PCI软核通信模块替代Xilinx公司提供的LogiCORE PCI核,力求在从模式下,做到占用资源更少,传输速度更快,也为以后实现更完整的功能提供平台。 本文以此为背景,基于FPGA平台,搭建以开源的PCI软核为核心的串行通信接口平台,使其成为PCI总线与用户逻辑之间的桥梁,使用户逻辑避开与复杂的PCI总线协议。本课题采用Spartan-II FPGA芯片XC2S200-6FG456C系统开发板作为串行通信接口的硬件实验平台,实现了支持配置读/写交易、单数据段读/写、突发模式读/写、命令/地址译码功能和数据传送错误检测与处理功能的PCI软核。 本文主要阐述了以PCI软核为核心的串行通信平台的实现,首先介绍了PCI软核的编程语言、软件工具和硬件实验平台Spartan-II FPGA芯片XC2S200-6FG456C系统开发板。然后,介绍了PCI总线命令、PCI软核所支持的功能、PCI软核两侧信号的定义、PCI软核配置模块以及探讨了PCI软核的状态机接收、发送数据等过程,分析了PCI软核的数据收发功能仿真,主要包括配置读/写交易、单数据段模式读/写和突发模式读/写的仿真图形,并阐述了管脚约束的操作流程。最后介绍PCI软核模块的WDM驱动,内容包括驱动程序简介、驱动程序的开发、中断处理、驱动程序与应用程序之间的通信以及应用程序操作。最后,对PCI软核的各种性能进行了比较分析。整个模块设计紧凑,完成在实验平台上的数据发送。 设计选用硬件描述语言VerilogHDL,在开发工具Xilinx ISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为PCI软核编写WinXP下的驱动程序,用VC++6.0编写相应的测试应用程序。之后,将FPGA设计下载到Spanan-II FPGA芯片XC2S200-6FG456C系统开发板中运行。 文章最后指出工作中的不足之处和需要进一步完善的地方。

    标签: FPGA PCI 软核

    上传时间: 2013-04-24

    上传用户:sc965382896

  • 基于FPGA的8051单片机IP核设计及应用.rar

    单片微型计算机(单片机)是将微处理器CPU、程序存储器、数据存储器、定时/计数器、输入/输出并行接口等集成在一起。由于单片机具有专门为嵌入式系统设计的体系结构与指令系统,所以它最能满足嵌入式系统的应用要求。Intel公司生产的MCS-51系列单片机是我国目前应用最广的单片机之一。 随着可编程逻辑器件设计技术的发展,每个逻辑器件中门电路的数量越来越多,一个逻辑器件就可以完成本来要由很多分立逻辑器件和存储芯片完成的功能。这样做减少了系统的功耗和成本,提高了性能和可靠性。FPGA就是目前最受欢迎的可编程逻辑器件之一。IP核是将一些在数字电路中常用但比较复杂的功能块,设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。 本课题结合FPGA与8051单片机的优点,主要针对以下三个方面研究: (1)FPGA开发平台的硬件实现选用Xilinx公司的XC3S500E-PQ208-4-C作为核心器件,采用Intel公司的EEPROM芯片2816A和SRAM芯片6116作为片内程序存储器,搭建FPGA的硬件开发平台。 (2)用VHDL语言实现8051IP核分析研究8051系列单片机内部各模块结构以及各部分的连接关系,实现了基于FPGA的8051IP核。主要包括如下几个模块:CPU模块、片内数据存储器模块、定时/计数器模块、并行端口模块、串行端口模块、中断处理模块、同步复位模块等。 (3)基于FPGA的8051IP核应用用所设计的8051IP核,实现了对一个4×4键盘的监测扫描、键盘确认、按键识别等应用。

    标签: FPGA 8051 单片机

    上传时间: 2013-06-21

    上传用户:stampede

  • 基于ARM的轻量级TCPIP协议栈的移植及应用

    近年来,嵌入式技术发展迅速,已经渗透到工业控制、智能设备以及电子消费品等人们日常生活的各个领域,而Internet技术也取得了巨大的发展,为人们所广为接受,于是嵌入式技术和Internet技术相结合形成的嵌入式Internet技术适时地出现了,并且成为实现远程控制、信息共享的关键技术。 本文首先阐述了课题研究的背景、目的和意义,以及嵌入式TCP/IP协议栈研究的现状,然后分析了嵌入式操作系统μ C/OS-Ⅱ的工作原理并描述了把它移植到LPC2210上的过程,为嵌入式TCP/IP协议栈实现提供了操作系统支持。接着,针对嵌入式协议栈的特殊需求,详细分析并采用了零拷贝技术、跨层技术等对LwIP协议栈进行了有效的裁剪和优化,结合μ C/PS-Ⅱ设计了一种紧凑的协议栈工作模型和内存管理机制。并且结合μ C/OS-Ⅱ设计了协议栈的工作模型和内存管理机制。在驱动程序的基础上实现了对LwIP中的IP协议、ARP协议、ICMP协议、UDP协议和TCP协议等几个协议栈的裁剪和优化。并分析了它们的安全漏洞及基于这些漏洞的攻击方式,在这个基础上提出了如攻击检测算法等填补漏洞和抵抗攻击的一些技术和措施。最后在目标板上成功移植了优化后的LwIP。 本文同时还设计了一种能够提供足够多软定时器资源的算法。在不需要操作系统支持的情况下,软定时器可以给多任务的系统提供足够的定时服务,而且不影响中断处理时间。并且具有自动回调功能,启动一次以后就可自动调用定时器。此软定时器使用方便且易移植,大大方便了本课题多次使用定时器的需要。课题结合具体项目“蓄电池状态记录仪的设计”,分析了它的各个功能模块,设计了其系统结构。对各个功能模块的设计与实现进行了代码编写和测试,借助于TFTP服务器实现了基于协议的嵌入式目标板和PC机间的网络通信。 本课题经过几个月的软硬件设计和现场测试,已实现了最初的设计目标。构建出了实验硬件平台和一个多任务多协议的基本实时系统框架。以后的开发者可以不必深入了解μ C/OS-Ⅱ实时操作系统和嵌入式TCP/IP协议栈的情况下就可以方便的创建一个嵌入式网络控制系统,并能在平台上开发其它的应用任务,为以后的研究提供了参考并奠定了基础。

    标签: TCPIP ARM 轻量级 协议栈

    上传时间: 2013-04-24

    上传用户:www240697738

  • 基于ARM的Linux平台上USB驱动实现

    随着USB接口性能的不断增强,USB接口被广泛应用到各种硬件设备上。如今在Linux操作系统中,针对USB设备的驱动编程工作越来越受到重视。本课题在以S3C2410处理器为基础的硬件平台上,对Linux操作系统环境下USB设备驱动工作原理进行了研究。在理解USB协议的基础上完成了S3C2410处理器内置USB设备控制器固件和驱动程序的编写调试等方面的工作。 固件程序工作在硬件设备上,通过它控制设备的正常工作,负责与主机端的通信会话。由于本课题中的USB设备控制器是3C2410处理器的片内外设,因此固件程序要管理整个S3C2410处理器的工作。在处理器开机工作时,固件程序首先完成包括USB设备控制器在内的整个处理器的初始化,然后与主机共同进行USB设备的枚举,最后进入循环等待主机端发起通信。当主机发起通信时,处理器产生USB中断,固件程序调用中断处理函数。 在Linux操作系统中,内核通过调用驱动中提供的标准接口将应用程序中对设备的操作映射到具体的硬件设备。驱动程序中包括向驱动注册,驱动支持设备列表信息以及各种系统调用具体实现等方面。USB接口所支持的四种传输方式,根据S3C2410内置USB设备控制器的功能属性,在驱动中采用了块传输的传输方式,通过URB的方式实现对设备的读写操作。 最后设计一个简单文件传输系统对固件和驱动程序进行了测试。测试系统中主机端通过USB接口传输一个wav格式的音频文件,设备端接收到数据保存在内存中。

    标签: Linux ARM USB 驱动实现

    上传时间: 2013-04-24

    上传用户:liuchee

  • 基于ARM的PC104总线嵌入式工控机的研究和实现

    在特定的工业测控应用中对处理器的功耗有严格的要求,类似X86处理器芯片系列由于继承了原有8086的构架,功耗很大,不能满足要求。当前应用广泛的ARM系列处理器有低功耗、高处理器能力的优点,非常适合于此类应用。由于ARM处理器并没有对PC/104总线有支持,所以本设计使用CPLD可编程逻辑完成ARM本地总线与PC/104总线的转换。文章完成了以下工作: 1.介绍了工业控制计算机的发展情况和当前使用广泛的PC/104计算机,描述了嵌入式系统的发展历史和软硬件组成,分析了X86与ARM处理器构架的特点与优缺点; 2.从PC/104总线规范出发,对基于ARM处理器的PC/104工业控制嵌入式工控机进行了总体设计,软硬件选型部分对当前流行的软硬件系统进行了详细地描写,硬件处理器选用SAMSUNG公司的S3C2410,软件系统采用嵌入式Linux操作系统; 3.对系统硬件各个部分实现细节进行了描写,包括最小系统、CAN网络、以太网络和PC/104总线控制器;其中着重对PC/104总线控制器的实现方案进行了讨论,分析了ARM本地总线时序和PC/104总线时序,最后使用VHDL语言实现了了总线控制器逻辑; 4.移植了嵌入式Linux操作系统,Linux操作系统移植分为配置、编译和下载运行调试三个步骤;基于Linux操作系统编写了PC/104总线驱动,驱动完成映射PC/104地址到系统虚拟地址和中断绑定;编写了基于PC/104的CAN总线驱动,分析了驱动初始化、中断处理流程、数据缓冲区管理和文件操作接口,描写了驱动的编译和下载过程;最后给出了应用程序接口; 5.根据机车工业控制领域的具体要求,开发了实际系统,给出了系统主要参数指标;对系统的运算性能进行了测试,测试表明定点运算能力与X86相当,符合设计要求:系统通过铁标高低温测试和射频干扰测试,并进行了为期3个月的装车试运行,试运行过程中系统工作正常,完全能够满足设计要求。

    标签: ARM 104 PC 总线

    上传时间: 2013-07-10

    上传用户:520

  • ARM处理器和FPGA在数据传输中的应用与研究

    随着对高处理能力、网络通信、实时多任务,超低功耗这些需求的增长,传统8位处理器已经不能满足新产品的要求了,高端嵌入式处理器已经得到了普遍的重视和应用.ARM是目前嵌入式领域应用最广泛的RISC微处理器结构,该文研究了基于ARM处理器的嵌入式系统的开发,介绍了利用一款ARM微处理器和FPGA设计的四路E1中继板卡的硬件结构和工作原理,并在这个硬件平台上进行软件开发的过程.该四路E1收发器能够提供四条E1链路,把带宽从2Mbps提高到8Mbps,能够同时负载120个用户的通信,解决了数字环路系统中卡槽数目限制的问题.目前,建立在G. 703基础上的El接口在分组网、帧中继网、GSM移动基站及军事通信中得到广泛的应用,传送语音信号、数据、图像等业务.文中首先分析了当前数字环路系统的发展现状和趋势,随着网络通信的用户数目及信息量的猛增,拓宽数据传输的通道是一项研究热点,这是开发四路E1收发器的一个目的.接着叙述了数字环路系统的结构和工作原理,即四路E1收发器的应用环境,着重介绍了四路E1板卡在整个系统中所扮演的角色和嵌入式处理器ARM的体系结构和特点,鉴于数据传输中对时钟的要求比较严格,该文还介绍了FPGA技术,应用它主要是为系统提供各个精确的时钟.然后,在分析了四路E1收发器的工作原理和比较了各类处理器特点的基础上,提出了四路E1收发器的硬件设计,分别介绍了时钟模块、系统接口电路、存储系统模块、四通道E1合成器模块、CPU模块以及时隙交换模块.接着,在研究分析了G.703和G.704等通信协议后,再根据系统要求提出了四路E1收发器的软件设计.先介绍了实时操作系统RTXC,详细阐述了ARM处理器启动代码程序的设计,然后给出了在此操作系统下软件设计的整体结构,分四个任务分别阐述此软件功能,其中详细介绍了信令处理模块、接口中断处理模块、系统运行监测模块和RC消息LC消息处理模块.最后介绍了软件和硬件的调试方法以及设计过程中的调试开发过程,整个系统设计完成后,经过反复调试、测验已达到了预期的效果,现正投入使用中.

    标签: FPGA ARM 处理器 中的应用

    上传时间: 2013-04-24

    上传用户:梦雨轩膂

  • 基于FPGA的8051单片机IP核设计及应用

    单片微型计算机(单片机)是将微处理器CPU、程序存储器、数据存储器、定时/计数器、输入/输出并行接口等集成在一起。由于单片机具有专门为嵌入式系统设计的体系结构与指令系统,所以它最能满足嵌入式系统的应用要求。Intel公司生产的MCS-51系列单片机是我国目前应用最广的单片机之一。 随着可编程逻辑器件设计技术的发展,每个逻辑器件中门电路的数量越来越多,一个逻辑器件就可以完成本来要由很多分立逻辑器件和存储芯片完成的功能。这样做减少了系统的功耗和成本,提高了性能和可靠性。FPGA就是目前最受欢迎的可编程逻辑器件之一。IP核是将一些在数字电路中常用但比较复杂的功能块,设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。 本课题结合FPGA与8051单片机的优点,主要针对以下三个方面研究: (1)FPGA开发平台的硬件实现选用Xilinx公司的XC3S500E-PQ208-4-C作为核心器件,采用Intel公司的EEPROM芯片2816A和SRAM芯片6116作为片内程序存储器,搭建FPGA的硬件开发平台。 (2)用VHDL语言实现8051IP核分析研究8051系列单片机内部各模块结构以及各部分的连接关系,实现了基于FPGA的8051IP核。主要包括如下几个模块:CPU模块、片内数据存储器模块、定时/计数器模块、并行端口模块、串行端口模块、中断处理模块、同步复位模块等。 (3)基于FPGA的8051IP核应用用所设计的8051IP核,实现了对一个4×4键盘的监测扫描、键盘确认、按键识别等应用。

    标签: FPGA 8051 单片机 IP核

    上传时间: 2013-04-24

    上传用户:1417818867

  • 基于Matlab的数字语音处理

    有噪声的语音信号分析与处理设计设计内容: 1) 选择一个语音信号作为分析对象,或录制一段语音信号; 2) 对语音信号进行采样,画出采样后语音信号的时域波形和频谱图; 3) 利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析; 4) 设计FIR和IIR数字滤波器,并对被噪声污染的语音信号进行滤波,画出滤波前后信号的时域波形和频谱,并对滤波前后的信号进行比较,分析信号的变化; 5) 回放语音信号、给出相应处理程序及输出相应语音波形。

    标签: Matlab 数字 语音处理

    上传时间: 2013-06-01

    上传用户:wao1005

  • 基于FPGA的Java虚拟机实现

    使用Java语言有非常多的好处,如安全的对象引用、语言级支持多线程和跨平台等特性。但是嵌入式系统中Java语言的应用却很少见,这是由于Java如下两方面的不足: (1)Java虚拟机实现需要大量的硬件资源;(2)Java语言的运行时间不可预测。 为此,本论文将实现一个能够应用在低端FPGA器件的实时Java虚拟机。论文的主要创新点如下: 1.使用基于堆栈的RISC模型处理器实现CISC模型的JVM; 2.处理器微指令无任何相关性; 3.所设计的JVM能使Java程序拥有足够的底层访问能力。 论文的主要内容和工作如下: 1.制定基于堆栈的RISC结构处理器各级结构。 2.设计简洁高效的处理器微指令,并且微指令能够满足字节码的需要。 3.制定Java字节码到处理器代码的转换关系和快速转换结构。 4.设计中使用高速缓存,提高运行速度。 5.优化堆栈的硬件结构,使得出栈入栈操作更加简洁快速。 6.设计一系列的本地方法,使得Java程序能够直接访问底层资源。 7.将Java类库使用本地方法实现。 8.自定义程序在内存中的结构,并使用装载工具实现。 9.制定处理外围数据处理机制,如IO和内存接口10.制定中断处理方式,并且实现软中断的机制。

    标签: FPGA Java 虚拟机

    上传时间: 2013-06-11

    上传用户:417313137

  • AVR单片机GCC程序设计

    第一章 概述 1.1 AVR 单片机GCC 开发概述 1.2 一个简单的例子 1.3 用MAKEFILE 管理项目 1.4 开发环境的配置 1.5 实验板CA-M8 第二章 存储器操作编程 2.1 AVR 单片机存储器组织结构 2.2 I/O 寄存器操作 2.3 SRAM 内变量的使用 2.4 在程序中访问FLASH 程序存储器 2.5 EEPROM 数据存储器操作 2.6 avr-gcc 段结构与再定位 2.7 外部RAM 存储器操作 2.8 堆应用 第三章 GCC C 编译器的使用 3.1 编译基础 3.2 生成静态连接库 第四章 AVR 功能模块应用实验 4.1 中断服务程序 4.2 定时器/计数器应用 4.3 看门狗应用 4.4 UART 应用 4.5 PWM 功能编程 4.6 模拟比较器 4.7 A/D 转换模块编程 4.8 数码管显示程序设计 4.9 键盘程序设计 4.10 蜂鸣器控制 第五章 使用C 语言标准I/O 流调试程序 5.1 avr-libc 标准I/O 流描述 5.2 利用标准I/0 流调试程序 5.3 最小化的格式化的打印函数 第六章 CA-M8 上实现AT89S52 编程器的实现 6.1 编程原理 6.2 LuckyProg2004 概述 6.3 AT989S52 isp 功能简介 6.4 下位机程序设计 第七章 硬件TWI 端口编程 7.1 TWI 模块概述 7.2 主控模式操作实时时钟DS1307 7.3 两个Mega8 间的TWI 通信 第八章 BootLoader 功能应用 8.1 BootLoader 功能介绍 8.2 avr-libc 对BootLoader 的支持 8.3 BootLoader 应用实例 8.4 基于LuckyProg2004 的BootLoader 程序 第九章 汇编语言支持 9.1 C 代码中内联汇编程序 9.2 独立的汇编语言支持 9.3 C 与汇编混合编程 第十章 C++语言支持

    标签: AVR GCC 单片机 程序设计

    上传时间: 2013-08-01

    上传用户:飞翔的胸毛