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

地址连接

  • at91rm9200启动过程教程

    at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了UBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uboot结构与使用uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uboot,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uboot.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。

    标签: 9200 at 91 rm

    上传时间: 2013-10-27

    上传用户:wsf950131

  • ARM处理器的工作模式

    ARM处理器的工作模式 ARM处理器状态    ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。  ARM处理器状态    进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。    进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM处理器模式    ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM处理器模式    ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。    除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM寄存器    ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。 关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。异常处理    当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;当运行于 ARM 工作状态时If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。

    标签: ARM 处理器 工作模式

    上传时间: 2013-11-15

    上传用户:hanbeidang

  • AT89C51系统接口技术

    • 8255的控制字• 8255的工作方式1和工作方式2• DAC0832工作方式• ADC0809工作方式@ 要求 掌握 :• 8255接口芯片 • MCS-51单片机与D/A转换器的接口连接 • MCS-51单片机与A/D转换器的接口连接 • 初始化编程及应用了解:• I/O口扩展的原因 • 简单I/O口的扩展 • 单片机的键盘技术 8.1  I/O口扩展概述 8.2  简单I/O口扩展8.3  8255可编程通用并行接口芯片8.4  8155可编程通用并行接口芯片8.1  I/O口扩展概述 8.1.1  I/O口扩展的原因MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。其中P0口一般作地址线的低八位和数据线使用;P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。这样供用户使用的I/O口就只剩下P1口了。另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。由于MCS-51系列单片机I/O口数量和功能有限,所以在实际应用中不得不使用扩展的方法,来增加I/O口的数量,增强I/O口的功能。  8.1.2  I/O口的编址技术用户可以通过对I/O口进行读和写操作来完成数据的输入和输出。例如:P0口的地址为80H。用户可以使用MOV指令对P0口进行写操作。          MOV   P0,  A 8.1.3  单片机I/O传送的方式单片机为了实现数据的输入/输出传送,通常使用3种控制方式。1.  无条件传送方式 当外设和单片机能够同步工作时,可以采用无条件方式进行传送,即数据可以随时进行传送。2.  查询方式 查询方式又称为有条件传送方式,即数据的传送是有条件的。在进行I/O操作之前,用户要通过软件查询外设是否为数据传送做好准备,只有确认外设为数据传送做好准备。单片机才能执行数据的输入/输出(I/O)操作。3.  中断方式 当外设和计算机进行数据交换时,外设向单片机发出中断请求(即通知单片机)。单片机接到中断请求后,就作出响应,暂停正在执行的程序,而转去为设备的数据输入/输出服务。当服务完成后,程序返回,单片机再继续执行被中断的程序。    中断方式大大提高了单片机系统的工作效率,所以在单片机中被广泛应用。

    标签: 89C C51 AT 89

    上传时间: 2013-11-10

    上传用户:yqs138168

  • 基于51单片机的网络连接控制器设计

    介绍了基于51单片机的网络连接控制器的软硬件设计方案,主要采用Atmel公司的8 b单片机AT89C51作为核心处理器,采用RealTek公司的RTL8O19AS芯片接入以太网。同时讨论了精简的TCP/IP协议栈的分层次实现,实现了可靠的UDP数据通信。

    标签: 51单片机 网络连接 制器设计

    上传时间: 2013-11-22

    上传用户:alex wang

  • I2C总线

    I2C BUS(Inter IC BUS)是NXP 推出的芯片间串行传输总线,它以2 根连线实现了完善的双向同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。I2C 总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。I2C 总线的2 根线(串行数据——SDA,串行时钟——SCL)连接到总线上的任何一个器件,每个器件都应有一个唯一的地址,而且都可以作为一个发送器或接收器。此外,器件在执行数据传输时也可以被看作是主机或从机。

    标签: I2C 总线

    上传时间: 2013-11-05

    上传用户:qb1993225

  • MSP430系列单片机C语言程序设计与开发

    MSP430系列单片机C语言程序设计与开发MSP430系列是一个具有明显技术特色的单片机品种。关于它的硬件特性及汇编语言程序设计已在《MSP430系列超低功耗16位单片机的原理与应用》及《MSP430系列 FLASH型超低功耗16位单片机》等书中作了全面介绍。《MSP430系列单片机C语言程序设计与开发》介绍IAR公司为MSP430系列单片机配备的C程序设计语言C430。书中叙述了C语言的基本概念、C430的扩展特性及C库函数;对C430的集成开发环境的使用及出错信息作了详尽的说明;并以MSP430F149为例,对各种应用问题及外围模块操作提供了典型的C程序例程,供读者在今后的C430程序设计中参考。   《MSP430系列单片机C语言程序设计与开发》可以作为高等院校计算机、自动化及电子技术类专业的教学参考书,也可作为工程技术人员设计开发时的技术资料。MSP430系列超低功耗16位单片机的原理与应用目录MSP430系列单片机C语言程序设计与开发 目录  第1章 C语言基本知识1.1 标识符与关键字11.1.1 标识符11.1.2 关键字11.2 数据基本类型21.2.1 整型数据21.2.2 实型数据31.2.3 字符型数据41.2.4 各种数据转换关系61.3 C语言的运算符71.3.1 算术运算符71.3.2 关系运算符和逻辑运算符71.3.3 赋值运算符81.3.4 逗号运算符81.3.5 ? 与 :运算符81.3.6 强制转换运算符91.3.7 各种运算符优先级列表91.4 程序设计的三种基本结构101.4.1 语句的概念101.4.2 顺序结构111.4.3 选择结构121.4.4 循环结构141.5 函数181.5.1 函数定义181.5.2 局部变量与全局变量191.5.3 形式参数与实际参数201.5.4 函数调用方式201.5.5 函数嵌套调用211.5.6 变量的存储类别221.5.7 内部函数和外部函数231.6 数组231.6.1 一维数组241.6.2 多维数组241.6.3 字符数组261.7 指针271.7.1 指针与地址的概念271.7.2 指针变量的定义281.7.3 指针变量的引用281.7.4 数组的指针281.7.5 函数的指针301.7.6 指针数组311.8 结构和联合321.8.1 结构定义321.8.2 结构类型变量的定义331.8.3 结构类型变量的初始化341.8.4 结构类型变量的引用341.8.5 联合341.9 枚举361.9.1 枚举的定义361.9.2 枚举元素的值371.9. 3 枚举变量的使用371.10 类型定义381.10.1 类型定义的形式381.10.2 类型定义的使用381.11 位运算391.11.1 位运算符391.11.2 位域401.12 预处理功能411.12.1 简单宏定义和带参数宏定义411.12.2 文件包含431.12.3 条件编译命令44第2章 C430--MSP430系列的C语言2.1 MSP430系列的C语言452.1.1 C430概述452.1.2 C430程序设计工作流程462.1.3 开始462.1.4 C430程序生成472.2 C430的数据表达482.2.1 数据类型482.2.2 编码效率502.3 C430的配置512.3.1 引言512.3. 2 存储器分配522.3.3 堆栈体积522.3.4 输入输出522.3.5 寄存器的访问542.3.6 堆体积542.3.7 初始化54第3章 C430的开发调试环境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的内嵌编辑器特性563.1.3 C编译器特性573.1. 4 汇编器特性573.1.5 连接器特性583.1.6 库管理器特性583.1.7 C?SPY调试器特性593.2 Workbench概述593.2.1 项目管理模式593.2.2 选项设置603.2.3 建立项目603.2.4 测试代码613.2.5 样本应用程序613.3 Workbench的操作623.3.1 开始633.3.2 编译项目683.3.3 连接项目693.3.4 调试项目713.3.5 使用Make命令733.4 Workbench的功能汇总753.4.1 Workbench的窗口753.4.2 Workbench的菜单功能813.5 Workbench的内嵌编辑器993.5.1 内嵌编辑器操作993.5.2 编辑键说明993.6 C?SPY概述1013.6.1 C?SPY的C语言级和汇编语言级调试1013.6.2 程序的执行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 编译与连接1033.7.3 C?SPY运行1033.7.4 C语言级调试1043.7.5 汇编级调试1113.8 C?SPY的功能汇总1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜单命令功能1203.9 C?SPY的表达式与宏1323.9.1 汇编语言表达式1323.9.2 C语言表达式1333.9.3 C?SPY宏1353.9.4 C?SPY的设置宏1373.9.5 C?SPY的系统宏137 第4章 C430程序设计实例4.1 程序设计与调试环境1434.1.1 程序设计调试集成环境1434.1.2 设备连接1444.1.3 ProF149实验系统1444.2 数值计算1454.2.1 C语言表达式1454.2.2 利用MPY实现运算1464.3 循环结构1474.4 选择结构1484.5 SFR访问1494.6 RAM访问1504.7 FLASH访问1514.8 WDT操作1534.8. 1 WDT使程序自动复位1534.8.2 程序对WATCHDOG计数溢出的控制1544.8.3 WDT的定时器功能1554.9 Timer操作1554.9.1 用Timer产生时钟信号1554.9.2 用Timer检测脉冲宽度1564.10 UART操作1574.10.1 点对点通信1574.10.2 点对多点通信1604.11 SPI操作1634.12 比较器操作1654.13 ADC12操作1674.13.1 单通道单次转换1674.13.2 序列通道多次转换1684.14 时钟模块操作1704.15 中断服务程序1714.16 省电工作模式1754.17 调用汇编语言子程序1764.17.1 程序举例1764.17.2 生成C程序调用的汇编子程序177第5章 C430的扩展特性5.1 C430的语言扩展概述1785.1.1 扩展关键字1785.1.2 #pragma编译命令1785.1.3 预定义符号1795.1.4 本征函数1795.1.5 其他扩展特性1795.2 C430的关键字扩展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma编译命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的预定义符号1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函数1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的汇编语言接口1915.6.1 创建汇编子程序框架1915.6.2 调用规则1915.6.3 C程序调用汇编子程序1935.7 C430的段定义1935.7.1 存储器分布与段定义1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的库函数6.1 引言1976.1.1 库模块文件1976.1.2 头文件1976.1.3 库定义汇总1976.2C 库函数参考2046.2.1 C库函数的说明格式2046.2.2 C库函数说明204第7章 C430编译器的诊断消息7.1 编译诊断消息的类型2307.2 编译出错消息2317.3 编译警告消息243附录 AMSP430系列FLASH型芯片资料248附录 BProF149实验系统251附录 CMSP430x14x.H文件253附录 DIAR MSP430 C语言产品介绍275

    标签: MSP 430 C语言 单片机

    上传时间: 2014-05-05

    上传用户:253189838

  • EZ-USB FX系列单片机USB外围设备设计与应用

    EZ-USB FX系列单片机USB外围设备设计与应用:PART 1 USB的基本概念第1章 USB的基本特性1.1 USB简介21.2 USB的发展历程31.2.1 USB 1.131.2.2 USB 2.041.2.3 USB与IEEE 1394的比较41.3 USB基本架构与总线架构61.4 USB的总线结构81.5 USB数据流的模式与管线的概念91.6 USB硬件规范101.6.1 USB的硬件特性111.6.2 USB接口的电气特性121.6.3USB的电源管理141.7 USB的编码方式141.8 结论161.9 问题与讨论16第2章 USB通信协议2.1 USB通信协议172.2 USB封包中的数据域类型182.2.1 数据域位的格式182.3 封包格式192.4 USB传输的类型232.4.1 控制传输242.4.2 中断传输292.4.3 批量传输292.4.4 等时传输292.5 USB数据交换格式302.6 USB描述符342.7 USB设备请求422.8 USB设备群组442.9 结论462.10 问题与讨论46第3章 设备列举3.1注册表编辑器473.2设备列举的步骤493.3设备列举步骤的实现--使用CATC分析工具513.4结论613.5问题与讨论61第4章 USB芯片与EZUSB4.1USB芯片的简介624.2USB接口芯片644.2.1Philips接口芯片644.2.2National Semiconductor接口芯片664.3内含USB单元的微处理器684.3.1Motorola694.3.2Microchip694.3.3SIEMENS704.3.4Cypress714.4USB芯片总揽介绍734.5USB芯片的选择与评估744.6问题与讨论80第5章 设备与驱动程序5.1阶层式的驱动程序815.2主机的驱动程序835.3驱动程序的选择865.4结论865.5问题与讨论87第6章 HID群组6.1HID简介886.2HID群组的传输速率886.3HID描述符906.3.1报告描述符936.3.2主要 main 项目类型966.3.3整体 global 项目卷标976.3.4区域 local 项目卷标986.3.5简易的报告描述符996.3.6Descriptor Tool 描述符工具 1006.3.7兼容测试程序1016.4HID设备的基本请求1026.5Windows通信程序1036.6问题与讨论106PART 2 硬件技术篇第7章 EZUSB FX简介7.1简介1097.2EZUSB FX硬件框图1097.3封包与PID码1117.4主机是个主控者1137.4.1从主机接收数据1137.4.2传送数据至主机1137.5USB方向1137.6帧1147.7EZUSB FX传输类型1147.7.1批量传输1147.7.2中断传输1147.7.3等时传输1157.7.4控制传输1157.8设备列举1167.9USB核心1167.10EZUSB FX单片机1177.11重新设备列举1177.12EZUSB FX端点1187.12.1EZUSB FX批量端点1187.12.2EZUSB FX控制端点01187.12.3EZUSB FX中断端点1197.12.4EZUSB FX等时端点1197.13快速传送模式1197.14中断1207.15重置与电源管理1207.16EZUSB 2100系列1207.17FX系列--从FIFO1227.18FX系列--GPIF 通用型可程序化的接口 1227.19AN2122/26各种特性的摘要1227.20修订ID1237.21引脚描述123第8章 EZUSB FX CPU8.1简介1308.28051增强模式1308.3EZUSB FX所增强的部分1318.4EZUSB FX寄存器接口1318.5EZUSB FX内部RAM1318.6I/O端口1328.7中断1328.8电源控制1338.9特殊功能寄存器 SFR 1348.10内部总线1358.11重置136第9章 EZUSB FX内存9.1简介1379.28051内存1389.3扩充的EZUSB FX内存1399.4CS#与OE#信号1409.5EZUSB FX ROM版本141第10章 EZUSB FX输入/输出端口10.1简介14310.2I/O端口14310.3EZUSB输入/输出端口寄存器14610.3.1端口配置寄存器14710.3.2I/O端口寄存器14710.4EZUSB FX输入/输出端口寄存器14910.5EZUSB FX端口配置表15110.6I2C控制器15610.78051 I2C控制器15610.8控制位15810.8.1START位15810.8.2STOP位15810.8.3LASTRD位15810.9状态位15910.9.1DONE位15910.9.2ACK位15910.9.3BERR位15910.9.4ID1, ID015910.10送出 WRITE I2C数据16010.11接收 READ I2C数据16010.12I2C激活加载器16010.13SFR寻址 FX 16210.14端口A~E的SFR控制165第11章 EZUSB FX设备列举与重新设备列举11.1简介16711.2预设的USB设备16911.3USB核心对于EP0设备请求的响应17011.4固件下载17111.5设备列举模式17211.6没有存在EEPROM17311.7存在着EEPROM, 第一个字节是0xB0 0xB4, FX系列11.8存在着EEPROM, 第一个字节是0xB2 0xB6, FX系列11.9配置字节0,FX系列17711.10重新设备列举 ReNumerationTM 17811.11多重重新设备列举 ReNumerationTM 17911.12预设描述符179第12章 EZUSB FX批量传输12.1简介18812.2批量输入传输18912.3中断传输19112.4EZUSB FX批量IN的例子19112.5批量OUT传输19212.6端点对19412.7IN端点对的状态19412.8OUT端点对的状态19512.9使用批量缓冲区内存19512.10Data Toggle控制19612.11轮询的批量传输的范例19712.12设备列举说明19912.13批量端点中断19912.14中断批量传输的范例20112.15设备列举说明20512.16自动指针器205第13章 EZUSB控制端点013.1简介20913.2控制端点EP021013.3USB请求21213.3.1取得状态 Get_Status 21413.3.2设置特性(Set_Feature)21713.3.3清除特性(Clear_Feature)21813.3.4取得描述符(Get_Descriptor)21913.3.5设置描述符(Set Descriptor)22313.3.6设置配置(Set_Configuration)22513.3.7取得配置(Get_Configuration)22513.3.8设置接口(Set_Interface)22513.3.9取得接口(Get_Interface)22613.3.10设置地址(Set_Address)22713.3.11同步帧22713.3.12固件加载228第14章 EZUSB FX等时传输14.1简介22914.2等时IN传输23014.2.1初始化设置23014.2.2IN数据传输23014.3等时OUT传输23114.3.1初始化设置23114.3.2数据传输23214.4设置等时FIFO的大小23214.5等时传输速度23414.5.1EZUSB 2100系列23414.5.2EZUSB FX系列23514.6快速传输 仅存于2100系列 23614.6.1快速写入23614.6.2快速读取23714.7快速传输的时序 仅存于2100系列 23714.7.1快速写入波形23814.7.2快速读取波形23914.8快速传输速度(仅存于2100系列)23914.9其余的等时寄存器24014.9.1除能等时寄存器24014.9.20字节计数位24114.10以无数据来响应等时IN令牌24214.11使用等时FIFO242第15章 EZUSB FX中断15.1简介24315.2USB核心中断24415.3唤醒中断24415.4USB中断信号源24515.5SUTOK与SUDAV中断24815.6SOF中断24915.7中止 suspend 中断24915.8USB重置中断24915.9批量端点中断25015.10USB自动向量25015.11USB自动向量译码25115.12I2C中断25215.13IN批量NAK中断 仅存于AN2122/26与FX系列 25315.14I2C STOP反相中断 仅存于AN2122/26与FX系列 25415.15从FIFO中断 INT4 255第16章 EZUSB FX重置16.1简介25716.2EZUSB FX打开电源重置 POR 25716.38051重置的释放25916.3.1RAM的下载26016.3.2下载EEPROM26016.3.3外部ROM26016.48051重置所产生的影响26016.5USB总线重置26116.6EZUSB脱离26216.7各种重置状态的总结263第17章 EZUSB FX电源管理17.1简介26517.2中止 suspend 26617.3回复 resume 26717.4远程唤醒 remote wakeup 269第18章 EZUSB FX系统18.1简介27118.2DMA寄存器描述27218.2.1来源. 目的. 传输长度地址寄存器27218.2.2DMA起始与状态寄存器27518.2.3DMA同步突发使能寄存器27518.2.4虚拟寄存器27818.3RD/FRD与WR/FWR DMA闪控的选择27818.4DMA闪控波形与延伸位的交互影响27918.4.1DMA外部写入27918.4.2DMA外部读取280第19章 EZUSB FX寄存器19.1简介28219.2批量数据缓冲区寄存器28319.3等时数据FIFO寄存器28419.4等时字节计数寄存器28519.5CPU寄存器28719.6I/O端口配置寄存器28819.7I/O端口A~C输入/输出寄存器28919.8230 Kbaud UART操作--AN2122/26寄存器29119.9等时控制/状态寄存器29119.10I2C寄存器29219.11中断29419.12端点0控制与状态寄存器29919.13端点1~7的控制与状态寄存器30019.14整体USB寄存器30519.15快速传输30919.16SETUP数据31119.17等时FIFO的容量大小31119.18通用I/F中断使能31219.19通用中断请求31219.20输入/输出端口寄存器D与E31319.20.1端口D输出31319.20.2输入端口D脚位31319.20.3端口D输出使能31319.20.4端口E输出31319.20.5输入端口E脚位31419.20.6端口E输出使能31419.21端口设置31419.22接口配置31419.23端口A与端口C切换配置31619.23.1端口A切换配置#231619.23.2端口C切换配置#231719.24DMA寄存器31919.24.1来源. 目的. 传输长度地址寄存器31919.24.2DMA起始与状态寄存器32019.24.3DMA同步突发使能寄存器32019.24.4选择8051 A/D总线作为外部FIFO321PART 3 固件技术篇第20章 EZUSB FX固件架构与函数库20.1固件架构总览32320.2固件架构的建立32520.3固件架构的副函数钩子32520.3.1工作分配器32620.3.2设备请求 device request 32620.3.3USB中断服务例程32920.4固件架构整体变量33220.5描述符表33320.5.1设备描述符33320.5.2配置描述符33420.5.3接口描述符33420.5.4端点描述符33520.5.5字符串描述符33520.5.6群组描述符33520.6EZUSB FX固件的函数库33620.6.1包含文件 *.H 33620.6.2子程序33620.6.3整体变量33820.7固件架构的原始程序代码338第21章 EZUSB FX固件范例程序21.1范例程序的简介34621.2外围I/O测试程序34721.3端点对, EP_PAIR范例35221.4批量测试, BulkTest范例36221.5等时传输, ISOstrm范例36821.6问题与讨论373PART 4 实验篇第22章 EZUSB FX仿真器22?1简介37522?2所需的工具37622?3EZUSB FX框图37722.4EZUSB最终版本的系统框图37822?5第一次下载程序37822.6EZUSB FX开发系统框图37922.7设置开发环境38022.8EZUSB FX开发工具组的内容38122.9EZUSB FX开发工具组软件38222.9.1初步安装程序38222.9.2确认主机 个人计算机 是否支持USB38222.10安装EZUSB控制平台. 驱动程序以及文件38322.11EZUSB FX开发电路板38522.11.1简介38522.11.2开发电路板的浏览38522.11.3所使用的8051资源38622.11.4详细电路38622.11.5LED的显示38722.11.6Jumper38722.11.7连接器39122.11.8内存映象图39222.11.9PLD信号39422.11.10PLD源文件文件39522.11.11雏形板的扩充连接器P1~P639722.11.12Philips PCF8574 I/O扩充IC40022.12DMA USB FX I/O LAB开发工具介绍40122.12.1USBFX简介40122.12.2USBFX及外围整体环境介绍40322?12?3USBFX与PC连接软件介绍40422.12.4USBFX硬件功能介绍404第23章 LED显示器输出实验23.1硬件设计与基本概念40923.2固件设计41023.3.1固件架构文件FW.C41123.3.2描述符文件DESCR.A5141223.3.3外围接口文件PERIPH.C41723.4固件程序代码的编译与链接42123.5Windows程序, VB设计42323.6INF文件的编写设计42423.7结论42623.8问题与讨论427第24章 七段显示器与键盘的输入/输出实验24.1硬件设计与基本概念42824.2固件设计43124.2.1七段显示器43124.2.24×4键盘扫描43324.3固件程序代码的编译与链接43424.4Windows程序, VB设计43624.5问题与讨论437第25章 LCD文字型液晶显示器输出实验25.1硬件设计与基本概念43825.1.1液晶显示器LCD43825.2固件设计45225.3固件程序代码的编译与链接45625.4Windows程序, VB设计45725.5问题与讨论458第26章 LED点阵输出实验26.1硬件设计与基本概念45926.2固件设计46326.3固件程序代码的编译与链接46326.4Windows程序, VB设计46526.5问题与讨论465第27章 步进电机输出实验27.1硬件设计与基本概念46627.1.11相激磁46727.1.22相激磁46727.1.31-2相激磁46827?1?4PMM8713介绍46927.2固件设计47327.3固件程序代码的编译与链接47427.4Windows程序, VB设计47627.5问题与讨论477第28章 I2C接口输入/输出实验28.1硬件设计与基本概念47828.2固件设计48128.3固件程序代码的编译与链接48328.4Windows程序, VB设计48428.5问题与讨论485第29章 A/D转换器与D/A转换器的输入/输出实验29.1硬件设计与基本概念48629.1.1A/D转换器48629.1.2D/A转换器49029.2固件设计49329.2.1A/D转换器的固件设计49329.2.2D/A转换器的固件设计49629.3固件程序代码的编译与链接49729.4Windows程序, VB设计49829.5问题与讨论499第30章 LCG绘图型液晶显示器输出实验30.1硬件设计与基本概念50030.1.1绘图型LCD50030.1.2绘图型LCD控制指令集50330.1.3绘图型LCD读取与写入时序图50530.2固件设计50630.2.1LCG驱动程序50630.2.2USB固件码51330.3固件程序代码的编译与链接51630.4Windows程序, VB设计51730.5问题与讨论518附录A Cypress控制平台的操作A.1EZUSB控制平台总览519A.2主画面520A.3热插拔新的USB设备521A.4各种工具栏的使用524A.5故障排除526A.6控制平台的进阶操作527A.7测试Unary Op工具栏上的按钮功能528A.8测试制造商请求的工具栏 2100 系列的开发电路板 529A.9测试等时传输工具栏532A.10测试批量传输工具栏533A.11测试重置管线工具栏535A.12测试设置接口工具栏537A.13测试制造商请求工具栏 FX系列开发电路板A.14执行Get Device Descriptor 操作来验证开发板的功能是否正确539A.15从EZUSB控制平台中, 加载dev_io的范例并且加以执行540A.16从Keil侦错应用程序中, 加载dev_io范例程序代码, 然后再加以执行542A.17将dev_io 目标文件移开, 且使用Keil IDE 集成开发环境 来重建545A.18在侦错器下执行dev_io目标文件, 并且使用具有侦错能力的IDE547A.19在EZUSB控制平台下, 执行ep_pair目标文件A.20如何修改fw范例, 并在开发电路板上产生等时传输550附录BEZUSB 2100系列及EZUSB FX系列引脚表B.1EZUSB 2100系列引脚表555B?2EZUSB FX系列引脚图表561附录C EZUSB FX寄存器总览附录D EEPROM烧录方式

    标签: EZ-USB USB 单片机 外围设备

    上传时间: 2013-11-21

    上传用户:努力努力再努力

  • 波形发生器,含原理图+电路图+源程序

    含原理图+电路图+程序的波形发生器:在工作中,我们常常会用到波形发生器,它是使用频度很高的电子仪器。现在的波形发生器都采用单片机来构成。单片机波形发生器是以单片机核心,配相应的外围电路和功能软件,能实现各种波形发生的应用系统,它由硬件部分和软件部分组成,硬件是系统的基础,软件则是在硬件的基础上,对其合理的调配和使用,从而完成波形发生的任务。 波形发生器的技术指标:(1) 波形类型:方型、正弦波、三角波、锯齿波;(2) 幅值电压:1V、2V、3V、4V、5V;(3) 频率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 输出极性:双极性操作设计1、 机器通电后,系统进行初始化,LED在面板上显示6个0,表示系统处于初始状态,等待用户输入设置命令,此时,无任何波形信号输出。2、 用户按下“F”、“V”、“W”,可以分别进入频率,幅值波形设置,使系统进入设置状态,相应的数码管显示“一”,此时,按其它键,无效;3、 在进入某一设置状态后,输入0~9等数字键,(数字键仅在设置状态时,有效)为欲输出的波形设置相应参数,LED将参数显示在面板上;4、 如果在设置中,要改变已设定的参数,可按下“CL”键,清除所有已设定参数,系统恢复初始状态,LED显示6个0,等待重新输入命令;5、 当必要的参数设定完毕后,所有参数显示于LED上,用户按下“EN”键,系统会将各波形参数传递到波形产生模块中,以便控制波形发生,实现不同频率,不同电压幅值,不同类型波形的输出;6、 用户按下“EN”键后,波形发生器开始输出满足参数的波形信号,面板上相应类型的运行指示灯闪烁,表示波形正在输出,LED显示波形类型编号,频率值、电压幅值等波形参数;7、 波形发生器在输出信号时,按下任意一个键,就停止波形信号输出,等待重新设置参数,设置过程如上所述,如果不改变参数,可按下“EN”键,继续输出原波形信号;8、 要停止波形发生器的使用,可按下复位按钮,将系统复位,然后关闭电源。硬件组成部分通过综合比较,决定选用获得广泛应用,性能价格高的常用芯片来构成硬件电路。单片机采用MCS-51系列的89C51(一块),74LS244和74LS373(各一块),反相驱动器 ULN2803A(一块),运算放大器 LM324(一块)  波形发生器的硬件电路由单片机、键盘显示器接口电路、波形转换(D/ A)电路和电源线路等四部分构成。1.单片机电路功能:形成扫描码,键值识别,键功能处理,完成参数设置;形成显示段码,向LED显示接口电路输出;产生定时中断;形成波形的数字编码,并输出到D/A接口电路;如电路原理图所示: 89C51的P0口和P2口作为扩展I/O口,与8255、0832、74LS373相连接,可寻址片外的寄存器。单片机寻址外设,采用存储器映像方式,外部接口芯片与内部存储器统一编址,89C51提供16根地址线P0(分时复用)和P2,P2口提供高8位地址线,P0口提供低8位地址线。P0口同时还要负责与8255,0832的数据传递。P2.7是8255的片选信号,P2.6是0832(1)的片选,P2.5是0832(2)的片选,低电平有效,P0.0、P0.1经过74LS373锁存后,送到8255的A1、A2作,片内A口,B口,C口,控制口等寄存器的字选。89C51的P1口的低4位连接4只发光三极管,作为波形类型指示灯,表示正在输出的波形是什么类型。单片机89C51内部有两个定时器/计数器,在波形发生器中使用T0作为中断源。不同的频率值对应不同的定时初值,定时器的溢出信号作为中断请求。控制定时器中断的特殊功能寄存器设置如下:定时控制寄存器TCON=(00010000)工作方式选择寄存器(TMOD)=(00000000)中断允许控制寄存器(IE)=(10000010)2、键盘显示器接口电路功能:驱动6位数码管动态显示;           提供响应界面;           扫面键盘;           提供输入按键。由并口芯片8255,锁存器74LS273,74LS244,反向驱动器ULN2803A,6位共阴极数码管(LED)和4×4行列式键盘组成。8255的C口作为键盘的I/O接口,C口的低4位输出到扫描码,高4位作为输入行状态,按键的分布如图所示。8255的A口作为LED段码输出口,与74LS244相连接,B口作为LED的位选信号输出口,与ULN2803A相连接。8255内部的4个寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH ,  C口:7FFEH    3、D/A电路功能:将波形样值的数字编码转换成模拟值;完成单极性向双极性的波形输出;构成由两片0832和一块LM324运放组成。0832(1)是参考电压提供者,单片机向0832(1)内的锁存器送数字编码,不同的编码会产生不同的输出值,在本发生器中,可输出1V、2V、3V、4V、5V等五个模拟值,这些值作为0832(2)的参考电压,使0832(2)输出波形信号时,其幅度是可调的。0832(2)用于产生各种波形信号,单片机在波形产生程序的控制下,生成波形样值编码,并送到0832(2)中的锁存器,经过D/A转换,得到波形的模拟样值点,假如N个点就构成波形的一个周期,那么0832(2)输出N个样值点后,样值点形成运动轨迹,就是波形信号的一个周期。重复输出N个点后,由此成第二个周期,第三个周期……。这样0832(2)就能连续的输出周期变化的波形信号。运放A1是直流放大器,运放A2是单极性电压放大器,运放A3是双极性驱动放大器,使波形信号能带得起负载。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、电源电路:功能:为波形发生器提供直流能量;构成由变压器、整流硅堆,稳压块7805组成。220V的交流电,经过开关,保险管(1.5A/250V),到变压器降压,由220V降为10V,通过硅堆将交流电变成直流电,对于谐波,用4700μF的电解电容给予滤除。为保证直流电压稳定,使用7805进行稳压。最后,+5V电源配送到各用电负载。

    标签: 波形发生器 原理图 电路图 源程序

    上传时间: 2013-11-08

    上传用户:685

  • DMA技术 -ppt

    数据传送的控制 数据传送涉及的3个问题1)数据的来源;2)数据的去处;3)数据本身以及如何控制数据的传送。 DMA方式控制的数据传送 DMA传送方式通常用来高速传送大批量的数据块。如:  硬盘和软盘I/O; 快速通信通道I/O; 多处理机和多程序数据块传送; 在图像处理中,对CRT屏幕送数据; 快速数据采集; DRAM的刷新操作。 DMA传送包括:(1)存储单元传送:存储器→存储器。(2)DMA读传送:存储器→I/O设备。(3)DMA写传送:I/O设备→存储器。4.1.2  DMA传送的工作过程 1)I/O设备向DMAC发出DMA请求;2) DMAC向CPU发出总线请求;3)CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号;4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制; 为什么DMA传送方式能实现高速传送?DMA传送的过程是什么样的?画出流程。DMA有哪些操作方式?各有什么特点。简述DMA控制器的两个工作状态的特点。试设计一种在8088大模式下与8237连接的基本电路图。并说明你的设计中8237各个端口的实际地址。DMA控制器的时序包括哪几个状态周期?试画出正常读传输的时序。DMAC的内部地址寄存器是16位的,如何扩展地址来访问16MB的地址空间?

    标签: DMA

    上传时间: 2013-11-18

    上传用户:leixinzhuo

  • 微机总线与接口标准

    3.1 总线与接口概述 3.1.1 总线和接口及其标准的概念  总线:是在模块和模块之间或设备与设备之间的一组进行互连和传输信息的信号线,信息包括指令、数据和地址。   总线标准     指芯片之间、扩展卡之间以及系统之间,通过总线进行连接和传输信息时,应该遵守的一些协议与规范。  接口标准    外设接口的规范,涉及接口信号线定义、信号传输速率、传输方向和拓扑结构,以及电气特性和机械特性等多个方面。 3.1.2 总线的分类 1) 按总线功能或信号类型划分为: 数据总线:双向三态逻辑,线宽表示了总线数据传输的能力。地址总线:单向三态逻辑,线宽决定了系统的寻址能力。控制总线:就某根来说是单向或双向。控制总线最能体现总线特点,决定总线功能的强弱和适应性。2) 按总线的层次结构分为: CPU总线:微机系统中速度最快的总线,主要在CPU内部,连接CPU内部部件,在CPU周围的小范围内也分布该总线,提供系统原始的控制和命令。局部总线:在系统总线和CPU总线之间的一级总线,提供CPU和主板器件之间以及CPU到高速外设之间的快速信息通道。系统总线:也称为I/O总线,是传统的通过总线扩展卡连接外部设备的总线。由于速度慢,其功能已经被局部总线替代。通信总线:也称为外部总线,是微机与微机,微机与外设之间进行通信的总线。3.1.3 总线的主要性能参数1.总线频率:MHz表示的工作频率,是总线速率的一个重要参数。2.总线宽度:指数据总线的位数。3.总线的数据传输率   总线的数据传输率=(总线宽度/8位)×总线频率 例:PCI总线的总线频率为33.3MHz,总线宽度为64位的情况下,总线数据传输率为266MB/s 。

    标签: 微机 总线 接口标准

    上传时间: 2013-11-17

    上传用户:shen954166632