第2章系统硬件设计与开发整个系统的硬件设计分为加速度信号采集电路、无线传输电路、ARM系统电路三部分。2.1硬件电路总体结构根据系统的目标和基本技术指标,并结合MEMS加速度传感器的特点,选用Freescal公司的MMA7261QT三轴加速度传感器用于加速度信号的采集。采用STC12C5410AD单片机作为信号采集部分的MCU,其内部自带的8路10位高速A/D转换器,很好得保证了传感器端输出端模拟信号的A/D转换精度。无线传输部分采用2.4GHz无线收发一体芯片nRF2401,它与STC单片机采用模拟SPI方式通信。加速度信号处理模块的ARM微处理器采用三星公司的S3C44B0X,对无线模块接收到的加速度数据作相应的处理,可得到速度、位移等信息。系统结构图如图2.1所示:2.2加速度信号采集模块本设计采用Freeseale公司的MEMS三轴加速度传感器MMA7261QT测量人体运动时的加速度信号,并用宏晶科技的微控制器STC12C5410AD作为核心控制器,控制其内置的模数转换器对加速度信号进行采样,被转换为数字信号后,由nRF2401无线模块将数据传输至ARM系统。2.2.1MEMS三轴加速度传感器MMA7261QT简介MEMS(MicroElectroMechanicalSystems),即微电子机械系统是建立在微米/纳米技术基础上的21世纪前沿技术,是指对微米/纳米材料进行设计、加工、制造、测量和控制的技术。近年来,由于MEMS技术的迅猛发展,各种基于MEMS的加速度传感器也应运而生,目前已经得到了广泛的应用。它们有着体积小、质量轻、成本低、功耗低、可靠性高等特点,而且因为其加工工艺一定程度上与传统的集成电路工艺兼容,易于实现数字化、智能化以及批量生产,因而从问世起就引起了广泛关注,并且在汽车、医药、导航和控制、生化分析、工业检测等方面得到了较为迅速的应用。本设计中采用的是飞思卡尔(Freescal)公司的MEMS三轴加速度传感器MMA7261QT。MMA7261QT低成本微型电容式加速度传感器采用了信号调理、单极低通滤波器和温度补偿技术,并且提供4个量程可选,用户可在4个灵敏度中的选择。该器件带有低通滤波并已做零g补偿并且还提供休眠模式,因而是电池充电的手持设备产品的理想之选[24]。MMA7261QT具有高敏感度、低噪声、高清晰度和高准确性的特点,其应用包括高级步程计,可测量步行中人的脚步运动、距离和速度,允许根据多种不同应用和功能选择敏感度。本设计中采用MMA7261QT测量人体运动时三维的加速度信号。◆MMA7261QT特性如下:◆可选灵敏度(2.5g/3.3g/6.7/10g);◆低功耗:500μA;◆休眠模式:3μA;◆低压运行:2.2V-3.6V;◆6mm×6mm×1.45mm的无引线四方扁平(QFN)封装;◆快速开启:1ms;◆高灵敏度(2.5g);◆低通滤波器具备内部信号调理;◆设计稳定、防震能力强;MMA7261QT的功能如图2.2所示。X、Y、Z三个相互垂直方向上的加速度G-Cel传感单元感知,经过容压变换器、增益放大、滤波器和温度补偿后以电压信号输出。MMA7261QT的三个相互垂直的传感方向如图2.3所示。其引脚配置如表2.1所示:2.2.2加速度传感器与MCU接口电路在加速度信号的采集中,首先使用MMA7261QT获得三维加速度信号,然后传送给STC12C5410AD进行处理。STC12C5410AD是宏晶科技的STC12系列单片机,其特征如下:◆采用RISC型CPU内核,兼容普通8051指令集;◆片内含有10KBFlash程序存储器,2KBFlash数据存储器,512BRAM数据存储器;同时内部还有看门狗(WDT);◆片内集成MAX810专用复位电路、8通道l0位ADC以及4通道PWM;◆具有可编程的8级中断源4种优先级;◆具有在系统编程(ISP)和在应用编程(IAP);◆片内资源丰富、集成度高、使用方便;由于MMA7261QT和STC12C5410AD都具有很高的集成度,因而使得系统的硬件设计大大简化。在MMA7261QT与STC12C5410AD的接口中,首先要解决噪声问题。因为MMA7261QT内部采用了开关电容滤波器,有时钟噪声产生,所以需要在MMA7261QT的XOUT、YOUT和ZOUT三个输出端分别接RC滤波器。电路设计原理如图2.4所示。MMA7261QT输出的加速度信号是模拟信号,必须将其转换为数字信号。因此,必需要MMA7261QT的输出电压和微控制器STC12C5410AD内置的模数转换器输入电压范围的问题。MMA7261QT的X轴、Y轴以及Z轴的输出电压均在STC12C5410AD的I/O口电压允许范围之内,满足其输入要求,因此MMA7261QT的三轴输出经过滤波处理后可以直接与STC12C5410A相连接。由于MMA7261QT固有的内部采样频率为11kHz,设计电路时其外部电源供电开关频率及STC12C5410AD的A/D采样频率都应不与之干扰,以防产生混叠误差。为了更准确的获取步态加速度信号,在硬件电路实现时,还应保证MMA7261QT与STC12C5410AD的物理连接距离最短,以减少寄生电阻、寄生电容的产生,防止加速度信号的衰减和噪声的干扰。2.3ARM系统电路2.3.1S3C44B0X简介本设计选用16/32位RISC(ReducedInstructionSetComputer)微处理器S3C44BOX作为信号处理部分的主控制器,它是一款由Samsung公司为手持设备和一般类型应用设计的低功耗、高度集成的基于ARM7TDMI核的微处理器。S3C44B0X提供了丰富的内置部件,包括:8KBcache,内部SRAM,LCD控制器,带自动握手的2通道UART4通道DMA,系统管理器(片内逻辑,FP/EDO/SDRAM控制器),带有PWM功能的5通道定制器,I/O端口,RTC,8通道10位ADC,IIC-BUS接口,同步SIO接口和PLL倍频器。S3C44B0X使用ARM7TDMI内核,采用0.25μmCMOS工艺制造,它的低功耗和全静态设计特别适用于对低成本和功耗敏感的应用。S3C44B0X还采用一种新的总线结构,即SAMBALL(三星ARMCPU嵌入式微处理器总线结构)。其工作频率66MHz,包括Thumb代码压缩器,片上ICE调试支持和一个32位硬件乘法器。S3C44B0X通过全面、通用的片上外围接口,大大减少了系统中除处理器以外的元器件配置,从而使系统的成本大大降低。S3C44B0X具有非常丰富的片上资源,非常适合嵌入式产品的开发。其各种片上功能如下:◆采用ARM7TDMI内核,I/O电压3.3V,内核电压2.5V;◆内置存储器控制器;◆LCD控制器(高至256色DSTN),并有1通道LCD专用DMA;◆2通道通用DMA或2通道外设DMA,并有外部请求信号的引脚;◆1通道多主IIC总线控制器及1通道US总线控制器;◆5通道PWM定时器及1通道内部定时器;◆内置锁相环(PLL),系统主频最高达66MHz;◆4种工作模式,可以实现电源管理以降低系统功耗;◆8KB的系统高速缓存(CACHE),极大地提高了系统运行速度;◆支持8个MEMORYBANK256MB,内置SDRAM控制器,可直接外接SDRAM达64MB;◆71个通用I/O口;◆实时时钟(RTC)和看门狗电路(WATCHDOG);◆功耗控制:具有普通、慢速、空闲和停止模式;◆8通道10位ADC;其内部结构如图2.5所示:2.3.2复位电路复位电路主要完成系统的上电复位和系统在运行时的按键复位功能。所以在功能上复位电路分为两类:一种即电源复位,即外部的复位电路在系统上电后自动复位;另一种是在复位电路设计按键开关,通过按键开关触发复位电平,从而控制处理器的复位。在实际设计过程中,复位电路是容易受噪声干扰的敏感部位,当复位串入干扰时,大多数情况下不会造成错误复位,但会引起CPU内部的某些寄存器和接口电路错误复位。因此,复位电路的条件是既要保证整个系统的可靠复位,又要考虑复位电路具有良好的抗干扰能力。本系统的复位电路如图2.6所示。该复位电路工作原理为:当系统上电时,通过电阻R10向电容E5充电,当E5电压未达到高电平的门限电压时,nRESET端输出为低电平,系统处于复位状态;当E5两端的电压达到高电平的门限电压时,RESET输出为高电平,系统进入正常工作状态。当按键K1被按下时,E5两端的电荷被泄放掉,nRESET端输出为低电平,系统进入复位状态,再重复以上的充电过程,系统进入正常工作状态。二极管D2能在电源掉电时使电容E5迅速放电,在电源恢复正常时实现可靠复位。避免了由于电源瞬间掉电而电容不能迅速放电而引起的不可靠复位,导致程序运行失控,造成“程序乱飞”和“死循环气。两级或门电路用于按钮去抖动和波形整形,通过调整E5和R10的参数,可调整复位状态的时间。2.3.3SDRAM及FLASH电路1.SDRAM电路SDRAM具有单位空间存储容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。SDRAM没有掉电保持数据的特性,不能长久保存数据。但其存取速度大大高于Flash存储器,且具有可翻写的属性。因此,SDRAM在系统中主要用作程序的运行空间、数据及堆栈区。◆SDRAM的选择当系统启动时,CPU首先从复位地址0x0处读取启动代码。在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在SDRAM中。若要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,否则就必须在系统中另外加入刷新控制逻辑电路。S3C44BOX及其他一些ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM接口。◆SDRAM接口设计由于S3C44BOX内部没有提供RAM储空间,需要扩展。在本系统中选用了HY57V641620,它的存储组织方式为4Bank×16×1M,工作电压为3.3V,常见封装为54脚TSOP,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。其接口原理如图2.7所示:S3C44B0X内部的存储器控制部件提供了专门与SDRAM器件接口的控制信号线,因此,对SDRAM的读和写都不需要特殊编程操作。只需要很据选所择的存储器件的特性,在系统初始化时对S3C44B0X的相关寄存器进行设置即可。HY57V641620的数据接口为DQ15-DQ0,为16位,所以地址线也要偏移一位。SDRAM映射在Bank6中,因此SDRAM的起始地址为0X0C000000。在系统进入C语言段之前,Bootloader要对S3C44B0X的寄存器控制器进行初始化。其中包括对与SDRAM相关的寄存器的初始化,使得SDRAM能够正常工作。由于C语言程序段使用的数据空间和堆栈空间都定位在SDRAM上,因此,如果没有对SDRAM进行正确初始化,系统也就无法正确启动。2.FLASH电路S3C44BOX自身不具有ROM,因此必须外接ROM器件来存储掉电后仍需要保存的代码和数据。闪速存储器(FlashMemory)结合了OTP存储器的成本优势和EPROM的可再编程性能,具有非易失性,并且可轻易擦除,因此得到了越来越广泛的应用。本系统采用的Flash芯片是SST公司的SST39VF1601,该芯片是1M×16位CMOS工艺制造的Flash存储器,无论是读操作,擦除操作还是写操作,该芯片都较一般Flash省电,由于Flash所记忆的信息不易丢失,因此特别适合应用于嵌入式系统。Flash主要是用于代替ROM,必要时,还可以存储部分重要数据。SST39VF1601与S3C44BOX的连接较为简单,只需要采用标准总线接口进行交互,并将其CE(片选使能)、OE(输出使能)和WE(写使能)与S3C44BOX的相应管脚相连即可。其连接电路图如图2.8所示。在本设计中,Flash存储器在系统中用于存放系统启动代码Bootloader,即使系统断电