基于通用单片机的最小系统设计
单片机最小系统,是指用最少的元件组成的可以工作的单片机系统。为了方便设计者自行开发和应用,文章设计了基于一个通用的单片机的最小系统。该系统以C8051F320为主控芯片,设计了电源电路、复位电路、时钟电路、存储器扩展电路、串口通信电路和液晶显示电路,并介绍了各部分的功能。实验证明改最小系统原理正确,工作可靠。可用于科研、电子电路设计等领域。
单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。随着计算机技术的高速发展,单片机以其自身的特点,己广泛应用于工业控制、家用电器、智能仪器、电子玩具市场。
本文的最小系统以C805 1 F320为主控芯片,C8051F320/1系列器件使用SILICon Labs的专利CIP-51微控制器内核。CIP-51内核具有标准8052的所有外设部件,包括4个16位计数器/定时器、一个具有增强波特率配置的全双工UART、一个增强型SPI端口、2304字节内部RAM、128字节特殊功能寄存器(SFR)地址空间及25/21个I/O引脚。C8051F320片内调试电路提供全速、非侵入式的在系统调试(不需仿真器);支持断点、单步、观察/修改存储器和寄存器,比使用仿真芯片、目标仿真头和仿真插座的仿真系统有更优越的性能。
1 最小系统实现方案
单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如电源、A/D、D/A转换器等。要设计合适的接口电路。
此最小系统要求:电源,电路中我们可以用外部电源,也可以用自带的充电电池;串口通信,能与计算机之间进行通信:时钟,为CPU提供所需的时钟或日历;外接存储器模块;液晶显示,可以按我们的要求显示汉字、字符、数字及图形。系统框图如图1所示。
1.1 电源电路
系统中所有的芯片都是用的3V的电压,选用的芯片是TPS78930,这是一种低压差稳压器,与传统的低压差稳压器相比,具有超低的静态电流。输入电压为4~10V,输出电压3V。输出电流为100mA。在电源模块中通过4个电容进行电源稳压滤波,为系统提供稳定的电源。另外,我们的系统中带可充电的锂电池,充电芯片采用MAX1501,其输入电压为4.5~6.5V,输出为4.2V电压。电网电压经5V的适配器可以只给电池充电,也可以只给系统供电,或一边给电池充电,一边给系统供电。给电池充电过程中,充电指示灯RLED亮,电池充满后,满电指示灯亮。在电池给系统供电过程中,电池电压经过两个100k的电阻分压后接到单片机的P15口,检测到电池电压低时,电压低的指示灯亮。电源电路如图2所示。
1.2 复位电路
系统的复位模式有三种:上电复位、用户按键复位和软件复位。电路如图3所示,该复位电路的工作原理如下:在系统上电时,通过电阻R1向电容C1、C2充电,当C1、C2两端的电压未达到高电平的门限电压时,REST端输出为低电平,系统处于复位状态;当C1、C2两端的电压达到高电平的门限电压时,REST端输出为高电平,系统进入正常工作状态。当用户按下按钮S时,C1、C2两端的电荷被泄放掉,REST端输出为低电平,系统进入复位状态。软件可以通过向寄存RSTSRC中的PINRSF位写“1”来强制产生一次上电复位。当发生掉电或因电源波动导致VDD降到VRST以下时,电源监视器将/RST引脚驱动为低电平并使CIP-5 1保持复位状态。当VDD又回到高于VRST的电平时,CIP-51将退出复位状态。在选择VDD监视器作为复位源之前,必须使能VDD监视器。
1.3 时钟电路
C8051F320有一个可编程内部振荡器、一个外部振荡器驱动电路和一个4倍时钟乘法器。系统时钟(SYSCLK)可以来自内部振荡器、外部振荡器电路或4倍时钟乘法器二分频。
如果使用内部振荡器,可以通过对OSCICN和OSCICL寄存器编程来使能/禁止内部振荡器和调节其输出频率。当使用外部振荡器电路时,必须对所用端口引脚进行配置。当外部振荡器电路被配置为晶体/谐振器方式时,端口引脚P0.2和P0.3分别被用作XTAL1和XTAL2。当外部振荡器电路被配置为RC、电容或CMOS时钟方式时,端口引脚P0.3被用作XTAL2。
我们在外部振荡器模式时使用了一个CMOS时钟芯片S3530,它与CPU之间是通过两根线连接,具有两个中断/报警功能。所有的地址和数据通过I2C总线接收。电路如图4所示。
时钟电路产生整个电路的工作时序脉冲,它是系统正常工作的关键,又是单片机系统的主要噪声源。我们采用以下措施来减小噪声:1)时钟脉冲电路要尽量靠近MPU,引线应短而粗;2)用地线包围振荡电路,并将晶体振荡器外壳接地;3)整个系统走线中,大电流信号线,电源变压器要远离晶振走线;4)如果时钟电路为其它芯片提供时钟,应充分做好隔离;5)若是双面印制电路板,有导线不可避免地经过时钟电路,走线应该垂直、交叉但不能平行。
1.4 UART串口通信电路
串行通讯只需较少的端口就可以实现单片机和PC机的通信,具有无可比拟的优势。串行通讯有两种方式:异步模式和同步模式。本设计中利用C805 1 F320的UART模块来实现C805 1 F320与PC机之间的串行通信。PC机接口是RS-232,RS-232标准采用负逻辑方式,标准逻辑“1”对应-5~-15 V电平,标准逻辑“0”对应+5~+15V电平。C8051F320的接口为TTL电平。显然,和PC机的RS232C电平不兼容,两者间要进行通信必须经过信号电平的转换,所以连接时必须使用电平转换芯片。
本设计选用符合RS-232标准的SP3223驱动芯片进行串行通信。SP3 22 3电源3~5V,这里是3V供电。具有两个发送和接收通道。SP3223的T1IN与C8051F320的TX0(P04)连接,R10U与C805 1 F320的RX0(P05)连接。串口电路如图5所示。
1.5 存储器模块电路
存储器模块包括Flash存储器和SRAM存储器两个部分。C8051F320内部有16kB可在系统编程的FLASH存储器,2304字节片内RAM。一般来说,应该在片外扩展存储器用来存放用户的程序代码。另外,考虑到系统运行中,MCU往往要做大量的数据处理工作,经常有一些采集到的或生成的数据需要及时进行存储或调用,因此当片上16kB的FLASH存储器不够用时,需要外部扩展Flash存储器,而且即使掉电,程序和数据都不会丢失。我们选用的是Flash存储器AT45DB041B,其电压为2.5~3.6V,适合我们的系统电压3V。存储容量为2048页,每页有264个字节。支持块和页的自动擦除。AT45DB041B芯片通过SPI总线与单片机的连接,接口为MOSI、MISO、SCK。
1.6 液晶显示电路
以往单片机最小系统都是数码显示,电路比较简单,但是只能显示数字不能显示汉字,这里用液晶显示,不但可以显示数字,还可以显示汉字和图形、符号。我们用的液晶是LCM6432ZK,3V电源供电,液晶屏幕为64×32,可显示两行,每行可显示4个汉字。低功耗设计可满足产品的省电要求;同时与单片机等微控器的接口界面灵活(三种模式:并行8位/4位,串行3线/2线)。这里为了节省单片的I/O口,我们用串行2线。SID为输入串行数据,SCLK为输入串行脉冲。液晶显示电路如图7所示。
考虑到系统的通用性问题,因此还应将单片机的一些必要引脚用接口插座引出,以方便使用。例如:USB主机与设备接口,A/D、D/A与单片机接口,I/O总线扩展接口等。
2 系统软硬件调试
用protel软件绘制电路板图。系统上电前,用万用表仔细检查电源是否有短路,元件是否有虚焊。系统上电后,检查电路板上电压是否正常,复位电路是否工作。
软件是用C语言编程,与以往的汇编语言比较,它的可扩充性、可移植性比汇编语言要好。本系统支持在线调试,调试比用仿真器要更容易,使用更方便。
3 结束语
本文中所设计的最小系统经过调试,上述几部分功能已经实现,系统可靠性好。此最小系统应用在智能小车,成功控制智能小车前进、后退、转弯,显示到达目的地所用时间。