1 引言
多媒体教室是现代化教学环境和设施的重要组成部分,目前我国各类学校都建设了一批多媒体教学课室,勇于开展多媒体教学,有力地推动了教学手段的现代化。正在逐步改变教师的教授和学生的学习模式,加大了教学信息量,提高了教学效率和教学质量,加快了教学改革步伐。而基于单片机控制的智能教室控制系统主控制器沟通了控制计算机与教室控制器之间的联系,起到桥梁的作用。作为分布式控制的系统的核心,主控制器的性能的优劣直接影响到整个系统功能的实现。因此主控制器的设计至关重要,本文将对主控制器的硬件和软件进行设计研究。
2 主控制器硬件总体设计
主控制器通过RS-232总线与控制计算机相连,接收控制计算机发出的命令,经过单片机的处理,通过RS-485总线发送操作命令到教室控制器,完成控制计算机的操作动作。系统主要功能电路有:主控制电路、与控制计算机接口电路、与教室控制器通讯接口电路、实时时钟电路、红外信号发射电路、存储器扩展电路及控制器供电电路等。其系统组成如图1。
3 硬件电路详细设计
3.1 主控芯片选择与供电电源设计
主控制器的核心控制芯片采用深圳宏晶电子公司STC89C52RC单片机。该单片机以8051为核心电路,拥有三个定时器/计数器、两个外部中断、32个通用I/O接口并拥有高速的数据处理能力,同时内部扩展了256字节的RAM并带有内部看门狗,非常适合于工业级别的、对实时性要求不是非常高的场合。扩展的RAM可以通过单片机外部数据读写的方式进行操作,用来存放红外自学习时大量的零时数据。
对于一个电气系统,电源是不可缺少的部分。STC89C52RC单片机为+5V供电,而外围触发电路需要+12V的电源。在这种情况下,所需电压的得到一般可通过外部开关电源或交流220V单相电经变压器、经过桥式整流后再经过电容、电感滤波直接得到。一般来讲,这样得到的+12V和+5V电源负载能力较强但波纹较大,很难直接应用到系统中。因此,一般要经过DC/DC变换将该电压进行隔离稳压处理。
图1 主控制器硬件组成框图
3.2 复位电路与看门狗电路设计
本次设计采用的复位芯片为C7705,它是电压监视器件,具有电源投入时的复位功能,并能够监测出电源瞬时短路和瞬间降压而产生的复位信号。该芯片内部具有电源上升时的复位信号解除功能,能正确地监测降低的电压(Vs=4.5-4.6V),其内部附有温度补偿的基准电压,正负两种逻辑输出(集电极开路30mA ),原理图如图2所示。
图2 系统复位电路
电路除了具有上电自动复位功能外,还可以通过复位按键迫使RESET为低电平。当系统掉电时,复位电容里存储的能量可以以二极管为通路迅速放电,这为单片机在复位上电的情况下可靠复位提供了保证。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。硬件看门狗是利用了一个定时器,来控制主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。本次设计中,采用MAX813L芯片作为硬件看门狗,其RESET端与单片机复位端相连提供复位信号,由单片机的P1.0提供喂狗信号。看门狗硬件电路如图3所示。
图3 硬件看门狗电路
3.3 系统通讯接口设计
8051单片机带有一个异步通信串行接口,并具有一个通信可编程位,使用它可以很方便地完成单片机之间的多机通信。本系统的设计中,主控制器的主要任务是把控制计算机中的控制指令进行处理,并通过异步通信串行接口把控制命令发送到下位机。但是,由于8051单片机本身只提供了一个串行口,因此为了实现上述目标,就必须再扩展一个通信接口,本系统就使用8251扩展8051串行通信接口。
由于主控制器安装在主控室内,与安装在教室内的教室控制器之间距离较远,且工作环境复杂,两者的通信存在很大的环境干扰。本系统的设计从经济条件、施工难度、传输距离等方面考虑,选择了工业控制系统中常用的RS-485总线。使用RS-485总线,一对双绞线就能实现多节点联网,构成分布式系统。但是如果在工程中需要更长的通信距离,超出RS-485接口能够提供的可靠传送数据范围时,单一的RS-485通信控制芯片对就无法完成了。这时,必须在传输线路中增加中继器。利用RS-485中继器,可以将一个大型RS-485网络分隔成若干个网段。RS-485中继器就如同RS-485网段之间连接的“桥梁”。当然每个网段还是遵循上面的485规范,即 1.2公里长度,32个节点数。
4 主控制器软件设计
系统的软件设计是整个系统功能实现的关键所在,软件设计的优劣直接影响系统的性能,在相同硬件基础上设计的软件功能差异可以很大。由于本次设计要频繁的对数据进行读写和处理大量的数据,占用了CPU的大量资源,因此在优化软件设计的同时,还要注重核心芯片的选择。
系统软件设计根据功能要求软件控制模块可分为。上电后系统开始运行,系统先调用初始化,对各个接口状态进行自检,对各个控制寄存器赋初值,然后进入循环等待操作命令的到来并执行命令。系统处于循环状态运行时则调用通讯子程序工作,接收控制计算机发送的控制命令,同时向教室控制器进行转发;系统中断时调用定时中断服务子程序。主控制器程序运行框图如图4所示。
4.1 通讯子程序设计
系统采用RS-485总线式网络结构,主从式通信方式,即主控制器以查询的方式与各子控制器通信,子控制器相互间不直接通信,而是通过主控制器,间接的相互通信。同时,数据的交换过程(包括建立连接和交换数据)采用一问一答的方式,主控制器询问了子控制器,子控制器才给予应答,收到应答后,数据交换才继续进行下去。这样的方式可以避免多个子控制器间没有次序的数据通信,扰乱整个网络上数据的传输。系统多机通信按以下协议进行:
图4 主控制器程序运行框图
(1) 首先初始化,使所有从机处于接收地址帧状态,即使SM2=1。
(2) 主机先置TB8=1,发一帧地址信息,主机发出信息后马上启动一个等待状态定时器(定时几十ms)。
(3) 从机接收到地址帧后,各自产生串口接收中断将接收到的地址与本机地址比较,地址相符的从机使SM2=0,处于接收数据状态,并屏蔽串口中断,然后发回本机地址作为确认信号,其余从机不进行任何动作,继续监听地址。
(4) 主机收到对应从机地址后,令TB8=0,开始发送数据信号,主机与对应从机通信建立。此时其他从机均无中断响应,若主机长时间未能接收到数据,而导致等待状态定时器中断,此时主机应强制退出与该从机的通信,并使从机复位。
(5) 通信建立后,主机连续发送数据帧和校验帧,从机接收后进行数据校验,数据错误接受错误则返回错误码,主机重新发送数据,重复三次,若三次均出错则报上位机系统出错;若数据发送正确,则返回地址继续进行通信。
(6) 通信结束后,主从机复位。主机使TB8=1,回到发送地址状态;从机