单片机 > 单片机程序设计 > 详情

基于AT89C51单片机的RS 232串行数据截取设计方案

发布时间:2020-09-03 发布时间:
|

    引言

    目前,我国的装备技术水平和发达国家相比还有一定的差距,对于国外引进的先进设备,如何才能在没有任何技术资料的情况下破解其技术瓶颈,实现装备技术水平的跨越式发展是我国普遍面临的技术难题。为此作者认为获取设备与控制计算机之间的通信数据,分析其通信协议是解决这个难题的基础。基于此,本文设计了数据截取器。

    很多设备和其控制计算机之间采用的是RS 232标准串行接口进行通信,本文设计和实现了RS 232串行通信数据截取器,能有效地截取设备与其控制计算机之间的通信数据。

    1 截取器硬件部分设计

    1.1 总体框图及原理

    系统原理框图如图1所示。

    原理分析:具体设备与其控制计算机之间的通信线路通过电平转换分两路。一路是直接相连,保证截取器加入后不会影响它们之间的正常通信。另一路经过扩展的串口1和2,同单片机相连,保证了它们之间的通信数据能够被单片机捕获,这些数据经过单片机处理以后通过另一个扩展串口传输到上位机,实现对通信数据的截取。

    1.2 器件选择

    系统以常用的AT89C51单片机为处理核心,选取成都国腾公司生产的GM8123芯片将AT89C51单片机的1个全双工异步串行通信接口扩展成为3个全双工异步串行通信接口,采用MAX232芯片实现RS 232电平与TTL电平之间的相互转换。

    1.3 硬件电路

    系统完整的电路原理图如图2所示。系统电路包括三个部分:单片机最小系统、串口扩展电路和电平转换电路。


    单片机最小系统,包括电源电路、时钟电路和复位电路,S1,S2做波特率控制开关,分别控制P0.0,P0.1的值从00~11,对应波特率为1 200~9 600 b/s。

    串口扩展电路由GM8123构成,其时钟电路采用12 MHz的石英晶体振荡器构成内部时钟方式。GM8123的母串口接收引脚RXD0和发送引脚TXD0分别同单片机串口的发送引脚TXD和接收引脚RXD相连接。GM8123的复位引脚同单片机P3.6脚相连接,由P3.6控制GM8123系统复位,它的模式控制引脚MS同P3.7相连接,由P3.7进行模式选择。GM8123的发送地址线引脚STADD0,STADD1,接收地址引脚SRADD0,SRADD1依次同单片机P1口的P1.0~P1.3相连接,由单片机P1口判断是哪个子串口接收数据和选取某个子串口发送数据。

    电平转换电路由两片MAX232芯片完成,实现J1,J2,J3的RS 232电平与TTL电平之间的相互转换。

    2 软件设计

    系统软件有两种工作模式,模式1的软件设计是实现截取数据的实时发送,截取器工作时不能脱离上位机。模式2的软件设计是实现截取数据的存储转发,截取器可以脱离上位机工作。

    2.1 主程序流程设计

    模式1和模式2的主程序基本相同,其主要功能有:对单片机串行中断相关寄存器的配置,对串口收发数据波特率设定及相关定时器的配置,对GM8123芯片的复位操作和工作方式的相关配置。主程序流程图如图3所示。

    
    其中由S1,S2,控制波特率设置的程序流程图如图4所示。


    2.2 中断服务程序

    模式1的中断服务程序完成的功能是接收具体设备(J1)和其控制计算机(J2)发送的数据,并把数据实时地发送到上位计算机(J3)上显示。模式1中断服务程序流程图如图5所示。


    模式2中断服务程序主要完成的功能是接收具体设备(J1)和其控制计算机(J2)发送的数据,并把接收到的数据存储到单片机的RAM中,当接收到上位机(J3)的发送数据命令时,向上位计算机发送存储的数据。其流程图如图6所示。

    3 功能测试

    借助串口调试助手软件在不同的波特率下对截取器进行功能测试,如图7是在波特率为9 600 b/s,模式2下的测试结果。其中COM1,COM2和COM4分别对应具体设备、控制计算机和上位机。上位机接收数据中“s:”标号后的数据是设备发送的,“k:”标号后的数据是控制计算机发送的,这些数据是按照时间的先后顺序被截取器所截取。利用截取器对某一具体设备和其控制计算机之间的实际通信数据进行截取时,就可以通过分析截取的数据,找出它们之间通信数据的对应关系,从而分析其通信协议。

    4 结语

    本文讨论了RS 232串行数据截取器的设计方案,并做出了产品,进行了实验。系统稳定、可靠,可以有效地截取串行通信数据。该系统可以为有相关需求的人员提供帮助。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二