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