日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]在嵌入式控制系統(tǒng)中,通常要用到非易失性存儲(chǔ)器。無論是掉電時(shí)維持需要保存的設(shè)置,還是存儲(chǔ)重要記錄,可靠的非易失性存儲(chǔ)器都是一種理想的選擇。

引言

  在嵌入式控制系統(tǒng)中,通常要用到非易失性存儲(chǔ)器。無論是掉電時(shí)維持需要保存的設(shè)置,還是存儲(chǔ)重要記錄,可靠的非易失性存儲(chǔ)器都是一種理想的選擇。非易失性存儲(chǔ)常常采用外部串行存儲(chǔ)器來實(shí)現(xiàn),其中I2C接口產(chǎn)品是最常用的一種類型。然而,這種產(chǎn)品和其他EEPROM存儲(chǔ)器一樣,在使用時(shí)也存在著一些條件會(huì)潛在地導(dǎo)致其產(chǎn)生某些非標(biāo)準(zhǔn)的甚至是錯(cuò)誤的操作。因此在進(jìn)行I2C串行EEPROM存儲(chǔ)器的應(yīng)用設(shè)計(jì)時(shí),除了應(yīng)考慮數(shù)據(jù)手冊(cè)規(guī)范之外,還必須考慮更多的因素,這樣才能實(shí)現(xiàn)更健壯的總體設(shè)計(jì),確保系統(tǒng)具有優(yōu)良的質(zhì)量特性。

1 防意外寫措施

  器件在上電/掉電期間或者SDA/SCL線的噪聲過大時(shí)都有可能導(dǎo)致意外寫操作。為了解決這一問題,一方面需要使用去耦電容(容量通常為0.1 μF)來幫助濾除VCC上的紋波,另一方面則可以通過寫保護(hù)措施來防止對(duì)器件的非法訪問。

  對(duì)于具有硬件寫保護(hù)功能的器件,既可以將其WP引腳連接到VCC來保護(hù)整個(gè)陣列,也可以將其WP引腳連接到VSS來放棄寫保護(hù)。通常用戶可以將 WP引腳連接到微控制器的一根I/O口線上,并在該引腳與VCC間連接一個(gè)上拉電阻,這樣就可確保器件在平時(shí)處于寫保護(hù)狀態(tài);但是要啟動(dòng)寫周期,WP引腳必須首先被驅(qū)動(dòng)為邏輯0。注意,WP引腳不能懸空,否則器件將無法正常工作。

  對(duì)于無寫保護(hù)功能的器件,則可以利用一個(gè)電子開關(guān)對(duì)其SDA引腳與微控制器之間的連接進(jìn)行通斷控制來實(shí)現(xiàn)寫保護(hù)。平常不訪問器件時(shí),切斷它們的連接;僅在需要對(duì)器件實(shí)施讀/寫操作時(shí)才接通。

2  數(shù)據(jù)完整性保護(hù)措施

  在整個(gè)寫周期內(nèi)(對(duì)于大多數(shù)器件而言,通常最大為5 ms),必須將VCC維持在最小工作電壓以上。如果此時(shí)VCC掉電或降到最小電壓以下,則無論時(shí)間長短,均無法確保被寫頁面的數(shù)據(jù)完整性,可能導(dǎo)致編程數(shù)據(jù)的不正確。此外,由于無法對(duì)EEPROM單元進(jìn)行完全編程,器件的數(shù)據(jù)保留時(shí)間會(huì)比數(shù)據(jù)手冊(cè)中規(guī)定的時(shí)間短。對(duì)于寫周期內(nèi)電源故障所導(dǎo)致的這些問題,通常可以在軟件上采取相應(yīng)的保護(hù)措施來加以解決?;谑挛锏奶峤弧赝藱C(jī)制[1]就是一種典型的解決方案。可以證明,當(dāng)EEPROM存儲(chǔ)器應(yīng)用系統(tǒng)采用該機(jī)制后,無論電源何時(shí)掉電或微控制器何時(shí)被復(fù)位,EEPROM存儲(chǔ)子系統(tǒng)都可保持?jǐn)?shù)據(jù)的完整性。

