片機系統(tǒng)運行參數(shù)的保存及有效性判別
【摘 要】 對單片機控制系統(tǒng)運行參數(shù)有效性的判別方法進行了介紹,并對系統(tǒng)運行參數(shù)如何實現(xiàn)保存進行了探討。同時給出了存儲過程中的數(shù)據(jù)校驗和運行參數(shù)的取值范圍檢驗過程。
關鍵詞:單片機,運行參數(shù),數(shù)據(jù)校驗,取值范圍
1 引 言
在單片機構(gòu)成的控制系統(tǒng)中,系統(tǒng)控制時需要使用和保存已經(jīng)設置或優(yōu)化的參數(shù)。如果將運行參數(shù)僅僅存儲于單片機的RAM區(qū)中,則系統(tǒng)在掉電或重啟時將會丟失這些重要參數(shù),不能正常運行。為了解決上述問題,保證控制系統(tǒng)正常、可靠地運行,需要將這些運行參數(shù)保存在足夠容量的電可擦除存儲器(EEPROM)中。在寫入或讀出EEPROM中的數(shù)據(jù)時,為保證數(shù)據(jù)操作的正確性,則需要進行數(shù)據(jù)校驗。在系統(tǒng)運行這些參數(shù)之前,為檢查運行參數(shù)的取值是否在許可范圍之內(nèi),則需要進行參數(shù)取值范圍的檢驗。本文結(jié)合作者開發(fā)的電梯轎廂門機控制系統(tǒng),來詳細討論參數(shù)保存和校驗的設計及實現(xiàn)。
2 系統(tǒng)運行參數(shù)的存儲
在單片機組成的控制系統(tǒng)中,系統(tǒng)設置的運行參數(shù)是系統(tǒng)正常運行所必須使用的,既要保證運行參數(shù)的可修改性,又要保證運行參數(shù)在系統(tǒng)停機或掉電的情況下能夠正確保存,因而運行參數(shù)應保存在電可擦除存儲器(EEPROM)中。根據(jù)參數(shù)個數(shù)的多少,決定所使用EEPROM的存儲容量。例如,在本文的單片機系統(tǒng)中,電梯轎廂門機控制運行所需要的參數(shù)有:門寬參數(shù)、有無光電檢測、輸出保持力矩、開門加速步頻、關門加速步頻、開門減速步頻、關
門減速步頻、工作計數(shù)器等,設計中要求存儲的參數(shù)共需28個字節(jié),再加上一個字節(jié)校驗和,所以選用32字節(jié)容量的EEPROM。Xicro公司的X24C44能滿足上述可修改性和容量的要求。
2.1 EPROM芯片簡介及硬件組成
電可擦除存儲芯片X24C44是一個八引腳的芯片,其內(nèi)部有存儲矩陣和RAM兩個存儲區(qū),外部引腳的功能如圖1所示。芯片各引腳的功能為:CE為芯片使能引腳;Vcc及Vss為電源引腳;電壓為+5V;SK是讀寫X24C44數(shù)據(jù)時所用到的外部時鐘同步信號;DI為命令或數(shù)據(jù)串行輸入X24C44的信號引腳;DO為X24C44數(shù)據(jù)串行輸出的信號引腳;STORE為低電平時,允許將EEPROM中RAM的內(nèi)容保存到存儲矩陣;RECALL為低電平時,允許將EEPROM的存儲矩陣的內(nèi)容傳送到EEPROM的RAM中。
對X24C44的讀寫操作是串行數(shù)據(jù)操作,其讀時序如圖2所示。結(jié)合圖2中的讀時序,讀出 X24C44中某兩字節(jié)的數(shù)據(jù)操作為:芯片的使能引腳CE為高電平,在時鐘SK信號的同步下,先向X24C44的數(shù)據(jù)串行輸入引腳DI送讀出兩字節(jié)的命令1AAAA11X(其中AAAA為要讀出的起始地址,X表示X24C44對該值忽略),數(shù)據(jù)串行輸出引腳在第9個時鐘由高阻態(tài)轉(zhuǎn)為數(shù)據(jù)串行輸出,16個比特為一個讀出內(nèi)容,通過將CE信號置為低電平,先關閉芯片的讀出數(shù)據(jù)操作。
按照向X24C44寫入兩字節(jié)內(nèi)容的時序,寫入兩字節(jié)數(shù)據(jù)的操作類似于讀出操作過程。
X24C44采用串行讀寫數(shù)據(jù),其與單片機的接線簡單,除了片選信號CE外,只要與單片機的三根I/O引腳相連即可,作用為時鐘CLK,數(shù)據(jù)輸入DI,數(shù)據(jù)輸出DO,其中DO引腳要接一個10kΩ的上拉
電阻。硬件電路接線如圖3所示。
2.2 EEPROM讀寫的實現(xiàn)
控制系統(tǒng)中所采用的是51系列單片機,其中讀寫子程序設計用匯編也較容易 實現(xiàn)結(jié)構(gòu)化編程。根據(jù)X24C44的時序和操作過程,下面給出讀出EEPROM中數(shù)據(jù)的匯編子程序。單片機將數(shù)據(jù)寫入EEPROM的過程與讀出過程相類似。讀出EEPROM中數(shù)據(jù)的匯編子程序如下:
read:push psw;讀數(shù)據(jù)子程序入口
評論