1 引言
常规的单片机应用系统设计,往往都用一个CPU,再扩展一系列外围辅助电路以达到相应设计目标。这种方法,尤其在输入输出接口较多的系统中,必须进行繁琐的译码、逻辑变换,使得系统硬件复杂,调试困难。而用双CPU设计,可大大减少硬件电路,软件资源分配及设计均相对独立,易于修改程序而适合很多应用系统。
下面结合一个实际应用系统介绍双CPU的应用。
2 系统组成
本系统要求8路开关量输入,8路模拟信号采集,8路继电器控制输出,8位数码显示,8路按键输入。其中开关量输入、模拟信号采集、继电器控制输出配置在主板上,数码显示和按键输入在面板上。
基于上述设计要求,考虑用一只97C51设计主板,完成8路开关量、8路模拟信号采集以及8路继电器控制;可用另外一只97C51控制面板上的8位数码显示和8路按键采集;两只97C51通过标准串口连接交换信息,这样主板和面板上只需6根线连接即可。其硬件组成框图分别如图1、图2所示。
图1 主板硬件原理框图
图2 面板硬件原理框图
3 主板设计
3.1 主板硬件设计
见图1,8路开关量直接通过P1口输入到CPU,通过P2口的输出经光耦隔离后驱动8路继电器,8路模拟量利用美国德州公司的11通道串行A/D芯片TLC542采集后串行送入P0口。当需要显示数据时,按一定协议将数据通过串口传输到面板上CPU控制显示。
为了保证系统可靠,采用MAX690做为看门狗监控两只CPU的运行。一个看门狗监控两只CPU,其中任意一只CPU死机时均自动复位,实现方法是:由面板上CPU的COM端发出一路连续的周期小于1s的方波信号到主板上CPU的COM端,主板上CPU接收到这一方波信号后,严格将其按相近频率,在主程序中唯一地方发出清除看门狗计时器的信号。
3.2 主板控制软件
主板控制软件流程如图3所示。
图3 主板软件流程图
4 面板设计
4.1 面板硬件设计
见图2,CPU P1口直接采样8路按键状态,并送到主板CPU。同时用串口接收主板上CPU送来的显示数据内容,经转换后,以P0口做段驱动,P2口做位驱动直接显示出来。
为保证系统可靠,该CPU的P3.2脚发出一周期小于1s的标准方波信号供主板上CPU采集,再驱动清除看门狗,以实现 一只看门狗同时监控两只CPU的目的。
4.2 面板CPU的软件流程
面板CPU的流程如图4所示。
图4 面板CPU软件流程图
4.3 显示方式的改变
当显示数据的方式需要改变时,主板上的程序将不变,而只需改变面板上CPU的程序即可,这样可极其灵活地适合于各种应用场合。
5 结论
综上所述,以较简单的硬件电路,较少的连线,独立的程序实现了双CPU系统,达到了所提出的要求,提高了系统的可靠性及工作效率。
因为CPU的智能化及丰富的片内资源,其灵活性和兼容性远远胜过逻辑电路组合设计模式,又因CPU的价格现在已很低廉,所以,双CPU系统在一定的应用环境中是非常适合的。