(1)  提交—回退機(jī)制的建立

  提交—回退機(jī)制的建立包括兩方面的內(nèi)容:一方面是定義EEPROM存儲(chǔ)器的邏輯結(jié)構(gòu);另一方面是構(gòu)造對(duì)存儲(chǔ)子系統(tǒng)進(jìn)行訪問、檢查和錯(cuò)誤清理的接口函數(shù)。該機(jī)制將EEPROM存儲(chǔ)器劃分為主存儲(chǔ)區(qū)、校驗(yàn)存儲(chǔ)區(qū)和緩存區(qū)3個(gè)部分。其中主存儲(chǔ)區(qū)用于存放用戶數(shù)據(jù);校驗(yàn)存儲(chǔ)區(qū)用于存放主存儲(chǔ)區(qū)每個(gè)頁面的 CRC校驗(yàn)碼,且該區(qū)中每一頁的最后一個(gè)CRC用于校驗(yàn)本頁數(shù)據(jù);緩存區(qū)包括多個(gè)寫緩存,每個(gè)寫緩存包含4個(gè)域——數(shù)據(jù)域、地址域、狀態(tài)域和16位CRC 域。數(shù)據(jù)域用于臨時(shí)存放寫函數(shù)寫入的數(shù)據(jù)頁面,執(zhí)行下一個(gè)提交命令時(shí),該數(shù)據(jù)頁面將從緩存區(qū)傳送到主存儲(chǔ)區(qū)。地址域表示緩存數(shù)據(jù)要寫入的頁面地址;狀態(tài)域表示緩存的狀態(tài),包括可用(available)、占用(occupied)和終止(expired)狀態(tài);16位CRC域用來校驗(yàn)整個(gè)寫緩存。

  該機(jī)制提供了6個(gè)接口函數(shù):讀、寫、提交、回退、檢查和清理。

 ?、? 讀函數(shù)。接收1個(gè)頁面編號(hào)和1個(gè)用于存放待讀出數(shù)據(jù)的暫存區(qū)指針。如果暫存區(qū)指針和頁面編號(hào)處于有效范圍內(nèi),程序就會(huì)將指定的頁面數(shù)據(jù)讀入暫存區(qū),并校驗(yàn)數(shù)據(jù)的有效性。該函數(shù)會(huì)返回如下狀態(tài)之一:有效讀(valid read)、無效讀(invalid read)、無效暫存區(qū)地址(invalid buffer address)、無效頁面編號(hào)(invalid page number)或保護(hù)失敗(protection failure)。
  ②  寫函數(shù)。接收1個(gè)頁面編號(hào)和1個(gè)指向填好數(shù)據(jù)的暫存區(qū)指針。如果暫存區(qū)指針和頁面編號(hào)處于有效范圍內(nèi),程序就會(huì)將數(shù)據(jù)寫入非易失性緩存,并標(biāo)記緩存狀態(tài)以準(zhǔn)備提交。
 ?、? 提交和回退函數(shù)。提交和回退函數(shù)是可以在運(yùn)行寫函數(shù)之后執(zhí)行的互補(bǔ)型操作。提交函數(shù)將最近被寫入緩存的數(shù)據(jù)復(fù)制到存儲(chǔ)區(qū)中的對(duì)應(yīng)位置,并為下一個(gè)待寫入的數(shù)據(jù)頁面準(zhǔn)備好緩存結(jié)構(gòu)?;赝撕瘮?shù)實(shí)際上就是一個(gè)“取消”操作,它消除最近一次執(zhí)行寫函數(shù)產(chǎn)生的效果,并為下一個(gè)寫操作準(zhǔn)備好緩存子系統(tǒng)。
 ?、?nbsp; 檢查函數(shù)。讀取存儲(chǔ)器件的每個(gè)數(shù)據(jù)頁面,并檢查存儲(chǔ)數(shù)據(jù)的有效性。該函數(shù)還檢查緩存子系統(tǒng),以確保沒有未執(zhí)行的寫操作。任何無效頁面或未執(zhí)行的寫操作都會(huì)使檢查函數(shù)返回一個(gè)錯(cuò)誤狀態(tài)。
 ?、?nbsp; 清理函數(shù)。修復(fù)一個(gè)數(shù)據(jù)損壞的EEPROM。實(shí)際上,它將試圖找出發(fā)生的錯(cuò)誤,并采取相應(yīng)的解決措施。

(2)  提交—回退機(jī)制的應(yīng)用

  讀操作:調(diào)用讀函數(shù)來實(shí)現(xiàn)。

  更新主存儲(chǔ)區(qū)數(shù)據(jù)操作:先調(diào)用寫函數(shù)再調(diào)用提交函數(shù)來完成。主存儲(chǔ)區(qū)只有在完成一個(gè)提交操作后才更新數(shù)據(jù),而不是在一個(gè)寫操作之后更新的。

  異常處理:在任何一個(gè)可能破壞EEPROM寫周期的事件之后(例如上電之后),都將首先執(zhí)行校驗(yàn)/清理函數(shù)。檢查函數(shù)將檢驗(yàn)存儲(chǔ)系統(tǒng)的可用性,并報(bào)告任何發(fā)現(xiàn)的錯(cuò)誤;清理函數(shù)將根據(jù)檢查函數(shù)返回的錯(cuò)誤代碼解決EEPROM系統(tǒng)存在的任何問題。在清理操作退出時(shí),無論EEPROM子系統(tǒng)先前是何種狀態(tài),都應(yīng)該可以繼續(xù)使用。

