第3章 硬件设计
硬件部分是整个控制系统的基础,其性能的好坏对于系统的功能是否可以实现至关重要。除了工作性能以外,经济指标也是工业应用系统在设计过程中要考虑到的一个重要因素,尤其是在我国当前经济不发达的情况下,能够长期占据市场的将是那些高性价比的产品。本设计主要是对时间、温度进行检测,以此为核心展开工作。单片机构成的控制系统结构简单,工作稳定,加上采用成熟的集成电路,使系统几乎免维护,符合作为检测的工程要求,充分体现了其小型化、智能化的优点。考虑以上优点,本系统以单片机为核心来实现。
3.1 硬件设计的原则[32]
单片机应用系统的硬件电路设计包含两部分内容:
系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。
系统的扩展和配置应遵循以下原则:
(1)尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。
(2)系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。
(3)硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑原则是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。
(4)系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品。
(5)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
(6)单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。
(7)尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。随着单片机片内集成的功能越来越强,真正的片上系统SoC已经可以实现。
3.2单片机系统设计
3.2.1 单片机部分
将CPU、RAM、ROM、定时器/计数器以及输入/输出(I/0)接口电路等主要计算机部件集成在一块的集成电路芯片为单片微型计算机(Single Chip Microcomputer),直译为单片微机或单片机。但现在国际上通用的,更准确地反映单片机本质的叫法应该是微控制器(Microcontrol-MCU)。
关于如何选择单片机,从以下几个方面综合来考虑[31]:
1.单片机的基本参数,例如速度,程序存储器容量,I/O引脚数量。
2.单片机的增强功能,例如看门狗,双指针,双串口,RTC(实时时钟),EEPROM,扩展RAM,CAN接口,I2C接口,SPI接口,USB接口。
3.Flash和OTP(一次性可编程)相比较,最好是Flash。
4.封装DIP(双列直插),PLCC(PLCC有对应插座)还是贴片。DIP封装在做实验时会更方便一些。
5.工作温度范围,工业级还是商业级。如果设计户外产品,必须选用工业级。
6.功耗,比如设计并口加密狗,信号线取电只能提供几个mA,用PIC就是因为低功耗。
7.工作电压范围。例如设计电视机遥控器,2节干电池供电,至少应该能在1.8~3.6V电压范围内工作。
8.供货渠道畅通,价格低。
9.烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否ISP(在系统编程,即把芯片先焊到板子上再通过预留的ISP接口编程),一般ISP编程器比较便宜。
10. 仿真器价格。对于FLASH型单片机,仿真器不是必备的。但是对于OTP(一次性可编程)型单片机,必须使用仿真器。
11. 单片机编程环境方便好用,如keil。
12. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有中文,Atmel就非常好。
13. 保密性能好。
14. 抗干扰性能好。
15. 和其他外设芯片放在一起工作的综合考虑。
将以上的十几条进行综合考虑,选定了现在比较流行的AT89S52。AT89S52是美国Atmel公司出品的一款低功耗、高性能的8位CMOS单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,不再依靠专用的编程工具,改写单片机存储器内的程序再也不需要把芯片从电路板上拆下。从引脚上可以看出它的P1.5、P1.6、P1.7比标准的8051多出一样复用功能,这三个引脚就是用来实现在系统编程(ISP)的SPI接口。Atmel公司的功能强大,低价位的AT89S52单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89S52提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作,直到下一个硬件复位。
AT89S52集成51的内核,编写程序、开发周期较快,市场价格约为6.5元,便宜且能满足我们功能要求。其原理图如下:
图3.1 AT89S52原理图
3.2.2 显示部分
在现代的一些电子产品和一些开发系统中,为了进行人机交流,一般都有一个显示信息的系统。本系统中,需要显示当前时间、温度、故障原因(例如定义“1”为时间到期、“2”为温度越限等)。本系统显示的信息量很小,所以采用发光二极管(LED,light emitting diode)做成的数码管做显示器。它的使用方法简单,价格低廉。
3.2.2.1数码管的分类
对于数码管来说一般分为两种,共阴极与共阳极,但是两者的使用方法基本是相同的。根据不同的方面,可将数码管进行分类[32]:
(1)根据LED的显示译码方式, 可以分为硬件译码和软件译码两种;(即我们系统处理的数据一般都是BCD码或者是十六进制数,要显示的话必须变成数码管自身的段码,这种变换可以用软件的方法来直接实现,常用就是列一个段码的表,作为一个数组,用寻址等方法将数据变成段码,直接送给数码管。还可以用硬件来实现码的转换,一般都是将BCD码变成段码。)
(2)根据LED显示驱动连接方式,可以分为静态显示驱动和动态显示驱动两种。(静态显示就是每一个数码管都由一组数据线控制,所有的数码管都同时亮,而动态显示就是所有要显示的数码管依次循环逐个显示,只要频率足够高,肉眼就看不出闪烁,好像所有的同时显示一样。)
(3)根据数据输入接口方式,可以分为并行输入和串行输入两种。(数码管要显示必须要并行数据(一般为8位),控制系统可以直接输出8位并行的数据,也可以利用串行输出,再利用外部移位寄存器来实现串行变并行,最终将8位的数据输出给数码管。)
3.2.2.2 芯片的选择
为了合理地选择芯片,我们将常用的芯片的异同点进行比较[33],如表3.1所示
表3.1常用芯片异同点的比较
芯片名称 功能描述 数据输入方式 可带数码管个数 能否串接 锁存功能 驱动功能 备注
CD4558B BCD- 7段 并行4 位 1个 否 无 无
MC14558 BCD- 7段 并行4 位 1 个 否 无 无
MC14495 二进制-7段 并行4 位 1个 否 有 有 能输出A-F
CD4495 二进制-7段 并行4 位 1个 否 有 有 能输出A-F
MC14499 BCD- 7段 并行4 位 有 有
74LS48 BCD- 7段 并行4 位 1 个 否 有 无
CD4511 BCD- 7段 并行4 位 1 个 否 有 有
CD4513 BCD- 7段 并行4 位 1 个 否 有 有 增加消隐功能
CD4547 BCD- 7段 并行4位 1 个 否 无 有
CD4543 BCD- 7段 并行4位 1 个 否 有 无
CD4544 BCD- 7段 并行4位 1 个 否 有 无
74LS164 无译码功能 串行 1 个 能 有 有
CD4094 无译码功能 串行 1 个 能 有 有
MC14489 无译码功能 串行 5 个 否 有 有
8279 无译码功能 并行8位 16/32 个 否 是 有 带键盘,可编程
7279 无译码功能 串行 16/32 个 否 是 有 带键盘,可编程
7219 无译码功能 串行 8 个 否 是 有 可编程
ZLG7289 无译码功能 串行 8 个 否 是 有 带键盘,可编程
经过比较,选择HD7279A芯片。该芯片具有串行接口,可以同时驱动8位共阴极数码管和连接64键的键盘矩阵,单片机可以完成数码显示和键盘接口的全部功能,而且该芯片自带RC电路,无需外接时钟,与单片机的接口电路简单,只需四条I/O线。图3.1为HD7279的引脚图,各个引脚的说明见下表3.2
表3.2 HD7279引脚说明
引脚名 说明
CS 片选输入端
CLK 同步时钟输入端,上升沿有效
DATA 串行数据输入/输出端
KEY 按键有效输出端,电平有效
SG~SA 段g~段a驱动输出
Dp 小数点驱动输出
DIG 0~7 数码管0~7驱动输出
CLKO 振荡输出
RC RC振荡器连接端
图3.2 HD7279引脚图 首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/8/8
本设计主要应用HD7279显示功能,选择8位数码管,其中4位显示故障的类型,另4位显示时钟芯片当前的时间或者是当前的温度,这需要根据是否有按键按下来进行显示。即上电的时候显示当前的温度,如果按下小键盘,则进行切换,显示当前的时间,再按下小键盘则显示当前温度。其原理图如下:
图3.3 HD7279的原理图