直流电源设计中容易出现的程序设计错误及解决方法
开发单片机写入代码是我们做直流电源设计时候必不可少步骤,而且每家的代码程序都是保密的,只有公司的核心人员才可以接触得到,所以也就形成了相对应的技术保护,也是为了保护公司利润的一个简单有效的方式。但是在设计或写入代码时候,有时候直流电源的功能功能性操作要求较多,这样就容易受到复杂环境的干扰。这里就谈一下在直流电源设计中嵌入式程序设计容易出现的一些问题及解决方法。
直流电源程序设计易犯错误一:软件接口
软件接口调用一般会有数据的赋值,赋值变量的数据类型可能会存在强制的数据转换;需加以检查。如果为了防范出问题的话,可以添加对数据范围和数据类型的检查。赋值数据的数量不对路,多了少了的都不好,会出现意外的赋值结果。
软件编程中,会有对某一功能操作代码的复用,比如对某个端口的数据检查和控制,在整个程序中只会发生两次,为了图省事,可能就直接把该段代码直接插入实际程序模块中去了。这样在源程序代码中,就出现了两段完全相同,完成相同功能,只是服务于不同模块的代码,按道理来说,这样设计其实也没什么问题。但是,你的行为会使别人无意中犯错。
那如何做呢?方法不难,把这段功能单独做成一个模块即可,对此端口的读取和控制赋值均由此独立模块完成,如果数据的正确性影响大的话,还需要对端口数据的正确性进行检查和判断。嵌入式软件可靠性编程方法的四个目的是防错、判错、纠错、容错。
直流电源程序设计易犯错误二:软硬件接错误问题
对读进来的硬件接口的数据要判断其真伪;对输出的数据的执行效果要检测;对输出的数据的可能后果要进行预防性设计。
数据输出的过程,我们从设计上要做一个分析,分析的思路是一般容易局限在稳态过程,忽视了过渡过程。举例说明,比如我们控制一个支路的供电,从软件控制来说,直接给继电器一个启动信号,让开状态的触点闭合就可以了,非“关”即“开”,是受控继电器的两个稳态状态,但事实上,在从开到闭合的过程中,支路供电的电压并不是一个简单0V—24V(24V为示例而已)的跳变状态,而是一个抖动,有冲击信号的过程,这种情况在硬件上的防护是必不可少的,但在软件上也不是可以事不关己、高高挂起的。另外在逻辑上,宜将容易被干扰和容易产生的干扰控制动作从时序上控制好,予以分开隔离。
直流电源程序设计易犯错误三:软件代码
软件的可靠性是随着时间的推移,可靠性逐渐增加的,这一点区别于电子可靠性、机械可靠性。电子可靠性服从指数分布,在整个生命周期内,其失效率为一个常数;机械可靠性因为磨损、腐蚀、运动等因素的存在,随时间推移可靠度会下降。因此也就有了软件可靠性设计的一个特定规律和注意事项。
既然需要通过时间推移,通过不断改进,软件可靠性得到提升。那么软件的可维护性就是一个大问题了。至于注释如何去做、变量如何命名、软件配置管理如何操作,这里面既有很常规的方法,也有一些我们司空见惯然而是错误的做法。信手举上几个值得注意的细节供参考:
变量定义时宜将变量类型的变量名程中体现于其中;如AD_result_int、Cal_result_float等;制赋值时出现数据类型的错误;注释要充分;代码的布局风格宜统一,便于阅读查找等等
直流电源程序设计易犯错误四:数据、变量
变量的定义是为的避免各种混淆,同一程序内数据和数据的混淆、不同人读程序时对变量理解上出现的二义性、视觉效果上容易出现的错误(字母的“o”和数字的“0”,字母的“l”和数字的“1”)。这里要遵循一个“要么相同,要么迥异”的基本规则,这条规则在很多的领域都有应用。用显意的符号来命名变量和语句标号。标识符的命名有明确含义,且是完整单词或易理解的缩写。短单词通过去掉“元音”形成缩写;长单词取头几个字母形成缩写;一些单词有公认的缩写。如:Temp — tmp;Flag — flg;StaTIsTIc — stat;Increment — inc;Message — msg。
特殊约定或缩写,要有注释说明。在源文件开始处,对使用的缩写或约定注释说明。自己特有的命名风格,要自始至终保持一致。
- 上一篇:阀控式电池的均衡充电 2017/5/23
- 下一篇:从理想变为现实-准谐振式充电机 2017/5/23