CS5460A在路燈單燈監(jiān)控系統(tǒng)中的應(yīng)用
1.3 CS5460A的接口設(shè)計
CS5460A的串行口包括CS、SDI、SDO、SCLK 4條控制線,與MC13213的I/O口連接十分方便。MC13213對CS5460A的操作通過寫一些命令字節(jié)來實現(xiàn)的,傳輸方式通過I/O接口來模擬SPI傳輸。其中命令字包括對寄存器的讀寫及對CS5460A的校準(zhǔn),初始化配置等。設(shè)置CS5460A的數(shù)據(jù)輸入SDI、數(shù)據(jù)輸出SDO、串行時鐘SCLK、片選CS、復(fù)位引腳RESET分別與MC13213的PTA1~PTA5相連,在進行測量之前要先對CS5460A進行復(fù)位。CS5460A與MC13213的接口電路如圖3所示。本文引用地址:http://cafeforensic.com/article/171916.htm
2 系統(tǒng)軟件設(shè)計
2.1 MC13213程序
MC13213的程序設(shè)計方案包括動態(tài)連接網(wǎng)絡(luò),數(shù)據(jù)采集和應(yīng)用控制程序。動態(tài)連接網(wǎng)絡(luò)負(fù)責(zé)查詢網(wǎng)絡(luò)設(shè)備,建立通信鏈路。數(shù)據(jù)采集包括路燈狀態(tài)的采集、處理及保存。應(yīng)用控制程序負(fù)責(zé)執(zhí)行控制命令等功能。其中對路燈狀態(tài)采集通過CS5460A獲得。對CS5460A的操作主要包括CS5460A的校準(zhǔn),I/O口模擬的SPI接口初始化,CS5460A初始化,電壓有效值寄存器、電流有效值寄存器及有功功率寄存器的數(shù)據(jù)讀取。MC13213對CS5460A的操作流程如圖4所示。
2.2 I/O口模擬SPI
(1)字節(jié)發(fā)送
MC13213的I/O端口PTA3為時鐘信號線(SCLK),PTA2是數(shù)據(jù)信號輸出線(SDO)。在PTA3制造一個電平變化,輸出數(shù)據(jù)data的高位BIT7,data中的數(shù)據(jù)依次右移一位,再將PTA3的電平變化一次,又一次輸出data的高位。這時,輸出的就是原來data中的次高位BIT6位,如此重復(fù),data右移8次就完成了一個字節(jié)的輸出。
(2)字節(jié)接收
同樣的原理,把PTA3的輸出電平拉高,制造一個高電平,檢測輸入腳PTA1(SDI)的電平,記入data中,把PTA3的輸出電平拉低,就完成了一個字節(jié)位的接收。然后將PTA3的輸出電平拉高,制造一個高電平,再次檢測輸入腳PTA1的電平記入data中,如此8次后就收到了一個字節(jié)。
2.3 CS5460A校準(zhǔn)
為了提高CS5460A的實際測量準(zhǔn)確度,在開始測量前要對其進行校準(zhǔn)。CS5460A提供DC偏移校準(zhǔn),AC偏移校準(zhǔn)以及AC增益校準(zhǔn)。用戶通過設(shè)置校準(zhǔn)命令字中的相應(yīng)位來決定執(zhí)行哪種校準(zhǔn)。但不管是哪種校準(zhǔn)都有兩種模式:系統(tǒng)偏移校準(zhǔn)和系統(tǒng)增益校準(zhǔn)。偏移校準(zhǔn)時需提供零電壓和零電流信號,最后得到的實際測量值=線性值+偏移值。系統(tǒng)偏移校準(zhǔn)采用CS5460A內(nèi)部偏移校準(zhǔn)。
最初系統(tǒng)增益校準(zhǔn)采用了CS5460A內(nèi)部增益校準(zhǔn),即向增益寄存器寫入校準(zhǔn)值,但經(jīng)過實測發(fā)現(xiàn)對于本系統(tǒng)隨著電流的變化,采用此種校準(zhǔn)方法得到的電流值線性度極差,無法達到使用要求。最終決定使用外部增益校準(zhǔn)。增益校準(zhǔn)實質(zhì)是乘法運算的調(diào)整,得到的實際測量值=線性值×增益值。在實驗中給出標(biāo)準(zhǔn)的5 A電流及220 V電壓來進行外部手動校準(zhǔn),最終得到的Vgain=0x0166,Igain=0x015D,即:
實際測量電壓值=線性電壓值×(0x0166/0x00FF)
實際測量電流值=線性電流值×(0x015D/0x00FF)
2.4 CS5460A初始化
CS5460A的工作時鐘MCIK選定為11.059 2 MHz,分頻系數(shù)K設(shè)為1,循環(huán)計數(shù)寄存器的N值設(shè)為4000,則一個基本的計算周期為(1024×N)/(MCLK/K)=1/2.7 s。
當(dāng)CS5460A上電后,首先給復(fù)位脈沖到RESET引腳,然后再初始化CS5460A。CS5460A與MC13213的接口非常簡單,但它的初始化命令較多,在使用上有一定的技巧,如使用不當(dāng)有時可能初始化不成功,引起芯片的轉(zhuǎn)換出錯,使系統(tǒng)不能正常工作。所以在使用過程中將初始化過程反復(fù)凋試,編成通用子程序,使用時調(diào)用,可確保每次運行的準(zhǔn)確、可靠。CS5460A初始化流程如圖5所示。
評論