資深工程師解密電表研發(fā):一場(chǎng)牽一發(fā)而動(dòng)全身的修行
電能表,于普通人而言,是每個(gè)月一次的繳費數字;于初入行的人而言,是幾個(gè)元器件、零部件的組合;而對于資深的電表工程師而言,這則是一場(chǎng)牽一發(fā)而動(dòng)全身的修行。一款電表的研發(fā)過(guò)程中,除了對技術(shù)人員本身的技術(shù)經(jīng)驗累積要求高外,還需要傾注更多的恒心和毅力。本文將以ADE7755芯片設計單相復費率電能表為例,為讀者揭開(kāi)電表研發(fā)的神秘面紗。
本文引用地址:http://dyxdggzs.com/article/201610/307802.htm
當企業(yè)決定研發(fā)一款新電表,拿到一份客戶(hù)的技術(shù)規格書(shū)的時(shí)候,第一步是做什么呢?是找方案公司設計方案?找供應商選器件?這些都不是。這里需要重點(diǎn)說(shuō)明的一點(diǎn)是,沒(méi)有哪一個(gè)大的廠(chǎng)商會(huì )愿意完全投入經(jīng)歷去研發(fā)一款全新的表型,全新產(chǎn)品不僅研發(fā)周期長(cháng),人員精力投入大,投資成本高,而且風(fēng)險很大。企業(yè)的利益趨向決定了它們不會(huì )做這種高投資高風(fēng)險的事情。一切的產(chǎn)品研發(fā)都是基于現有產(chǎn)品,在現有產(chǎn)品上做改動(dòng)。所以,當工程師拿到一分新產(chǎn)品的技術(shù)規格書(shū)的時(shí)候,第一步要做的是仔細地閱讀規格書(shū)的每一條功能要求,并且與現有的產(chǎn)品做比較,找出與新產(chǎn)品最相似的產(chǎn)品——即最適合進(jìn)行改造的現有表型,下一步即是根據每一條不同的功能要求制定改進(jìn)初步方案。了解改進(jìn)中硬件需要做什么,軟件需要做什么,哪些元器件需要替代更換。下一步則是針對需要更換的元器件尋找供應商,上板編程調試。
為讀者大家更詳細的了解電表的研發(fā)流程,以下將以單相復費率電能表為例來(lái)詳細闡述電表的設計方法、硬件設計的技術(shù)關(guān)鍵和軟件設計流程。
電能表的硬件電路設計
電能表的硬件電路設計由電源電路設計、計量電路設計、通訊電路設計、MCU及其它部分電路設計四大部分組成。
主要功能模塊
MCU主控制器也即是我們常常說(shuō)的電表的CPU,主要負責按鍵輸入掃描、工作狀態(tài)檢測、計量數據的讀入、計算和存儲、電表參數的現場(chǎng)配置以及與外界的通信控制等。,一般來(lái)說(shuō),在新產(chǎn)品的設計中,MCU是不會(huì )換的;凡是涉及到更換MCU的新品研發(fā),必將是更加的費時(shí)費力。所以,電表廠(chǎng)商對于MCU的選用都是非常慎重和穩定的,不會(huì )輕易更換品牌和供應商。當然,為了規避缺貨等風(fēng)險,以及保持一定的價(jià)格競爭,對大廠(chǎng)而言,通常的做法是不會(huì )讓一家供應商獨領(lǐng)風(fēng)騷,2-3家分攤所有產(chǎn)線(xiàn)的元器件供貨是比較穩妥的做法。電能表MCU的主流供應商有TI、Freescale、ST、NXP等。
計量電路的設計是電能表的核心部分,是電能表計量準確性的關(guān)鍵部分,也是電能表計量功能的體現,。目前主流的計量芯片有ADI、ST、CirrusLogic、IDT、TI等。
存儲器件的選擇又會(huì )根據所要存儲數據的類(lèi)型數量來(lái)決定。如一般的時(shí)間記錄,簡(jiǎn)單功能的電能表,選用EEPROM就足夠,而要實(shí)現復合曲線(xiàn)的記錄,如按日/小時(shí)/分鐘/秒存儲,因存儲的信息量巨大,則需要更大的存儲容量,測試則需要選用flash,容量越大,軟件設置也會(huì )越復雜。
其他主要功能模塊還包括紅外和RS—485通信模塊、校表模塊、時(shí)鐘日歷電路、工作異常報警電路、按鍵輸入電路、復位和看門(mén)狗電路、開(kāi)關(guān)電源模塊和后備電池電路、大屏幕液晶顯示模塊和LED顯示模塊。而像RS-485芯片、載波芯片,一般在進(jìn)行新產(chǎn)品設計時(shí),是不用替換的。
單相復費率電能表的硬件組成框圖

