电子课程设计
传统的数据采集系统由于数据传输速率比较低,数据量比较小,一般可以完成实时分析和处理,所以存储问题并不突出,但高速高精度数据采集系统的数据传输速率很高并且数量很大,采集速度到达一定的限度就无法进行实时分析和处理,这是需要选择适当的存储方式就行存储。
高速高精度数据采集系统的存储要解决两方面的问题,一是存储器的低存储速度与A/D转换器数据端口的高输出速率的匹配问题。二是存储器的容量要大,其原因是高速数据采集会在很短时间内产生巨大的数据流,存储系统的容量应满足设计要求。解决A/D转换器与存储器之间的速度匹配问题有两个:一是对高速A/D的数据进行锁存,二是对数据进行高速存储。本设计采用的是对高速的数据进行锁存。选择的芯片是SST39VF160 Flash Rom。
SST39VF160是2MB的Flash芯片,芯片供电电压为2.7~3.6V,符合JEDEC标准输出引脚,可擦写100000个周期,数据保存能力达100年。擦除时间分别为:扇区擦除时间与块擦除时间都是18ms,片擦除时间70ms。利用翻转或数据采集来确定编程是否完成。芯片内部结构与电路图如3-8图所示。
页脚内容16
电子课程设计
Flash存储体X-解码器内存地址地址缓冲器与锁存器Y型解码器CE#OE#WE#RESETDQ15-DQ0控制逻辑I/O缓冲和数据锁存
图3-8 SST39VF1630芯片内部结构图
通过利用微处理器对SST39VF160进行写命令字节的形式来进行数据的读写操作。保持CE#信号低的同时拉低WE#信号写入命令字节,在WE#或CE#信号的下降沿(有出现最晚的来确定)锁存地址总线,而数据总线在WE#或CE#(有出现最早的来确定)信号上升沿被锁存。
本设计是以SST39VF160为设计芯片,详细的介绍在S3C44B0X上进行Flash ROM接口设计。Flash ROM接口设计首先应该确定硬件电路连接,然后设置好S3C44B0X存储器,再按照命令字读、擦除、写操作Flash。本节编写了SectorErase()扇区,BlockErase ()块和ChipErase()芯片擦除函数,以及一个
页脚内容17
电子课程设计
测试主函数来验证读写擦除操作是否正确。
Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行。因此,应将存有程序代码的Flash存储器配置到ROM/SRAM的Bank0位置,即将S3C44B0X的nGCS0的引脚接至SST39VF160的n CE引脚;SST39VF160的nOE引脚接S3C44B0X的nOE引脚;nWE引脚接S3C44B0X的nWE;由于SST39VF160的数据宽度是16位。所以将S3C44B0X的引脚OM1接地,OM0通过一上拉电阻接+3.3V,使其工作在16位模式;将SST39VF160的地址总线A19~A0与S3C44B0X的地址总线ADDR1~ADDR20相连,地址线偏移了一位,这是因为S3C44B0X是按字节编址的,而SST39VF160的数据是以每一个16位作为一个数据单元;16位数据总线DQ15~DQ0与S3C44B0X的低16位数据总线DATA31~DATA16相连。Flash的地址空间为0x00000000~0x000FFFFF。与S3C44B0X芯片连接电路如图3-9。
页脚内容18
电子课程设计
ADDR17484746U4ADDR16ADDR15ADDR14ADDR13ADDR12ADDR11ADDR10ADDR9ADDR20nWEnRESETVDDADDR19ADDR18ADDR8ADDR7ADDR6ADDR5123456789101112131415161718192021A16NCVssA3A2A1A15A14A13A12A11A10A9A8A19NCWE#RST#NCWP#NCA18A17A7A6A5A4SST39VF160DQ15DQ7DQ14DQ6DQ13DQ5DQ12DQ4VDDDQ11DQ3DQ10DQ2DQ9DQ1DQ8DQ0OE#VssCE#A0454443424140393837363534333231302928272625DATA31DATA23DATA30DATA22DATA29DATA21DATA28DATA20DATA27DATA19DATA26DATA18DATA25DATA17DATA24DATA16nOEnGCS0ADDR1SST39VF1601
ADDR4ADDR3ADDR2222324 图3-9 Flash ROM连接电路图
其引脚功能描述为: SCLK:系统时钟; nSCS:片选; SCKE:时钟使能;
A0~A11:行/列地址复用线; BA0~BA1:BANK选通地址;
页脚内容19
电子课程设计
SRAS:行地址使能。
3.3.2 硬件和存储器设置
由于ARM是32位处理器,以字节为单位编制,数据处理可以以32位进行,存储方式有大小端之分。在这里,将ARM芯片上的EDIAN端接地,选取小段存储方式。SST39VF160是16位数据宽度的,因此还必须设置ARM数据总线宽度,即设置OM[1:0]为01,将Bank0数据总线宽度设置成16位。
BANKCON0寄存器设置中包含了Tacs、Tcos、Tacc、Toch、Tcah、Tpac和PMC7个参数。对它们的设置分别为(此程序段在BootLoader的配置程序中)。
Bank 0 Parameters
B0_Tacs EQU 0x0 ; 0个时钟周期
B0_Tcos EQU 0x0 ; 0个时钟周期
B0_Tacc EQU 0x6 ; 6个时钟周期
B0_Toch EQU 0x0 ; 0个时钟周期
页脚内容20