当前位置:首页 > 单片机 > 单片机
[导读]1 引言在某大型指挥控制系统中,由于指令发送装置与接收装置的指令格式有很大的区别,两者不能直接通信。而更换其中之一都会造成巨大的资金浪费,指令转换器的目的就是在不改变发送和接收装置的情况下对发送装置所产

1 引言

在某大型指挥控制系统中,由于指令发送装置与接收装置的指令格式有很大的区别,两者不能直接通信。而更换其中之一都会造成巨大的资金浪费,指令转换器的目的就是在不改变发送和接收装置的情况下对发送装置所产生的指令进行格式转换,使产生的指令格式与接收装置所能接收的指令格式一致,实现整个系统的顺利通信。

2 硬件设计

2.1 总体结构

指令转换器的硬件总体结构如图2-1所示。所有电路模块集中在一块印刷电路板上,主要有89C51单片机、串口扩展电路、中断扩展电路、监测电路、静态存贮器扩展电路、输出电路及分频电路等几个部分,下面将对各部分进行详细介绍。

2.2 中央控制单元

2.2.1时钟电路

89C51的内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外谐振器一起构成一个自激振荡器。89C51有内部和外部两种时钟方式,本系统采用外部时钟方式。

2.2.2复位电路

复位电路设计的核心是:在振荡器运行时,保证89C51的RST引脚上出现10ms以上稳定的高电平,这样可以使89C51可靠地复位。常用的复位电路有上电复位、电平开关复位、两种复位电路相结合的控制电路等,本系统采用上电复位电路。

2.3 串口扩展电路

89C51单片机仅有一个异步串行通信接口,而指令转换器需要同时与指令发送装置、指令接收装置进行通信,需要两个专用的串行口,利用Intel 8251扩展串行口,可有效解决问题。8251可用于同步和异步传输。异步传送时,可传送5-8bits字符,时钟速率为通信波特率的1、16或64倍;可产生1、1.5或2位的停止位,可检查假启动位,自动监测和处理终止字符;完全双工,具有双缓冲器发送和接收器;具有奇偶、溢出和帧错误检测电路。本系统用两片8251进行扩展串口,其片选地址分别为#1FFFH、#3FFFH。                         

2.4 外部数据存储器扩展电路

89C51单片机内部有128个字节RAM存储器。CPU对内部RAM具有丰富的操作指令。但在用于实时数据采集和处理时,仅靠内部的128个字节的数据存储器是远远不够的,在这种情况下,可以利用89C51的扩展功能,扩展外部存储器。

2.5 中断扩展电路

89C51单片机仅提供了两个外部中断源,而指令格式转换器需要四个中断源,为了解决此问题,利用能够管理多级中断请求Intel 8259A来进行中断扩展是一个有效的办法。

由于8259A与 89C51的接口并不完全兼容,因此必须对89C51输出的控制信号进行相应的变换后再对8259A进行控制。这需要解决硬件与软件两个问题,下面先给出硬件解决方案。

硬件方面,当8259A发出中断请求信号INT=1后,要求CPU返回一个中断应答信号 送至8259A,以控制8259A调用机器指令码的发送,但89C51不会自动发 =0的信号,可以通过对89C51的 信号与INT信号相结合,如图2-2所示,通过CPU连续执行三条指令MOVX  A,@R0指令可产生8259A的 所需要的中断应答信号。

2.6 输出电路

为了使信号转换器和指令发送装置之间能够通信,本系统采用标准异步通信接口RS-232作为输出端口。

RS-232电路采用MAXIM公司的232专用接口芯片MAX238DIP,该芯片单5V供电,包含4路收,4路发,可以全双工方式工作,MAX238DIP引脚定义及典型应用电路如图2-3所示,引脚定义见表2-1,T1IN、T2IN、T3IN、T4IN到T1OUT、T2OUT、 T3OUT、T4OUT实现驱动输入到232转换,R1IN、R2IN、R3IN、R4IN到R1OUT、R2OUT、R3OUT、R4OUT实现232 到驱动输出转换。

表2-1  MAX238DIP引脚定义


 
2.7 分频电路

分频电路由12MHz晶振、74LS14、74LS92计数器(用于12倍分频)、74LS90计数器(用于10倍分频)组成,其主要目的是产生 的时钟信号,供串口扩展芯片8251的 使用,同时产生 的CLK信号,供8251内部时钟使用。

2.8 检测电路

为了便于维护、管理,本系统设计了系统自我检测功能模块,各由三极管和发光二极管组成的四组检测电路分别接至89C51的P14~P17,用于指示系统自检、来自指令发送装置的指令数据接收检测、发送应答数据至指令发送装置的检测及发送指令数据至指令接收装置的检测4种状态。

3 软件设计

软件是信号转换器的关键组成部分,本系统采用了KEIL C51集成开发环境。KEIL C51标准C编译器为89C51微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效、快速的特点。

3.1 8251初始化编程