由上圖所示,電源電路為了提高系統的抗干擾性、可靠性,分為三個(gè)獨立的電源,使計量電路,RS485通訊和MCU的電源相互隔離,達到互不影響的目的,但是它們使用同一個(gè)變壓器,所以應注意變壓器的選擇。在計量電路部分,ADE7755芯片是一個(gè)數?;旌系碾娐?,因此設計較為困難,要到達良好的計量效果,要采取一定的抗干擾措施(比如數字地和模擬地應在PCB板上單點(diǎn)連接),特別是在對電流、電壓采樣的電路直接接在外部線(xiàn)路上,干擾比較嚴重。I2C總線(xiàn)在整個(gè)系統中占有重要的地位,它關(guān)系到LCD顯示、電量數據存儲、時(shí)間和日期的讀取等等,它是MCU與外部設備的接口,是MCU獲取信息的窗口,并且根據外部信息作出相應的判斷和動(dòng)作(比如凍結時(shí)間到,MCU作出凍結電量事件發(fā)生)。在通訊電路中,電能表有兩個(gè)通訊信道(紅外信道、RS485通訊信道),在通訊發(fā)生時(shí)MCU要判斷是那個(gè)信道進(jìn)行通訊,并且接收通訊幀,判斷是否正確,并執行通訊命令。從上面可以看出MCU的作用,它是系統的控制器,起著(zhù)決定性的作用。
單相復費率電能表的軟件設計
軟件系統是整個(gè)電能表系統的靈魂,它是系統的神經(jīng)中樞,它是整個(gè)系統的控制、指揮中心。電能表軟件系統的算法設計在整個(gè)電能表系統設計中占有重要的一個(gè)環(huán)節,控制算法的優(yōu)劣對整個(gè)系統正確、可靠的運行有決定性的影響,因此在進(jìn)行電能表軟件系統的算法設計時(shí),要仔細、反復地進(jìn)行設計、論證,考慮各個(gè)方面地因素,使控制算法正確、可靠。

