亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        EEPROM在儀表系統(tǒng)應用中的幾個問題

        2010-06-22 08:17:56張延宇王琦
        關鍵詞:微控制器驅動程序字節(jié)

        張延宇,王琦

        (河南大學 計算機與信息工程學院,開封475004)

        張延宇(講師),研究方向為嵌入式系統(tǒng)、圖像處理技術;王琦(助教),研究方向為人工智能、嵌入式系統(tǒng)。

        在儀器儀表及其他一些嵌入式系統(tǒng)中,通常需要存儲一些設置參數、現(xiàn)場數據,這些參數和數據要求系統(tǒng)掉電時不丟失,在下次加電工作時系統(tǒng)能夠自動恢復原先設定的數據。為了實現(xiàn)上述功能,通常需要給系統(tǒng)配置一定容量的EEPROM。本文以筆者設計某型號的智能流量計時,在應用EEPROM的過程中遇到的問題及解決方法為例,來說明EEPROM的應用方法。具體包括:系統(tǒng)中EEPROM的配置方法、EEPROM驅動程序的設計方法、延長EEPROM壽命的方法。

        1 EEPROM的配置

        當系統(tǒng)需要EEPROM功能時,如何進行配置是在系統(tǒng)設計初期選擇微控制器時就要考慮的問題。盡管越來越多的微控制器配備了內部的EEPROM,但是還有大量的微控制器(比如傳統(tǒng)的 MCS-51單片機、PIC系列大部分型號的產品、MC68HC05/08系列大部分型號的產品)沒有配置內部的EEPROM。因此,在選擇微控制器的時候就需要綜合考慮各種因素,以確定EEPROM的配置方案是采用內部EEPROM還是采用外擴的方式,這直接影響系統(tǒng)的可擴展性、安全性及綜合成本。

        采用外擴EEPROM時,以串行通信方式居多,常見的串行通信方式有I2C、SPI、Microwire等幾種形式。采用外擴EEPROM時,可以根據系統(tǒng)的實際需求靈活選擇容量合適的EEPROM芯片,比如Atmel公司的AT24C01/02/04等不同容量的芯片,其中 AT24C1024B的容量為1 Mbit,選擇空間十分大。盡管采用外擴EEPROM具有廉價、靈活的特點,但其缺點是占用微控制器有限的引腳資源,電路結構復雜,同時保密性差。

        筆者在設計流量計時綜合考慮各種因素,采用微控制器內置的EEPROM,選用的單片機是 Microchip公司的PIC16F876A,在其內部作為一個片內外設模塊配置了容量為256×8位的EEPROM,通過特殊功能寄存器對其進行讀寫。與外擴EEPROM的方式相比,此種方案具有電路結構簡單、開發(fā)方便、數據保密性好的優(yōu)點。

        2 EEPROM驅動程序的設計

        EEPROM驅動程序的設計方法與EEPROM的配置方案、選用的微控制器及開發(fā)工具有關。筆者在設計流量計時采用的是微控制器內部自帶的EEPROM,選用的單片機是PIC16F876A,集成開發(fā)環(huán)境是Microchip公司的MAPLAB 8.3及HI-TECH公司的C編譯器PICC 9.5。下面詳細介紹一下EEPROM驅動程序的設計方法。

        為了對單片機內部的EEPROM進行讀寫,單片機額外增加了4個特殊功能寄存器:地址寄存器EEADR、數據寄存器EEDATA、讀寫控制第一寄存器EECON1、寫控制第二寄存器EECON2。按照規(guī)定的操作步驟對這幾個寄存器進行操作,就可以完成對EEPROM一個字節(jié)的讀寫操作。但實際進行驅動程序設計時,可以直接利用PICC提供的EEPROM讀寫函數,函數原型為:

        unsigned char eeprom_read(unsigned char addr);

        EEPROM讀函數,addr為欲讀的單元的地址,返回值為指定單元的數據。

        void eeprom_write(unsigned char addr,unsigned char value);

        EEPROM寫函數,addr為欲寫入的單元的地址,value為欲寫入的數據。

        上述兩個函數只能夠實現(xiàn)單個字節(jié)的讀寫,而在系統(tǒng)運行過程中通常要求寫入EEPROM中的數據為多字節(jié)。比如,流量計在運行過程中通常需要將累積量寫入EEPROM中,為了保證足夠的計數范圍和累積精度,在編程時將累積量定義為double型的變量,PICC默認的double型變量為24位,但可以通過改變編譯選項改為32位,筆者采用的是32位。那么如何將4字節(jié)的累積量寫入EEPROM和從EEPROM讀出呢?浮點數存儲時是存放在連續(xù)的字節(jié)中的,只要設法找到存儲位置就可以找到4個字節(jié)中每個字節(jié)的值,從而分別對其讀寫。編程實現(xiàn)時可以定義一指針變量,通過指針進行操作。

        以下兩個函數是筆者自行編制的用于EEPROM讀寫的函數:

        向EEPROM中寫入double型數據,addr為需要寫入的數據在EEPROM中的首地址,data為需要寫入的數據。

        從EEPROM中讀出double型數據,addr為讀出數據在EEPROM中的首字節(jié)地址,函數返回值為double型數據。其他類型的數據在EEPROM中的讀寫方法與此類似,不再贅述。

        3 延長EEPROM壽命的方法

        向EEPROM中寫入數據實際是一個燒寫的過程,對EEPROM具有一定的破壞性,因此一個EEPROM單元的擦寫次數是受限的。具體擦寫次數視不同廠家、不同系列的芯片而定。Microchip公司的PIC16F876A內部EEPROM 的擦寫次數據為100萬次(數據文檔記錄),對于一些不需要頻繁改變的參數(比如流量計中上限流量、下限流量等設定參數)而言完全可以滿足要求。但是當用固定的4字節(jié)存放流量累積量時,是不能滿足要求的。因為,在綜合考慮各種因素后,要求流量計在運行時每10 s存放1次累積量,則EEPROM能安全運行的天數為:1×106/(360×24)≈117天,不能滿足要求。必須采用一定的方法延長EEPROM的讀寫壽命。

        筆者采用的方法是在EEPROM中開辟一段空間滾動存放累積量,具體實現(xiàn)辦法是:將EEPROM中地址為1~160的單元用于滾動存放累積量,每4字節(jié)為一組,共40組,每組連續(xù)存放50次(根據需要可以改為其他數值),然后在下一組中存放。當在第40組(起始首字節(jié)地址為157)連續(xù)存放50次后,再回滾到第1組(起始首字節(jié)地址為1)開始存放。由全局變量SaveTime記錄在某一組連續(xù)存放的次數。EEPROM中地址為0的單元用于存放當前累積量有效值所在組的首字節(jié)地址(記為SaveAddr),當某一組連續(xù)存放50次,滾入下一組時更新SaveAddr的值。具體流程如圖1所示。

        實現(xiàn)上述功能的函數為:

        圖1 寫EEPROM流程

        采用此種方法后,EEPROM的壽命可以延長40倍,為117天×40=4 680天≈12.8年,可以充分滿足要求。當采用此種方法寫累積量后,若需要讀出累積量則需要首先讀取EEPROM地址0的內容,得到有效累積量的存放首地址,然后再調用函數ee_double_read()進行讀取。

        結 語

        本文以筆者設計的某型號智能流量計為背景,總結了EEPROM在儀表及嵌入式系統(tǒng)中應用時需要注意的問題,以及相應解決方法。希望本文能夠對讀者有所啟發(fā)和幫助,起到拋磚引玉的作用。

        [1]李學海.PIC單片機實用教程——提高篇[M].2版.北京:北京航空航天大學出版社,2007.

        [2]Microchip.PIC16F87X Data Sheet,1999.

        [3]HI-TECH Software.HI-TECH PICC Compiler M anual,2005.

        猜你喜歡
        微控制器驅動程序字節(jié)
        No.8 字節(jié)跳動將推出獨立出口電商APP
        No.10 “字節(jié)跳動手機”要來了?
        物聯(lián)網技術在微控制器實驗教學中的應用
        電子制作(2017年14期)2017-12-18 07:07:58
        簡談MC7字節(jié)碼
        Atmel針對新一代物聯(lián)網應用發(fā)布全新32位微控制器
        最新STM32設計工具增加對混合信號微控制器的支持
        意法半導體(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器
        人類進入“澤它時代”
        驅動程序更新與推薦
        驅動程序更新與推薦
        97精品伊人久久大香线蕉| 青青草手机在线观看视频在线观看| 日本av一级片免费看| 国产精品久久免费中文字幕| 日本又色又爽又黄又免费网站| 国产精品久久国产精品99| 欧美aa大片免费观看视频| 国产精品久久久久久2021| 国产成人一区二区三区视频免费蜜| 日本熟妇高潮爽视频在线观看| 中文字幕精品久久一区二区三区| 日本熟女精品一区二区三区| 99久久99久久精品免费看蜜桃 | 中文字幕34一区二区| 青青草成人在线免费视频| 少妇伦子伦情品无吗| 久久精品国产69国产精品亚洲| 国产福利片无码区在线观看| 国产精品国产三级国产一地| 亚洲一区久久蜜臀av| 少妇被猛烈进入到喷白浆| 国产精品人成在线观看不卡| 19款日产奇骏车怎么样| 精品久久人妻av中文字幕| 成人免费看片又大又黄| 美国黄色片一区二区三区| 日本高清一区二区在线观看| 国产精品女同一区二区久| 熟女免费视频一区二区| 国产一区二区三区精品免费av| 牛牛在线视频| 3d动漫精品啪啪一区二区下载 | 久久久中日ab精品综合| 18无码粉嫩小泬无套在线观看| 无码91 亚洲| h视频在线免费观看视频| 无码人妻一区二区三区免费看 | 国产a∨天天免费观看美女| 久久久老熟女一区二区三区| 蜜桃成人无码区免费视频网站| 91亚洲人成手机在线观看|