1、第2章 单片机应用系统的开发过程 单片机应用系统是指以单片机芯片为核心,配以一定的外围电路和软件,能实现某种或几种功能的应用系统。单片机应用系统的开发工作主要包括应用系统硬件电路的设计和单片机控制程序设计两个部分,其中又以单片机控制程序的设计为核心。第2章 单片机应用系统的开发过程 一般来说,单片机应用系统的开发过程主要包括:系统分析、单片机选型、程序设计、仿真测试并最终下载到实际硬件电路中执行。单片机应用系统开发的整个流程如图2.1所示。2.1 单片机应用系统的设计要求 不同的单片机应用系统由于应用目的不同,设计时自然要考虑其应用特点。如智能仪器仪表,要求有较高的测量精度,功能齐全;对工业实
2、时控制系统,则要求有较强的实时控制能力,较完善的输入/输出设备;而对数据采集系统,则要求具有一定的精度和较强的数据处理能力等等。所以,设计一个符合生产要求的单片机应用系统,就必须要充分了解这个系统的应用目的和其特殊性,才能真正做到有的放矢,提出合理、可行的设计方案。2.1 单片机应用系统的设计要求 一般来说,单片机应用系统的设计原则是:1.系统功能应满足生产要求;2.系统运行应安全可靠;3.系统具有较高的性能价格比;4.系统易于操作和维护;5.系统功能应灵活,便于扩展;6.系统具有自诊断功能;7.系统能与上位机通信或并用。在这些原则中,适用、可靠、经济最为重要。对于一个应用系统的设计要求,应根
3、据具体任务和实际情况进行具体分析后提出。2.2.1 系统分析 设计者在开始单片机应用系统开发之前,除了需要掌握单片机的硬件及程序设计方法外,还需要对整个系统进行可行性分析和系统总体方案分析。这样,可以避免因盲目地工作而浪费宝贵的时间。可行性分析用于明确整个设计任务在现有的技术条件和个人能力上是可行的。2.2.1 系统分析 首先,要保证设计要求可以利用现有的技术来实现。一般可以通过查找相关文献、寻找类似设计等方法找到与该任务相关的设计方案。这样可以参考这些相关的设计,分析该项目是否可行以及如何实现。如果设计的是一个全新的项目,则需要了解该项目的功能需求、体积和功耗等,同时需要对当前的技术条件和器
4、件性能非常熟悉,以确保合适的器件能够完成所有的功能。2.2.1 系统分析 其次,需要了解整个项目开发所需要的知识是否都具备。如果不具备,则需要估计在现有的知识背景和时间限制下能否掌握并完成整个设计。必要的时候,可以选用成熟的开发板来加快学习和程序设计的速度。完成可行性分析后,便进入系统总体方案设计阶段。设计者可参考前面可行性分析中查找到的相关资料及本系统的应用要求和现有条件,初步规划本设计所采用的器件以及实现的功能和技术指标。接着,再制定合理的时间计划表,编写设计的任务书,从而完成系统总体方案设计。2.2.2 单片机的选型 单片机应用系统的开发过程中,单片机是整个设计的核心。设计者需要为单片机
5、安排合适的外部器件,同时还需要设计整个控制软件,因此选择合适的单片机型号很重要。目前,市场上的单片机种类繁多,在进行正式的单片机应用系统开发之前,需要根据不同单片机的特性,可以从中作出合理的选择。2.2.2 单片机的选型一、单片机选型注意事项 1.仔细调查市场,尽量选用主流的、货源充足的单片机型号,这些器件使用的比较广泛,有许多设计资料供学习或参考。2.尽量选择所需的硬件资源集成在单片机内部的型号,例如:ADC、DAC、I2C、SPI和USB等。这样便于整个控制系统的软件管理,减少外部硬件的投入,缩小整体电路板面积,从而减少总体投资等。2.2.2 单片机的选型 3.对于手持式设备、移动设备等需
6、要低功耗设备,尽量选择低电压、低功耗单片机型号,这样可以减少能量的消耗,延长设备的使用寿命。4.在资金等条件允许的情况下,尽量选择功能丰富、扩展能力强的单片机,这样便于以后的功能升级和扩展。5.对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。2.2.2 单片机的选型二、各大公司单片机简介 目前,市场上的单片机种类很多,不同厂商均推出很多不同侧重功能的单片机类型。设计者需要了解目前主流的一些单片机,这样便于选择合适的芯片进行设计。2.2.2 单片机的选型 Atmel的产品非常丰富,除基本的51系列单片机外,还包括针对不同设计
7、领域的专用51内核单片机。Atmel的51内核单片机有如下几类:单周期8051内核单片机。例如AT89LP213、AT89LP214、AT89LP216、AT89LP2052、4052等。Flash ISP在系统编程单片机。例如:AT89C51、AT89LS51、AT89LS52、AT89S2051、AT89S4051、AT89S51、AT89S52、AT89S8253等。USB接口单片机。AT83C5134、AT83C5135、AT83C5136、AT89C5130、AT89C5131、AT89C5132。2.2.2 单片机的选型 智能卡接口的单片机。例如:AT83C5121、AT83C51
8、22、AT83C5123、AT83C5127、AT85C5121、AT85C5122、AT89C5121等。MP3专 用 单 片 机。例 如:AT85C51SND3、AT89C51SND2C、AT89C51SND1C、AT83SND2C、AT83SND1C。2.2.2 单片机的选型 2.Cypress 单片机介绍 Cypress公司的51内核单片机主要扩展了USB接口。其中包括USB嵌入式主机、USB低速、全速和高速设备等,其中典型的USB嵌入式主机为SL811HST,典型的USB全速设备为AN21xx系列,使用最为广泛的USB高速设备为CY7C68013等。2.2.2 单片机的选型 Sili
9、con Laboratories公司的C8051F系列单片机,集成了一流的模拟功能、Flash、JTAG的调试功能最高可达100MIPS的8051 CPU以及系统内现场可编程性。C8051F系列单片机有如下几类。USB混合信号微处理器。例如C8051F340、C8051F341、C8051F342、C8051F343、C8051F344、C8051F345、C8051F320、C8051F321等。精密混合信号微处理器。例如C8051F120、C8051F121、C8051F130、C8051F133、C8051F350、C8051F020、C8051F021、C8051F064等。CAN接口
10、的混合信号微处理器。例如:C8051F040、C8051F041、C8051F060、C8051F061、C8051F062、C8051F063等。2.2.2 单片机的选型 Maxim产品线很丰富,其8051兼容微控制器主要有如下几类:高速微处理器。这类微处理器每机器周期使用一个时钟,速度是标准8051的33倍。例如:DS89C450、DS87C530、DS87C520、DS83C520、DS80CH11、DS80C323、DS80C320等。安全微控制器。具有防篡改能力的微控制器,例如:DS5250、DS5000、DS2250、DS2252T、DS907X、DS2252T等。网络微控制器。例
11、如DS80C411、DS80C400、DS80C390等。2.2.2 单片机的选型 NXP半导体公司的前身是Philips半导体公司,它推出了多种单片机微控制器。主要包括LPC7000系列单片机、LPC9000系列多用途Flash单片机和基本的80C51系列单片机。2.2.2 单片机的选型 Winbond系列单片机由中国台湾的华邦电子推出,具有丰富的产品线。主要有如下几类:标准51单片机。如W78C32、W78E51B、W78E516、W78E858、W78C54、W78C801等。宽电压单片机。如W78L32、W78L51、W78L801、W78LE51、W78LE82。增强C51单片机。如
12、W77C32、W77L32、W77E58、W77LE58等。工业温度级单片机。如W78IE52、W78IE54、W77IC32、W77IE58等。2.2.2 单片机的选型 美国德州仪器(TI)公司提供两类具有嵌入式8051/8052微控制器的产品系列。其中MicroSystems(MSC)产品系列包括嵌入式数据获取解决方案,例 如 MSC1200、MSC1201、MSC1202、MSC1210、MSC1211、MSC1212、MSC1213、MSC1214等。TUSB产品系列包括USB嵌入式连接解决方案,例如:TUSB2136、TUSB5052、TUSB6xxx等。2.2.2 单片机的选型 上
13、海普芯达电子有限公司提供多种半导体器件,该公司新推出的CW89F系列和CW89FE系列单片机很有特色。其中CW89F系列单片机,具有标准的8051内核、大电流I/O端口,同时提供了VML虚拟固件库将常用的数字模块模拟模块、通信接口模块等集成在一起,减少客户的程序代码,方便了用户的使用。另外,CW89FE系列单片机具有6T8051内核,同样支持VML虚拟固件库。2.2.2 单片机的选型 除了上述介绍的单片机之外,还有很多其他的半导体厂商也提供了多种单片机。例如美国的Freescale、Motorola、Microchip等,日本的NEC、Hitachi、Renesas等。用户可以根据需要在其网站
14、上查找最新的单片机型号及参数。这里所介绍的国内外众多单片机类型,都具有很多兼容的特性,同时又各有其突出特点,用户可以根据项目的需要选择相应类型的单片机。2.2.3 程序设计 当完成系统总体方案并确定单片机型号后,便可以开始电路和程序设计。在进行电路设计时,需要仔细规划整个硬件电路的资源分本以及扩展器件。同时,需要哪部分的功能用硬件来实现以及用什么器件来实现,哪部分的功能用软件来实现等。这里需要注意以下几点:1.如果所选单片机的硬件资源丰富且性能指标达到要求,则应尽量使用其内部集成的硬件资源来实现,这样可以减少额外的器件投资,同时提高系统的集成度和降低电路的复杂性。2.合理规划和使用单片机的硬件
15、资源,充分发挥单片机的性能。2.2.3 程序设计 3.尽量选择一些标准化、模块化的典型电路,这样可以加速电路设计速度,提高设计的灵活性,确保成功率等。4.硬件电路上最好将不用的引脚留为扩展的接口,以方便后期的电路维护及硬件升级。5.要仔细考虑各部分硬件的功耗以及驱动能力,确保电源具有足够的驱动能力,同时也需要保证相连接的两个器件之间的驱动能力,否则将导致系统无法正确运行。2.2.3 程序设计 在整个单片机应用系统设计中,单片机的程序设计至关重要。在单片机程序设计时,主要需要从以下几点来考虑。1.选择合适易用的程序开发工具,例如Keil uVision系列等。2.尽量选择使用单片机C51语言来进
16、行设计,避免使用汇编语言,这样可以使程序易懂,便于代码交流和后期维护。3.对于那些在执行速度上有特殊要求的场合,可以采用C51语言嵌入汇编代码来实现。4.采用结构化的程序设计,将各个主要的功能部件设计为子程序或者子函数,这样便于调试以及后续的移植修改等。2.2.3 程序设计 5.设计时要合理使用单片机的硬件资源,包括RAM、ROM、串口、定时器/计数器和中断等。6.程序尽量采用执行速度快的指令,以充分发挥单片机的运算性能。7.设计时要充分考虑到软件运行时的状态,避免未处理的运行状态。否则,程序运行时进入未处理的状态便容易出错致使软件死机。8.必要时可以在软件中采用看门狗定时器进行强制复位。9.
17、编写源程序代码时,要尽量添加注释,这样可以提高程序的可读性,便于代码交流和维护。Atmel的产品非常丰富,除基本的51系列单片机外,还包括针对不同设计领域的专用51内核单片机。目前,市场上的单片机种类繁多,在进行正式的单片机应用系统开发之前,需要根据不同单片机的特性,可以从中作出合理的选择。网络微控制器。Infineon公司的产品包括标准的8051内核以及符合工业标准的8051单片机,主要包括XC800系列和C500/C800系列。如W78L32、W78L51、W78L801、W78LE51、W78LE82。Cypress公司的51内核单片机主要扩展了USB接口。例如C8051F340、C80
18、51F341、C8051F342、C8051F343、C8051F344、C8051F345、C8051F320、C8051F321等。Winbond系列单片机由中国台湾的华邦电子推出,具有丰富的产品线。单片机应用系统类型很多,用途和功能各异,故构成系统的硬件和软件也不相同;Maxim产品线很丰富,其8051兼容微控制器主要有如下几类:其中MicroSystems(MSC)产品系列包括嵌入式数据获取解决方案,例如MSC1200、MSC1201、MSC1202、MSC1210、MSC1211、MSC1212、MSC1213、MSC1214等。此时,主要测试单片机程序和外部硬件接口是否运行正常,整
19、个硬件电路的逻辑时序配合是否正确等。对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。MP3专用单片机。单片机应用系统开发的整个流程如图2.2.2.4 仿真测试 单片机程序在实际使用前,一般均需要进行代码仿真。单片机仿真测试和程序设计是紧密相关的。在实际设计过程中,通过仿真测试,可以及时发现问题,确保模块及程序的正确性。当发现问题时,需要重新修改设计,直到程序通过仿真测试。单片机程序的仿真测试需要从如下几点考虑:1.对于模块化的程序,可以通过仿真测试的方法单独测试每一个模块的功能是否正确。2.对于通信接口,如串口等,可以在仿
20、真程序中测试通信的流程。3.通过仿真测试可以预先了解软件的整体运行情况是否满足要求。2.2.4 仿真测试 4.要选择一个好的程序编译仿真环境,例如Keil公司的uVision系列、英国Labcenter electronics公司的PROTEUS软件等。5.如果条件允许的话,可以选择一款和单片机型号匹配的硬件仿真器。硬件仿真一般支持在线仿真调试,可以实时观察程序中的各个变量,最大程度上对程序进行测试。2.2.5 程序下载 当程序设计完毕并初步通过仿真测试后,便可以将其下载到单片机,并结合硬件电路来测试系统整体运行。此时,主要测试单片机程序和外部硬件接口是否运行正常,整个硬件电路的逻辑时序配合是否正确等。如果发现问题,则要返回设计阶段,逐个解决问题,直至解决所有问题,达到预期设计功能和指标。在程序下载和实践电路调试时,可以从如下几点考虑:1.设计调试时,尽量选可重复编程的单片机,这样便于修改程序。2.在投入生产时,可以根据需要选择一次性编程的器件。3.调试时尽量要选择Flash编程的单片机,相比早期问世的单片机来说,其程序下载方式简单、灵活,下载器投资较少。2.2.5 程序下载 4.选择合适的程序下载器,最好同时具有在线调试功能,这样便于硬件的仿真调试。