軟件系統包括程序數據結構模塊、程序初始化模塊、時(shí)鐘及顯示處理模塊、通訊處理模塊和電量處理模塊五大部分組成,各個(gè)部分都其特殊的任務(wù),在電表系統中完成它們相應的功能。
程序數據結構模塊是對程序中的數據進(jìn)行分析,合理的分配數據內存,定義程序涉及的變量。它是根據整個(gè)程序的算法來(lái)制定的,同時(shí)一個(gè)好的數據結構對整個(gè)程序的寫(xiě)作有非常重要的作用,因此根據電能表軟件系列實(shí)現的功能及其算法制定合理的數據結構。DDSF系列電能表的數據結構包括兩個(gè)部分:MCU內存數據結構和EEPROM數據結構。
程序初始化模塊是對整個(gè)程序進(jìn)行初始化,它包括兩個(gè)部分:MCU初始化和電表各部件初始化。MCU初始化是對MCU各部件進(jìn)行初始化,為各部件在程序工作時(shí)提供合適的初始狀態(tài),它包括配置I/O口工作模式、看門(mén)狗初始化、定時(shí)器初始化、鍵盤(pán)中斷初始化、串口中斷初始化、比較器中斷初始化等等。電表各部件初始化是對電能表系統各部件進(jìn)行配置工作狀態(tài),初始化它們的工作方式,為程序工作提供電表部件初始狀態(tài),它包括指示燈初始化、LCD顯示初始化、實(shí)時(shí)時(shí)鐘初始化、電量恢復、通訊信道、歷史電量處理等等部件的初始化。
時(shí)鐘、顯示處理模塊是程序系統中進(jìn)行時(shí)鐘和顯示處理的模塊,是通過(guò)對當前時(shí)鐘的比較,對有關(guān)時(shí)鐘事件是否發(fā)生進(jìn)行判斷,程序對時(shí)鐘事件作出處理,可以說(shuō)時(shí)鐘就是這個(gè)程序模塊的節奏,告訴程序哪個(gè)事件在什么時(shí)候發(fā)生。比如說(shuō)顯示數據刷新事件,它是1S的時(shí)間對顯示數據進(jìn)行刷新,當時(shí)間間隔1S時(shí),顯示數據刷新事件發(fā)生,程序進(jìn)行顯示數據刷新處理。它包括時(shí)鐘及其相關(guān)處理、顯示事件處理、電能反向時(shí)間事件處理、費率和電量結算事件處理等等部分組成的。
通訊處理模塊是電能表系統進(jìn)行外界通訊的模塊,它是依照國標的通訊規程編寫(xiě)的一個(gè)軟件模塊,它包括通訊接收處理、通訊命令處理及通訊發(fā)送處理,當通訊接收到一幀正確的數據時(shí),通知程序通訊命令處理事件發(fā)生,執行通訊命令解釋及執行命令操作,當命令要求發(fā)生通訊數據時(shí),通訊發(fā)送事件發(fā)送,
進(jìn)行通訊數據發(fā)送。同時(shí)由于通訊信道有紅外信道和RS485信道兩個(gè)信道,在通訊時(shí)應判斷是哪一個(gè)信道進(jìn)行通訊的。
電量處理模塊是電能表系統中實(shí)現電能計量的程序,是實(shí)現其基本功能的程序,這部分程序也是電能表軟件系統中最為關(guān)鍵的程序,其計量的正確性,可靠性及電量數據儲存的正確性是關(guān)乎到整個(gè)系統的成敗,關(guān)系到全局,因此這部分計量的算法要設計正確、合理。它包括MCU上電對各電量值的恢復、對各電量脈沖的累計、對各電量小數整數累計、及對電量掉電保護等程序,在電量脈沖累計一定值是,電量小數加1事件發(fā)生,當電量小數累計一定值時(shí),電量整數加1事件發(fā)生,執行電量整數累計程序。
電能表的軟件系統是由五大部分組成的,每一個(gè)部分完成其特定的任務(wù),而且是缺一不可的,同時(shí)各個(gè)模塊之間存在著(zhù)一定的聯(lián)系,存在著(zhù)數據交換的可能,它們不是相互獨立的,而是相互聯(lián)系、統一,形成整個(gè)電能表軟件系統。
一場(chǎng)牽一發(fā)而動(dòng)全身的修行
在新產(chǎn)品的研發(fā)中,硬件和軟件設計兩大部分中,任何一個(gè)元器件的更換,一條代碼的修改都是牽一發(fā)而動(dòng)全身的操作,會(huì )涉及到一系列的硬件電路的改動(dòng)、測試,一整套的流程操作全部要變動(dòng),“哪怕是一點(diǎn)點(diǎn)的變動(dòng),所有的工作都得要全部重新開(kāi)始。”常聽(tīng)電表工程師這樣抱怨道。電表產(chǎn)品的研發(fā)特點(diǎn)決定了研發(fā)人員不僅需要豐富的技術(shù)知識和經(jīng)驗,更需要執著(zhù)的耐心和毅力,才能在把自己逼瘋掉之前做出合格的產(chǎn)品。
你,是否也正進(jìn)行著(zhù)這樣一場(chǎng)修行呢?
評論