直流電源設(shè)計中容易出現(xiàn)的程序設(shè)計錯誤及解決方法
開發(fā)單片機(jī)寫入代碼是我們做直流電源設(shè)計時候必不可少步驟,而且每家的代碼程序都是保密的,只有公司的核心人員才可以接觸得到,所以也就形成了相對應(yīng)的技術(shù)保護(hù),也是為了保護(hù)公司利潤的一個簡單有效的方式。但是在設(shè)計或?qū)懭氪a時候,有時候直流電源的功能功能性操作要求較多,這樣就容易受到復(fù)雜環(huán)境的干擾。這里就談一下在直流電源設(shè)計中嵌入式程序設(shè)計容易出現(xiàn)的一些問題及解決方法。
直流電源程序設(shè)計易犯錯誤一:軟件接口
軟件接口調(diào)用一般會有數(shù)據(jù)的賦值,賦值變量的數(shù)據(jù)類型可能會存在強(qiáng)制的數(shù)據(jù)轉(zhuǎn)換;需加以檢查。如果為了防范出問題的話,可以添加對數(shù)據(jù)范圍和數(shù)據(jù)類型的檢查。賦值數(shù)據(jù)的數(shù)量不對路,多了少了的都不好,會出現(xiàn)意外的賦值結(jié)果。
軟件編程中,會有對某一功能操作代碼的復(fù)用,比如對某個端口的數(shù)據(jù)檢查和控制,在整個程序中只會發(fā)生兩次,為了圖省事,可能就直接把該段代碼直接插入實際程序模塊中去了。這樣在源程序代碼中,就出現(xiàn)了兩段完全相同,完成相同功能,只是服務(wù)于不同模塊的代碼,按道理來說,這樣設(shè)計其實也沒什么問題。但是,你的行為會使別人無意中犯錯。
那如何做呢?方法不難,把這段功能單獨做成一個模塊即可,對此端口的讀取和控制賦值均由此獨立模塊完成,如果數(shù)據(jù)的正確性影響大的話,還需要對端口數(shù)據(jù)的正確性進(jìn)行檢查和判斷。嵌入式軟件可靠性編程方法的四個目的是防錯、判錯、糾錯、容錯。
直流電源程序設(shè)計易犯錯誤二:軟硬件接錯誤問題
對讀進(jìn)來的硬件接口的數(shù)據(jù)要判斷其真?zhèn)?對輸出的數(shù)據(jù)的執(zhí)行效果要檢測;對輸出的數(shù)據(jù)的可能后果要進(jìn)行預(yù)防性設(shè)計。
數(shù)據(jù)輸出的過程,我們從設(shè)計上要做一個分析,分析的思路是一般容易局限在穩(wěn)態(tài)過程,忽視了過渡過程。舉例說明,比如我們控制一個支路的供電,從軟件控制來說,直接給繼電器一個啟動信號,讓開狀態(tài)的觸點閉合就可以了,非“關(guān)”即“開”,是受控繼電器的兩個穩(wěn)態(tài)狀態(tài),但事實上,在從開到閉合的過程中,支路供電的電壓并不是一個簡單0V—24V(24V為示例而已)的跳變狀態(tài),而是一個抖動,有沖擊信號的過程,這種情況在硬件上的防護(hù)是必不可少的,但在軟件上也不是可以事不關(guān)己、高高掛起的。另外在邏輯上,宜將容易被干擾和容易產(chǎn)生的干擾控制動作從時序上控制好,予以分開隔離。
直流電源程序設(shè)計易犯錯誤三:軟件代碼
軟件的可靠性是隨著時間的推移,可靠性逐漸增加的,這一點區(qū)別于電子可靠性、機(jī)械可靠性。電子可靠性服從指數(shù)分布,在整個生命周期內(nèi),其失效率為一個常數(shù);機(jī)械可靠性因為磨損、腐蝕、運動等因素的存在,隨時間推移可靠度會下降。因此也就有了軟件可靠性設(shè)計的一個特定規(guī)律和注意事項。
既然需要通過時間推移,通過不斷改進(jìn),軟件可靠性得到提升。那么軟件的可維護(hù)性就是一個大問題了。至于注釋如何去做、變量如何命名、軟件配置管理如何操作,這里面既有很常規(guī)的方法,也有一些我們司空見慣然而是錯誤的做法。信手舉上幾個值得注意的細(xì)節(jié)供參考:
變量定義時宜將變量類型的變量名程中體現(xiàn)于其中;如AD_result_int、Cal_result_float等;制賦值時出現(xiàn)數(shù)據(jù)類型的錯誤;注釋要充分;代碼的布局風(fēng)格宜統(tǒng)一,便于閱讀查找等等
直流電源程序設(shè)計易犯錯誤四:數(shù)據(jù)、變量
變量的定義是為的避免各種混淆,同一程序內(nèi)數(shù)據(jù)和數(shù)據(jù)的混淆、不同人讀程序時對變量理解上出現(xiàn)的二義性、視覺效果上容易出現(xiàn)的錯誤(字母的“o”和數(shù)字的“0”,字母的“l(fā)”和數(shù)字的“1”)。這里要遵循一個“要么相同,要么迥異”的基本規(guī)則,這條規(guī)則在很多的領(lǐng)域都有應(yīng)用。用顯意的符號來命名變量和語句標(biāo)號。標(biāo)識符的命名有明確含義,且是完整單詞或易理解的縮寫。短單詞通過去掉“元音”形成縮寫;長單詞取頭幾個字母形成縮寫;一些單詞有公認(rèn)的縮寫。如:Temp — tmp;Flag — flg;StaTIsTIc — stat;Increment — inc;Message — msg。
特殊約定或縮寫,要有注釋說明。在源文件開始處,對使用的縮寫或約定注釋說明。自己特有的命名風(fēng)格,要自始至終保持一致。
- 上一篇:閥控式電池的均衡充電 2017/5/23
- 下一篇:從理想變?yōu)楝F(xiàn)實-準(zhǔn)諧振式充電機(jī) 2017/5/23