吳曉光
(中鋼集團洛陽耐火材料研究院有限公司,河南 洛陽471039)
串行E2PROM是可在線電擦除和電寫入的存儲器,具有體積小、接口簡單、數(shù)據(jù)保存可靠、可在線改寫、功耗低等特點,而且為低電壓寫入,在單片機系統(tǒng)中應(yīng)用十分普遍。
Catalyst公司的串行E2PROM兼容工業(yè)上最受歡迎的三種總線——I2C總線、Microwire總線及SPI總線。Catalyst公司的產(chǎn)品提供1 KB~256 KB的高密度存儲,以及1.8 V~6 V的寬電壓操作范圍。本文以CAT24WC64為例著重介紹串行E2PROM。CAT24WC64是一個64 KB串行 CMOS E2PROM,內(nèi)部含有 8 192 B(每字節(jié)為 8 bit)。CATALYST公司的先進CMOS技術(shù)實質(zhì)上減少了器件的功耗,CAT24WC64有一個32 B頁寫緩沖器,該器件通過I2C總線接口進行操作。
E2PROM的電路結(jié)構(gòu)經(jīng)歷了一個發(fā)展過程,目前大多采用FLOTOX(Floating Tunnel Oxide)結(jié)構(gòu)。這種結(jié)構(gòu)的基本存儲單元的主體是一個特殊的MOS管,如圖1所示。它的特點是:浮置柵向下凸出一塊,使得浮置柵與漏區(qū)之間的隧道氧化層面積很小、厚度很薄。它的編程原理與EPROM相似,即讓浮置柵上帶電荷。具體實現(xiàn)是在控制柵加高電位,此時漏端的電子將借助Fowler-Nordheim隧道效應(yīng)穿過薄氧化層而進入浮置柵。它的擦除原理與EPROM不同,是在控制柵加低電位,使存儲在浮置柵中的電子被抽出,于是又恢復(fù)到初始狀態(tài)。
系統(tǒng)的硬件部分主要包括前段信號采集放大電路和人機交互界面電路兩部分,系統(tǒng)硬件結(jié)構(gòu)[1]框圖如圖2所示。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
系統(tǒng)硬件結(jié)構(gòu)包括主控制器SST89E516RD2、CAT24WC64存儲器、電源電路、溫度傳感器、壓力傳感器以及采樣放大電路。主控制器SST89E516RD2是一款來自SST公司的8位低功耗處理器,比常規(guī)8位處理器多了一個P4口,更有利于擴展,片內(nèi)有64 KB的Flash和1 KB的RAM,性能更加出色。CAT24WC64存儲器采用I2C串行方式存儲,節(jié)省了CPU資源,而且數(shù)據(jù)在傳輸中不易受外界干擾。前段信號采樣采用熱電偶和壓力傳感器來完成。此外,對于熱電偶測得的微弱電流信號需通過運算放大器實現(xiàn)信號的放大和抬升。而人機交互(即顯示和鍵盤操作)通過簡單的電路得以實現(xiàn)。
CAT24WC64是Catalyst公司的一款支持I2C等多種協(xié)議的串行存儲器,具有體積小、接口簡單、數(shù)據(jù)保存可靠、可在線改寫、功耗低等特點,而且為低電壓寫入,在單片機系統(tǒng)中應(yīng)用十分普遍;相比Atmel等公司的串行存儲器性價比更加突出;使用靈活性強,大大降低了系統(tǒng)開發(fā)的難度,而且降低了系統(tǒng)設(shè)計的成本。CAT24WC64外圍接口電路圖3所示。
系統(tǒng)軟件部分的設(shè)計主要按功能塊劃分為若干個模塊進行編寫設(shè)計,主體循環(huán)就是對各個功能函數(shù)進行調(diào)用,完成系統(tǒng)的數(shù)據(jù)采集、處理以及大量客戶使用數(shù)據(jù)的存儲調(diào)用。整個軟件的編寫使用靈活性強、可讀性和可移植性強的C語言[3],在Keil C51集成開發(fā)環(huán)境下完成開發(fā)和最終調(diào)試。
主要的函數(shù)包括主函數(shù)、溫度測量、壓力測量、用戶數(shù)據(jù)存儲、鍵盤顯示等功能函數(shù)模塊。溫度測量功能塊實現(xiàn)對S型熱電偶測溫電路的模/數(shù)轉(zhuǎn)換以及線性化[4]和放大功能;壓力測量功能塊負責(zé)壓力信號的轉(zhuǎn)換;用戶數(shù)據(jù)存儲功能模塊主要是通過對I2C串行存儲器CAT24WC64的控制函數(shù)和協(xié)議棧的調(diào)用來完成數(shù)據(jù)的串行存儲。各個子函數(shù)之間保持各自獨立的完整性,能在主函數(shù)中實現(xiàn)無縫調(diào)用。
CAT24WC64操作包括啟動、停止、隨機字節(jié)讀寫、連續(xù)讀寫、應(yīng)答信號、校驗、延時等。下面重點說明連續(xù)讀寫以及包含的頁寫代碼的實現(xiàn)。
連續(xù)寫函數(shù):
因為i2c存儲器一般都是按頁存儲的,所以在寫的時候也要按照此規(guī)定進行操作,如若跨頁寫則會出現(xiàn)錯誤。在此采用了循環(huán)寫入的方法避免了跨頁寫容易出錯的問題。例如CAT24WC64存儲是按照32 B為一頁,下面給出具體的實現(xiàn)函數(shù)可以不受頁寫限制:
此函數(shù)避免了在連續(xù)寫入遇到跨頁時的限制,可以實現(xiàn)無縫連續(xù)寫入。
連續(xù)讀函數(shù):
連續(xù)讀函數(shù)的具體實現(xiàn)原理與連續(xù)寫入函數(shù)一樣,也實現(xiàn)了無縫連續(xù)讀出函數(shù)。
本系統(tǒng)測試包括軟件測試、硬件測試、穩(wěn)定性和存儲速度測試。通過溫度傳感器和壓力傳感器實現(xiàn)了信號采集并進行分析利用;通過相應(yīng)的軟件校正消除了非線性誤差,在一定范圍內(nèi)提升到比較高的測量精度,滿足了設(shè)計要求。選用了廉價可靠、性能出色的I2C存儲器CAT24WC64,可滿足使用者設(shè)計多種應(yīng)用程序;對牙科市場多種瓷粉材料的燒結(jié)工藝參數(shù)進行存儲并加以應(yīng)用,大大方便了使用者的操作。
[1]何立民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1989.
[2]張載鴻.微型機(PC系列)接口控制教程[M].北京:清華大學(xué)出版社,1992.
[3]徐愛鈞,彭秀華.單片機高級語言 C51Windows環(huán)境編程與應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[4]王士杰.一種適用于微機型溫度儀表的熱電偶非線性校正[J]. 自 動 化 儀 表 ,1994(1):36-37.
[5]范風(fēng)強,蘭嬋麗.單片機語言C51應(yīng)用實戰(zhàn)集錦[M].北京:電子工業(yè)出版社,2002.