来源:互联网 发布时间:11-15
浏览量:
0 引言
嵌入式系统最初的应用是基于单片机的。随着嵌入式技术的不断发展,具有更高性能、功能强大和意义更广泛的嵌入式产品开始出现。这些真正意义上的嵌入式系统具有速度高、容量大、扩充性能良好、实时性强、并可执行多任务操作系统的特点。嵌入式系统可以完成如网络通信、USB接口、大容量存储等多种功能,因而在仪表行业开始受到重视。随着集成电路的发展,32位处理器的价格不断下降,人们开始用嵌入式系统取代传统的单片机以提高产品性能。为此,设计了基于ARM嵌入式系统的流量计,可以实现大容量的结构化数据存储,并具有良好的数据接口。
1 ARM嵌入式系统简介
嵌入式系统的核心是嵌入式微处理器。在嵌入式系统领域,目前ARM处理器占据高性能、低功耗、低成本的嵌入式应用领域的领先地位。ARM(advanced RISC machine)公司于1990年11月成立于英国,1991年推出首个嵌入式RISC核心-ABM6TM系列处理器,其主要优势在于简单的设计和高效的指令集。此后,ARM的知识产权产品和授权用户都急剧扩大,目前被公认为是业界领先的32位嵌入式RISC微处理器结构,在汽车、消费、网络、存储和工业控制等领域得到广泛应用。
在ARM公司的系列产品中,ABM7TDMI是低功耗的32位核,适用于实时环境。它同时拥有16位压缩指令集Thumb,支持在片调试,能产生全64位结果的增强型乘法器,嵌入式ICE硬件提供在片断点和调试点支持,这些都为产品的开发提供了很好的环境。国内用得普遍的基于ARM7TDMI 核的处理器是韩国SAMSUNG公司的S3C44B0x芯片,它的片上资源非常丰富,在体积小的情况下集成了总线接口、常用设备的控制器、各种外设等器件,其中包括:2.5V供电的ARM7TDMI CPU内核带8KBCache;外部存储控制器(支持FP/EDO/SDRAM/ROM);LCD控制器(最高可至256色DSTN);2通道UART(支持IrDA1.0和16-byte FI-FO);1通道SIO接口和看门狗定时器(WDT);1通道ⅡC-BUS控制器;1通道ⅡS-BUS控制器;71个通用I/O端口和8通道外部中断输入;正常、低速、闲置和停止4种电源控制模式;8通道10-bit ADC输入;带日历功能的实时时钟(RTC)。
本文流量计的开发选用S3C44B0x作为处理器,能完成多种任务,并且有较短的中断响应时间和可扩展的处理器结构,具有较强的保护功能,功耗很低。S3C44B0x是32位处理器,可以实现大容量的数据存储。
2 Flash ROM与大容量存储的实现
在流量测量系统中,除了要求具有瞬时流量指示和积算功能外,还要求知道流量随时间变化的关系,这就需要记录大量的实时数据。实现的方法是在流量二次表中加入微电子存储器。以往这类存储器一般是E2PROM,现在开始使用Flash ROM进行大容量存储。Flash ROM相比E2PROM具有更大容量、可擦可次数多,保存时问更长的特点,在基于嵌入式系统的开发中,大都选用Flash ROM进行数据存储,它可以同时保存系统配置文件、用户程序和数据库文件。本文基于ARM嵌入式流量计开发选用的Flash ROM是AMD公司的Am29LV160DB芯片,它是采用3.0V供电、16MB、可变扇区结构的Flash ROM,每个扇区最低可擦写一百万次,读取时间只有70ns,在高温下数据可保存20年。Am29LV160DB有35个扇区(SA0~SA34),SA0扇区为16k字节空间,SA1和SA2扇区为8k字节空间,SA3扇区为32k字节空间,其余扇区均为64k字节空间,这种结构方式有利于优化内存分配。为消除总线竞争,芯片有独立的片选使能(CE#)、写使能(WE#)和输出使能(OE#)控制端口。为保护片内数据或程序,Am29Lv160DB具有扇区保护和解保护功能。当处于扇区保护功能状态时,片内任何扇区都不能进行编程和擦除操作,这对保证数据安全很有效。Am29LV160DB的功能选项及真值表如表1所示(H表示为高电平,L为低电平)。
表1 Am29LV160DB功能选项及真值表
操作CE#OE#WE#RESET#地址读数据LLHH输入写数据LHLH输入待命状态Vcc——Vcc—输出禁止LHHH—复位———L—扇区保护LHL+12VA0=A6=L,A1=H扇区解保护LHL+12VA1=A6=H,A0=L
3 电路原理图
Am29LV160DB Flash与S3C44B0x CPU的连接如图1所示,两者的数据总线和地址总线分别对应。Am29LV160DB的BYTE#脚用于选择字(16位)或字节(8位)操作方式,图中接高电平选择字操作。WP选择作为扩展口使用,使系统可以和其它芯片兼容。在Flash的实际应用当中,系统地址的映射问题需要特别当心。因为CPU存储控制器的差异,许多CPU要求外部地址线的连接随数据总线的宽度而变化。以S3C44B0x为例,是以固定的字节(8-bit)方式编排地址总线的,即地址线的最低位A0始终寻址以字节为单位的存储单元。当与16-bit数据宽度的Flash相连时,CPU的A0空接而从A1开始与Flash的地址总线连接。另外两者的供电电压也有所区别,Am29LV160DB为3.3V,而S3C44B0x为2.5V。设计中S3C44B0x处理器的供电电压VDD-CPU由Am29LV160DB的输入电源VDD通过降压器件得到。
由于Flash需要不断地存储实时流量数据,必须定时进行擦除和写操作,并且系统需经常读取里面的用户程序,因此Am29LV160DB在硬件上不作扇区保护,数据安全可由软件设置密码实现。
4 软件设计
流量计中需要记录的数据是瞬时流量、累积流量及其对应的时刻(日、时、分),为了方便查阅和调用,在Flash里需要实现结构化存储。Am29LV160DB有35个扇区,数据存储区选择20~30扇区,有704kB的容量,0~19扇区用于存放系统配置文件和用户程序,31~35扇区则用于存放初始化数据及备用。S3C44B0x外部地址总线最大为25位,最大寻址空间则为225=32MB,一共有8个片选引脚分成8个内存等级,所以整个的存储器容量极限是256MB,对于配置Flash来说,S3C44B0x是足够的。如果用户还需更大量的存储,可在此基础上再增加一片Flash。由此可知使用该系统实现大容量存储是很方便的。传统的基于单片机的流量计一般只能存储几十KB的数据,而基于ARM的可达几百KB甚至MB级的数据。
S3C44B0x带有日历功能的实时时钟(RTC),时间数据可以直接从特定的寄存器读出(为BCD码),这样不仅简化了硬件,也使编程简单。Flash的编程是以字为单位的(其长度为Flash的实际使用数据总线长度),而Flash的擦除操作是以扇区为最小单位进行的,Flash不能对单个存储单元进行擦除操作,这是Flash编程特殊的地方。为此要更改Flash里的数据先要把扇区里的数据放至缓冲区进行修改,再重新拷贝至扇区。实现数据存储功能的程序流程图如图2所示。
系统程序包括初始化程序和用户程序。初始化程序是对系统硬件进行初始化配置,类似计算机系统中的BIOS设置,由汇编语言编写。初始化程序的内容有看门狗、时钟控制寄存器、中断、存储控制寄存器和堆栈等初始化设置。
5 结束语
本文提出了基于ARM的流量计实现大容量数据存储的方法,该方法使用了先进的嵌入式系统硬件设计,简化了系统结构,解决了大容量的数据结构化存储问题,执行效率高。并且由于ARM嵌入式系统性能优异,可进行网口及多串口传输,为仪表充分利用网络和USB资源进行数据链接提供了基础。
参考文献
1 Steve Furber.ARM SoC 体系结构.田泽,等译.北京:北京航空航天大学出版社。2OO2
2 王田苗.嵌入式系统设计与实例开发.北京:清华大学出版社,2002
3 S3C44BOX ARM开发板使用说明.上海:复旦金海博科技有限公司.2002
4 马忠梅.ARM嵌入式处理器与嵌入式系统.电子世界,2003,(3)
上一篇 : 暂无 下一篇 : 烤地瓜机 烤地瓜机烤地瓜的原理
版权声明:
1.华商贸易网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味 着赞同其观点或证实其内容的真实性。
2.如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系邮箱:me@lm263.com