您好、欢迎来到现金彩票网!
当前位置:秒速时时彩开奖 > 算法正确性 >

如何提高单片机程序的可靠性、实时性、测量准确性

发布时间:2019-07-30 23:46 来源:未知 编辑:admin

  可靠性单片机程序可靠性这个这个话题比较大,但是也还是有可行的方法来操作的

  开发流程标准化,可以尽量往CMMI 3级标准上靠。要有系统设计文档输出,软件版本管理,bug管理系统进行bug跟进。

  系统设计,主要是将整个系统按功能层次做好模块化设计。如果所在的公司或机构还没有一套成熟的系统功能划分方法,我建议你可以参考ARM 的 CMSIS架构来划分软件模块,然后进行系统设计。CMSIS架构如下图所示。

  硬件,软件可靠性好,前提是它所运行的硬件系统也需要设计得可靠。这就需要设计硬件时多用你们已有的成熟电路,设计初期进行DFMEA等。

  软件设计,提倡先写设计文档再撸代码。主要是设计的时候需要多做单元测试,提高代码质量。代码质量提高的方法有降低逻辑复杂度,模块化设计等,可以直接参考MISAR C标准做代码质量检测,这块工作有工具可以完成,不用人肉做,相关工具有polyspace,QAC,PC-Lint等。

  异步设计。这种设计主要是通过尽量少使用空跑循环来做延时实现的。比如这个例子,我希望foo函数延时n毫秒再做某事:

  上述这种就是死等延时,这种设计实时性很差,我们完全可以通过状态机的方式,让for循环这个延时释放出来做别的事。改进例子如下:

  运用这种异步方法,可以大大提高系统实时性。还有就是像写flash,EEPROM这种操作,也可以先更新内存值,再统一10ms左右更新一次这样异步实现,来提高实时性。

  电路设计,PCB 布板时尽量降低由于布线引入的干扰,保证参考电压源和地不会因为干扰源发生抖动。

  软件滤波。如果硬件已经成型,可以通过多个采样周期后求平均值,或者搞一个一阶滤波或者多阶滤波算法,甚至FFT采样然后去掉分频量的方法提高采样的准确度。还有就是对于一些明显的错误值,可以考虑丢弃掉,当前周期暂时使用上一个周期的有效值的方式去做计算。

  看过《如何提高单片机程序的可靠性、实时性、测量准确性》的人还看了以下文章

  单片机可以实现在线调试程序,通过软件设置断点,进行单步调试,这样可以看到单片机是如何一步步执行程序的,从而快速找到问题,解决问题。以Keil和IAR为例介绍一下单片机的在线.keil 的在线单片机为例,所需要的软件为Keil MDK,仿...

  单片机开发者应该怎么样考虑自己的单片机程序 单片机控制大部分是面向硬件的,关于这些物理硬件的控制,最重要的就是调节速度和精度,表现在单片机内部算法上,我认为就是时间和空间的合理运用,而这些对算法的要求是什么呢,或者说作为单片机开发者来说,应...

  多做练习,如果你现在用的C语言开发单片机,想提高自己的算法能力,那建议你多看看C语言的常用算法,然后用单片机板子上的LCD,LED等来验证自己的算法程序。 举一些常用算法例子吧,你可以试试在单片机上实现。 一、嵌入式C语言常用算法举例 算法就是为解决...

  在线实时监控调试单片机程序运行方式:程序在线仿真 在线实时监控单片机程序运行可以有多种方式:在线仿真;程序实时输出运行状态(可通过LED,LCD等显示,也可通过USB或串口输出实时运行数据到PC端。) 一、在线仿真 单片机程序要实现在线仿真需要满足三个条...

  51单片机程序执行过程图解分析 一个很简单的程序试一下。 执行以上程序,由P1端口控制的流水灯闪了一下。程序最终进入while(1);里纠缠去了,这个到好解释。 现将while(1);语句屏蔽掉。我还以为程序不能被正确执行了呢,因为退出了main主函数,就像Render需要...

http://homeschoolwwh.com/suanfazhengquexing/640.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有