何道剛 王躍明1.上海濟(jì)物光電技術(shù)有限公司 .中國(guó)科學(xué)院上海技術(shù)物理研究所
?
串行EEPROM DS2431的特性及其在智能ODN中的應(yīng)用
何道剛1,2王躍明2
1.上海濟(jì)物光電技術(shù)有限公司2.中國(guó)科學(xué)院上海技術(shù)物理研究所
摘要:文章介紹了美國(guó)Maxim公司的串行EEPROM DS2431芯片的特性及工作原理,提供了DS2431與單片 機(jī)IAP15L2K61S2的1-Wire總線連接方法,并且簡(jiǎn)要闡述其在智能ODN中的應(yīng)用。
關(guān)鍵字:EEPROM DS2431 1-Wire 單片機(jī) 智能ODN
DS2431是美國(guó)Maxim公司的新一代串行 EEPROM存儲(chǔ)芯片,由四個(gè)存儲(chǔ)器頁(yè)組成,每頁(yè) 256位,它采用1-Wire接口技術(shù),通過標(biāo)準(zhǔn)1-Wire 協(xié)議實(shí)現(xiàn)對(duì)其內(nèi)部1024位存儲(chǔ)區(qū)的數(shù)據(jù)讀寫,讀寫 速率為15.4kbps或125kbps。數(shù)據(jù)先被寫入一個(gè)
8字節(jié)暫存器中,經(jīng)校驗(yàn)無誤后復(fù)制到EEPROM存儲(chǔ)器, 其特點(diǎn)在于,四個(gè)存儲(chǔ)頁(yè)相互獨(dú)立,可以單獨(dú)設(shè) 置寫保護(hù)或EPROM仿真模式,在EPROM仿真 模式下,所有位的狀態(tài)只能從“1”變成“0”。由于它采用CMOS工藝,功耗極低,且寬電源電壓(+2.8V~+5.25V),工作電流約為0.8mA,非常適合對(duì)功耗有嚴(yán)格要求的場(chǎng)合使用,其封裝有TSOC、 TO-92、TDFN-EP、SFN和UCSPR五種形式。 DS2431與外部微處理器接口采用1-Wire標(biāo)準(zhǔn)總線,實(shí)現(xiàn)主機(jī)對(duì)芯片靈活的尋址和讀寫操作,減少了芯片接口的引腳數(shù),提高了芯片使用的靈活性。
2.1DS2431的內(nèi)部結(jié)構(gòu)
DS2431內(nèi)部功能主要由 1-Wire控制模塊、存儲(chǔ)器控制模塊、CRC-16發(fā)生 器、存儲(chǔ)區(qū)、暫存器、ROM注冊(cè)碼、寄生電源模塊及相關(guān)接口電路組成。
2.2DS2431的功能引腳
DS2431芯片只有2個(gè)引腳:IO和GND,各個(gè)引腳的功能說明如下:
IO:信號(hào)線,集控制、地址、數(shù)據(jù)及電源于 一體。
GND:信號(hào)地。
NC:未用。
3.11-Wire簡(jiǎn)介1-Wire總線是Maxim全資子公司Dallas的一項(xiàng)專有技術(shù)與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式如SPI、I2C、MicroWire不同,它采用單根信號(hào)線既傳輸時(shí)鐘又傳輸數(shù)據(jù),同時(shí)提供接收端工作電源,而且數(shù)據(jù)傳輸是雙向的它具有節(jié)省I/O口線資源,故結(jié)構(gòu)簡(jiǎn) 單成本低廉便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn)。 1-Wire總線適用于單個(gè)主機(jī)系統(tǒng)控制一個(gè)或多 個(gè)從機(jī)設(shè)備,當(dāng)只有一個(gè)從機(jī)位于總線上時(shí)系統(tǒng)可 按照單節(jié)點(diǎn)系統(tǒng)操作,而當(dāng)多個(gè)從機(jī)位于總線上時(shí) 則系統(tǒng)按照多節(jié)點(diǎn)系統(tǒng)操作。在數(shù)據(jù)通信前,首先由主機(jī)進(jìn)行初始化,主機(jī) 開始發(fā)送數(shù)據(jù)時(shí),先將總線短暫拉低至少480us,發(fā)送復(fù)位脈沖,對(duì)總線上所有從機(jī)進(jìn)行復(fù)位。總線上每個(gè)從機(jī)在接收到主機(jī)發(fā)送的復(fù)位脈沖后,發(fā)送復(fù) 位響應(yīng)脈沖,將總線拉低至少60us(主機(jī)發(fā)送復(fù)位 脈沖后由于上拉電阻的存在,總線被拉高)。 主機(jī)向從機(jī)發(fā)送數(shù)據(jù)分為寫1和寫0兩種,當(dāng)寫1 時(shí),主機(jī)發(fā)送一個(gè)短脈沖將總線拉低1~15us后釋放, 等待60us,寫1完成;當(dāng)寫0時(shí),主機(jī)發(fā)送的短脈沖 時(shí)長(zhǎng)至少60us。 主機(jī)讀從機(jī)的過程,在讀每一位數(shù)據(jù)前,主機(jī) 先發(fā)送一個(gè)1~15us的起始低脈沖拉低總線后釋放, 釋放總線后主機(jī)1~15us內(nèi)讀取的就是從機(jī)的數(shù)據(jù)。若從機(jī)輸出的數(shù)據(jù)是1,總線什么都不做保持高電平; 若從機(jī)輸出的數(shù)據(jù)是0,數(shù)據(jù)線拉低60us。
3.2DS2431尋址及存儲(chǔ)尋址
DS2431的數(shù)據(jù)存儲(chǔ)器和寄存器位于一個(gè)線性地址空間。數(shù)據(jù)存儲(chǔ)器和寄存器對(duì)讀操作沒有限制。DS2431的EEPROM陣列共有18行,每行8字節(jié),前 16行被等分為4個(gè)存儲(chǔ)器頁(yè)(每頁(yè)32字節(jié)),這4頁(yè)為主數(shù)據(jù)存儲(chǔ)器,可以通過設(shè)置寄存器行中相 應(yīng)的保護(hù)字將每一頁(yè)單獨(dú)設(shè)置成無保護(hù)、寫保護(hù)或 EPROM模式。最后2行包括保護(hù)寄存器和保留字節(jié)。 寄存器行包括4個(gè)保護(hù)控制字、1個(gè)復(fù)制保護(hù)字、1 個(gè)工廠設(shè)置字和2個(gè)制造商ID。
3.3DS2431存儲(chǔ)器功能命令
DS2431存儲(chǔ)器功能命令主要包括寫暫存器、讀 暫存器、復(fù)制暫存器、讀存儲(chǔ)器。
3.3.1寫暫存器
該命令適用于數(shù)據(jù)存儲(chǔ)器和寄存器頁(yè)中的可寫 地址,為了保證暫存器中的數(shù)據(jù)能夠被正確復(fù)制到 存儲(chǔ)器陣列中,用戶必須保證“寫暫存器”命令 中的8個(gè)數(shù)據(jù)字節(jié)開始于一個(gè)有效行邊界處。發(fā)出 “寫暫存器”命令后,主機(jī)必須首先發(fā)送2個(gè)字節(jié) 的目標(biāo)地址,接著發(fā)送要寫入暫存器的數(shù)據(jù)。當(dāng)執(zhí) 行“寫暫存器”命令時(shí),DS2431內(nèi)部的CRC發(fā)生器 計(jì)算整個(gè)數(shù)據(jù)流的CRC校驗(yàn)碼,數(shù)據(jù)流起始于命令 代碼,終止于主機(jī)發(fā)送的最后一個(gè)數(shù)據(jù)字節(jié),該 CRC校驗(yàn)碼由CRC-16多項(xiàng)式生成,計(jì)算時(shí)首先清除 CRC發(fā)生器,然后順序移入“寫暫存器”命令代碼 (0Fh)、目標(biāo)地址和所有數(shù)據(jù)字節(jié)。
3.3.2讀暫存器
該命令可以用來校驗(yàn)?zāi)繕?biāo)地址和暫存器數(shù)據(jù)的 完整性。主機(jī)發(fā)送命令代碼后開始讀取數(shù)據(jù),開頭 的兩個(gè)字節(jié)是目標(biāo)地址,下一個(gè)字節(jié)是結(jié)束偏移量 或數(shù)據(jù)狀態(tài)字節(jié),接著是暫存器數(shù)據(jù),這些數(shù)據(jù)可能與主機(jī)發(fā)送的原始數(shù)據(jù)有所不同。當(dāng)目標(biāo)地址位于 寄存器頁(yè)或位于寫保護(hù)或EPROM模式時(shí),這一點(diǎn)尤 其重要。主機(jī)應(yīng)先讀完暫存器中所有數(shù)據(jù),然后就 可以收到反碼的CRC,該CRC碼根據(jù)DS2431發(fā)送的 數(shù)據(jù)產(chǎn)生。
3.3.3復(fù)制暫存器
該命令用來將暫存器中的數(shù)據(jù)復(fù)制到可寫的存 儲(chǔ)器區(qū)域,主機(jī)發(fā)出“復(fù)制暫存器”命令后,必須 提供一個(gè)3字節(jié)的授權(quán)模板,該模板應(yīng)該通過前一個(gè)“讀暫存器”命令獲得。該3字節(jié)模板數(shù)據(jù)必須與三 個(gè)地址寄存器中的數(shù)據(jù)完全匹配,如果模板匹配、目標(biāo)地址有效、PF標(biāo)志位未被置位并且目標(biāo)存儲(chǔ)器 沒有復(fù)制保護(hù),則AA標(biāo)志位置位,開始執(zhí)行復(fù)制操作,暫存器中的8字節(jié)數(shù)據(jù)全部被復(fù)制到目標(biāo)存儲(chǔ)器中。如果PF標(biāo)志位被置位或目標(biāo)存儲(chǔ)器處于復(fù)制保 護(hù)模式,則不會(huì)執(zhí)行復(fù)制操作而且AA標(biāo)志位不會(huì)置位。
3.3.4讀存儲(chǔ)器
該命令通常用于從DS2431中讀取數(shù)據(jù),發(fā)出命 令后,主機(jī)需要提供2個(gè)字節(jié)的目標(biāo)地址后,主機(jī)開 始讀取起始于目標(biāo)地址的數(shù)據(jù),可連續(xù)讀至地址 008Fh處。如果主機(jī)在繼續(xù)進(jìn)行讀操作,則讀取結(jié)果將是邏輯1。
3.4DS2431與IAP15L2K61S2的硬件配置
DS2431的IO接口滿足標(biāo)準(zhǔn)1-Wire協(xié)議標(biāo)準(zhǔn),分別支持15.4 kbps的標(biāo)準(zhǔn)通信速率和125kbps的高速通信速率。DS2431的端口為漏極開路,在任何速率下 運(yùn)行都需要一個(gè)2.2KΩ的上拉電阻。
3.5處理流程
主機(jī)通過1-Wire端口訪問DS2431的協(xié)議包括初 始化、ROM命令和功能命令。主機(jī)每次訪問DS2431,必須遵守這個(gè)命令序列,如果出現(xiàn)序列混亂,DS2431 則不會(huì)響應(yīng)主機(jī)。
3.5.1初始化
基于1-Wire協(xié)議接口的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。
3.5.2ROM命令
一旦主機(jī)檢測(cè)到一個(gè)應(yīng)答脈沖,就可以發(fā)送 DS2431的ROM命令,所有的ROM命令長(zhǎng)度均為 8位,下面列出這些命令:
讀ROM:允許主機(jī)讀取DS2431的8位家族碼、唯一的48位序列號(hào)和8位CRC校驗(yàn)碼。此命令適用于 總線上僅有一個(gè)從機(jī)的情況,若總線上連接了多個(gè) 從機(jī),當(dāng)所有從機(jī)試圖同時(shí)發(fā)送數(shù)據(jù)時(shí),將會(huì)發(fā)生 數(shù)據(jù)沖突,導(dǎo)致主機(jī)收到的數(shù)據(jù)錯(cuò)誤。
匹配ROM:允許主機(jī)尋址多個(gè)總線上的一個(gè)特定ROM注冊(cè)碼的DS2431從機(jī)設(shè)備,這個(gè)命令適 用于單從機(jī)系統(tǒng),也適用于多從機(jī)系統(tǒng)。
搜索ROM:系統(tǒng)啟動(dòng)時(shí),主機(jī)發(fā)送3個(gè)時(shí)隙的 “搜索ROM”命令,在第1個(gè)時(shí)隙,每個(gè)參與搜索的 從機(jī)都輸出各自ROM注冊(cè)碼的原碼,第2個(gè)時(shí)隙, 每個(gè)參與搜索的從機(jī)都輸出各自ROM注冊(cè)碼的補(bǔ)碼, 第3個(gè)時(shí)隙,主機(jī)寫入所選注冊(cè)碼的原碼,所有不匹配的從機(jī)都不再參與搜索。主機(jī)用該命令得到1-Wire總線上從機(jī)的ROM碼。
跳越ROM:在單從機(jī)總線系統(tǒng)中,主機(jī)可使用該命令訪問存儲(chǔ)器而不需要提供64位ROM注冊(cè) 碼,從而節(jié)省了時(shí)間。如果總線上不止一個(gè)從機(jī), 在主機(jī)發(fā)出“跳越ROM”命令后發(fā)送讀命令時(shí),會(huì) 因多個(gè)從機(jī)同時(shí)發(fā)送數(shù)據(jù)而導(dǎo)致數(shù)據(jù)沖突。
總線恢復(fù):為了最大程度提高多從機(jī)應(yīng)用場(chǎng) 合的數(shù)據(jù)吞吐率,DS2431提供了“總線恢復(fù)”命令, 該命令檢查RC位的狀態(tài),若為1,則直接把控制權(quán) 交給存儲(chǔ)器功能。
增強(qiáng)型跳越ROM:在單從機(jī)系統(tǒng),主機(jī)不需要提供64位ROM地址碼就可以訪問存儲(chǔ)器,從而 節(jié)省了時(shí)間。與“跳越ROM”命令不同,該命令將 DS2431設(shè)置為高速模式(OD為1),后續(xù)命令均為 高速模式,直到有一個(gè)最短持續(xù)480us的復(fù)位脈沖將 總線上的所有從機(jī)復(fù)位成標(biāo)準(zhǔn)速率(OD為0)。
增強(qiáng)型匹配ROM:通過該命令,以高速模式 發(fā)送64位ROM地址碼,主機(jī)可以訪問多從機(jī)系統(tǒng)上 一個(gè)特定的DS2431,同時(shí)將其設(shè)置為高速模式。只有與該地址碼匹配的DS2431才會(huì)對(duì)后續(xù)的命令響應(yīng)。
3.5.3功能命令
DS2431的功能命令主要是讀和寫操作,主機(jī)與 DS2431的數(shù)據(jù)通信在時(shí)隙內(nèi)進(jìn)行,每個(gè)時(shí)隙傳輸 1bit,數(shù)據(jù)在寫時(shí)隙由主機(jī)傳輸?shù)綇臋C(jī),數(shù)據(jù)在讀時(shí) 隙由從機(jī)傳輸?shù)街鳈C(jī)。所有通信均以主機(jī)拉低數(shù)據(jù)線開始,當(dāng)1-Wire總線上的電壓降低至門限電壓以 下時(shí),DS2431啟動(dòng)內(nèi)部定時(shí)器,在寫時(shí)隙確定何時(shí) 采樣數(shù)據(jù)線,在讀時(shí)隙確定數(shù)據(jù)有效時(shí)間。
3.6DS2431與IAP15L2K61S2的數(shù)據(jù)傳輸協(xié)議
以上詳細(xì)說明了DS2431與單片機(jī)之間數(shù)據(jù)通信 的1-Wire協(xié)議,現(xiàn)在以一個(gè)寫操作為例簡(jiǎn)要說明整個(gè)操作過程。
近年來,伴隨著電信業(yè)務(wù)向綜合化、數(shù)字化、智能化、寬帶化和個(gè)人化方向的發(fā)展,高帶寬、高 傳輸質(zhì)量的FTTx網(wǎng)絡(luò)在國(guó)內(nèi)外得到了快速發(fā)展。作為占FTTx網(wǎng)絡(luò)建設(shè)投資達(dá)50%~70%的光纖分配網(wǎng),ODN網(wǎng)絡(luò)的建設(shè)和維護(hù)越來越重要。由于ODN網(wǎng)絡(luò)產(chǎn)品基于無源的光網(wǎng)絡(luò)設(shè)備,其先天存在的管理手段較原始,故障定位手段缺乏等問題,給其維護(hù)和運(yùn)營(yíng)帶來了很大不便,嚴(yán)重困擾 著運(yùn)營(yíng)商。統(tǒng)計(jì)數(shù)據(jù)顯示,通常運(yùn)營(yíng)商超過30%的光纖由于標(biāo)識(shí)混亂、無法辨識(shí)造成資源沉淀無法使用,只能重新投資鋪設(shè),造成大量的資源浪費(fèi)。除了資源沉淀外,運(yùn)營(yíng)商還面臨著光纖網(wǎng)絡(luò)業(yè)務(wù)開通和管理的難題,比如,運(yùn)維部門接到訂單,派出施工人員到遠(yuǎn)端進(jìn)行施工,但到現(xiàn)場(chǎng)才發(fā)現(xiàn)光纖已經(jīng)分配完畢;對(duì)于局端是否需要擴(kuò)容,運(yùn)營(yíng)商也只能 采取定期巡查的模式,耗費(fèi)大量人力物力。
智能化的ODN解決方案,可以極大地提高光纖 部署的自動(dòng)化程度,減少手工操作,從而加快部署效率,降低由于手工操作導(dǎo)致的光纖連接及光纖資源記錄錯(cuò)誤率,使光纖資源可用率得到提升。引入智能化的ODN,幫助運(yùn)營(yíng)商簡(jiǎn)化管理流程、降低運(yùn)營(yíng)成本成為必然。智能ODN系統(tǒng)主要包括智能網(wǎng)管、智能ODF、 智能FDT、智能FAT和智能終端等。
參考文獻(xiàn)
[1]Maxim公司產(chǎn)品手冊(cè),2012版
[2]STC公司產(chǎn)品手冊(cè),IAP15L2K61S2 Datasheet,2013版
[3]MCS-51系列單片機(jī)實(shí)用接口技術(shù),李華主編,北京航空航天大學(xué)出版社,1993 [4]通信原理,樊昌信等編,國(guó)防工業(yè)出版社,1992 [5]智能ODN管理系統(tǒng)標(biāo)準(zhǔn),2012版