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