位置:51电子网 » 技术资料 » 存 储 器

基于VxWorks的FLASH存储器实时存取管理方案

发布时间:2007/9/11 0:00:00 访问次数:1004

来源:微计算机信息   作者:王凯 宋华伟 杭德全


[摘 要]: VxWorks操作系统提供文件系统来访问和管理Flash 存储器,这种方式不能满足实时写入和系统可控的要求。本文提出一种通过接管系统时钟中断来控制Flash Memory读写操作和基于管理区的简单可控文件管理方案,实现移动通信系统在不影响业务模块运行的前提下,满足对实时性和可控性要求。


[关键词]:闪存;系统时钟;中断;文件系统;


1. 引言
cdma2000 1x移动通信系统的基站主处理机采用WindRiver公司VxWorks嵌入式实时操作系统,选用FLASH 存储器(以下简称FLASH)作为外部存储设备保存系统参数和业务数据。

FLASH与普通磁介质存储器最大的差异在于写操作方式不同,其写操作相对于普通磁盘是比较慢的过程,消耗掉大量的CPU资源。FLASH基于命令字的写操作方式导致的写入错误,虽然几率很小但实际上是存在的。而商用VxWorks操作系统提供的dosFs文件系统和专用TrueFFS文件系统对该情况处理不足,并且用户没有相应的源码,系统一旦出现写操作错误,将不可控制,降低了系统的可控性。所以,有必要对FLASH的存取操作加以改进或控制,并设计一套相对应的专用FLASH文件管理方案,满足系统可控性的要求。


2. 存取设计
FLASH写操作基于命令字方式完成,分为擦除(erase)和编程(program)两个阶段。由于FLASH的编程指令只能使“1”改为“0”,擦除指令只能使“0”改为“1”,而且,擦除操作不能在字节或任意数据区域进行,而必须是一个完整的扇区,所以向FLASH某位置写入数据时,要先擦除目标位置所在扇区的所有数据,然后才能进行编程操作。实际上,只须向特定的寄存器写入标准的指令序列,具体的擦除和编程过程就可由内部嵌入的算法执行。
                                                                           
2.1 设计思想
通常,FLASH写操作指令下达后,由驱动程序完成命令字的设置。此时,数据被临时存储于FLASH的锁存器中,但系统仍需要保持数据总线直到写入操作终止或完成才释放。一个扇区的擦除是十几毫秒的时间,一个字节的写入是几微秒的时间,可以看到,数据总线的占用过程消耗了大量的CPU时间。这部分资源的节约对于嵌入式实时系统来说是必要的。操作系统完全可以在设置写操作命令字后释放数据总线,退出FLASH操作,把擦除/编程过程的CPU时间用来执行其他指令,等当前命令字执行完毕后,通过某个事件的触发,使CPU跳转回来设置下一个命令字。这就是改进FLASH操作过程的设计思想。

2.2 实现过程

触发事件选择和跳转周期长短的控制是问题解决的关键,即在一个命令字操作完成后,选用什么方式来触发下一个命令字操作。可以考虑的方式主要有扫描方式和中断方式。

通过扫描方式,当应用程序完成一次完整的处理周期时,扫描某个标志状态,判断FLASH写入操作是否进行完成。如果完成,则再次设置命令字进行操作。由于程序处理周期取决于应用层业务处理时间,这种方式会导致触发周期不固定。

采用中断方式,可以通过设置中断频率来控制触发周期。但必须选择合适的中断源,使其精度达到要求并且对系统没有额外的影响。由于基站系统采用外部GPS时钟,系统的单板时钟闲置,其精度对于FLASH操作是足够的,所以可以考虑选择CPU时钟中断。问题在于VxWorks对该中断是否有使用。实际上,VxWorks通过该时钟中断完成系统记数器,从而在其基础上实现系统定时器,看门狗定时器,任务分时调度等功能组件。因此,接管时钟中断,必须在修改时钟频率同时,保证操作系统所需的系统记数器频率不变。
 
VxWorks提供sysClkConnect()函数允许时钟中断发生时,根据指定参数挂接用户定义的中断处理程序,中断处理完成后由用户程序返回。VxWorks提供的usrClock()函数是系统缺省时钟中断处理函数,用来调用计数器函数tickAnnounce(),实现系统计数器的作用。时钟中断频率