3  I2C通信的有效性保證措施

(1)  軟件復(fù)位

  有時(shí)EEPROM器件可能需要執(zhí)行軟件復(fù)位序列來確保其處于正確并且已知的狀態(tài)。這在某些情況下會(huì)很有用。例如,在EEPROM上電時(shí),若總線噪聲過大,EEPROM上電后將會(huì)進(jìn)入不正確的狀態(tài);又如,微控制器在通信期間若發(fā)生復(fù)位,將會(huì)使通信陷入不同步的狀態(tài)。為了確保在出現(xiàn)這些情況之后,系統(tǒng)的微控制器與I2C串行EEPROM器件之間能夠正確、有效地實(shí)現(xiàn)通信,可以先發(fā)送圖1所示的軟件復(fù)位序列,使I2C接口器件可靠復(fù)位,之后,再啟動(dòng)數(shù)據(jù)的傳輸過程。

按此在新窗口瀏覽圖片
圖1  軟件復(fù)位序列

  第1個(gè)起始位會(huì)使器件從期望接收微控制器數(shù)據(jù)的狀態(tài)復(fù)位。在該模式下,器件處于接收模式并監(jiān)視數(shù)據(jù)總線,能夠檢測到強(qiáng)制其內(nèi)部復(fù)位的起始位。9 位“1”用于強(qiáng)制復(fù)位那些無法通過前面的起始位復(fù)位的器件。這只在以下情況下發(fā)生:器件處于在總線上驅(qū)動(dòng)應(yīng)答(低電平)的模式中;或處于輸出模式中,正在總線上驅(qū)動(dòng)輸出數(shù)據(jù)位0。在這兩種情況下,由于器件將總線保持在低電平,所以無法產(chǎn)生前面的起始位(定義為SCL為高電平時(shí)SDA被拉低)。通過發(fā)送9位 “1”,可以確保器件檢測到NACK(即微控制器不將總線驅(qū)動(dòng)為低電平,從而不應(yīng)答EEPROM發(fā)送的數(shù)據(jù)),這樣也會(huì)強(qiáng)制進(jìn)行內(nèi)部復(fù)位。

  發(fā)送第2個(gè)起始位是為了防止在以下情況中可能發(fā)生的罕見的錯(cuò)誤寫操作:微控制器在向EEPROM發(fā)送寫命令時(shí)被復(fù)位,并且在發(fā)送第1個(gè)起始位時(shí) EEPROM正在總線上驅(qū)動(dòng)ACK。在這種特殊情況下,如果沒有發(fā)送第2個(gè)起始位,而是發(fā)送了停止位,器件將啟動(dòng)寫周期。只有在微控制器向EEPROM發(fā)送寫命令時(shí)被復(fù)位的情況下,才可能發(fā)生這種錯(cuò)誤寫操作。

  最后的停止位將終止總線活動(dòng),并將EEPROM置于待機(jī)模式中。

(2)  檢查應(yīng)答位

  I2C通信的眾多優(yōu)點(diǎn)之一就是在接收到每個(gè)字節(jié)后發(fā)送應(yīng)答位ACK。除了正在進(jìn)行寫周期之外,I2C接口EEPROM在接收到每個(gè)字節(jié)后總會(huì)發(fā)送1位低電平,表明已收到有效的起始位和控制字節(jié)。因此,主器件可以在整個(gè)運(yùn)行期間監(jiān)視接收到的ACK位,以檢測可能發(fā)生的任何錯(cuò)誤。在發(fā)送期間檢查接收到的ACK是否為邏輯1(表明EEPROM沒有響應(yīng))始終是一種好的做法,若接收到ACK為邏輯1,則需要執(zhí)行一個(gè)錯(cuò)誤處理程序來確定器件為何沒有響應(yīng),并根據(jù)需要執(zhí)行軟件復(fù)位序列。

