對於所有基於微控制器的嵌入式系統而言,記憶體都是其中的主要元件。 例如開發人員需要足夠的RAM以儲存所有易失性變數、創建緩衝區以及管理各種應用堆疊。RAM對於嵌入式系統相當重要,同樣,開發人員也需要一定空間用於儲存應用代碼、非易失性數據和配置資訊。然而問題在於非易失性記憶體技術不斷擴展,選擇眾多,使選擇適合應用的記憶體頗具挑戰性。
本文介紹各種記憶體技術,並以各家供應商推出的產品為例,幫助開發人員瞭解各種記憶體類型的特性。此外,本文還探討了各種類型記憶體的最佳應用,以便開發人員有效使用。
嵌入式系統中的EEPROM和FRAM
EEPROM往往是開發人員最先、最常考慮用於嵌入式系統的記憶體元件。在嵌入式應用中,這類非易失性記憶體通常用於儲存系統配置參數。例如連接至CAN總線網路的設備可能會將CAN ID儲存於EEPROM。
EEPROM的以下特性,使其成為嵌入式系統開發人員的理想之選:
‧ 小封裝尺寸
‧ 相對實惠的價格
‧ 100kbps至1000kbps的典型比特率範圍
‧ 標準化電氣介面
‧ 通常支援I2C和SPI介面
目前在Digi-Key網站共有9家EEPROM供應商提供的5,800多款EEPROM。例如ON Semiconductor的CAT24C32WI-GT3是一款32Kb(4KB)EEPROM器件,採用8引腳SOIC封裝,連接I2C總線時速度可達1MHz(圖1)。
圖1 : ON Semiconductor的CAT24C32WI-GT3是一款1Kb的EEPROM,可通過I2C或SPI埠連接微控制器以存儲配置和應用數據。(source:ON Semiconductor) |
|
值得注意的是,某些微控制器中也包含EEPROM。 例如Renesas的R7FS128783A01CFM#AA1 32位微控制器,具有4KB板載EEPROM可供開發人員使用。
因此,配置需求不能超過4KB,否則,開發人員就需要使用外部記憶體件,或使用微控制器的快閃記憶體來類比EEPROM以擴展容量。
儘管EEPROM深受青睞,卻也存在一些潛在缺陷:
‧ 擦/寫操作壽命通常為1,000,000次
‧ 寫週期約為500ns
‧ 寫入單個數據單元需要多條指令
‧ 資料保存期為10年以上(近期的產品可達100年以上)
‧ 易受輻射和高工作溫度影響
EEPROM適合的應用眾多,但對於汽車、醫療或航太系統等可靠性要求較高的應用,開發人員則希望使用FRAM等更可靠的記憶體解決方案。
FRAM是「鐵電隨機存取記憶體」的縮寫,相較於EEPROM記憶體,頗具優勢:
‧ 速度更快(寫週期小於50ns)
‧ 寫操作壽命更長(高達1萬億次,EEPROM僅為100萬次)
‧ 功率較低(工作電壓只需1.5V)
‧ 輻射耐受性更強
FRAM的儲存容量與EEPROM相當。例如Cypress Semiconductor的FRAM系列容量範圍從4Kb至4Mb。其中,FM25L16B-GTR容量為16Kb(圖2)。 該元件採用8引腳SOIC封裝,工作頻率可達20MHz。
圖2 : Cypress的FRAM系列記憶體容量從4Kb至4Mb不等,可通過SPI連接微控制器以存儲配置和應用數據。FM25L16B-GTR的工作頻率可達20MHz。(source:Cypress Semiconductor) |
|
針對高端產品,Cypress Semiconductor推出CY15B104Q-LHXIT,容量為4Mb,支援的介面速度高達40MHz(圖3)。 這款FRAM記憶體具有以下特性:
‧ 151年數據保存期
‧ 100萬億次讀/寫
‧ 直接替代串行快閃記憶體和EEPROM
FRAM的價格比EEPROM昂貴,因此選擇適合應用的記憶體時,務必仔細權衡器件的各種工作環境因素。
圖3 : CY15B104Q-LHXIT是一款4Mb器件,工作頻率可達40MHz。該元件所屬的Cypress FRAM系列產品,容量範圍從4Kb至4Mb。(source:CypressSemiconductor) |
|
嵌入式系統中的快閃記憶體、eMMC和SD卡
嵌入式系統中的快閃記憶體具有多種不同用途。首先,外部快閃記憶體可用於擴展內部快閃記憶體,從而增加應用代碼的可用記憶體空間。 常用解決方法是:使用GigaDevice Semiconductor的GD25Q80CTIGR等SPI快閃記憶體模組(圖4)。如果微控制器支援SPI介面,則可通過該介面使用GD25Q80CTIGR將內部記憶體擴展8Mb。
圖4 : 使用GigaDevice Semiconductor Limited的GD25Q80CTIR快閃記憶體,可通過SPI埠將內部快閃記憶體空間擴展8Mb。(source:GigaDevice Semiconductor Limited) |
|
其次,外部快閃記憶體可用於儲存配置資訊或應用數據,而非使用EEPROM或FRAM。為了降低BOM成本或擴展內部記憶體以存儲應用數據,可以改用外部快閃記憶體晶片。微控制器外設和記憶體映射可以配置為加入該外部快閃記憶體,以便開發人員能夠更輕鬆地進行訪問,而無需專門對所需的驅動程式進行自定義調用,來連接EEPROM或FRAM。
Adesto Technologies的AT25SF161是一款適用於該用途的外部快閃記憶體器件範例(圖5)。該元件使用佇列式SPI(QSPI)介面。QSPI是對常規SPI協議的擴展,提高了系統數據輸送量。對於單一事務需要存儲或檢索大量數據的應用,開發人員可留意這類器件。
QSPI免除了CPU對QSPI外設的干預,並將介面由標準的4引腳(MOSI、MISO、CLK和CS)變更為6引腳(CLK、CS、IO0、IO1、IO2、IO3)。因此,其中4個引腳可用於輸入和輸出,而傳統SPI只用2個引腳。
圖5 : Adesto Technologies的AT25SF161外部快閃記憶體器件可用於擴展內部快閃記憶體,具有QSPI介面,可實現更快的數據存儲和檢索。(source:Adesto Technologies) |
|
最後,快閃記憶體可用於儲存應用數據和有效載荷資訊。例如GPS系統往往不會試圖將所有GPS地圖儲存於本地處理器,而是使用SD卡或eMMC器件等外部記憶體件。這些儲存介質可通過SPI或專用SDIO介面連接微控制器,從而有效連接外部記憶體件。
例如ISSI推出的IS21ES04G-JCLI eMMC可直接連接微控制器的SDIO介面,為其擴展32Gb的快閃記憶體(圖6)。
圖6 : ISSI的eMMC快閃記憶體模組記憶體容量達32Gb,可通過SPI或SDIO連接主機。(source:ISSI) |
|
就電氣介面而言,SD卡與eMMC器件別無二致。換言之,二者雖採用不同的封裝,但都具有通用引腳可用於連接微控制器。不過,這兩種記憶體類型卻截然不同。相較於SD卡,eMMC通常具有以下差異:
‧ 更堅固耐用,不易出現物理損壞
‧ 交互更快
‧ 價格更昂貴
‧ 須焊接至電路板,不可拆卸
如果使用者無需拆卸記憶體,那麼使用eMMC可以提供更可靠的解決方案,但仍取決於最終應用。無論哪種情況下,開發人員都需要仔細選擇記憶體,因為每款記憶體的特性各不相同。
例如,車載子系統可能要求記憶體經過可靠性驗證,標準往往高於標準快閃記憶體器件。在這種情況下,開發人員需要選擇通過汽車級鑒定的記憶體,例如Silicon Motion的SM668GE4-AC 4GB eMMC模組。
選購SD卡時,開發人員必須慎重考慮,因為與eMMC一樣,每款SD卡的特性各不相同。開發人員需仔細檢查儲存卡的速度等級和工作溫度。例如,多數SD卡的額定溫度範圍為0至70℃,適用於消費類電子產品。
此外,每款儲存卡都具有相關速度等級,用於描述預期最大介面速度。 例如,在需要存儲圖像的應用中,使用Class 2儲存卡則速度較慢,遠不如專為高畫質視頻設計的Class 10儲存卡,例如Advantech推出的SQF-MSDM1-4G-21C SQFlash 4GB microSD卡。
圖7 : Advantech的SQF-MSDM1-4G-21CSQFlash microSD卡記憶體容量達4GB,速度等級為高端Class 10。(source:Advantech Corp) |
|
記憶體選擇技巧與訣竅
@內文:為嵌入式產品選擇合適的記憶體類型和介面頗具挑戰性。選擇適合應用程式的記憶體時,開發人員可以參考以下「技巧與訣竅」:
‧ 明確記憶體工作條件,例如:
o 預期擦/寫次數
o 溫度、振動和輻射等環境條件和因素
‧ 數據載入要求
記錄應用中記憶體正常工作的最小比特率、所需比特率和最大比特率
‧ 選擇最接近記錄中所需比特率的記憶體介面類型
‧ 對於汽車或航空系統等惡劣環境條件,須選擇通過汽車級鑒定或輻射耐受性較強的記憶體
‧ 使用分線板將所選記憶體件連接至微控制器開發套件以測試其性能
上述技巧有助於確保開發人員找到適合嵌入式應用的記憶體。
總結
如今,可供開發人員選擇的非易失性記憶體件種類繁多,可用於儲存各種數據,從應用代碼到配置資訊,不一而足。如上所述,開發人員需仔細評估應用需求,慎重選擇記憶體類型和介面,以期取得這些需求與成本之間的平衡。
(本文作者Jacob Beningo任職於Digi-Key公司)