【摘要】通过对基于AVR 的SD 卡数据导出接口设计的描述,在系统总体结构思路基础上,提出系统的硬 件构成,详细分析了软件各部分的功能及实现。本设计在数据存储和交换领域具有很好的应用前景。 【关键词】SD 卡嵌入式系统SPI FAT32 数据库 SD 卡存储介质是一种新的大容量、非易失性外部存储系 统,它的出现提供了一个便宜的、结实的、卡片式的存储媒介。 SD 卡的容量从16 MB 到最高32 GB 不等。容量范围如此之 宽,可为众多应用提供充足的外部存储空间。 SD 卡作为各种消费电子产品外部存储的应用、开发技术 己经非常成熟、广泛。本设计尝试在AVR 单片机上实现对SD 卡读写操作,进而实现对SD 卡上数据库进行读写操作
上传时间: 2013-11-13
上传用户:13925096126
介绍一款单片机存储设备转储器,以C8051F040为核心控制模块,通过外接两个CH375 U盘模块、液晶显示模块及键盘模块等实现两个U盘之间数据的相互转储,很好地解决了U盘内容转储离不开电脑而带来的不便以及容易感染病毒等弊端。C8051F040通过CH375 按照相应的USB协议与USB设备通讯,通过调用CH375提供的子程序库来直接读取U盘中的数据,实现了普通单片机与U盘的通讯,支持常用的12 Mb/s 全速USB设备和1. 5 Mb/s低速设备。该设计方案具有低成本、低功耗、操作简单等特点,将会有广阔的应用前景。
上传时间: 2013-12-17
上传用户:xzt
具有PCI总线等接口形式的采集卡虽然传输速率高,但安装麻烦,易受PC机插槽数量、地址、中断资源的限制。为了解决以上问题,设计了基于ISP1581的高速USB接口的多通道数据采集系统,介绍了系统硬件组成以及软件程序的开发过程。经验证,系统最高传输速率可达60 Mb/s。
上传时间: 2013-10-31
上传用户:ANRAN
FEATURES400 MSPS internal clock speedIntegrated 10-bit DAC32-bit tuning wordPhase noise ≤ –120 dBc/Hz @ 1 kHz offset (DAC output)Excellent dynamic performance>75 dB SFDR @ 160 MHz (±100 kHz offset) AOUTSerial I/O control1.8 V power supplySoftware and hardware controlled power-down48-lead TQFP/EP packageSupport for 5 V input levels on most digital inputsPLL REFCLK multiplier (4× to 20×)Internal oscillator; can be driven by a single crystalPhase modulation capabilityMultichip synchronization
上传时间: 2014-12-04
上传用户:axin881314
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。
上传时间: 2013-10-27
上传用户:wsf950131
arm指令集(1) ARM跳转指令可以从当前指令向前或向后的32MB地址空间跳转。这类跳转指令有以下4种。 (1)B 跳4专指令 B〔条件) (地址) B指令属于ARM指令集,是最简单的分支指令。一旦遇到一个B指令,ARM处理器将立即跳转到给定的地址,从那里继续执行。注意:存储在分支指令中的实际值是相对当前R15的值的一个偏移量,而不是一个绝对地址。它的值由汇编器来计算,是24位有符号数,左移两位后有符号扩展为32位,表示的有效偏移位为26位(+/- 32 MB)。 (2)BL 带返回的跳转指令 BI,〔条件) (地址) BL指令也属于ARM指令集,是另一个分支指令。就在分支之前,在寄存器R14中装载上R15的内容,因此可以重新装载R14到R15中来返回到这个分支之后的那个指令处执行,它是子例程的一个基本但强力的实现。 (3)BLX 带返回和状态切换的跳转指令 BLX <地址> BLX指令有两种格式,第1种格式的BLX指令记作BLX(1)。BLX(1)从ARM指令集跳转到指令中指定的目标地址,并将程序状态切换到Thumb状态,该指令同时将PC寄存器的内容复制到LR寄存器中。 BLX(1)指令属于无条件执行的指令。 第2种格式的BLX指令记作BLX(2)。BLX(2)指令从ARM指令集跳转到指令中指定的目标地址,目标地址的指令可以是ARM指令,也可以是Thumb指令。目标地址放在指令中的寄存器<dest>中,该地址的bit[0]值为0,目标地址处的指令类型由CPSR中的T位决定。该指令同时将PC寄存器的内容复制到LR寄存器中。 (4)BX 带状态切换的跳转指令 BX(条件) (dest) BX指令跳转到指令中指定的目标地址,目标地址处的指令可以是ARM指令,也可以是Thumb指令。目标地址值为指令的值和0xFl·FFFFFF做“与”操作的结果,目标地址处的指令类型由寄存器决定。
上传时间: 2014-12-27
上传用户:laomv123
1、 支持USB 1.1通讯协议;2、 支持高速(Full Speed、12Mbps )和低速(Low Speed、1.5Mbps )传输;3、 6MHz晶体,锁相环PLL振荡器提供高速、低速所需时钟源;4、 支持3个端口(endpoint),可独立编程为IN 或 OUT端口。5、 PS/2:支持PS/2协议(eg.鼠标),与USB复用。
上传时间: 2013-11-03
上传用户:hbsunhui
应用软件根据BYPASS信号的值来决定是否使用PLL。如果使用PLL,那么它总是输出一个200MHz的时钟信号,并且联合系统分频器(SYSDIV)共同产生系统时钟。馈送到PWM模块的时钟由系统时钟提供。如果应用中需要较低的PWM时钟,那么在时钟信号到达PWM模块前可以使用PWM分频器(PWMDIV)先分频。ADC时钟使用一个时钟源(source)为200MHz的常量分频器,这就意味着如果要使ADC时钟的工作频率保持在14-18MHz范围内,必须使能并使用PLL。
上传时间: 2013-10-17
上传用户:hjshhyy
世界著名厂家单片机简介1.Motorola 单片机:Motorola是世界上最大的单片机厂商,品种全,选择余地大,新产品多,在8位机方面有68HC05和升级产品68HC08,68HC05有30多个系列200多个品种,产量超过20亿片.8位增强型单片机68HC11也有30多个品种,年产量1亿片以上,升级产品有68HC12.16位单片机68HC16也有十多个品种.32位单片机683XX系列也有几十个品种.近年来以PowerPC,Codfire,M.CORE等作为CPU,用DSP作为辅助模块集成的单片机也纷纷推出,目前仍是单片机的首选品牌.Motorola单片机特点之一是在同样的速度下所用的时钟较Intel类单片机低的多因而使得高频噪声低,抗干扰能力强,更适合用于工控领域以及恶劣环境.Motorola 8位单片机过去策略是掩膜为主,最近推出OTP计划以适应单片机的发展,在32位机上,M.CORE在性能和功耗上都胜过ARM7.2.Microchip 单片机:Microchip 单片机是市场份额增长最快的单片机.他的主要产品是16C系列8位单片机,CPU采用RISC结构,仅33条指令,运行速度快,且以低价位著称,一般单片机价格都在1美元以下.Microchip 单片机没有掩膜产品,全部都是OTP器件(现已推出FLASH型单片机).Microchip强调节约成本的最优化设计,是使用量大,档次低,价格敏感的产品.3.Scenix单片机:Scenix单片机的I/O模块最有创意.I/O模块的集成与组合技术是单片机技术不可缺少的重要方面.除传统的I/O功能模块如并行I/O,URT,SPI,I2C,A/D,PWM,PLL,DTMF等,新的I/O模块不断出现,如USB,CAN,J1850,最具代表的是Motorola 32位单片机,它集成了包括各种通信协议在内的I/O模块,而Scenix单片机在I/O模块的处理上引入了虚拟I/O的概念. Scenix单片机采用了RISC结构的CPU,使CPU最高工作频率达50MHz.运算速度接近50MIPS.有了强有力的CPU,各种I/O功能便可以用软件的办法模拟.单片机的封装采用20/28引脚.公司提供各种I/O的库函数,用于实现各种I/O模块的功能.这些软件完成的模块包括多路UART,多种A/D,PWM,SPI,DTMF,FSK,LCD驱动等,这些都是通常用硬件实现起来相当复杂的模块.4.NEC单片机:NEC单片机自成体系,以8位机78K系列产量最高,也有16位,32位单片机.16位单片机采用内部倍频技术,以降低外时钟频率.有的单片机采用内置操作系统.NEC的销售策略注重服务大客户,并投入相当大的技术力量帮助大客户开发新产品.5.东芝单片机:东芝单片机从4位倒64位,门类齐全.4位机在家电领域仍有较大市场.8位机主要有870系列,90系列等.该类单片机允许使用慢模式,采用32KHz时钟功耗低至10uA数量级.CPU内部多组寄存器的使用,使得中断响应与处理更加快捷.东芝公司的32位机采用MIPS3000 ARISC的CPU结构,面向VCD,数字相机,图象处理市场.6.富士通单片机:富士通也有8位,16位和32位单片机,但是8位机使用的是16位的CPU内核.也就是说8位机与16位机指令相同,使得开发比较容易.8位机有名是MB8900系列,16位机有MB90系列.富士通注重服务大公司,大客户,帮助大客户开发产品.7.Epson 单片机:Epson公司以擅长制造液晶显示器著称,故Epson单片机主要为该公司生产的LCD配套.其单片机的LCD驱动做的特别好.在低电压,低功耗方面也很有特色.目前0.9V供电的单片机已经上市,不久LCD显示手表将使用0.5V供电.
上传时间: 2014-12-28
上传用户:leyesome
时钟和低功耗模式片内集成有PLL(锁相环)电路。外接的基准晶体+PLL(锁相环)电路共同组成系统时钟电路。有关引脚:XTAL1/CLKIN:外接的基准晶体到片内振荡器输入引脚;如使用外部振荡器,外部振荡器的输出必须接该脚。XTAL2:片内PLL振荡器输出引脚;CLKOUT/IOPE0:该脚可作为时钟输出或通用IO脚;可用来输出CPU时钟或看门狗定时器时钟;由系统控制状态寄存器(SCSR1)中的位14决定。
上传时间: 2013-10-24
上传用户:1159797854