?

基于SPI總線接口的FRAM設計

2014-05-30 10:48房健
中國高新技術企業·綜合版 2014年5期
關鍵詞:單片機

房健

摘要:文章的研究內容是對數據讀取和存儲基于SPI總線接口的FRAM設計。文章采用了C8051F系列單片機作為微處理器,存儲芯片采用的是FM25V10芯片,并且都具有SPI總線接口,經過多次實驗得出的結果是以SPI為總線接口的FRAM設計能夠滿足其要求,并且傳輸速度快。

關鍵詞:SPI總線;單片機;總線接口;FRAM設計

中圖分類號:TP333 文獻標識碼:A 文章編號:1009-2374(2013)14-0011-03

隨著科技的進步,電子技術的發展,在電子、工程控制、通信等行業內,單片機的應用范圍也越來越廣,而它的外圍芯片接口應用也變得越來越重要。針對于一些記錄測控的數據,記錄通信的數據,都需要不掉電存儲方式,所以不掉電存儲也成為了控制系統中不可或缺的一個部分。在存儲芯片的發展過程中,有很多產品誕生,如E2PROM或閃速存儲作為存儲介質,則速度較慢;在實時性要求較高的場合常采用電池支持的SRAM,它既有RAM的讀寫速度,又有ROM掉電數據不丟失的特性,但是電池支持的SRAM在實際使用過程中數據不可靠,容易丟失,且電池容易受到環境因數的影響;而RAMTRON公司研制的鐵電存儲成功解決了電池的問題,由于具有幾乎無限次數擦寫、高速讀寫、低功耗、數據能掉電保持等特點而廣泛地應用在各種控制系統中。本文采用C8051F單片機對FRAM芯片的讀寫操作,從而完成了對于系統的參數及數據保存功能。

1 C8051F單片機的SPI總線接口

C8051F單片機微處理器具有SPI接口,所以可以和FM25V10直接通過SPI總線進行連接,并且SPI總線的速度完全可以達到要求。SPI總線只需四條線就可以完成MCU與各種外圍器件的通訊,分別為:串行時鐘線(CSK)、主機輸入/從機輸出數據線(MISO)、主機輸出/從機輸入數據線(MOSI)、低電平有效從機選擇線(CS)。當SPI工作時,在移位寄存器中的數據逐位從輸出引腳(MOSI)輸出(高位在前),同時從輸入引腳(MISO)接收的數據逐位移到移位寄存器(高位在前)。傳輸完一個字節之后,該字節便會進入到接收器件的移位寄存器中,這樣就可以完成了兩個器件之間的數據交換,SPI總線的主機的時鐘信號來確保本次傳輸的同步,當SPI被配置為主器件時,最大數據傳輸率(位/秒)是系統時鐘頻率的二分之一。當SPI被配置為從器件時,如果主器件與系統時鐘同步發出SCK、NSS和串行輸入數據,則全雙工操作時的最大數據傳輸率(位/秒)是系統時鐘頻率的十分之一。

2 FM25V10的工作原理及其特點

FRAM是靠材料特性來保存數據,這種材料并非磁性材料,所以從原理上講,磁場對數據是沒有影響的,在實際中,電場對數據也沒有影響,所以其抗干擾能力強。在復雜環境中可以記錄一些重要的數據,由于它的擦寫次數多,所以可以記錄每一個數據脈沖。

鐵電存儲器FRAM的特點:(1)具有非易失性,掉電后數據可以保存45年左右;(2)擦寫次數很多,5V供電的FRAM的擦寫次數多達10000億次;(3)速度快,串口總線的FRAM的CLK的頻率最高可達20M,沒有等待寫周期,并口的訪問速度70ns;(4)功耗較低,靜態電流小于10uA,讀寫電流小于150uA。

電路的工作環境會涉及到強電和弱點之間的轉換和一定的電磁干擾,設計選用Ramtron公司的FM系列鐵電存儲器。

FM25V10為2M位的非易失性鐵電隨機存儲器,結構容量為256K×8位,無限次的讀寫次數,掉電數據保持10年,寫數據無延時,采用快速SPI串行協議,最高速度可以達到40M的總線速度。硬件上有完善的寫保護,同時軟件也可以進行寫保護。工作電壓:2.7~3.6V,靜態工作電流:5uA。

