0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机开发的7个规则

fcsde-sh 来源:张飞实战电子 作者:张飞实战电子 2020-11-11 10:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

01 设计满足要求的最精简的系统

正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能力是非常强大的。

早期的PC机,其CPU(8086)处理能力和8051相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。

02 使用看门狗

看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位信号,重新复位单片机。更新看门狗的具体形式多是给看门狗芯片相关引脚提供一个电平上升沿或读写它的某个寄存器。使用看门狗电路将在单片机发生故障进行死机状态时,重新复位单片机。

当前有多种看门狗的芯片,如MAXIM 公司的MAX802,MAX813等。而且,有好多种单片机中本身就集成有看门狗。一个外部的看门狗是最好的,因为它不依赖于单片机。如果可能的话,看门狗更新程序不应该放在中断或是子程序中,原则上应该放在主程序中。

我曾经见过一个工程师,他所调试的程序在运行时偶而会引起看门狗的复位动作,于是他干脆在每10ms就中断一次的时钟中断程序中清看门狗。我相信他也知道使看门狗失去作用,可他却没有不是去查明引起这个现象的真正原因。因此,我想提醒大家:不论什么理由,绝对不要忽略系统故障的真正原因。高质量的产品来自于高素质的工程师,高质量的产品造就高素质的工程师。

03 确定系统的复位信号可靠

这是一个很容易忽略的问题。当你在设计单片机系统时,你脑中有这个概念吗?什么样的复位信号才是可靠的吗?你用示波器查看过你设计的产品的复位信号吗?不稳定的复位信号可能会产生什么样的后果?你有没有发现过你所设计的单片机系统,每次重新上电启动后,数据变得乱七八糟,并且每一次现象并不相同,找不出规律,或者有时候干脆不运行,或者有时候进入一种死机状态,有时候又一点事都没有正常运行?在这种情况下,你应该查一下你的系统的复位信号。

一般在单片机的数据手册(Datasheet)中都会提到该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上电在同一时刻发生,即芯片一上电,复位信号就已产生。不然,由于没有经过复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。

04 确定系统的初始化有效

系统程序开始应延时一段时间。这是很多单片机程序设计中的常用方法,为什么呢?因为系统中的芯片以及器件从上电开始到正常工作的状态往往有一段时间,程序开始时延时一段时间,是让系统中所有器件到达正常工作状态。究竟延时多少才算合适?这取决于系统的各芯片中到达正常工作状态的时间,通常以最慢的为准。

一般来说,延时20-100毫秒已经足够。对于系统中使用嵌入式MODEM等“慢热”型的器件来说,则应更长。当然,这都需要在系统实际运行中进行调整。

05 上电时对系统进行检测

上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。

比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM如果存在问题,程序通常都会成为一匹脱缰的野马。因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。

检测内容包括:

1)检测RAM 中的单元。这主要通过写入和读出的数据保持一致。

2)检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地”上。

另外,很多芯片,都提供了测试的方法。如串行通信芯片UART,都带环路测试的功能。

06 按EMC测试要求设计硬件

EMC 测试要求已经成为产品的必需。

07 尽可能使用Small 模式编译

对比起Large模式和Compact 模式,Small 模式能生成更为紧凑的代码。在Small 模式下,C51 编译器将没有使用关键词,如idata、pdata、xdata特殊声明的变量通通放在data单元中。在编程中,对于在的数据区,可以指定放在外部存储器中。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53559

    浏览量

    459315
  • 单片机
    +关注

    关注

    6074

    文章

    45344

    浏览量

    663757
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11221

    浏览量

    222982

原文标题:掌握了这7个规则,单片机开发连大神都跪了!