(3)  應(yīng)答查詢

  串行EEPROM上的寫操作要求在啟動(dòng)寫操作后遵守寫周期時(shí)間,使器件有時(shí)間存儲(chǔ)數(shù)據(jù)。在此期間,正常器件操作將被禁止,微控制器對(duì)器件的所有訪問嘗試都將被忽略。因此,微控制器應(yīng)等待寫周期結(jié)束后再嘗試訪問EEPROM,這一點(diǎn)很重要。每個(gè)器件在其數(shù)據(jù)手冊(cè)中都給出了最長的寫周期時(shí)間,該參數(shù)通常用TWC表示。確保遵守寫周期時(shí)間的一種簡單方法是:在再次訪問EEPROM之前執(zhí)行規(guī)定時(shí)長的延時(shí)。但是,器件在短于規(guī)定的最長時(shí)間內(nèi)完成寫周期是很尋常的事。因而,用這種延時(shí)方法會(huì)使EEPROM完成寫操作后的一段時(shí)間內(nèi)微控制器仍在等待。為了消除這段額外的時(shí)間,使運(yùn)行更加高效,強(qiáng)烈建議利用應(yīng)答查詢功能。由于I2C接口EEPROM器件在寫周期內(nèi)不會(huì)應(yīng)答,所以可在發(fā)送停止條件并啟動(dòng)器件的內(nèi)部寫周期后持續(xù)地向器件發(fā)送寫命令控制字節(jié)并進(jìn)行應(yīng)答查詢,直到接收到指示寫操作已完成的ACK位為止。圖2是應(yīng)答查詢流程。

按此在新窗口瀏覽圖片
圖2  應(yīng)答查詢流程

4  延長EEPROM使用壽命的方法

(1)  避免對(duì)同一區(qū)域反復(fù)執(zhí)行寫操作

  不要在同一個(gè)單元或同一個(gè)頁面上反復(fù)執(zhí)行寫操作,尤其是不要將某個(gè)頁面設(shè)置成寫入任何其他頁面時(shí)都要更新的“目錄”。

(2)  盡可能降低供電電壓

  在滿足器件最低供電電壓的前提下,供電電壓越低,器件的使用壽命越長。

(3)  選擇適當(dāng)?shù)膶懖僮髂J?/P>

  EEPROM存儲(chǔ)器的寫操作有3種模式:字節(jié)模式、頁寫模式和塊寫模式。有些器件支持所有上述3種模式,而另一些器件則可能只支持上述3種模式中的一種或兩種。選擇適當(dāng)?shù)膶懖僮髂J?,可?EEPROM存儲(chǔ)器的使用壽命得以延長。在僅需要改變存儲(chǔ)器中的一個(gè)字節(jié)時(shí),應(yīng)采用字節(jié)模式。而在需要改變存儲(chǔ)器中的某塊內(nèi)容或全部內(nèi)容時(shí),寫操作模式的選擇原則是:首先應(yīng)考慮塊寫模式,其次再考慮頁寫模式,最后才是字節(jié)模式。

(4)  存儲(chǔ)塊輪換使用

  一般應(yīng)用中,要存儲(chǔ)的數(shù)據(jù)比較單一,EEPROM空間與要存儲(chǔ)的數(shù)據(jù)相比會(huì)大得多。為此,可采用一種存儲(chǔ)塊輪換使用的方法來延長EEPROM的使用壽命。其原理如下:

  根據(jù)要存儲(chǔ)的數(shù)據(jù)量將EEPROM空間分塊,從第1塊開始存儲(chǔ)數(shù)據(jù),當(dāng)數(shù)據(jù)被改寫N次后轉(zhuǎn)到第2塊存放,等到第2塊中的數(shù)據(jù)被改寫N次后再轉(zhuǎn)到第3塊存放,依此類推,直到最后一個(gè)塊存放的數(shù)據(jù)被改寫N次后,又轉(zhuǎn)到第1個(gè)塊重新開始。在這種解決方案中,系統(tǒng)掉電后再上電時(shí)可用來確定數(shù)據(jù)存儲(chǔ)塊首地址的方法有[2]: 找最大數(shù)據(jù)法、用后還原法和地址指針法。

結(jié)語

  健壯性設(shè)計(jì)是確保系統(tǒng)具有優(yōu)良質(zhì)量特性的基本措施。本文介紹的技術(shù)實(shí)用、可靠,在對(duì)I2C串行EEPROM存儲(chǔ)器進(jìn)行應(yīng)用設(shè)計(jì)時(shí)應(yīng)該盡可能地考慮這些技術(shù)。

參考文獻(xiàn)

[1]  Maxim/Dallas公司.MAXQ環(huán)境下EEPROM的保護(hù)措施[EB/OL]. http://www.maximic.com.cn/appnotes.cfm/appnote_number/3771,20061213.
[2]  李維平,張濤,丁振君.延長EEPROM使用壽命的方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(6).

汪社民(高級(jí)工程師),主要研究方向?yàn)橹悄芑瘍x器儀表及嵌入式系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲(chǔ)及超融合市場研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會(huì)》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

智能硬件

22075 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