基于C8051F340的非易失大容量數(shù)據(jù)存儲方案
C8051F340片上集成SMBus端口。SMBus完全符合系統(tǒng)管理總線規(guī)范1.1版,并與I2C串行總線兼容。連接在I2C總線上的器件,SCL和 SDA應該為漏極開路或集電極開路輸出,當總線空閑時,這2條線都被拉到高電平。所以,在配置C8051F340端口時,把SDA、SCL配置為漏極開路輸出。為了使開漏極電路輸出“l”時SDA和SCL應是高電平而不是高阻態(tài),這就需要加上拉電阻。圖2為AT24C1024與C805lF340的硬件連接圖。對AT24C1024的操作編程,與一般I2C類似,遵循I2C通信協(xié)議。以寫操作為例,其流程圖如圖3所示。讀操作與此類似。
2.3 應用舉例
此電路用于小型的海洋溫度計,在采樣率為1/6 Hz、采樣精度16位的情況下,可連續(xù)存儲109 h左右。小型溫度計以體積小,重量輕等特點使其方便在海上進行多點多深度布設,用于測試水下溫度場的一天連續(xù)變化。但是AT24C1024存取速率較低,僅適合于低速存取的場合。在某些系統(tǒng)中還用于存儲系統(tǒng)配置參數(shù)和保存系統(tǒng)工作日志。
3 SHI接口擴展M25P64
3.1 SPI總線
串行外圍接口SPI總線可分為3線和4線工作方式,支持在同一總線上掛接多個主器件和從器件。SPI收發(fā)獨立,可同步進行,通信速率比較高。
3.2 M25P64及與C8051F340的軟硬件設計
M25P64是低功耗、大容量串行Flash存儲器其存儲空間為64 MB,由32 768個頁面組成,每個頁面為256字節(jié)。支持頁編程(256字節(jié)),扇區(qū)擦除(512 KB)和塊擦除(64MB)。最高時鐘頻率50 MHz;可循環(huán)使用100 000次;保存數(shù)據(jù)年限超過20年;該存儲器工作于3/4線串行總線方式,可擴展更大容量的存儲空間。
對M25P32的讀寫可以直接將M25P64與C8051F340的GPIO口連接,采用GPIO口模擬SPI接口時序的方法。使用C8051F340的片上SPI控制接口,將引腳C與單片機輸出時鐘對接,數(shù)據(jù)輸出Q與MISO對接,數(shù)據(jù)輸入D與MOSI對接,片選信號與NSS對接,如圖4所示。
C805lF340上電后首先對硬件接口進行初始化,把端口設置為SPI特殊功能。C8051F340通過讀寫SPI數(shù)據(jù)寄存器(SPIDATO)實現(xiàn)在 SPI通信線上的數(shù)據(jù)收發(fā)。因此,對M25P64的讀寫和擦除可歸結為,按照M25P64數(shù)據(jù)資料上的命令表,往SPIDAT0里寫入命令和數(shù)據(jù),程序流程的控制
通過判斷從SPIDAT0讀出的狀態(tài)寄存器位。
3.3 應用實例
此存儲電路中M25P64占用的I/O口線較少。M25P64相比于AT24C1024附加了片選信號,并且數(shù)據(jù)輸入和輸出線分開,使存儲電路的抗干擾性有所提高,降低了軟件設計難度。M25P64在硬件實現(xiàn)上基于移位寄存器,所以通信速率較高,達到微秒級。此存儲電路已成功應用于開發(fā)的湍流觀測儀器樣機。
4 GPIO口擴展K9WAG08UOA
C8051F340上未被交叉開關分配的端口引腳和未被模擬外設使用的端口引腳都可以作為通用I/O。在設計C8051F340,若不把選定的引腳配置為特殊功能,它就默認為通用I/O,利用這些引腳來擴展K9WAG08UOA。
4.1 K9WAG08UOA的特性
K9WAG08UOA是NAND-Flash架構的Flash,單電源2.70~3.60 V供電,內部存儲空間為(1 G+32 M)x8 B,數(shù)據(jù)寄存器為(2 K+64)x8 B,可進行任意字節(jié)單元的讀操作(最長25μs),(128 K+4 K)B的塊擦除和(2 K+64)B的頁編程(200μs典型時間)。容量上可堪比一般的SD卡和U盤,讀寫速度也很快。
4.2 K9WAG08UOA與C8051F340的硬件連接
C8051F340與K9WAG08UOA的連接方法如圖5所示。K9WAG08UOA的命令、數(shù)據(jù)、地址均通過8根I/O線傳輸,31位地址分5次寫入地址寄存器,其內部譯碼確定塊號、塊內頁號、頁內字節(jié)號后尋址相應的單元,比相同容量的并行存儲器節(jié)省了23根地址線。地址線的減少簡化了電路設計,同時也提高了編程的復雜程度。指令、地址從I/O寫入時,把拉低,配合CLE和ALE信號線實現(xiàn)I/O口上指令和地址復用。
評論