8251是一个可编程的多功能通讯接口,所以在使用时必须对它进行初始化编程,确定它的具体工作方式。例如:规定工作在同步方式还是异步方式、传送的波特率、字符格式等。初始化编程必须在系统RESET以后,在USART工作以前进行,即USART不论工作于任何方式,都必须经过初始化。本系统中,两片 8251都进行收发工作。

对于8251(Ⅰ),收发数据的速率为9600bps,接收器、发送器的时钟频率为153.6KHz,所以波特率系数为异步×16,字符长度为8位,无奇偶校验位,异步方式,一个起始位,一个停止位。8251(Ⅰ)的方式选择字、命令字分别为#4EH、#37H。

对于8251(Ⅱ),收发数据的速率为2400bps,接收器、发送器的时钟频率为153.6KHz,所以波特率系数为异步×64,字符长度为8位,无奇偶校验位,异步方式,一个停止位。8251(Ⅱ)的方式选择字、命令字分别为#4FH、#37H。

8251(Ⅰ)、8251(Ⅱ)的控制字和状态寄存器的地址分别为#1FFFH、#3FFFH,下面以8251(Ⅰ)为例给出初始化编程:
                MOV  DPTR,#1FFFH   ;送方式控制字
                MOV  A,#4EH
                MOV  @DPTR,A       ;送命令指令
                MOV  A,#37H
                MOV  @DPTR,A

3.2 8259A初始化编程

前面已经提过,由于8259A与89C51的接口信号不能完全兼容,因此必须对89C51输出的控制信号进行相应的变换后再对8259A进行控制。在软件方面需要解决的问题是:当CPU进入中断响应周期,送来第①个 应答负脉冲时,89C51不能接收8259A送来的CALL指令机器码(两者CALL指令机器码不兼容),在中断程序中将其废掉,然后在第②、③个 应答负脉冲期间,用2条MOVX  A,@R0指令读出8259A中断矢量低8位送DPL,高8位送DPH,通过DPTR,再用跳转指令转至中断源对应的中断服务程序的入口执行,时序图见图3-1。

8259A中断控制程序包括:初始化主程序,解决89C51单片机中断初始化和8259A的初始化;中断服务程序以及为各个中断源服务的子程序,解决如何从8259A读入中断矢量地址并转中断处理程序,最后结束中断并返回,下面给出程序。

设8259A选择中断优先级固定,全嵌套工作方式,因此只需要填写ICW1、ICW2。IR0设定为边沿触发中断方式。中断源输入IR0的中断矢量为0260H,IR1以及以后的中断矢量依次加4。

8259A中断服务程序框图如图3-2所示:

8259A中断后进入中断程序清单如下:

对于每个中断申请,应有一段为IR0~IR4服务的中断子程序。但是,在8259A的ICW1中规定了IRi中断矢量间隔4个字节,不能存入一段实际的中断服务程序。故在8259A中断矢量0260H单元开始存放一个散转表,再转入实际的IRi的中断服务子程序执行。并在每个程序都要以执行指令LJMP RET04来结束,以便返回到8259A中断程序的模拟断点处RET04。

3.3 主程序

本程序主要用来接收指令发送装置发来的指令,并对指令格式进行转换。转换后的数据发送给指令接收装置。主要功能是设置89C51、8251、8259A的初始状态,开启中断,等待中断,根据不同的中断矢量转到相应的中断子程序。流程如下所示:


        图3-3  主程序流程图

接收指令子程序主要用来接收由指令发送装置发送来的模拟指令,接收的指令数据由格式转换子程序进行格式转换;发送应答子程序根据接收子程序接收的数据正确与否向指令发送装置发送应答数据帧;发送指令子程序把转换后的指令发送到指令接收装置;接收应答子程序用来接收指令接收装置发送过来的应答数据帧。

4结束语

本文设计的指令转换器已与整个指挥控制系统进行了现场试验,结果表明,该指令转换器设计正确,实现了指令格式的转换,运行速度快,可靠性高。

参考文献
[1] 李华等编著:《MSC-51系列单片机实用接口技术》,北京航空航天大学出版社,2001.5
[2] (美)U.布莱克,《计算机网络—协议、标准与接口》,人民邮电出版社,1990
[3] 张毅刚等编著:《MCS-51单片机应用设计》,哈尔滨工业大学出版社,1990年。
[4] 孙涵芳、徐爱卿,MCS-51(96)系列单片机原理及应用,北京航空航天大学出版社,1997
[5] 李朝青编著:《PC机与单片机数据通信技术》,北京航空航天大学出版社,2000
[6] 王二乾等:《TTL集成电路设计和应用手册》,中国计算机技术服务公司,1984
[7] 颜欧:《单片微机实现远程数据传输的数据帧编码方法》,光电对抗与无源干扰,2002年第1期
[8] 公茂法、马宝甫、孙晨,《单片机人机接口实例集》,北京航空航天大学出版社,1998
[9] 董渭清、王换招,《高档微机接口技术及应用》,西安交通大学出版社,1995
[10] 陈建铎,《32位微型计算机原理与接口技术》,高等教育出版社,1998
[11] 史新福,金玉,冯萍,《32位微型计算机原理接口技术及其应用》,西北工业大学出版社,2000

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