基于MSP430FR 系列MCU 的多功能雙接口存儲器設(shè)計
摘要
本文引用地址:http://2s4d.com/article/201809/388244.htm在許多嵌入式系統(tǒng)中通常會需要外接存儲器保存數(shù)據(jù),例如EEPROM。由于傳統(tǒng)的存儲器具有功能單一、接口固定、擦寫次數(shù)有限的特點從而限制了存儲器的應(yīng)用場景和范圍。
本文介紹了一種基于TI 新一代MSP430FR 系列MCU 來實現(xiàn)多功能雙接口存儲器的方法。相比傳統(tǒng)存儲器 (例如FLASH,SRAM,EEPOM),F(xiàn)RAM集合了更多的優(yōu)勢,擁有更強大的功能。利用MCU 的靈活性,用戶可以設(shè)計出功能強大,接口靈活的多功能存儲器,用來替代傳統(tǒng)嵌入式系統(tǒng)中的EEPROM和RTC 等功能。
1 前言
從2011 年起,TI(德州儀器)公司先后推出了近20 款帶FRAM的MSP430 系列MCU – MSP430FRXX。與傳統(tǒng)的MCU 相比,該系列MCU 采用新一代的FRAM替代了FLASH 和SRAM。由于FRAM具有讀寫時間快,使用壽命長,非易失性,功耗低,抗干擾力強等特點,可以用它來實現(xiàn)傳統(tǒng)FLASH+SRAM+EEPROM 實現(xiàn)有困難,或功耗,速度,成本三者難以協(xié)調(diào)的應(yīng)用。本文介紹的多功能雙接口存儲器方案,除了實現(xiàn)低功耗快速存儲的功能外,還包括RTC,硬件看門狗,AES 數(shù)據(jù)加/解密,接口擴展等功能。
2 功能介紹
2.1 MSP430FRXX 系列
MCU簡介
TI 公司最新一代MSP430FRXX系列MCU 采用了FRAM作為代碼和數(shù)據(jù)存儲器,替代傳統(tǒng)MCUFLASH+SRAM 的結(jié)構(gòu),并且其FRAM帶有分區(qū)管理和ECC 校驗功能,增強存儲器可靠性,F(xiàn)RAM運行時的低功耗特性,將MCU 的功耗降低至100uA/MHz。除了FRAM外與SCI/IIC/SPI/GPIO/ADC/CMP/TIMER 圖2.1 MSP430FRxx 內(nèi)部框圖等普通外設(shè)外,其還增加了AES 硬件加解密模塊,32 位硬件乘法器等,其余性能指標(biāo)可詳見[1]。
圖2.1 MSP430FRxx 內(nèi)部框圖
2.2 FRAM 簡介
FRAM (Ferroelectric Random Access Memory) 鐵電存儲器是新一代的非易失性高速低功耗存儲器,和傳統(tǒng)的FLASH/EEPROM 存儲器相比FRAM具有非常明顯的優(yōu)勢:
• 速度快-FRAM的寫入時間比Flash/EEPROM快1000 倍以上, FRAM寫入一個字節(jié)僅耗時50ns,而FLASH 至少耗時75us,EEPROM更是長達(dá)5ms。
• 功耗低-由于FRAM的工作電壓只有1.5V,相比FLASH/EEPROM 存儲器需要一個升壓器把電壓升到9-12V,操作FRAM的功耗僅有后者1%或者更低。
• 抗干擾力強-由于FRAM 工作僅需要很少的能量,故FRAM工作起來更加穩(wěn)定,不會出現(xiàn)FLASH 存儲器的“Data-tearing”現(xiàn)象。
• 耐久性強(讀/寫次數(shù))-FRAM的讀/寫周期數(shù)為一百萬億次 (10E15) ,而通常的FLASH/ EEPROM 只有一百萬次 (10E6) 。
2.3 MSP430FRXX 系列MCU中FRAM 管理器簡介
為了能夠充分發(fā)揮FRAM速度快,功耗低,掉電不易失,耐久性強的特點, MSP430FR5969 同時為其配置了同樣強大的存儲器管理單元。
MSP430FRXX 系列MCU 對FRAM的管理可分為兩部分:MPU和FRAM controller。
MPU 是存儲器保護單元,其可提供FRAM的分區(qū)配置和讀/寫/執(zhí)行權(quán)限獨立控制。如果發(fā)生越權(quán)讀/寫/執(zhí)行,F(xiàn)RAM會受到保護,同時產(chǎn)生錯誤中斷通知MCU,進(jìn)行相應(yīng)的操作。
圖2.2 FRAM controller 與 MPU 結(jié)構(gòu)圖
FRAM控制器主要提供FRAM的操作方式管理,ECC 校驗和Cache 功能。
ECC 校驗可糾正1bit 的錯誤和檢測2bit 以上的錯誤。 Cache 擁有2 個64bit 的緩沖區(qū),當(dāng)要處理的數(shù)據(jù)小于8 字節(jié)時,CPU 可直接操作Cache,提高系統(tǒng)效率。
2.4 多功能雙接口存儲器系統(tǒng)功能簡介
本文以MSP430FR5969 為例,介紹如何設(shè)計多功能雙接口的存儲器,該存儲器支持1 個I2C 接口,2 路SPI 接口,2KByte SRAM,AES 加/解密,硬件看門狗,RTC 等功能,兩路SPI 可同時訪問該存儲器設(shè)備。
MSP430FR5969 的功能框圖如下:
圖2.3 MSP430FR5969 功能框圖
利用MSP430FR5969 豐富的外設(shè),強大的運算能力和FRAM的存儲特點能設(shè)計出功能強大的多接口存儲器,其特點包括:
• 64KByte FRAM 非易失性存儲器 (代碼大約占用8KByte FRAM空間);
ÿÿÿÿÿÿÿÿÿÿ• 2KByte SRAM掉電不保存存儲器 (程序占用大約1KByte SRAM);
• 支持一個I2C 接口訪問,最大支持速率為100Kbps;
• 最大支持2 路SPI 接口同時訪問;
• 支持8 路GPIO 擴展功能,提供上升/下降沿中斷接口;
• 支持128-Bit、192-Bit、256-Bit 硬件AES 加密/解密模塊;
• 獨立的RTC 模塊,提供實時時鐘;
• 2 路看門狗定時器輸出;
• 可編程電壓檢測器;
2.5 多功能雙接口存儲器系統(tǒng)典型應(yīng)用簡介
與傳統(tǒng)的雙接口存儲器相比,使用MSP430FRXX 實現(xiàn)的雙端口存儲器不僅可實現(xiàn)非常高的數(shù)據(jù)吞吐率(最高到125Kbyte/s),同時提供數(shù)據(jù)加密,增加其傳輸?shù)陌踩?。存儲器的擦寫壽命也可從一般的十萬次提高到一百萬億次,動態(tài)功耗也從2mA 左右下降到100uA 左右。
如下圖所示,是雙接口存儲器應(yīng)用的典型系統(tǒng),使用MSP430FRXX 實現(xiàn)后,存儲容量可從典型的2Kbyte 擴展到48Kbyte。同時除了實現(xiàn)外部的雙端口存儲器,還可以將加密芯片,外部RTC,外部WDT 等功能集成在一起實現(xiàn),使系統(tǒng)結(jié)構(gòu)更優(yōu)化,更簡潔。
圖2.4 雙接口存儲器應(yīng)用場景示意圖
除了上文所述的典型雙接口存儲器應(yīng)用之外,使用MSP430FRXX 系列MCU 設(shè)計的系統(tǒng)還可以同時提供替代存儲,增強系統(tǒng)Watchdog,RTC,數(shù)據(jù)加密等功能。故本文同時發(fā)現(xiàn)在許多其他的應(yīng)用中同樣可以使用該方案,提高系統(tǒng)的集成度,優(yōu)化系統(tǒng)的硬件設(shè)計,提高系統(tǒng)軟件的靈活性。比如模塊化的數(shù)據(jù)采集與發(fā)布系統(tǒng),以及基于BLE 的快速數(shù)據(jù)傳輸系統(tǒng)。
正如下圖所示,其是一個典型的模塊化數(shù)據(jù)采集與發(fā)布系統(tǒng)。整個系統(tǒng)分為主控制板,前端數(shù)據(jù)采集或發(fā)布板,人機交互板和無線數(shù)據(jù)傳輸板組成。由于這種模式的應(yīng)用(例如,工業(yè)現(xiàn)場多種探測器數(shù)據(jù)采集系統(tǒng),分布式廣播信息發(fā)布系統(tǒng)等),有一個重要的特點,系統(tǒng)的功能配置需要根據(jù)實際環(huán)境的需要,能夠靈活的調(diào)整模塊種類,增減模塊數(shù)量。故通常在工程上,會將其高度模塊化,各個模塊均用同一的串行總線(UART,IIC 或者SPI 等)進(jìn)行通信。
圖2.5 模塊化的數(shù)據(jù)采集與發(fā)布系統(tǒng)
在主控板上,均需要多個串行接口的MCU(通常要求支持到8 個UART/IIC/SPI 及以上),同時有數(shù)據(jù)加密的要求,外部RTC 支持,外部看門狗等,以及EEPROM存儲自身和外接模塊配置信息。此時便可以使用MSP430FR59XX 系列MCU+一顆擁有多串行接口的MCU 實現(xiàn)主控制板的功能,優(yōu)化系統(tǒng)的設(shè)計。
在無線數(shù)據(jù)傳輸板上,其同樣需要EEPROM存儲模塊配置信息的數(shù)據(jù)和數(shù)據(jù)加密功能,同時其一般要求有32KB-64KB 的緩存,由于內(nèi)置RAM32KB-64KB 的MCU 通常在此板上性價比不高,通常會使用外擴RAM 或者FIFO 實現(xiàn),現(xiàn)在也可通過使用MSP430FR59XX 系列MCU 將這四個功能進(jìn)行整合,在提升系統(tǒng)功能的情況下,簡化系統(tǒng)設(shè)計。
在人機交互板上,主要部分是LCD 及按鍵和LED 的控制支持,同時需要EEPROM存儲模塊信息數(shù)據(jù)。此時便可以使用MSP430FR57XX 系列MCU 簡化系統(tǒng)的設(shè)計,而且FRAM可當(dāng)做SRAM 使用的特性,還可以根據(jù)需求合理分配FRAM的數(shù)據(jù)/代碼/存儲等空間。
在前端數(shù)據(jù)采集或發(fā)布板上,因為其需要有經(jīng)常性的數(shù)據(jù)擦寫操作,故其需要的MCU 特點是代碼量不大,但是臨時數(shù)據(jù)量很大,故通常要求MCU 的FLASH 在32KB 左右,而RAM 需要16KB-23KB,在這種情況下,一般基于FLASH 的MCU 很難進(jìn)行選型,此時MSP430FR59XX 系列MCU 可以非常好的解決這個問題,同時還可以省去外部存儲模塊信息的EEPROM。
通過優(yōu)化后的系統(tǒng)框圖如下圖所示,可以看出使用MSP430FRXX 系列MCU 后,系統(tǒng)的硬件設(shè)計得到了優(yōu)化,同時面對小FLASH,大RAM這樣的MCU 選型難題時,獲得了很好的解決;再有就是MSP430FRXX 系列MCU 自帶的功能強大的RTC,數(shù)據(jù)加解密,WDT 等功能也提到了系統(tǒng)的集成度和性能。
圖2.6 MSP430FRXX 系列MCU 模塊化的數(shù)據(jù)采集與發(fā)布系統(tǒng)中的應(yīng)用
再例如在如下所示的BLE 數(shù)據(jù)傳輸系統(tǒng)中,當(dāng)數(shù)據(jù)傳輸量較大時,要選擇一顆RAM 非常大的MCU,通常性價比不高。故通常會用到雙接口的存儲器,這樣可以選擇數(shù)據(jù)處理性能更好的MCU 加一個外接的存儲器實現(xiàn)。如果使用MSP430FR59XX,則可以實現(xiàn)存儲的功能外,還可以同時實現(xiàn)RTC 與外部WDT,提高系統(tǒng)的可靠性。特別是對于需要數(shù)據(jù)加密的要求時,可以不修改系統(tǒng)硬件,直接實現(xiàn)。
圖2.7 BLE 無線數(shù)據(jù)傳輸系統(tǒng)
綜上可知,MSP430FRXX 系列MCU 設(shè)計的多功能雙接口存儲器,可廣泛的應(yīng)用在有快速數(shù)據(jù)傳輸,經(jīng)常性數(shù)據(jù)擦寫,以及數(shù)據(jù)加密要求的應(yīng)用中。其不僅可發(fā)揮FRAM速度快已配置的特點,還可給系統(tǒng)帶來RTC,外部看門狗,數(shù)據(jù)加解密等功能。其為系統(tǒng)提供了強大的數(shù)據(jù)存儲吞吐能力,優(yōu)化了系統(tǒng)硬件設(shè)計,增強了系統(tǒng)擴展功能,解決了小FLASH,大RAM 的MCU 選型等問題。
3 系統(tǒng)設(shè)計
3.1 系統(tǒng)框圖
基于MSP430FR6969 MCU 設(shè)計多功能雙接口存儲器的系統(tǒng)框圖如下:
圖3.1 基于MSP430FR5969 的多功能存儲器系統(tǒng)框圖
• 配置內(nèi)部數(shù)字振蕩器(DCO)工作在8MHz 最高主頻,為MCLK,SMCLK 分別提供8MHz 的時鐘源;
• 配置eUSCI_A0,eUSCI_A1 分別工作在SPI 接口從模式,采用MCLK 作為時鐘源,最大支持1Mbps 的通信速率;
• 配置eUSCI_B0 工作為I2C 接口從模式,7-BIT 地址,MCLK 時鐘源,最大支持100Kbps 的通信速率
• 配置2 個DMA 通道從FRAM存儲器傳輸數(shù)據(jù)到eUSCI_A0 和eUSCI_A1,實現(xiàn)SPI 接口的數(shù)據(jù)的接收,無需CPU 參與;
• 配置1 個DMA 通道從FRAM存儲器傳輸數(shù)據(jù)到eUSCI_B0,實現(xiàn)I2C 接口的數(shù)據(jù)的接收,無需CPU 參與;
• Port3 配置為GPIO 擴展端口,支持上升/下降沿中斷;
• 使能硬件AES 加密模塊,實現(xiàn)AES 加密/解密功能;
• 使能TIMERA0 工作在連續(xù)模式,利用CCP0 和CCP1 實現(xiàn)2 路WDT 定時器輸出;
• 使能ADC 模塊,配置TIMERA1 工作在定時器模式觸發(fā)ADC 采樣,實現(xiàn)電壓檢測功能,最大支持2 個電壓點的檢測;
• 使能RTC 模塊,實現(xiàn)RTC 功能。
3.2 管腳定義
按照3.1 的功能規(guī)劃,選擇40QFN 封裝的MSP430FR5969,可對其管腳分配如下。
• 圖3.2 MSP430FR5969 引腳分配
3.3 存儲器分配
MSP430FR5969 片上支持64Kbytes 的FRAM存儲器,其尋址范圍為:
0x4400~0x13FFF; 由于MSP430 的復(fù)位地址為0xFFFF, 故該地址和中斷向量表
把存儲器分為兩部分: 0x4400~0xFF7F, 0x1000~0x13FFF。
在本文的設(shè)計中按照下表來分配FRAM存儲器:
根據(jù)上表的存儲器空間規(guī)劃可得出存儲器分配圖,如下圖所示:
圖3.3 MSP430FR5969 FRAM 存儲器分配
MSP430FR5969 的SRAM 存儲器容量共有2kBytes,其尋址空間為0x1C00-0x23FF,劃分出1K 作為AES 加密/解密模塊使用,具體的RAM 空間劃分如下:
具體的SRAM 空間功能劃分如下圖所示:
圖3.4 MSP430FR5969 SRAM 存儲器分配
3.4 功能模塊配置
MSP430FR5969 實現(xiàn)的多功能雙接口存儲器的各個功能都可以進(jìn)行使能和配置,其配置參數(shù)保留在0xF800~0xFF7F 功能模塊配置區(qū)。配置寄存器規(guī)劃如下表:
3.5 系統(tǒng)配置寄存器
功能模塊使能寄存器:FUNCITON_EN,基地址0xF800,偏移地址0x0000。該寄存器用來定義本設(shè)備使能的功能模塊,共16BIT,低8BIT 表示功能模塊的使能/關(guān)閉。
3.6 I2C 接口說明
系統(tǒng)支持1 路I2C 接口訪問。I2C 接口數(shù)據(jù)格式為7BIT 地址,8BIT 數(shù)據(jù),START 信號后的一個字節(jié)是設(shè)備地址,后兩字節(jié)為寄存器地址。該接口參照I2C 總線的讀寫操作規(guī)范設(shè)計,最高支持100Kbps 的通信速率。
設(shè)備共有4 個7 位I2C 設(shè)備地址,分別對應(yīng)4 個不同的功能模塊,如下表所示:
各功能模塊的寄存器描述詳見各功能模塊的介紹,I2C 設(shè)備地址可根據(jù)需
要按照I2C 協(xié)議規(guī)范規(guī)定的器件地址規(guī)則更改。
3.7 SPI 接口說明
系統(tǒng)支持最多2 個SPI 接口同時訪問,接口SPI0 初始化為開啟,接口SPI1可由用戶開啟或者關(guān)閉。
SPI 接口由9 個基本命令字進(jìn)行操作控制,這9 個基本命令字可以通過SPI總線控制系統(tǒng)。SPI 模式為CS 下降沿啟動,MOSI/MISO 上升沿采集,MSB。則MOSI 引腳上數(shù)據(jù)的第一個字節(jié)為命令字,后續(xù)字節(jié)為數(shù)據(jù)。
命令字的長度為一個字節(jié),根據(jù)其意義與操作不同,后續(xù)會有跟隨地址字節(jié),數(shù)據(jù)字節(jié)和偽字節(jié)。所有的傳輸必須在CS 引腳的上升沿之前完成,所有的讀命令都可以在任意時鐘位完成,所有的寫、編程、擦除命令在一個字節(jié)的邊界后才完成,否則命令將不起作用。當(dāng)芯片正在被編程、擦除或?qū)懭霠顟B(tài)寄存器的時候,除了“讀狀態(tài)”命令,其它所有的指令都會被忽略直到擦寫周期完成。SPI 操作狀態(tài)寄存器S7~S0 指示當(dāng)前SPI 操作的狀態(tài),用戶可以通過讀/寫狀態(tài)命令來訪問該寄存器。
4 功能模塊設(shè)計
4.1 鐵電(FRAM)存儲器
在本系統(tǒng)中,將MSP430FR5969 片上FRAM存儲器地址的
0x6400~0xE3FF 共32Kbytes 范圍設(shè)計成專用的FRAM存儲器。將該段存儲器分成8 個頁面,每個頁面4Kbytes。主機可以通過I2C 或SPI 訪問這個區(qū)域的存儲器。
4.2 RTC 模塊
4.2.1 功能描述
RTC 模塊實現(xiàn)實時時鐘、日歷功能,其提供一個可編程的時鐘輸出,一個中斷輸出。具體功能如下:
• BCD 格式輸出秒、分、時、星期、月、年;
• 支持512HZ,256HZ 兩種可編程輸出頻率;
•支持校準(zhǔn)邏輯,按照+4-PPM 或-2-PPM 的步長進(jìn)行精度校準(zhǔn)。
4.2.2 RTC 模塊寄存器描述
RTC 模塊有16 個8 位寄存器,一個可自動增量的地址寄存器。所有16 個
寄存器設(shè)計成可尋址的8 位并行寄存器,但不是所有位都有用。當(dāng)一個RTC 寄
存器被讀時,所有計數(shù)器的內(nèi)容將被鎖存,在傳送條件下,可以防止對時鐘/日
歷數(shù)據(jù)的誤操作。RTC 模塊寄存器說明見下表:(基地址 : 0xE400)
4.3 AES 加密模塊
數(shù)據(jù)加密是存儲應(yīng)用系統(tǒng)的重要功能,可一定程度保護數(shù)據(jù)在存儲和傳輸中的安全,但是由于一般加密功能都需要大量的加法,乘法,移位的數(shù)學(xué)和邏輯運算,會給系統(tǒng)帶來巨大的性能和功耗挑戰(zhàn)。MSP430FR5969 自帶的硬件AES 模塊則解決了功能與功耗的矛盾,通過硬件方式,在不增加CPU 負(fù)擔(dān)的情況下,有硬件實現(xiàn)速度更快,并且降低系統(tǒng)的功耗。
MSP430FR5969 的AES 加密模塊可提供128BIT 數(shù)據(jù)的128BIT,192BIT 或者256BIT 長度的密鑰加密和解密(FIPS PUB 197 標(biāo)準(zhǔn))。其加/解密性能如下表:
4.3.1 AES 加密/解密模塊寄存器列表(基地址 : 0xF400)
4.3.2 AES 加密/解密模塊控制寄存器(偏移地址 : 0x00)
4.4 電壓檢測器模塊
本設(shè)備通過MSP430FR5969 內(nèi)部12BIT 高精度ADC 實現(xiàn)電壓檢測功能,
TIMER1 用來定時觸發(fā)ADC 轉(zhuǎn)換,并根據(jù)轉(zhuǎn)換結(jié)果設(shè)置相應(yīng)的報警引腳。本設(shè)
計中最大支持兩路電壓檢測。
4.4.1 電壓檢測模塊寄存器描述(基地址 : 0xF000)
4.4.2 電壓檢測模塊控制寄存器(偏移地址 : 0x00)
4.4.3 電壓檢測模塊電壓門限寄存器 VTRIPNX(16Bit)
4.5 WDT模塊
本系統(tǒng)利用MSP430FR5969 的TIMERA0 實現(xiàn)一個外部看門狗功能。支持最大兩個看門狗輸出。 本設(shè)計中采用片上 VLO(10KHz)作為TIMERA0 的時鐘源,設(shè)置TIMERA0 工作在連續(xù)模式,用戶設(shè)置WDT0_VALx 來配置看門狗的周期。當(dāng)TIMERA0 計數(shù)值到達(dá)WDT0_VALx 時,設(shè)置對應(yīng)的看門狗輸出管腳。用戶向看門狗控制寄存器的寫入CLR1 和CLR0 位會清除對應(yīng)的看門狗計數(shù)器。
4.5.1 看門狗模塊寄存器描述(基地址 : 0xEC00)
4.5.2 看門狗模塊控制寄存器(偏移地址 : 0x00)
4.5.3 看門狗溢出周期寄存器 WDTN_VAL(32Bit)
5 軟件設(shè)計
基于MSP430 FRAM系列MCU 實現(xiàn)多接口存儲器的軟件設(shè)計分為兩部分
進(jìn)行,軟件流程設(shè)計和代碼實現(xiàn)。
5.1 軟件流程圖
根據(jù)上文所述的系統(tǒng)功能規(guī)劃和詳細(xì)設(shè)計,以及軟件流程圖,可以容易實現(xiàn)系統(tǒng)功能,故實現(xiàn)的C 代碼在本文中就不詳細(xì)描述。若對本文所述的方案和內(nèi)容感興趣,請聯(lián)系德州儀器半導(dǎo)體獲得進(jìn)一步支持。
評論