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