基于FM3116的電能表存儲(chǔ)系統(tǒng)的軟硬件設(shè)計(jì)
4 FM3116在復(fù)費(fèi)率電能表中的應(yīng)用
4.1 FM3116的硬件設(shè)計(jì)
圖2所示為AVR單片機(jī)與FM3116的接口電路,AVR單片機(jī)提供了實(shí)現(xiàn)標(biāo)準(zhǔn)I2C通信的硬件接口TMI,因此可直接將TMI接口的數(shù)據(jù)傳輸引腳PD1/SDA和時(shí)鐘輸出引腳PD0/SCL分別與FM3116的SDA和SCL相連,通過對(duì)TWI接口寄存器的設(shè)置實(shí)現(xiàn)與FM3116的I2C通信。R1和R2為I2C總線的上拉電阻。
4.2 FM3116的軟件設(shè)計(jì)
4.2.1 FM3116初始化操作
單片機(jī)對(duì)FM3116的讀寫程序包括存儲(chǔ)器讀寫程序和實(shí)時(shí)時(shí)鐘/處理器伴侶讀寫程序兩部分。在對(duì)FM3116讀寫前,單片機(jī)首先需對(duì)其初始化。在復(fù)費(fèi)率電能表系統(tǒng)設(shè)計(jì)中,就是對(duì)相應(yīng)寄存器初始化,采用C語言編寫的程序代碼如下:
4.2.2 實(shí)時(shí)時(shí)鐘程序
復(fù)費(fèi)率電能表實(shí)現(xiàn)復(fù)費(fèi)率功能,需要準(zhǔn)確的實(shí)時(shí)時(shí)鐘作為時(shí)段劃分根據(jù)。FM3116內(nèi)部集成有高精度的實(shí)時(shí)時(shí)鐘模塊,可通過對(duì)相應(yīng)寄存器的讀寫,實(shí)現(xiàn)對(duì)實(shí)時(shí)時(shí)鐘的設(shè)置與讀取操作。設(shè)置實(shí)時(shí)時(shí)鐘的C語言程序代碼(只舉例了設(shè)置時(shí)鐘的日期數(shù)據(jù))如下:
讀取實(shí)時(shí)時(shí)鐘的C語言程序代碼如下:
此外,F(xiàn)M31XX存儲(chǔ)器還具有時(shí)鐘校準(zhǔn)功能,可提高時(shí)鐘準(zhǔn)確度。
4.2.3 存儲(chǔ)器讀寫程序
讀寫FM3116存儲(chǔ)器一般用于實(shí)現(xiàn)電能表電能數(shù)據(jù)及各種事件記錄數(shù)據(jù)的讀取和存儲(chǔ)。由于各種事件數(shù)據(jù)的格式不同,包括單字節(jié)的字符型數(shù)據(jù)、雙字節(jié)的整型數(shù)據(jù)以及4字節(jié)浮點(diǎn)型數(shù)據(jù)。因此,為了方便讀取各種數(shù)據(jù),需要編寫對(duì)各種數(shù)據(jù)讀寫函數(shù)。FM3116存儲(chǔ)器讀寫程序與普通的I2C器件的讀寫操作基本相同,其從機(jī)地址為1010 xxxxb和1101xxxxb。
5 結(jié)束語
由于鐵電存儲(chǔ)器具有讀寫速度快,功耗低和無限次寫入等特性,同時(shí)擁有RAM存儲(chǔ)器和非易失性存儲(chǔ)器的特性,它是EEPROM的理想替代品。將FM3116應(yīng)用到復(fù)費(fèi)率電能表中既節(jié)省成本,又簡(jiǎn)化軟件設(shè)計(jì)。
電能表相關(guān)文章:電能表原理
評(píng)論