3 FRAM與C8051F單片機的SPI硬件設計

由于FM25V10與其他的SPI設備一樣,可以直接掛在SPI總線接口上,本文采用的是SPI的四線接口,因此需要額外的片選信號NSS,/HOLD和/WP直接連接到高電平上,所以不進行硬件保護操作和暫停操作,硬件連接如圖1、單片機相應的端口分配如表1所示。

4 軟件流程及其程序的編寫

數據存儲及讀取模塊軟件的程序設計主要對象是鐵電存儲器FM25V10,通過對單片機內部集成的A/D采集模塊進行數據的采集,并將數據進行實時的存儲在鐵電存儲器FM25V10中,并且在存儲結束后將數據讀取出來,通過通信模塊將數據傳輸給上位機。

數據的存儲及讀取過程中是通過SPI總線方式進行傳輸的,該方式可以有效地對數據進行快速、準確的存儲及讀取。C8051F單片機中的SPI提供了一個靈活的四線全雙工串行總線,SPI所使用的4個信號分別是:MOSI、MISO、SCK、NSS。

該程序的編寫主要分為兩部分:一部分是對FM25V10的數據存儲程序的編寫;另一部分是對FM25V10的數據讀取程序的編寫。在對FM25V10的操作過程中,我們要根據FM25V10手冊中所提供的操作碼來操作,而且還要根據手冊中提供的程序時序圖來編寫程序。表2是FM25V10手冊所提供的操作碼。

對于軟件的編程之前,首先要把要編寫程序的基本流程畫出來,可以更清晰地了解程序的主要內容及其工作流程,圖2就是本文中的讀寫數據軟件流程。

下邊是用到的最基本的程序塊,包含了三個方面:數據的寫入、數據的讀取、地址的自動加一。

(1)將R0數據寫入到SPI端口寄存器:

SPI_write:

CLR SPIF

MOV SPI0DAT,R0

JNB SPIF,$

CLR SPIF

RET

(2)讀取SPI端口寄存器中的數據到R0:

SPI_read:

CLR SPIF

MOV SPI0DAT,#00H

JNB SPIF,$

CLR SPIF

MOV R0,SPI0DAT

RET

(3)地址自動加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 結語

通過對硬件電路進行設計及相對應的軟件編程實現了數據的存儲和讀取功能,完成了基于SPI串口總線的單片機對FRAM存儲芯片的讀寫操作,完成了實時參數及其數據保存功能,通過實驗可以說明數據通信穩定可靠。由于FM25V10存儲芯片具有重復擦寫、非易失性等特點,所以目前采用SPI總線接口的芯片越來越多,在儀器儀表、工業控制、數字家電等方面普遍得到應用。本文采用的C5051F單片機SPI接口,該方法也可以適用于其他帶SPI接口電路的微處理器。

參考文獻

[1] 洪亮,鄢萍,易潤忠.基于SPI和單片機的嵌入式系統擴展方法[J].微型電腦應用,2008,24(9).

[2] 汪永琳,丁一.一種3線制半雙工SPI接口設計[J].集成電路設計與開發,2010,35(5).

[3] 宋曄,蔡慧,趙榮祥.采用SPI接口實現TMS3230F240DSP之間的通信[J].機電工程,2005,22(5).

[4] 楊瑞帆,郭曉鵬,崔順.基于C8051F330D單片機的多路數據采集系統設計[J].電子測試,2010,(4).

[5] 馮金霞,張輪,熊天圣.基于SPI接口的異步串口擴展技術研究[J].微型電腦應用,2009,25(12).

[6] 賈偉,邵左文,張玉猛.基于SPI總線的高速串行數據采集系統設計[J].國外電子測量技術,2007,26(4).

(責任編輯:周加轉)

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
基于單片機的層次漸變暖燈的研究
基于單片機的多功能智能插排
基于單片機的便捷式LCF測量儀
小議PLC與單片機之間的串行通信及應用
MSP430單片機在仿真中要注意的幾點問題
基于單片機的平衡控制系統設計
基于單片機的三維LED點陣設計
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合