来源:微计算机信息   作者:王凯 宋华伟 杭德全


[摘 要]: VxWorks操作系统提供文件系统来访问和管理Flash 存储器,这种方式不能满足实时写入和系统可控的要求。本文提出一种通过接管系统时钟中断来控制Flash Memory读写操作和基于管理区的简单可控文件管理方案,实现移动通信系统在不影响业务模块运行的前提下,满足对实时性和可控性要求。


[关键词]:闪存;系统时钟;中断;文件系统;


1. 引言
cdma2000 1x移动通信系统的基站主处理机采用WindRiver公司VxWorks嵌入式实时操作系统,选用FLASH 存储器(以下简称FLASH)作为外部存储设备保存系统参数和业务数据。

FLASH与普通磁介质存储器最大的差异在于写操作方式不同,其写操作相对于普通磁盘是比较慢的过程,消耗掉大量的CPU资源。FLASH基于命令字的写操作方式导致的写入错误,虽然几率很小但实际上是存在的。而商用VxWorks操作系统提供的dosFs文件系统和专用TrueFFS文件系统对该情况处理不足,并且用户没有相应的源码,系统一旦出现写操作错误,将不可控制,降低了系统的可控性。所以,有必要对FLASH的存取操作加以改进或控制,并设计一套相对应的专用FLASH文件管理方案,满足系统可控性的要求。


2. 存取设计
FLASH写操作基于命令字方式完成,分为擦除(erase)和编程(program)两个阶段。由于FLASH的编程指令只能使“1”改为“0”,擦除指令只能使“0”改为“1”,而且,擦除操作不能在字节或任意数据区域进行,而必须是一个完整的扇区,所以向FLASH某位置写入数据时,要先擦除目标位置所在扇区的所有数据,然后才能进行编程操作。实际上,只须向特定的寄存器写入标准的指令序列,具体的擦除和编程过程就可由内部嵌入的算法执行。
                                                                           
2.1 设计思想
通常,FLASH写操作指令下达后,由驱动程序完成命令字的设置。此时,数据被临时存储于FLASH的锁存器中,但系统仍需要保持数据总线直到写入操作终止或完成才释放。一个扇区的擦除是十几毫秒的时间,一个字节的写入是几微秒的时间,可以看到,数据总线的占用过程消耗了大量的CPU时间。这部分资源的节约对于嵌入式实时系统来说是必要的。操作系统完全可以在设置写操作命令字后释放数据总线,退出FLASH操作,把擦除/编程过程的CPU时间用来执行其他指令,等当前命令字执行完毕后,通过某个事件的触发,使CPU跳转回来设置下一个命令字。这就是改进FLASH操作过程的设计思想。

2.2 实现过程

触发事件选择和跳转周期长短的控制是问题解决的关键,即在一个命令字操作完成后,选用什么方式来触发下一个命令字操作。可以考虑的方式主要有扫描方式和中断方式。

通过扫描方式,当应用程序完成一次完整的处理周期时,扫描某个标志状态,判断FLASH写入操作是否进行完成。如果完成,则再次设置命令字进行操作。由于程序处理周期取决于应用层业务处理时间,这种方式会导致触发周期不固定。

采用中断方式,可以通过设置中断频率来控制触发周期。但必须选择合适的中断源,使其精度达到要求并且对系统没有额外的影响。由于基站系统采用外部GPS时钟,系统的单板时钟闲置,其精度对于FLASH操作是足够的,所以可以考虑选择CPU时钟中断。问题在于VxWorks对该中断是否有使用。实际上,VxWorks通过该时钟中断完成系统记数器,从而在其基础上实现系统定时器,看门狗定时器,任务分时调度等功能组件。因此,接管时钟中断,必须在修改时钟频率同时,保证操作系统所需的系统记数器频率不变。
 
VxWorks提供sysClkConnect()函数允许时钟中断发生时,根据指定参数挂接用户定义的中断处理程序,中断处理完成后由用户程序返回。VxWorks提供的usrClock()函数是系统缺省时钟中断处理函数,用来调用计数器函数tickAnnounce(),实现系统计数器的作用。时钟中断频率

相关IC型号

热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!