1、基于AT89S51单片机的多机通信系统的研究与设计 熊娟 (黄淮学院,河南省 驻马店 463000) 摘要:本文利用ATMEL公司的AT89S51芯片设计多机通信系统,主要研究了系统硬件和系统软件部分,并详细介绍了多机通信系统的设计过程。 关键词:单片机,多机通信,数据接收 AT89S51 Microcontroller based Multi-Communication System Research and Design Xiong juan (Huang-Huai College, Henan Zhu ma dian 463000) Abstract: In thi
2、s paper, ATMEL Corporation AT89S51 chip design multi-machine communication system, the main research of the system hardware and system software components, and gave details of the multi-machine communication system design process. Keywords: SCM, multi-machine communications, data reception 1、 引
3、言 随着电子技术技术的日益发展,在网络通讯与数据传输、工业自动化过程的实时控制和数据处理等操作过程中,通常需要一个集中控制系统能够对现场的运行数据进行监测和控制,以使各系统间能够高速、即时地进行通信。而由计算机和单片机构成的多机网络系统已成为一种有效的通信手段,由于它具有控制方便、简单、灵活、可靠等优点,同时又遵循统一的标准,因而得到了广泛的应用。本文遵循在不影响系统功能的情况下,使设计电路简单化的原则,对多机通信系统的硬件部分和软件设计部分进行了研究,利用ATMEL公司的单片机芯片AT89S51结合其他一些外围电路实现了多机通信系统的硬件电路设计,并在此基础上完成了系统的软件部分设计。
4、 2、 系统硬件设计 本系统的硬件部分主要由单片机AT89S51、RS-232电平转换芯片、PC机等组成。 2.1 单片机芯片AT89S51 本设计选用ATMEL公司的AT89S51芯片,AT89S51是一种低功耗、高性能CMOS 8位单片机,片内含4K字节ISP的可反复擦写1 000次的Flash只读存储器(FPEROM)。该器件采用ATMEL技术,与MCS-51指令集和80C51引脚相兼容,芯片内集成了通用8位中央处理器和ISP Flash存储单元。功能强大、低价位的AT89S51可为许多嵌入式控制应用系统提供高性价比的应用场介,广泛应用于各种控制领域。AT89S51管脚排列图如图
5、1所示。 图1 AT89S51管脚排列图 2.2单片机芯片的接口电路设计 本设计所用的数据传输方式为串口通讯。串口通讯既可以将单片机的数据传输到计算机端,又可以实现计算机对单片机的控制。而且串口通讯所需电缆线少,接线简单,因此,在较远距离传输中,得到了广泛的运用。 由于单片机的串行口大部分是采用TTL电平标准的,所以它的逻辑1电平是5V,逻辑0电平是0V。而电脑串行口所使用的是RS232C的电平标准,它的逻辑1电平是-3.3V,逻辑0电平是+3.3V。因为两者的电平范围相差很远,所以连接时需要用到电平转换电路。本设计选用的是专用电平转换电路RS232芯片,图2为单片机的电
6、平转换接口电路。 图2 89S51与RS-232接口连接 3、系统软件设计 为了能让系统正常工作,设计完硬件部分的电路之后,还要立即进行软件部分的设计。这一部分的设计在整个设计系统里所占的位置非常重要。 3.1 通信协议模块 通信协议工作过程主要包括发送数据过程和接收数据过程 。本系统采用异步半双工通信模式,在同一时间内可以是主机发送,从机接收,也可以是从机发射,主机接收。 从机有两种接收数据的方式:1、等待接收,处理器一直查询串口状态,来判断是否接收到数据。2、中断接收。在一对多的系统中,首先在接收中断中解析“连接”命令,连接命令接收到后主程序进入设置状态,采用查询的
7、方式来解析其余的协议。协议解析的目的,首先判断数据包的完整性,正确性,然后提取数据类型,数据等数据,存放起来用于主程序处理。一般采用中断接收的方法比较好。 主机接收数据的过程与从机可以做到完全一致,在打开串口后,开启远程监视串口的数据接收,将接收的数据保存到缓冲区,并向主程序发送接收数据的消息,数据将随消息一起发送到主程序。主程序开启此消息的处理函数,进行数据处理。 3.2 驱动程序设计 驱动程序设计有发送和接收两部分,主要是设置各种寄存器的参数,只有当控制寄存器中的复位要求位置为高时,这些寄存器才可被访问。因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,发送程序只需把
8、发送的信息帧送到发送缓冲区,启动发送命令即可,接收程序只需从接收缓冲区读取要接收的信息即可。 部分程序设计如下: START: MOV TMOD,#20H ; 置定时器1工作方式2 MOV TH1,#0FDH ;预置初值 MOV TL1,#0FDH ;预置初值 SETB EA ; 开中断 CLR ES ; 禁止串行中断 MOV PCON,#00H
9、 波特率不倍增 SETB TR1 ; 启动定时器1 SETB ES ; 允许串口中断 STAR: MOV DPTR,#TAB MOV R7,#08H ; 数据个数; MOV A,R7 MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ CLR TI AJM
10、P STAR 等待发送 4、结论 本文融合了单片机技术和计算机网络技术,采用MCS-51系列芯片89S51设计出了多机通信系统,并对系统软件部分进行了程序设计,该系统具有硬件电路简单、成本低、控制可靠等优点。能够很好的解决网络通讯与数据传输等方面的多机通信问题。 参考文献: [1] 吴兴中, 欧青立. 一种PC与单片机多机RS232串口通信设计[J]. 国外电子测量技术, 2009, (01) :74-76 [2] 陈妙芳, 胡晓东. 基于AT89S51单片机的温度控制系统设计[J]. 机械工程师, 2009, (01) :136-137 [3] A
11、 Mousavi, , M. Sarhadi, S. Fawcett, S. Bowles, M. York. Tracking and traceability solution using a novel material handling system .Innovative Food Science and Emerging Technologies, 2005, (6 ) :91–105 . [4] 岳学军等. 基于单片机与串行通信的电子密码锁设计[J]. 云南农业大学学报, 2009, (01) :154-157 [5] 陈粤初等.单片机应用系统设计与实践[M].北京:航空航
12、天大学出版社,1993 [6] Kate Gregory.Visual C++6开发使用手册[M].机械工业出版社,1999年6月 [7] 林雪梅.彭佳红.姚志成.单片机多机通信协议的设计[J] .微计算机信息,2006.2-2:24-26 [8] 胡伟,季晓衡.单片机C 程序设计及应用实例[M] .北京:人民邮电出版社, 2003. [9]杨金岩等 .8051单片机数据传输接口扩展技术与应用实例[M].北京 :人民邮电出版社,2005. 作者简介: 熊娟,女,1981年11月生,河南汝南县人,黄淮学院电子科学与工程系,助教,专业方向:电子与信息技术 ,工作单位:黄淮学院电子科学与工程系,通信地址:河南省驻马店市黄淮学院电子科学与工程系 邮编:463000






