房健
摘要:文章的研究?jī)?nèi)容是對(duì)數(shù)據(jù)讀取和存儲(chǔ)基于SPI總線接口的FRAM設(shè)計(jì)。文章采用了C8051F系列單片機(jī)作為微處理器,存儲(chǔ)芯片采用的是FM25V10芯片,并且都具有SPI總線接口,經(jīng)過(guò)多次實(shí)驗(yàn)得出的結(jié)果是以SPI為總線接口的FRAM設(shè)計(jì)能夠滿足其要求,并且傳輸速度快。
關(guān)鍵詞:SPI總線;單片機(jī);總線接口;FRAM設(shè)計(jì)
中圖分類號(hào):TP333 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-2374(2013)14-0011-03
隨著科技的進(jìn)步,電子技術(shù)的發(fā)展,在電子、工程控制、通信等行業(yè)內(nèi),單片機(jī)的應(yīng)用范圍也越來(lái)越廣,而它的外圍芯片接口應(yīng)用也變得越來(lái)越重要。針對(duì)于一些記錄測(cè)控的數(shù)據(jù),記錄通信的數(shù)據(jù),都需要不掉電存儲(chǔ)方式,所以不掉電存儲(chǔ)也成為了控制系統(tǒng)中不可或缺的一個(gè)部分。在存儲(chǔ)芯片的發(fā)展過(guò)程中,有很多產(chǎn)品誕生,如E2PROM或閃速存儲(chǔ)作為存儲(chǔ)介質(zhì),則速度較慢;在實(shí)時(shí)性要求較高的場(chǎng)合常采用電池支持的SRAM,它既有RAM的讀寫(xiě)速度,又有ROM掉電數(shù)據(jù)不丟失的特性,但是電池支持的SRAM在實(shí)際使用過(guò)程中數(shù)據(jù)不可靠,容易丟失,且電池容易受到環(huán)境因數(shù)的影響;而RAMTRON公司研制的鐵電存儲(chǔ)成功解決了電池的問(wèn)題,由于具有幾乎無(wú)限次數(shù)擦寫(xiě)、高速讀寫(xiě)、低功耗、數(shù)據(jù)能掉電保持等特點(diǎn)而廣泛地應(yīng)用在各種控制系統(tǒng)中。本文采用C8051F單片機(jī)對(duì)FRAM芯片的讀寫(xiě)操作,從而完成了對(duì)于系統(tǒng)的參數(shù)及數(shù)據(jù)保存功能。
1 C8051F單片機(jī)的SPI總線接口
C8051F單片機(jī)微處理器具有SPI接口,所以可以和FM25V10直接通過(guò)SPI總線進(jìn)行連接,并且SPI總線的速度完全可以達(dá)到要求。SPI總線只需四條線就可以完成MCU與各種外圍器件的通訊,分別為:串行時(shí)鐘線(CSK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(MISO)、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(MOSI)、低電平有效從機(jī)選擇線(CS)。當(dāng)SPI工作時(shí),在移位寄存器中的數(shù)據(jù)逐位從輸出引腳(MOSI)輸出(高位在前),同時(shí)從輸入引腳(MISO)接收的數(shù)據(jù)逐位移到移位寄存器(高位在前)。傳輸完一個(gè)字節(jié)之后,該字節(jié)便會(huì)進(jìn)入到接收器件的移位寄存器中,這樣就可以完成了兩個(gè)器件之間的數(shù)據(jù)交換,SPI總線的主機(jī)的時(shí)鐘信號(hào)來(lái)確保本次傳輸?shù)耐剑?dāng)SPI被配置為主器件時(shí),最大數(shù)據(jù)傳輸率(位/秒)是系統(tǒng)時(shí)鐘頻率的二分之一。當(dāng)SPI被配置為從器件時(shí),如果主器件與系統(tǒng)時(shí)鐘同步發(fā)出SCK、NSS和串行輸入數(shù)據(jù),則全雙工操作時(shí)的最大數(shù)據(jù)傳輸率(位/秒)是系統(tǒng)時(shí)鐘頻率的十分之一。
2 FM25V10的工作原理及其特點(diǎn)
FRAM是靠材料特性來(lái)保存數(shù)據(jù),這種材料并非磁性材料,所以從原理上講,磁場(chǎng)對(duì)數(shù)據(jù)是沒(méi)有影響的,在實(shí)際中,電場(chǎng)對(duì)數(shù)據(jù)也沒(méi)有影響,所以其抗干擾能力強(qiáng)。在復(fù)雜環(huán)境中可以記錄一些重要的數(shù)據(jù),由于它的擦寫(xiě)次數(shù)多,所以可以記錄每一個(gè)數(shù)據(jù)脈沖。
鐵電存儲(chǔ)器FRAM的特點(diǎn):(1)具有非易失性,掉電后數(shù)據(jù)可以保存45年左右;(2)擦寫(xiě)次數(shù)很多,5V供電的FRAM的擦寫(xiě)次數(shù)多達(dá)10000億次;(3)速度快,串口總線的FRAM的CLK的頻率最高可達(dá)20M,沒(méi)有等待寫(xiě)周期,并口的訪問(wèn)速度70ns;(4)功耗較低,靜態(tài)電流小于10uA,讀寫(xiě)電流小于150uA。
電路的工作環(huán)境會(huì)涉及到強(qiáng)電和弱點(diǎn)之間的轉(zhuǎn)換和一定的電磁干擾,設(shè)計(jì)選用Ramtron公司的FM系列鐵電存儲(chǔ)器。
FM25V10為2M位的非易失性鐵電隨機(jī)存儲(chǔ)器,結(jié)構(gòu)容量為256K×8位,無(wú)限次的讀寫(xiě)次數(shù),掉電數(shù)據(jù)保持10年,寫(xiě)數(shù)據(jù)無(wú)延時(shí),采用快速SPI串行協(xié)議,最高速度可以達(dá)到40M的總線速度。硬件上有完善的寫(xiě)保護(hù),同時(shí)軟件也可以進(jìn)行寫(xiě)保護(hù)。工作電壓:2.7~3.6V,靜態(tài)工作電流:5uA。
3 FRAM與C8051F單片機(jī)的SPI硬件設(shè)計(jì)
由于FM25V10與其他的SPI設(shè)備一樣,可以直接掛在SPI總線接口上,本文采用的是SPI的四線接口,因此需要額外的片選信號(hào)NSS,/HOLD和/WP直接連接到高電平上,所以不進(jìn)行硬件保護(hù)操作和暫停操作,硬件連接如圖1、單片機(jī)相應(yīng)的端口分配如表1所示。
4 軟件流程及其程序的編寫(xiě)
數(shù)據(jù)存儲(chǔ)及讀取模塊軟件的程序設(shè)計(jì)主要對(duì)象是鐵電存儲(chǔ)器FM25V10,通過(guò)對(duì)單片機(jī)內(nèi)部集成的A/D采集模塊進(jìn)行數(shù)據(jù)的采集,并將數(shù)據(jù)進(jìn)行實(shí)時(shí)的存儲(chǔ)在鐵電存儲(chǔ)器FM25V10中,并且在存儲(chǔ)結(jié)束后將數(shù)據(jù)讀取出來(lái),通過(guò)通信模塊將數(shù)據(jù)傳輸給上位機(jī)。
數(shù)據(jù)的存儲(chǔ)及讀取過(guò)程中是通過(guò)SPI總線方式進(jìn)行傳輸?shù)?,該方式可以有效地?duì)數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的存儲(chǔ)及讀取。C8051F單片機(jī)中的SPI提供了一個(gè)靈活的四線全雙工串行總線,SPI所使用的4個(gè)信號(hào)分別是:MOSI、MISO、SCK、NSS。
該程序的編寫(xiě)主要分為兩部分:一部分是對(duì)FM25V10的數(shù)據(jù)存儲(chǔ)程序的編寫(xiě);另一部分是對(duì)FM25V10的數(shù)據(jù)讀取程序的編寫(xiě)。在對(duì)FM25V10的操作過(guò)程中,我們要根據(jù)FM25V10手冊(cè)中所提供的操作碼來(lái)操作,而且還要根據(jù)手冊(cè)中提供的程序時(shí)序圖來(lái)編寫(xiě)程序。表2是FM25V10手冊(cè)所提供的操作碼。
對(duì)于軟件的編程之前,首先要把要編寫(xiě)程序的基本流程畫(huà)出來(lái),可以更清晰地了解程序的主要內(nèi)容及其工作流程,圖2就是本文中的讀寫(xiě)數(shù)據(jù)軟件流程。
下邊是用到的最基本的程序塊,包含了三個(gè)方面:數(shù)據(jù)的寫(xiě)入、數(shù)據(jù)的讀取、地址的自動(dòng)加一。
(1)將R0數(shù)據(jù)寫(xiě)入到SPI端口寄存器:
SPI_write:
CLR SPIF
MOV SPI0DAT,R0
JNB SPIF,$
CLR SPIF
RET
(2)讀取SPI端口寄存器中的數(shù)據(jù)到R0:
SPI_read:
CLR SPIF
MOV SPI0DAT,#00H
JNB SPIF,$
CLR SPIF
MOV R0,SPI0DAT
RET
(3)地址自動(dòng)加1:
DPTR_INC:
INC DPTR_LL
MOV A,#00H
CJNE A,DPTR_LL,DPTR_RET
INC DPTR_HL
MOV A,#00H
CJNE A,DPTR_HL,DPTR_RET
INC DPTR_HH
DPTR_RET:
RET
5 結(jié)語(yǔ)
通過(guò)對(duì)硬件電路進(jìn)行設(shè)計(jì)及相對(duì)應(yīng)的軟件編程實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)和讀取功能,完成了基于SPI串口總線的單片機(jī)對(duì)FRAM存儲(chǔ)芯片的讀寫(xiě)操作,完成了實(shí)時(shí)參數(shù)及其數(shù)據(jù)保存功能,通過(guò)實(shí)驗(yàn)可以說(shuō)明數(shù)據(jù)通信穩(wěn)定可靠。由于FM25V10存儲(chǔ)芯片具有重復(fù)擦寫(xiě)、非易失性等特點(diǎn),所以目前采用SPI總線接口的芯片越來(lái)越多,在儀器儀表、工業(yè)控制、數(shù)字家電等方面普遍得到應(yīng)用。本文采用的C5051F單片機(jī)SPI接口,該方法也可以適用于其他帶SPI接口電路的微處理器。
參考文獻(xiàn)
[1] 洪亮,鄢萍,易潤(rùn)忠.基于SPI和單片機(jī)的嵌入式系統(tǒng)擴(kuò)展方法[J].微型電腦應(yīng)用,2008,24(9).
[2] 汪永琳,丁一.一種3線制半雙工SPI接口設(shè)計(jì)[J].集成電路設(shè)計(jì)與開(kāi)發(fā),2010,35(5).
[3] 宋曄,蔡慧,趙榮祥.采用SPI接口實(shí)現(xiàn)TMS3230F240DSP之間的通信[J].機(jī)電工程,2005,22(5).
[4] 楊瑞帆,郭曉鵬,崔順.基于C8051F330D單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子測(cè)試,2010,(4).
[5] 馮金霞,張輪,熊天圣.基于SPI接口的異步串口擴(kuò)展技術(shù)研究[J].微型電腦應(yīng)用,2009,25(12).
[6] 賈偉,邵左文,張玉猛.基于SPI總線的高速串行數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2007,26(4).
(責(zé)任編輯:周加轉(zhuǎn))
中國(guó)高新技術(shù)企業(yè)·綜合版2013年5期