史立原
(四川長(zhǎng)虹電器股份有限公司 多媒體研發(fā)中心液晶電視技術(shù)研究所,四川 綿陽(yáng) 621000)
目前,電視機(jī)中還有為數(shù)不少的數(shù)據(jù)(U/S/M/D)不能隨軟件固化,而需要存儲(chǔ)在別的非易失存儲(chǔ)器(NVM)中,I2C接口的E2PROM由于其提供字節(jié)級(jí)靈活性、質(zhì)量可靠、接口簡(jiǎn)單、成本低廉等特點(diǎn)[1-2],在目前電視機(jī)上得到大量應(yīng)用,在電視機(jī)上E2PROM存儲(chǔ)的數(shù)據(jù)種類及可靠性要求級(jí)別見(jiàn)表1。
表1 E2PROM數(shù)據(jù)分類及可靠性要求級(jí)別
電視現(xiàn)已進(jìn)入平板時(shí)代,平板電視中需要E2PROM中存儲(chǔ)的數(shù)據(jù)比傳統(tǒng)CRT電視更多,如不同的屏參、ADC的校準(zhǔn)數(shù)據(jù)等,一旦這些數(shù)據(jù)受到損壞,將表現(xiàn)為電視機(jī)開(kāi)機(jī)后工作異常,如黑屏、花屏、無(wú)圖、顏色異常等。
因此,E2PROM的設(shè)計(jì)可靠性對(duì)電視機(jī)而言至關(guān)重要,數(shù)據(jù)受損的原因有外部總線上的干擾、電源的波動(dòng)、掉電上電沖擊、邏輯電平異常、非標(biāo)準(zhǔn)的軟件錯(cuò)誤操作等。筆者就I2C接口的E2PROM在電視系統(tǒng)上的應(yīng)用,針對(duì)上述實(shí)際應(yīng)用問(wèn)題,從硬件、軟件兩方面系統(tǒng)介紹了提高設(shè)計(jì)穩(wěn)健性的關(guān)鍵技術(shù)。
E2PROM的工作電源寬,一般為2.5~5.5 V或1.8~5.5 V,在電源管腳應(yīng)使用去耦合電容(通常為0.1 μF)來(lái)幫助濾除供電電壓VCC上的小紋波,保證電源應(yīng)處在正常工作水平范圍內(nèi)。在正常工作水平范圍內(nèi),E2PROM提供大量防止意外寫操作和數(shù)據(jù)損壞的保護(hù)。
但是,應(yīng)該考慮到上電和掉電情況,以確保電源不處于正常工作水平內(nèi)時(shí),也具有相同水平的保護(hù)。上電時(shí),VCC應(yīng)該總是從0 V開(kāi)始,并直接上升到正常工作水平,以確保正常的上電復(fù)位,VCC不應(yīng)滯留在不確定的電平(即低于最小工作電壓)。
欠壓情況下,E2PROM具有欠壓復(fù)位電路,可提供額外的保護(hù)。此外,如果系統(tǒng)單片機(jī)欠壓復(fù)位的門限電平高于E2PROM,則將VCC降到0 V可以使2個(gè)器件一起復(fù)位。否則,單片機(jī)可能會(huì)在通信過(guò)程中復(fù)位,而E2PROM保持其當(dāng)前狀態(tài)。在這種情況下,開(kāi)始進(jìn)一步通信之前,需要對(duì)E2PROM執(zhí)行軟件復(fù)位序列。
為保證正常工作,SCL和SDA總線都需要使用上拉電阻。不過(guò),所選擇的電阻值對(duì)系統(tǒng)性能會(huì)有很大的影響。選擇上拉電阻阻值時(shí)必須考慮以下3個(gè)限制因素:供電電壓,總線總電容,高電平輸入總電流。
2.2.1 供電電壓(VCC)
由于最高低電平輸出電壓(VOL)的規(guī)定,供電電壓會(huì)限制最小RP值。也就是說(shuō),對(duì)于給定的VCC電平,上拉電阻越小,所產(chǎn)生輸出電壓就越高。常規(guī)E2PROM規(guī)格書中,VOL規(guī)定為3 mA時(shí)最大值為0.4 V,即RP上的壓降為VCC-0.4 V時(shí),流過(guò)它的電流不能超過(guò)3 mA,由此可得到最小RP值RPMIN為
2.2.2 總線總電容(CBUS)
總線電容包括總線上所有引腳、連接和導(dǎo)線的電容。由于時(shí)間常數(shù)RC的關(guān)系,總線電容越高,需要的上拉電阻就越小,這樣才能達(dá)到特定的上升時(shí)間,從而達(dá)到特定的I2C時(shí)鐘速度。
式(2)是電容充電特性描述函數(shù)的通用公式
總線上升時(shí)間(TR)定義為電壓從VIL上升到VIH所需的時(shí)間量(VIL=0.3×VCC,VIH=0.7×VCC),按式(2)計(jì)算的結(jié)果顯示在式(3)中。式(3)為總線上升時(shí)間
根據(jù)式(3)可以得到受總線上升時(shí)間限制的最大RP值,公式為
2.2.3 高電平輸入總電流(IIH)
總線處于高電平時(shí)始終存在一些漏電流流過(guò)上拉電阻,由于電阻上的壓降,引腳上的有效電壓將低于VCC。該壓降必須足夠小,以使得器件仍會(huì)將引腳上的電壓視為高電平,即引腳上的電壓必須高于VIH加上高電平輸入噪聲容限(VHMAR)。據(jù)此可得到受漏電流限制的最大RP值為
計(jì)算電阻值時(shí)使用的參數(shù)見(jiàn)表2。
表2中,TR基于100 kHz標(biāo)準(zhǔn)I2C速度,VIH按0.7×VCC規(guī)范計(jì)算,VHMAR按 0.2×VCC規(guī)范計(jì)算。
通過(guò)應(yīng)用上述公式,計(jì)算得出電阻值極限,如表3所示。
高電平輸入總電流限制的上拉電阻為50 kΩ,電阻過(guò)大,導(dǎo)致上升時(shí)間太慢。因此,可接受的電阻值范圍為1.533~11.80 kΩ,工程上選擇該范圍中偏中間的值,以備提供盡可能寬的保護(hù)帶。實(shí)際電視機(jī)應(yīng)用中,4.7 kΩ的上拉電阻將是很理想的。
表2 示例參數(shù)
表3 電阻值極限
為防止器件由于在上電/掉電期間電平的不確定性、總線的噪聲或其他原因而導(dǎo)致的可能意外寫操作,應(yīng)使用硬件寫保護(hù)措施來(lái)防止對(duì)器件的非法訪問(wèn)。寫保護(hù)由WP引腳來(lái)提供硬件寫保護(hù)功能,該引腳連接到高電平來(lái)保護(hù)整個(gè)陣列,如連接到低電平則禁止寫保護(hù)。為了啟動(dòng)寫周期,WP引腳必須驅(qū)動(dòng)為低電平,否則將不會(huì)執(zhí)行寫周期。
目前在電視機(jī)芯上一般把WP引腳連接到系統(tǒng)微控制器的1個(gè)GPIO口,并需要在該引腳與E2PROM供電腳間設(shè)計(jì)電阻提供上拉。在需要執(zhí)行寫操作時(shí),由微控制器的GPIO口輸出低電平,此時(shí)E2PROM允許通過(guò)I2C總線寫入數(shù)據(jù),而在其他操作過(guò)程中,該GPIO口輸出高電平,E2PROM不允許I2C總線寫入數(shù)據(jù)。
在實(shí)際應(yīng)用中需要特別注意的是,電視機(jī)上SOC系統(tǒng)主芯片的GPIO接口一般是3.3 V的電壓,如果系統(tǒng)中E2PROM是5 V供電,按E2PROM的數(shù)據(jù)手冊(cè),WP的高電平需要滿足0.7×VCC≥3.5 V,才確認(rèn)為高電平。主芯片的GPIO接口如果配置狀態(tài)不對(duì),其輸出的高電平僅為3.3 V,不能給WP提供有效的高電平,使E2PROM未處于可靠的寫保護(hù)狀態(tài)。發(fā)現(xiàn)這種情況,應(yīng)將主芯片的GPIO接口設(shè)置為高阻狀態(tài),靠WP外接到E2PROM供電腳VCC的上拉電阻提供可靠的高電平。
I2C通信E2PROM作為被控器件,在有效接收字節(jié)數(shù)據(jù)后會(huì)向主控器件發(fā)送應(yīng)答位,利用該特性系統(tǒng)軟件設(shè)計(jì)中應(yīng)具有E2PROM檢查應(yīng)答和應(yīng)答查詢機(jī)制,以縮短無(wú)謂的等待時(shí)間,檢測(cè)可能發(fā)生的錯(cuò)誤,擇時(shí)啟動(dòng)軟件復(fù)位序列,提高軟件系統(tǒng)可靠性。
主控器件發(fā)出寫操作指令后,數(shù)據(jù)的寫入在E2PROM中有一個(gè)內(nèi)部寫周期時(shí)間,在該期間,外部的任何訪問(wèn)都將被E2PROM忽略。規(guī)格書中標(biāo)示的TWC為最壞情況寫周期時(shí)間,實(shí)際應(yīng)用中,由于器件的離散型,在短于TWC的時(shí)間內(nèi)完成寫周期是很正常的事情,軟件設(shè)計(jì)中如簡(jiǎn)單地按TWC增加時(shí)延會(huì)無(wú)謂地增加主控器件的等待時(shí)間。采用應(yīng)答查詢機(jī)制,持續(xù)的檢測(cè)E2PROM器件是否有應(yīng)答,可以及時(shí)知道E2PROM已經(jīng)完成內(nèi)部寫周期操作,及時(shí)進(jìn)入后續(xù)的軟件操作。
E2PROM提供有字節(jié)寫模式和頁(yè)寫模式,選擇適當(dāng)?shù)膶懖僮髂J?,可以延長(zhǎng)E2PROM的使用壽命。當(dāng)需要改寫的數(shù)據(jù)為1個(gè)字節(jié)時(shí),應(yīng)采用字節(jié)寫模式;而當(dāng)需要改寫大量字節(jié)數(shù)據(jù)時(shí),則應(yīng)選擇頁(yè)寫模式。頁(yè)寫模式利用E2PROM內(nèi)部的頁(yè)面緩沖器,可顯著縮短寫入總時(shí)間。表4給出了不同方式的寫入時(shí)間比較。其中,最壞情況的計(jì)算假定使用5 ms的定時(shí)延時(shí),器件為24LC512,頁(yè)大小為512 byte。
表4 標(biāo)準(zhǔn)I2C速度下的寫入時(shí)間比較
從表4可以清楚地看到,頁(yè)寫和應(yīng)答查詢都可以顯著地節(jié)約時(shí)間。最壞情況下,采用標(biāo)準(zhǔn)I2C速度,將128 byte通過(guò)字節(jié)寫模式寫入24LC512需要大約688 ms。換為應(yīng)答查詢方式可將時(shí)間縮短到大約432 ms,縮短約37%。如換為頁(yè)寫模式可進(jìn)一步將時(shí)間縮短到約15 ms,減少幅度近98%。
交流上電首次訪問(wèn)E2PROM需根據(jù)硬件系統(tǒng)的不同設(shè)置適當(dāng)?shù)难訒r(shí),以避免由于上電過(guò)程中電源不穩(wěn)定而造成的通信錯(cuò)誤。
對(duì)一些模擬量調(diào)整線性等常用數(shù)據(jù)盡可能在開(kāi)機(jī)時(shí)一次性讀入RAM,而不是每次都訪問(wèn)E2PROM,提高執(zhí)行效率。
切忌對(duì)同一區(qū)域反復(fù)頻繁執(zhí)行寫操作,這樣會(huì)極大影響E2PROM使用壽命。
梳理分類計(jì)劃放入E2PROM中存儲(chǔ)的數(shù)據(jù),忌將用戶數(shù)據(jù)和關(guān)鍵非用戶數(shù)據(jù)混放,某些預(yù)置位等關(guān)鍵非用戶數(shù)據(jù)盡管不能占滿1個(gè)字節(jié),也不要將用戶的開(kāi)關(guān)位分配在其中,因?yàn)樗鼈冇胁煌目煽啃砸蠹?jí)別。
E2PROM器件在實(shí)際應(yīng)用中,由于某些外部原因,如上電時(shí)總線噪聲過(guò)大、掉電不徹底等,有時(shí)會(huì)導(dǎo)致E2PROM存儲(chǔ)器進(jìn)入某種錯(cuò)誤狀態(tài),表現(xiàn)為其SDA鎖死為低。軟件設(shè)計(jì)時(shí)應(yīng)在上電及每次操作E2PROM器件時(shí)檢查SDA的情況,當(dāng)發(fā)現(xiàn)異常時(shí),強(qiáng)制通過(guò)發(fā)送圖1所示的軟件復(fù)位序列復(fù)位存儲(chǔ)器,釋放總線,之后再進(jìn)行下一步的數(shù)據(jù)讀寫操作。
該軟件復(fù)位序列的詳細(xì)說(shuō)明可以從相關(guān)公司的芯片規(guī)格書和應(yīng)用手冊(cè)中查閱。
對(duì)于支持在應(yīng)用編程(In Application Program,IAP)的系統(tǒng)平臺(tái),利用IAP的方法在出廠設(shè)置時(shí)一次性將所有關(guān)鍵非用戶數(shù)據(jù)寫入Flash中事先預(yù)留的區(qū)域里加以固化,這樣軟件在出廠后就只需要從Flash中獲取非用戶數(shù)據(jù),從而徹底解決關(guān)鍵非用戶數(shù)據(jù)跳變的問(wèn)題。
對(duì)不支持IAP的系統(tǒng)平臺(tái),軟件應(yīng)該在E2PROM的余下空白區(qū)域中對(duì)關(guān)鍵非用戶數(shù)據(jù)進(jìn)行多次備份并分別計(jì)算和存儲(chǔ)各數(shù)據(jù)區(qū)的CHECKSUM,在開(kāi)機(jī)時(shí)檢查各區(qū)數(shù)據(jù)正確性,并在檢測(cè)到出錯(cuò)時(shí)使用正確數(shù)據(jù)來(lái)恢復(fù)。
本文介紹的提高電視機(jī)上I2C通信E2PROM存儲(chǔ)器設(shè)計(jì)穩(wěn)健性技術(shù)實(shí)用、可靠,確保了在工程應(yīng)用上使器件工作在數(shù)據(jù)手冊(cè)的參數(shù)范圍內(nèi),保障長(zhǎng)期工作的可靠性和穩(wěn)定性,對(duì)相關(guān)領(lǐng)域的技術(shù)應(yīng)用具有實(shí)際指導(dǎo)作用。
[1]廣州周立功單片機(jī)發(fā)展有限公司.I2C總線規(guī)范[EB/OL].[2010-01-20].http://www.zlgmcu.com/philips/iic/xuanxing/I2Cgiufan.pdf.
[2]何立民.I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1995.