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

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

    关注

    455

    文章

    50815

    浏览量

    423612
  • 单片机
    +关注

    关注

    6037

    文章

    44558

    浏览量

    635290
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10863

    浏览量

    211762

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    单片机Debug与仿真区别

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

    单片机怎么写入程序

    单片机(Microcontroller Unit,MCU)是一种集成电路芯片,它将计算机的CPU、存储器、输入/输出接口等功能集成在一芯片上。单片机广泛应用于嵌入式系统和物联网设备中。编写
    的头像 发表于 10-21 11:21 468次阅读

    想入行单片机开发的学生们的忠告

    对于想入行单片机开发的学生们,以下是一些建议和忠告:
    的头像 发表于 10-17 09:45 356次阅读
    想入行<b class='flag-5'>单片机</b><b class='flag-5'>开发</b>的学生们的忠告

    单片机芯片开发-单片机方案开发的关键技巧和流程步骤!

    在电子产品设计中,单片机(MCU)无疑是最重要的组成部分之一。无论是消费电子、智能家居、工业控制,还是可穿戴设备,小家电等,单片机的应用无处不在。然而,对于许多开发者来说,单片机芯片
    发表于 09-26 17:04

    单片机STM32可以用Python写吗?可以的开发板有哪些?

    近年来,随着嵌入式技术的发展,Python语言逐渐被引入到单片机开发中,尤其是一些高性能的单片机上。这一趋势给开发者带来了极大的便利,尤其是在快速原型设计和实验中。本文将详细探讨STM
    的头像 发表于 09-05 08:00 3386次阅读
    <b class='flag-5'>单片机</b>STM32可以用Python写吗?可以的<b class='flag-5'>开发</b>板有哪些?

    单片机烧录程序的基本步骤是什么

    单片机烧录程序是单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使单片机能够按照预定的逻
    的头像 发表于 09-02 09:47 1052次阅读

    linux开发板和单片机开发的区别

    硬件架构 Linux开发板和单片机开发在硬件架构上有很大的区别。Linux开发板通常基于ARM、x86或其他处理器架构,具有较高的处理能力和内存容量。而
    的头像 发表于 08-30 15:30 787次阅读

    暑假如何学习单片机

    暑假是学习和掌握单片机基础知识的良好时机。以下是一关于如何在暑假期间学习单片机的建议计划
    的头像 发表于 07-03 09:19 527次阅读
    一<b class='flag-5'>个</b>暑假如何学习<b class='flag-5'>单片机</b>

    单片机上位软件用什么开发

    开发单片机上位软件时,选择合适的开发工具和编程语言至关重要。本文将详细介绍单片机上位软件开发
    的头像 发表于 06-07 09:17 1368次阅读

    PY32系列单片机开发板 常用型号都有 支持Keil,IAR进行开发

    普冉单片机是近几年很火的国产32位单片机,主打高性能和高性价比,市场份额也是在持续上升。同等价位下难逢敌手,有着系统简单、易于开发的特点。PY32系列单片机可应用于可穿戴、消费类、医疗
    的头像 发表于 05-22 14:48 1078次阅读
    PY32系列<b class='flag-5'>单片机</b><b class='flag-5'>开发</b>板 常用型号都有 支持Keil,IAR进行<b class='flag-5'>开发</b>

    STM32单片机有哪几种常见的开发环境?

    STM32单片机是一款广泛应用于嵌入式系统开发单片机,针对其开发,有以下几种常见的方式:STM32单片机有哪几种常见的
    的头像 发表于 05-18 08:04 3082次阅读
    STM32<b class='flag-5'>单片机</b>有哪几种常见的<b class='flag-5'>开发</b>环境?

    单片机开发好学吗?学习中有哪些乐趣与挑战?

    单片机编程究竟是不是好学的问题。先来说一说单片机编程的挑战性,对于初学者而言,单片机编程可能具有一定的挑战性,因为它需要你具备以下几点能力;单片机
    的头像 发表于 03-28 08:04 1944次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>开发</b>好学吗?学习中有哪些乐趣与挑战?

    应用单片机开发的ST LINK调试器设计制作

    在调试ST单片机的过程中,ST-LINK是一很好使用的调试工具。今天,我们就根据网络上的设计方案进行简化,设计制作一ST LINK调试器,用于之后的单片机
    发表于 03-06 10:26 1133次阅读
    应用<b class='flag-5'>单片机</b><b class='flag-5'>开发</b>的ST LINK调试器设计制作

    51单片机开发板的主要功能 51单片机开发板能做什么

    51单片机开发板是一种基于8051系列单片机芯片的开发板,具有丰富的功能和广泛的应用。下面将详细介绍51单片机
    的头像 发表于 01-23 15:52 3768次阅读