文章出处:【微信号:fcsde-sh,微信公众号:fcsde-sh】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机和嵌入式,到底是什么关系?

    很多人初次接触嵌入式开发时,都会听到一句话:“嵌入式其实就是单片机。”可当你真正开始学习时,会发现嵌入式和单片机虽然经常“捆绑”在一起提,但它们好像又不是一回事。这篇文章,我们就来厘清这两
    的头像 发表于 11-14 10:28 599次阅读
    <b class='flag-5'>单片机</b>和嵌入式,到底是什么关系?

    单片机:一承载科技与工程思维的核心平台

    ,还是工业自动化、嵌入式系统,单片机都扮演着不可或缺的角色。它不仅仅是一芯片,而是承载着技术与工程思维的核心平台,其重要性不言而喻。 一、单片机的核心要素 单片机的核心要素主要包括以
    的头像 发表于 09-29 01:07 371次阅读

    开发单片机需要学习什么?软件编程的 4 关键层次

                        开发单片机需要学习什么?软件编程的 4 关键层次 单片机的 “智能” 全靠软件实现,编程技能需从基础语法逐步进阶到复杂逻辑,每个层次对应不同的开发
    的头像 发表于 08-25 11:32 589次阅读

    单片机用什么封装

    。深圳市安凯星科技有限公司在为拓邦、朗科、安徽龙多等客户开发方案时,会根据项目场景精准选择封装类型,确保性能与实用性平衡。 常见单片机封装类型及特点 DIP 封装:直插式的经典之选 DIP(双列直插封装)是最基础的单片机封装
    的头像 发表于 08-01 13:47 909次阅读

    什么单片机比较耐用

    凯星科技有限公司在多年的单片机应用开发中,对各类单片机的耐用性有着深入了解,通过为拓邦、朗科、安徽龙多等客户提供方案,积累了丰富的选型与优化经验。 影响单片机耐用性的核心因素
    的头像 发表于 07-31 13:48 561次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 487次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控
    的头像 发表于 07-23 11:47 661次阅读

    低功耗单片机各型号的对比及选型参考

    不同品牌、不同系列的低功耗单片机在功耗控制、性能表现、外设配置等方面各有特点,通过低功耗单片机各型号的对比,能帮助开发者更精准地匹配应用需求。本文将围绕主流低功耗单片机型号展开对比,并
    的头像 发表于 07-22 18:25 929次阅读

    单片机开发流程包括什么?

    单片机开发是一系统性的工程,从需求明确到最终产品落地,需要经历多个相互关联的流程环节,每个环节都对最终产品的性能和质量有着重要影响。 一、需求分析与文档梳理 开发流程的第一步是需求分
    的头像 发表于 07-22 11:21 629次阅读

    单片机定制开发的设计思路

    单片机定制开发是根据特定场景和功能需求,量身打造符合要求的单片机应用方案,其设计过程需要兼顾技术可行性与实际应用价值,涉及多个关键环节。 一、需求分析阶段 单片机定制
    的头像 发表于 07-17 11:14 592次阅读
    <b class='flag-5'>单片机</b>定制<b class='flag-5'>开发</b>的设计思路

    KF32A136系列单片机产品介绍

    F32A136 系列单片机是基于 KF32 内核架构开发单片机
    的头像 发表于 06-27 11:42 1695次阅读
    KF32A136系列<b class='flag-5'>单片机</b>产品介绍

    KF32A156系列单片机产品介绍

    KF32A156 系列单片机是基于 KF32 内核架构开发单片机。KF
    的头像 发表于 06-26 14:43 1390次阅读
    KF32A156系列<b class='flag-5'>单片机</b>产品介绍

    基于Keil开发瑞萨RA8单片机

    这两年单片机行业也开始卷起来了,各大厂商纷纷推出各种高性能的单片机
    的头像 发表于 05-07 10:33 1174次阅读
    基于Keil<b class='flag-5'>开发</b>瑞萨RA8<b class='flag-5'>单片机</b>

    单片机Debug工具性能对比 单片机调试常用命令

    单片机(Microcontroller Unit, MCU)调试是嵌入式开发中的一重要环节,它帮助开发者发现和修复代码中的错误,优化程序性能。不同的
    的头像 发表于 12-19 09:56 2172次阅读

    单片机Debug与仿真区别

    单片机开发是一复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,
    的头像 发表于 12-19 09:47 1423次阅读