張 杰,楊筆鋒,2,嚴學陽,劉語嫣
(1.成都信息工程大學 電子工程學院,四川 成都 610225;2.中國氣象局大氣探測重點開放實驗室,四川 成都 610225)
基于STC15W204S單片機模擬單總線EEPROM芯片DS2431*
張 杰1,楊筆鋒1,2,嚴學陽1,劉語嫣1
(1.成都信息工程大學 電子工程學院,四川 成都 610225;2.中國氣象局大氣探測重點開放實驗室,四川 成都 610225)
基于STC15W204S單片機研究模擬了單總線EEPROM芯片DS2431。SOP-8封裝的STC15W204S單片機具有引腳少、價格便宜、不需要外部晶振、內部時鐘從5 MHz~35 MHz可設置的優(yōu)點。DS2431是一款具有1 024 bit的1 Wire EEPROM芯片,它具有4頁×256 bit的存儲空間,64位唯一不可更改的光刻。64位光刻的唯一性使DS2431廣泛應用于硬件電路的加密、硬件電路唯一的ID序列號以及密鑰信息的存儲等。主要介紹了1-Wire通信協議、單片機模擬芯片硬件電路、單片機模擬DS2431的程序設計流程、單片機模擬DS2431的64位光刻以及EEPROM。
單片機模擬單總線器件;1-Wire;DS2431;STC15W204S
DS2431是一款具有64位唯一光刻的1 024 bit EEPROM芯片。模擬DS2431就是要模擬DS2431的64位光刻和數據的存儲,從而實現用單片機模擬的DS2431和原來的DS2431具有相同的64位光刻和數據存儲功能。利用64位光刻的不可更改的特性,DS2431廣泛應用于硬件電路加密、設備唯一ID序列號、關鍵信息存儲、知識產權保護、安全功能控制等。單總線設備具有簡單的線路、較少的硬件開銷和低廉的成本等優(yōu)點,便于總線擴展和維護[1-2]。作為一種簡單的信號傳輸電路,1-Wire總線用一根數據線來實現一個或者一個以上的從器件和主控制器之間的半雙工通信。單總線通信可以通過初始化1-Wire器件、識別1-Wire器件和主機與從機之間數據交換三個步驟來實現[3-4]。它是主從結構,主機呼叫從器件的時候,從器件才進行應答[5]。所以,主機只有通過嚴格的單總線命令序列來訪問1-Wire器件,即初始化從器件、ROM、功能命令[6-7]。如果出現序列混亂,1-Wire器件將不會相應主機的命令[8-9]。模擬1-Wire器件要求單片機嚴格應對單總線命令序列和命令時隙,要求單片機對主機發(fā)出的命令進行應答[10]。通過對DS2431應答模擬從而達到用單片機模擬DS2431的目的,用這種方法也可以對其他的1-Wire器件進行模擬。
1.1 1-Wire單總線時序
1-Wire器件在數據傳輸過程中都會遵循嚴格的通信協議,單總線通信協議有復位脈沖、應答脈沖、寫1、寫0、讀1、讀0幾種類型[11]。
單總線的初始化步驟如圖1所示。
(1)主機拉低總線480 μs~960 μs,然后主機釋放總線進入接收狀態(tài)[12]。
(2)從機監(jiān)測到主機不少于480 μs的復位信號后等待15 μs~60 μs,然后產生一個應答信號(拉低總線60 μs~240 μs)[13]。
(3)從機釋放總線至少一個2 μs的恢復時間。
圖1 單總線初始化
寫1和寫0時序步驟如圖2所示。
(1)主機拉低總線5 μs~15 μs,然后主機將總線拉高或者拉低45 μs。
(2)從機在15 μs后開始采樣。
(3)主機釋放總線并且有至少一個2 μs的恢復時間(標準是5 μs)。
(4)整個寫1時隙至少60 μs。
圖2 寫0和寫1時序
讀數據時序步驟如圖3所示。
(1)主機將總線拉低至少1 μs。
(2)從機從下降沿到來之后將總線拉低或者拉高并保持15 μs。
(3)在主機拉低總線后15 μs內主機釋放總線并采樣。
(4)15 μs后由電阻將總線拉高。
(5)整個時間不少于60 s,每個時間片之后有一個至少2 μs的恢復時間。
圖3 讀數據時序
1.2 單總線接口
圖4 單總線接口
單總線接口電路是非常簡單的,DS2431的讀和寫的電壓范圍是2.8 V~5.25 V。在I/O口接一個上拉電阻,根據DS2431數據手冊,上拉電阻電阻的范圍是0.3 kΩ~2.2 kΩ。單總線接口如圖4所示。
2.1 模擬單總線器件時序
模擬單總線器件的時序最重要的是在符合單總線通信協議的規(guī)定時間內對主機發(fā)起的信號進行應答,其中需要對延時把握精確,錯過了時序主機有可能視從機沒有應答從而通信失敗。在模擬時序的時候可以借助邏輯分析儀來對時序進行分析并通過分析結果對模擬時序進行微調。
模擬單總線初始化步驟如圖5所示。
(1)單片機等待主機復位信號,監(jiān)測主機拉低總線并在480 μs內再次確認主機拉低了總線。
(2)單片機在確認了復位信號后延時等待總線拉高。
(3)單片機監(jiān)測到主機將總線釋放拉高后拉低總線(從機應答)60~240 μs。
(4)單片機釋放總線(拉高總線表示應答完成)。
圖5 模擬單總線初始化時序
模擬主機寫1和寫0時序步驟:
(1)單片機等待主機拉低總線發(fā)起通信。
(2)在監(jiān)測到主機拉低總線后,單片機延時幾微秒后開始采樣。
(3)單片機采樣后開始延時,主機寫完數據后恢復總線。
(4)整個時間持續(xù)60 μs。
時序圖如圖5所示,其中采樣時間可以微調,可以借助邏輯分析儀分析時序。主機寫命令55h并匹配。
ROM的模擬時序如圖6所示。
圖6 邏輯分析儀抓取模擬55h命令的時序圖
模擬主機讀數據時序步驟:
(1)主機將總線拉低至少1 μs。
(2)單片機監(jiān)測到主機拉低總線1 μs后立即對總線拉高或者拉低,要確保主機能夠進行采樣。
(3)主機采樣后,單片機恢復總線。
(4)整個時間不少于60 μs,每個時間片之后有一個至少2 μs的恢復時間。
時序圖如圖3所示,其中單片機對總線操作的時間可以微調,可以借助邏輯分析儀分析時序。主機寫命令FOh并搜索ROM的模擬時序如圖7所示。
圖7 邏輯分析儀抓取模擬F0h命令的時序圖
2.2 模擬單總線器件硬件電路接口設計
STC15W204S單片機工作電壓范圍為2.5 V~5.5 V,在ISP編程時內部時鐘在5 MHz~35 MHz范圍內可調,±1%溫飄(-40℃~+85℃)常溫下溫飄±0.6%(-20℃~+65℃),可以滿足硬件指標要求。STC15W204S有8個引腳6個I/O口。調試時P3.0和P3.1做串行接口用于燒寫程序,P3.3、P5.4、P5.5可以接一個LED燈用于調試觀測單片機狀態(tài)。燒寫好程序的單片機只需要3個引腳便可以工作。電路接口設計如圖8所示。
圖8 電路接口設計
3.1 程序設計的流程
圖9 程序設計流程
主機會在一開始發(fā)出復位信號,一旦檢測到有從器件存在就可以發(fā)出ROM操作命令[14]。ROM命令有“讀”ROM【33h】、“匹配”ROM【55h】、“跳過”ROM【CCh】、“搜索”ROM【F0h】等。如果主機發(fā)出了ROM命令,那么單片機接收到了ROM命令就要做出相應的回應。同樣接下來主機會發(fā)出讀寫操作,單片機也進行相應的回應。程序設計流程如圖9所示。
3.2 模擬64位光刻和EEPROM
因為每一片單總線芯片的64位光刻都是唯一且不可更改的,所以DS2431的光刻可以用來做硬件ID序列號,也可以用來加密硬件,EEPROM可以用來存儲關鍵信息。
為模擬光刻,首先讀出一塊DS2431的光刻,然后用單片機開一個8 B的數組存儲這些光刻。當主機發(fā)出33h命令時單片機就按字節(jié)給它吐光刻,當主機發(fā)出F0h命令時單片機就按位吐出光刻。當主機發(fā)出55h命令時單片機默認接收相應的數據即可[15]。需要注意的是主機發(fā)出的命令是先寫高位再寫低位,在接收命令的時候也是先接收高位再接收低位。
模擬EEPROM可以用單片機開一塊數組用來存儲數據,可以一開始就給這些數組寫一些固定的值,主機來讀的時候就吐數給它。也可以開一片內存來存儲主機寫的數,單片機可以將這些數據存到片內EEPROM。在設計這個數組的時候要參照模擬目標的EEPROM結構,單片機在接到地址命令和頁碼命令時用相應的數組結構來對應。
利用STC15W204S單片機模擬DS2431有很好的發(fā)展前景和利用價值,STC15W204S單片機具有引腳少、功耗低、不需外部晶振、價格低廉等優(yōu)點。本研究實現了用單片機模擬DS2431,破解了DS2431光刻不可以復制的難題。本研究實現了用單片機模擬單總線從機的應答時序,利用這種方法還可以模擬其他的單總線設備。DS2431廣泛應用于打印設備、醫(yī)療設備、硬件電路的加密。利用STC15W204S單片機模擬DS2431的部分功能就可以破解某些加密設備、復制硬件電路等。STC15W204S單片機具有溫度漂移,在復制的時候應考慮溫度漂移范圍。單片機的工作范圍應設置不同的頻率多次下載程序測試,并結合延時函數的修改來確定,下載程序時應取其正常工作范圍的中間值來克服溫度漂移問題??梢岳酶叩蜏貙嶒瀬眚炞C程序及模擬單片機的可靠性。
[1] 陳浩. 基于智能傳感器和單片機的溫度監(jiān)測系統(tǒng)[D]. 北京:華北電力大學,2005.
[2] 陳志英,李光輝. 單總線技術及其應用[J]. 電氣時代,2015(8):74-75.
[3] 楊張利. IC卡燃氣表智能控制及檢測系統(tǒng)研究[D]. 重慶:重慶大學,2007
[4] 胡皓,雷金莉,周妮娜. 1-Wire總線技術及其在火災監(jiān)測中的應用[J]. 機電工程技術,2006,35(6):68-71.
[5] 張揚清. 基于雙機通信的電壓和溫度監(jiān)控系統(tǒng)[J]. 科技風,2013(23):104-105.
[6] 張東. 基于雙CPU的溫室溫度遠距離測控系統(tǒng)研究[D]. 重慶:重慶大學,2007
[7] 張華峰. One-Wire Bus檢測網從站管理及可靠傳輸研究[D]. 南昌:南昌大學,2007
[8] 高羅卿. 1-wire系統(tǒng)中TM卡的單片機等效替換[J]. 單片機與嵌入式系統(tǒng)應用, 2008(8):62-65.
[9] 李穎. 車用動力電池SOC估算方法的研究及其管理系統(tǒng)設計[D]. 沈陽:東北大學, 2012.[10] 張威. 基于RBF神經網絡蓄電池管理系統(tǒng)的研究[D]. 北京:北京工業(yè)大學,2008.
[11] 安錫穎. LED路燈無線智能控制系統(tǒng)設計[D]. 武漢:華中科技大學,2009.
[12] 候海玉. 智能壓電傳感器開發(fā)平臺的設計與研究[D]. 秦皇島:燕山大學,2006.
[13] 李亞梅. 動力蓄電池管理系統(tǒng)[D]. 石家莊:河北科技大學,2009.
[14] 朱群峰,黃磊,唐杰,等. 基于DS18B20的單總線多路溫度采集系統(tǒng)[J]. 儀表技術, 2008(12):29-33.
[15] 姚煒,胡毅. 1-wire 單總線協議的擴展應用[J].儀表技術, 2012(6):23-25.
Simulate single bus EEPROM chip DS2431 based on STC15W204S
Zhang Jie1, Yang Bifeng1,2, Yan Xueyang1, Liu Yuyan1
(1.College of Electronic Engineering, Chengdu University of Information Technology, Chengdu 610225, China;2.The Key Laboratory of China Meteorological Administration, Chengdu 610225, China)
This paper researches and simulates the single bus EEPROM chip DS2431 based on the MCU STC15W204S. SOP-8 encapsulated STC15W204S microcontroller has advantages of less pins, cheap price, and no-needing external crystals. It’s internal clock can be set up within 5 MHz to 35 MHz. The DS2431 is a 1 024 bit 1-Wire EEPROM chip, has four memory pages of 256 bit, contains a unique ROM code that is 64 bit long. Based on the 64 bit lasered rom DS2431 is widely used in circuit board encryption, setting the circuit board’s unique ID serial number and key information storage,etc.This paper mainly introduces the 1-Wire communication protocol, the circuit of the MCU simulated DS2431, the program design process of the MCU simulated DS2431, MCU simulated the DS2431’s 64 bit lasered rom and EEPROM.
SCM simulating the 1-Wire device; 1-Wire; DS2431; STC15W204S
國家重大科學儀器設備開發(fā)專項(2012YQ110205)
TP368.1
A
10.19358/j.issn.1674- 7720.2017.08.011
張杰,楊筆鋒,嚴學陽,等.基于STC15W204S單片機模擬單總線EEPROM芯片DS2431[J].微型機與應用,2017,36(8):31-33,38.
2016-10-29)
張杰(1991-),男,碩士研究生,主要研究方向:嵌入式、電子通信。
楊筆鋒(1980-),男,碩士,副教授,主要研究方向:氣象探測、電子綜合設計。
嚴學陽(1994-),女,碩士研究生,主要研究方向:氣象探測、信號與信息處理。
________________________