什么是单片机?单片机设计需要考虑的3个重要问题!
扫描二维码
随时随地手机看文章
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
从二十世纪九十年代开始,单片机技术就已经发展起来,随着时代的进步与科技的发展,目前该技术的实践应用日渐成熟,单片机被广泛应用于各个领域。现如今,人们越来越重视单片机在智能电子技术方面的开发和应用,单片机的发展进入到新的时期,无论是自动测量还是智能仪表的实践,都能看到单片机技术的身影。当前工业发展进程中,电子行业属于新兴产业,工业生产中人们将电子信息技术成功运用,让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子设备的创新与发展。
单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。 由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
单片机设计应该考虑的3大步骤
总体规划
软件所要完成的任务已在总体设计时规定,在具体软件设计时,要结合硬件结构,进一步明确软件所承担的一个个任务细节,确定具体实施的方法,合理分配资源。
1程序设计技术
合理的软件结构是设计一个性能优良的单片机应用系统软件的基础。在程序设计中,应培养结构化程序设计风格,各功能程序实行模块化、子程序化。一般有以下两种设计方法。
a.模块程序设计
模块程序设计是单片机应用中常用的一种程序设计技术。它是把一个较长的程序分解为若干个功能相对独立的较小的程序模块,各个程序模块分别设计、编程和调试,最后由各个调试好的模块组成一个大的程序。
优点是单个功能明确的程序模块的设计和调试比较方便,容易完成,一个模块可以为多个程序所共享。其缺点是各个模块的连接有时有一定难度。
b.自顶向下的程序设计
自顶向下程序设计时,先从主程序开始设计,从属程序或子程序用符号来代替。主程序编好后再编制各从属程序和子程序,最后完成整个系统软件的设计。
优点是比较符合于人们的日常思维,设计、调试和连接同时按一个线索进行,程序错误可以较早的发现。缺点是上一级的程序错误将对整个程序产生影响,一处修改可能引起对整个程序的全面修改。
2程序设计
在选择好软件结构和所采用的程序设计技术后,便可着手进行程序设计,将设计任务转化为具体的程序。
a.建立数学模型
根据设计任务,描述出各输入变量和各输出变量之间的数学关系,此过程即为建立数学模型。数学模型随系统任务的不同而不同,其正确度是系统性能好坏的决定性因素之一。
b.绘制程序流程图
通常在编写程序之前先绘制程序流程图,以提高软件设计的总体效率。程序流程图以简明直观的方式对任务进行描述,并很容易由此编写出程序,故对初学者来说尤为适用。
在设计过程中,先画出简单的功能性流程图(粗框图),然后对功能流程图进行细化和具体化,对存储器、寄存器、标志位等工作单元作具体的分配和说明,将功能流程图中每一个粗框的操作转变为具体的存储器单元、工作寄存器或I/O口的操作,从而给出详细的程序流程图(细框图)。
c.程序的编制
在完成程序流程图设计以后,便可以编写程序。程序设计语言对程序设计的影响较大。汇编语言是最为常用的单片机程序语言,用汇编语言编写程序代码精简,直接面向硬件电路进行设计,速度快,但进行大量数据运算时,编写难度将大大增加,不易阅读和调试。在有大量数据运算时可采用C语言(如MCS-51的C51)或PL/M语言。
编写程序时,应注意系统硬件资源的合理分配与使用,子程序的入/出口参数的设置与传递。采用合理的数据结构、控制算法,以满足系统要求的精度。
在存储空间分配时,应将使用频率最高的数据缓冲器设在内部RAM;标志应设置在片内RAM位操作区(20H~2FH)中;指定用户堆栈区,栈区的大小应留有余量;余下部分作为数据缓冲区。
在编写程序过程中,根据流程图逐条用符号指令来描述,即得汇编语言源程序。应按MCS-51汇编语言的标准符号和格式书写,在完成系统功能的同时应注意保证设计的可靠性,如数字滤波、软件陷阱、保护等。必要时可作若干功能性注释,提高程序的可读性。
3程序设计
各程序模块编辑之后,需进行汇编或编译、调试,当满足设计要求后,将各程序模块按照软件结构设计的要求连接起来,即为软件装配,从而完成软件设计。在软件装配时,应注意软件接口。
单片机应用系统硬件设计应该考虑哪些问题?
(1)存储器扩展:容量需求,在选择单片机时就考虑到单片机的内部存储器资源,如能满足要求就不需要进行扩展,在必须扩展时注意存储器的类型、容量和接口,一般尽量留有余地,并且尽可能减少芯片的数量。选择合适的方法、ROM和RAM的形式,RAM是否要进行掉电保护等。
(2)I/O接口的扩展:单片机应用系统在扩展I/O接口时应从体积、价格、负载能力、功能等几个方面考虑。应根据外部需要扩展电路的数量和所选单片机的内部资源(空闲地址线的数量)选择合适的地址译码方法。
(3)输入通道的设计:输入通道设计包括开关量和模拟输入通道的设计。开关量要考虑接口形式、电压等级、隔离方式、扩展接口等。模拟量通道的设计要与信号检测环节(传感器、信号处理电路等)结合起来,应根据系统对速度、精度和价格等要求来选择,同时还需要和传感器等设备的性能相匹配,要考虑传感器类型、传输信号的形式(电流还是电压)、线性化、补偿、光电隔离、信号处理方式等,还应考虑A/D转换器的选择(转换精度、转换速度、结构、功耗等)及相关电路、扩展接口,有时还涉及软件的设计。高精度的模数转换器价格十分昂贵,因而应尽量降低对A/D转换器的要求,能用软件实现的功能尽量用软件来实现。
(4)输出通道的设计:输出通道设计包括开关量和模拟量输出通道的设计。开关量要考虑功率、控制方式(继电器、可控硅、三极管等)。模拟量输出要考虑D/A转换器的选择(转换精度、转换速度、结构、功耗等)、输出信号的形式(电流还是电压)、隔离方式、扩展接口等。
(5)人机界面的设计:人机界面的设计包括输入键盘、开关、拨码盘、启/停操作、复位、显示器、打印、指示、报警等。输入键盘、开关、拨码盘应考虑类型、个数、参数及相关处理(如按键的去抖处理)。启/停、复位操作要考虑方式(自动、手动)及其切换。显示器要考虑类型(LED,LCD)、显示信息的种类、倍数等。此外还要考虑各种人机界面的扩展接口。
(6)通信电路的设计:单片机应用系统往往作为现场测控设备,常与上位机或同位机构成测控网络,需要其有数据通信的能力,通常设计为RS-232C、RS-485、红外收发等通信标准。
(7)印刷电路板的设计与制作:电路原理图和印刷电路板的设计常采用专业设计软件进行设计,如Protel,OrCAD等。设计印刷电路板需要有很多的技巧和经验,设计好印刷电路板图后应送到专业化制作厂家生产,在生产出来的印刷电路板上安装好元件,则完成硬件设计和制作。
(8)负载容限的考虑:单片机总线的负载能力是有限的。如MCS-51的P0口的负载能力为4mA,最多驱动8个TTL电路,P1~P3口的负载能力为2mA,最多驱动4个TTL电路。若外接负载较多,则应采取总线驱动的方法提高系统的负载容限。常用驱动器有:单向驱动器74LS244,双向驱动器74LS245等。
(9)信号逻辑电平兼容性的考虑:在所设计的电路中,可能兼有TTL和CMOS器件,也有非标准的信号电平,要设计相应的电平兼容和转换电路。当有RS-232,RS-485接口时,还要实现电平兼容和转换。常用的集成电路有MAX232,MAX485等。
(10)电源系统的配置:单片机应用系统一定需要电源,要考虑电源的组数、输出功率、抗干扰。要熟悉常用三端稳压器(78хх系列、79хх系列)、精密电源(AD580,MC1403,CJ313/336/385,W431)的应用。
(11)抗干扰的实施:采取必要的抗干扰措施是保证单片机系统正常工作的重要环节。它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
单片机设计举例
对于新手来说,学习制作单片机为核心的继电器驱动板,可以锻炼自己的知识应用能力、动手能力等,作为一名电子爱好者,想了解这方面的技术并动手制作一块继电器驱动板:
1)首先,选择单片机核心处理器,单片机的种类很多,有51单片机、PIC单片机、MSP430单片机、STM32单片机、AVR单片机以及飞思卡尔单片机等,最好选择自己比较熟悉的单片机平台,开发环境、软件编程等较熟悉,使用起来更得心应手,单片机选型需要注意的有以下几点:内存,flash容量的大小必须大于代码量;速度,也就是时钟频率;外设需求,I/O口的数量,ADC、SPI、SCI、USB等;工作电压等。
2)继电器选型,继电器的种类也非常多,有底座安装接线的,也有焊接于印制板的,要是用于工程设计,取决于产品的结构、负载电流、工作电压等。
3)继电器驱动电路,单片机I/O口的驱动电流很弱,无法直接驱动继电器,需通过外围电路增强驱动能力,一般使用光耦、三极管、场效应管等,下图为本人设计的继电器驱动电路,使用光耦接单片机I/O口,隔离供电可以实现单片机和继电器之间隔离,使用PNP三极管当电子开关控制继电器的正极电源,三极管的选型需根据继电器的工作电压和电流而定,对于阻值R2/R3的选择,需根据三极管的IC电流、放大倍数β以及VCC的大小进行计算,使三极管开通时处于饱和状态。
注意:继电器旁的二极管D1不能少,D1的作用是反向续流,抑制浪涌。
通过以上的讲解,是否对单片机设计有了大概的了解呢?在平时的学习中,还是需要多学,多看,多练,相信你一定会成为高手的!
【更多关于单片机设计相关阅读】