(1)系统总体结构设计
单片机应用系统是以单片机为核心,根据功能要求扩展相应功能的芯片,并配置相应通道接口和外部设备。因此,需要从单片机的选型,存储器分配,通道划分,输入/输出方式及系统中硬件、软件功能划分等方面进行考虑。
1)单片机选型
选择单片机应考虑以下几个主要因素。
①性价比。在满足系统的功能和技术指标要求的情况下,选择价格相对便宜的单片机。
②开发周期。在满足系统性能的前提下,优先选用技术成熟、技术资源丰富的机型。缩短开发周期,降低开发成本,提高开发的系统的竞争力。
总之,单片机芯片的选择关系到单片机应用系统的整体方案、技术指标、功耗、可靠性、外设接口、通信方式、产品价格等。原则是在最恰当的地方使用最恰当的技术。
2)存储空间分配
单片机系统的存储资源的分配是否合理对系统的设计有很大的影响,因此,在系统设计时就要合理地为系统中的各种部件分配有效的地址空间,以便简化硬件电路,提高单片机的访问效率。
3)I/O通道划分
根据系统中被控对象所要求的输入/输出信号的类型及数目,确定整个应用系统的通道结构。还需要根据具体的外设工作情况和应用系统的性能技术指标综合考虑采用的输入/输出方式。常用的I/O数据传送方式主要有无条件传送方式、查询方式和中断方式,三种方式对系统的硬件和软件要求各不相同。
4)软、硬件功能划分
具有相同功能的单片机应用系统,其软、硬件功能可以在较大的范围内变化。一些电路的硬件功能和软件功能之间可以互换实现。因此,在总体设计时,需仔细划分应用系统中的硬件和软件的功能,求得最佳的系统配置。
(2)系统硬件设计
1)硬件设计原则
①在满足系统当前功能要求的前提下,系统的扩展与外围设备配置需要留有适当的余地,以进行功能的扩充。
②要综合考虑硬件结构与软件方案后,再最终确定硬件结构。
③在硬件设计中尽可能选择成熟且标准化、模块化的电路,以增加硬件系统的可靠性。
④硬件设计要考虑相关器件的性能匹配。例如,不同芯片之间信号传送速度的匹配;低功耗系统中的所有芯片都应选择低功耗产品。如果系统中相关器件的性能差异较大,就会降低系统的综合性能,甚至导致系统工作异常。
⑤考虑单片机的总线驱动能力。单片机外扩芯片较多时,需要增加总线驱动器或减少芯片功耗,降低总线负载。
⑥抗干扰设计。抗干扰设计包括芯片和器件的选择、去耦合滤波、印制电路板布线、通道隔离等。如果设计中只注重功能的实现,而忽略抗干扰的设计,就会导致系统在实际运行中发生信号无法正常传送,达不到功能要求的现象。
2)硬件设计
硬件设计以单片机为核心,是进行功能扩展和外围设备配置及其接口设计的工作。在设计中,要充分利用单片机的片内资源,简化外扩电路,提高系统的稳定性和可靠性。硬件设计要考虑的设计部分包括以下几个方面。
①存储器设计
存储器可分为程序存储器和数据存储器两个部分。存储器的设计原则是:在满足系统存储容量要求的前提下,选择容量大的存储芯片,以便减少所用芯片的数量。
②I/O接口设计
输入/输出通道是单片机应用系统功能最重要的体现部分。接口外设多种多样,使得单片机与外设之间的接口电路也各不相同。I/O接口大致可分为开关量输入/输出通道、模拟量输入/输出通道、并行接口和串行接口等。在系统设计时,可以优先选择集成所需接口的单片机,简化I/O接口的设计。
③译码电路设计
当系统扩展多个接口芯片时,可能需要译码电路。在设计时,需要合理分配存储空间和接口地址,选择恰当的译码方式,简化译码电路。译码电路除了可以使用常规的门电路、译码器实现外,还可以利用只读存储器与现场可编程门阵列来实现,以便修改和加密电路。
④总线驱动器设计
当单片机外扩器件较多时,就要考虑设计总线驱动器。常用的总线驱动器可分为双向数据总线驱动器(如74LS245)和单向数据总线驱动器(如74LS244)。
⑤抗干扰电路设计
针对系统运行中可能出现的各种干扰,需设计相应的抗干扰电路。抗干扰设计的基本原则是:抑制干扰源、切断干扰传播路径、提高敏感器件的抗干扰性能。在设计中要考虑以下几点:
a.系统地线、电源线的布线;
b.将数字地和模拟地分开;
c.每个数字元件在地与电源之间都要接104旁路电容;
d.为防I/O端口的串扰,可将I/O端口隔离,具体方法有二极管隔离、门电路隔离、光耦隔离、电磁隔离等;
e.选择抗干扰能力较强的器件如多层板的抗干扰性能肯定优于单面板。
硬件设计完成后,应绘制硬件电路原理图并编写相应的硬件设计说明书。
(3)系统软件设计
1)软件设计要求
①软件结构清晰,流程合理,代码规范,执行高效。
②功能程序模块化,以便于调试、移植、修改和维护。
③程序存储区和数据存储区规划合理,充分利用系统资源。
④运行状态标志化管理。各功能程序通过状态标志来设置和控制程序的转移与运行。
⑤具有抗干扰处理功能。采用软件程序剔除采集信号中的噪声,提高系统抗干扰的能力。
⑥具有系统自诊断功能。在系统运行前先运行自诊断程序,检查系统各部分状态是否正常。
⑦具有“看门狗”功能,防止系统出现意外情况。
2)软件设计
单片机的软件设计与硬件设计是紧密联系的,且软件设计具有比较强的针对性。在单片机应用系统总体设计时,软件设计和硬件设计必须结合起来统一考虑。系统的硬件设计定型后,针对该硬件平台的软件设计任务也就确定了。
首先,要设计出软件的总体方案。根据系统功能要求,将系统软件分成若干个相对独立的功能模块,理清各模块之间的调用关系及与主模块的关系,设计出合理的软件总体架构。其次,根据功能模块输入/输出变量,建立起正确的数学模型。再次,结合硬件对系统资源进行具体的分配和说明,绘制功能实现程序流程图。最后,根据确定好的流程图,编写程序实现代码。在编制程序时,一般采用自顶向下的程序设计技术,先设计主控程序,再设计各子功能模块程序。
单片机的软件一般是由主控程序和各子功能程序两个部分构成。主控程序是负责组织调度各子功能程序模块,完成系统自检、初始化、处理接口信号、实时显示和数据传送等功能,控制系统按设计操作方式运行的程序。此外,主控程序还负责监视系统是否正常运行。各子功能程序是完成诸如采集、数据处理、显示、打印、输出控制等各种相对独立的实质性功能的程序。单片机应用系统中的程序编写时常与输入、输出接口设计和存储器扩展交织在一起。因此,在软件设计时需要注意以下方面:单片机片内和片外硬件资源的合理分配;单片机存储器中的特殊地址单元的使用;特殊功能寄存器的正确应用;扩展芯片的端口地址识别。软件设计的好坏直接关系到系统的功能和性能。
(4)典型设计案例(www.xing528.com)
以下介绍一个以51系列单片机为核心设计的直流电动机转速控制模块。
1)实现目标
控制电动机运动,例如转向、速度和角度的控制,是单片机在机电控制中的一个典型应用。本例将介绍基本的单片机与电动机驱动的接口电路,和对电动机转向的控制方法。
2)设计思路
直流电动机的调速性能优良,特别适合用于电位和速度控制。为了实现直流电动机的正转和反转运行,只需要改变电动机电源电压的极性。这种电压极性的变化和运转时间的长短控制可由单片机实现,而提供直流电动机正常运转的电流则需要驱动电路来实现。
本节所要介绍的直流电动机转速控制模块的驱动电路是指连接单片机的控制指令和电动机动作的接口电路。驱动电路是在单片机无法带动负载的情况下,使得电动机能够在单片机的控制指令下完成规定的动作。
本例主要介绍两个方面的内容:一是单片机的电动机驱动接口电路的设计,本例中将介绍桥式驱动电路,并给出TA7267BP驱动芯片的使用方法;二是单片机对电动机转向的控制,在本例中,通过单片机定时1s,完成小型电动机的一次转向变化。
本例的功能模块分为以下3个方面:
①单片机系统。单片机的I/O口输出,控制小型电动机的转向。
②外围电路。直流电动机和单片机之间的接口电路。
③C51程序。编写单片机控制直流电动机转向的驱动程序,实现单片机的控制功能。
在读完本节后应掌握以下的知识点:
①一般微型电动机的驱动方法。
②单片机和微型电动机的电路接口。
③单片机控制小型电动机转向的方法。
④掌握直流电动机控制过程的C51单片机程序设计。
3)元器件选型
单片机本身具备一定的驱动能力,其I/O口的电流在10mA左右,像驱动发光二极管之类的器件并不需要特殊的驱动电路。但是对于直流电动机这类负载较大的器件,单片机无法为其提供足够的电流,尤其是在直流电动机刚起动时。电动机的起动电流往往会达到其正常工作电流的数倍,所以,这一类的电路需要专门的驱动电路完成对电动机的驱动,而单片机仅完成逻辑控制部分的工作。
目前,越来越多的单片机集成了特殊的功能。例如,Motoola公司、PIC公司的大量单片机中集成了A/D转换,PWM输出等功能,但是很少有集成电动机驱动电路的。这主要是因为电动机的驱动电路所需的电流较大,有些器件属于大功率器件,难以和单片机集成。所以在实际应用中,电动机驱动电路是单片机控制回路中的常用接口电路。
驱动电路的基本功能是要有足够大的电流驱动电动机转动,此外,还需要利用单片机的逻辑电平输出控制电动机的正/反转。这里将分H桥式电路的驱动原理、实用电路和专用芯片三部分进行阐述,说明单片机中常用驱动电路的构成和使用方法。
桥式电路是一种最基本的驱动电路结构。控制电动机正/反转的桥式驱动电路有单电源和双电源两种驱动方式。由于本例采用单电源的驱动方式可以满足实际的应用需要,所以这里只介绍单电源的驱动方式。在如图5-48所示的电路图中4个二极管为续流二极管。如果选用的驱动电路中使用的是晶体管,那么这4个二极管是必须使用的,其主要作用是消除电动机所产生的反向电动势,避免该反向电动势将晶体管反向击穿。
图5-48 H桥功率电路
单电源方式的桥式驱动电路又称为全桥方式驱动或者H桥方式驱动。电动机正转时,晶体管Vl和V4导通;反转时,V2和V3导通。两种情况下,加在电动机两端的电压极性相反。当4个晶体管全部关断开时,电动机停转。若是V1与V3断开,而V2与V4同时导通时,电动机处于短路制动状杰,将在瞬时停止转动。电动机的驱动电路可以完成以下两个基本要求:其一是通过晶体管的放大,保证了电动机的驱动电流;其二是通过桥式电路,对不同开关的选择,可以实现单片机的数字电平控制晶体管的导通和截止,从而控制小型电动机的正/反转。
该电路可以由微机或者是单片机控制。功率MOSFET可以用逻辑电平直接驱动,也可与微机或单片机的输出引脚直接相连。由于功率MOSFET内部的漏极和源极之间设置了寄生二极管,因此不需要外接续流二极管,这使得电路更加简单。
如果用户对成本的要求不高,那么选用专用的电动机驱动芯片则是一种较为理想的选择。目前,专用的电动机驱动芯片很多,需要针对使用的电动机型号和额定输入进行选择。对于本例使用的小型电动机而言,其逻辑输入为+5V,而驱动电压需要+12V左右。根据这一要求,可选择东芝公司的TA7267系列芯片TA7267BP。
TA7267BP是东芝公司生产的一款专用于小型直流电动机驱动的芯片。该芯片在相应的逻辑电平控制下,能够实现电动机的正转、反转、停止和制动4种动作。其逻辑电平的工作电压为6~18V,驱动电动机工作的电压为0~18V,是一款单电源供电的芯片。
TA7267BP的驱动原理和上述的桥式电路并没有什么不同,只不过是该芯片将桥式电路中所用的分立器件集成为一体,并定义了相关引脚的逻辑电平,从而使得驱动部分模块化,便于用户使用。
在TA7267BP中,施加在6,7引脚上的电源电压最大不能超过25V,常规的数字电路电源应在6~18V之间,不能超出这个范围。工作电流平均为1A,峰值为3A,TA7267BP在电动机起动时的电流不能超过这个峰值。根据TA7267BP各引脚对电平的控制,可以很方便地利用单片机实现对小型电动机的转动状态进行控制。用户只需要选择电动机在何时采用何种状态,并编制相应的单片机程序就可以了。
下面将以TA7267BP电动机驱动芯片为例,提供具体的单片机和微型电动机的驱动电路以及相关的控制电动机转向的C51程序。该直流电动机转速控制模块的主要功能是每1s改变1次电动机的转向,这里是通过单片机的定时器控制转向时间,并发送输出到TA7267BP的控制字,改变和驱动电动机转向来实现的。
4)电路设计
以TA7267BP电动机驱动芯片为例,其基本的电路如图5-49所示。读者可以根据该电路设计印刷电路板。
在这里列出和本例相关的、关键部分的器件名称及其在电路中的主要功能:
单片机:ATMEL89C52,主要负责完成对各个端口状态信号的监测、控制信号的发送以及与微机程序的通信;
驱动电路:东芝公司的TA7267BP,驱动小型电动机,负责完成对活动门的开关动作。
以下仅列出和本例相关的、关键部分的单片机与各个功能引脚的连接和相关的地址分配:
P1.2:输入引脚,连接活动门的开关,通过活动门开关的电平变化触发单片机的中断,执行开关门控制指令的输出;
P2.0:输入引脚,连接活动门的状态按键,单片机读取P2.0口的电平,判断出活动门的当前状态;
P1.2,P1.3:输出引脚,连接驱动芯片TA7267BP的1,2引脚。单片机通过改变这两个引脚的电平,就可以实现4种电动机状态的控制。
图5-49 TA7267BP电动机驱动电路
5)程序设计
本程序的功能是定时1s控制电动机转向的变化。其主要功能包含两个方面:
单片机定时1s,改变I/O口输出;
通过单片机的I/O口,输出到TA7267BP的控制字,通过TA7267BP驱动电动机,并控制电动机的转向。
本例中所使用的主要功能器件就是TA7267BP芯片。利用单片机控制电动机转向的流程如图5-50所示。
利用单片机控制电动机转向的源代码如下:
图5-50 利用单片机控制电动机转向流程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。