单片机与微机远程通信接口分析

时间:2022-03-17 10:00:45

单片机与微机远程通信接口分析

本文借鉴RS-232串口进行MCS-51单片机与计算机间远程通信接口的设计,针对串口通讯的硬件电路设计方式与实现路径、MSComm控件所提供的处理通讯的方式进行了详细介绍,并基于VB6.0软件进行了单片机与微机远程通信程序的具体设计。测试结果表明,该通讯程序具备较强的运行可靠性,能够为相关通讯系统的设计与开发提供借鉴意义。当前单片机控制器主要以计算机作为控制中心,由单片机采集数据并经由串口将数据发送至计算机端,由计算机向单片机下达控制命令,完成二者间的数据传输。在此过程中,计算机、单片机分别作为上位机和下位机,为保障在远程通信情况下上下位机间数据传输的及时性与可靠性,还需针对其通讯实现方式进行优化设计。

1单片机与微机串口通讯的硬件系统设计

1.1远程通信系统工作流程。以某主从式远程通信模型为例,该系统主要由中心站局域网、PSTN、终端机三部分组成,其中的中心站局域网包含数据库服务器、数据管理工作站、数据采集工作站与外置Modem,终端机为若干传感器,系统主要任务是借助分布在不同地区的终端机每30min采集一次数据,将采集到的数据发送回中心站,并存入数据库中留待后续进行具体统计分析。系统主要围绕数据采集工作站与各终端机间建立数据通信,终端机借助单片机每60s读取一次传感器数据,将30min内的传感器数据汇总后存储至RAM中,同时具有数据备份功能;利用单片机针对Modem芯片运行状态进行实时监测,针对通信请求作出快速响应,并待通信连接成功后依据中心站传达的控制命令执行具体操作;数据采集工作站则每30min连接各终端机,从终端机处读取数据,完成整体通信流程。1.2串行通讯接口电路设计。以异步串行通讯总线接口RS-232C作为MCS-51单片机与微机间的串行通讯接口设计的参考标准,可满足数据传输速率在2000bps以内的通信需求,通信电缆最长传输距离为15m。该标准采用负逻辑,规定将+3V~+15V范围内的任意电压表示为逻辑0,将-3V~-15V范围内的任意电压表示为逻辑1。考虑到接口电路与可编程接口芯片多为TTL电平和CMOS电平,在单片机与微机串口通讯时需涉及到电平转换,原有RS-232C标准下的通讯接口需采用2片集成电路,并且需额外增设3组电源,一定程度上增大了系统的功耗与体积,因此本文拟采用MAX232作为串行通讯接口芯片,该芯片仅需设置1组+5V电源与4个电容,即可在串口通讯时完成电平转换。在单片机与微机的硬件连接上,将MCS-51单片机的数据发送端TXD与MAX232芯片的T1连接,将其数据接收端与MAX232芯片的R1连接,完成通信接口电路的设计。1.3串行通讯控件使用。选取MSComm控件经由串行端口实现数据的传输与接收,承担单片机与微机间的串行通讯功能。MSComm控件可提供以下两种处理通讯的方式:其一是事件驱动方式,在串口接收缓冲区中出现字符、CD或RTS线上一个字符到达时,可利用该控件中的OnComm事件实现对通讯事件的捕获与处理,同时也可以利用OnComm事件有效检查出通讯错误问题并进行处理。所有通讯事件、通讯错误的列表,参阅CommEvent属性。利用OnComm事件还可以在处理函数环节加入自己的处理代码,为编程创设了便捷条件,具有程序响应速度快、可靠程度高等性能优势。不同MSComm控件均含有与之对应的串行端口,倘若应用程序存在访问多个串行端口的需求,还需注重使用与所需访问的串行端口数量一致的MSComm控件。其二是查询方式,该处理通讯的方式本质上等同于事件驱动方式,但在部分使用情况下具备更高的便捷度,为实现应用程序的各关键功能,可通过检查CommEvent属性的值完成通讯事件、通讯错误的查询。

2单片机与微机远程通信程序的设计与实现

2.1通讯协议设计。由于在单片机与微机远程通信的过程中存在一定量的外界干扰因素,将影响到数据传输的可靠性,因此为保障上位机与下位机间通讯的可靠性,需在完成一次数据传送的处理后进行校验,将数据传递格式约定为以下四种形式:其一是长度为1字节,取值范围为0x02,内容为起始符,即数据包的起始字节;其二是长度为1字节,取值范围为0x00-0xFF,内容为数据长度,即表示数据的长度;其三是长度为0-N字节,取值范围为XX...,内容为数据,即传递的有用数据;其四是长度为1字节,取值范围为0x00-0xFF,内容为校验和,即数据包内除校验和以外的所有字节的算数和。2.2通讯实现路径。选取VB6.0作为通讯软件程序设计环境,利用MSComm控件进行计算机程序的开发。MSComm控件利用串行端口可提供完善的数据发送与接收功能,实现与其他设备间的便捷连接与高效通讯,并且提供事件驱动方式与查询方式两种信息处理方式。针对该通信程序设计主要采用事件驱动方式,在应用MSComm控件时需从CommPort、Set-tings、PortOpen、Input、Output属性中单片机与微机远程通信接口电路的设计及编程分析天津科技大学方雪莹选取串口连接所需运用的属性,待完成属性的建立后,设置Output属性并对下位机发出控制命令,计算机程序即会依据Rthreshold值触发OnComm事件,以此实现数据接收功能。假设将通讯端口设为端口1,参数初始化为“9600,N,8,1”,各参数分别代指波特率、奇偶校验、数据位及停止位,则程序代码设计为:MSComm1.CommPort=intPort’设置COMMSComm1.Settings=strSet’设置通信口参数MSComm1.InBufferSize=4’设置MSComm1接收缓冲区为4字节MSComm1.OutBufferSize=4’设置MSComm1发送缓冲区为4字节MSComm1.InputMode=comInputModeBinary’设置接收数据模式为二进制形式MSComm1.InputLen=1’设置Input一次从接收缓冲读取字节数为1MSComm1.SThreshold=1’设置Output一次从发送缓冲读取字节数为1MSComm1.InBufferCount=0’清除接收缓冲区MSComm1.OutBufferCount=0’清除发送缓冲区MSComm1.RThreshold=1’设置接收一个字节产生OnComm事件IfMSComm1.PortOpen=FalseThen’判断通信口是否打开MSComm1.PortOpen=True’打开通信口MsgBox”设置完成”IfErrThen'错误处理MsgBox”串口通信无效”ExitSubEndIfEndIf参数初始化设置:intPort=1strSet=”9600,n,8,1”若想使上位机向下位机发出控制命令,其表达式应为:2.3单片机通讯软件流程。本文采用的单片机芯片型号为MCS-51,以KEILC51为编程软件、基于C51编程语言进行单片机端通讯程序的开发,其串行口包含4种工作方式,通过控制串行控制寄存器的SM0、SM1进行工作方式的选取与切换。本文选取方式1作为工作方式,该工作方式为10位发送或接收,其中包含1位起始位、1位结束位于8位数据位;波特率为可变数值,主要由定时器/计数器1的溢出率与PCON中的SMOD位决定。当选取定时器/计数器1作为波特率发生器时,可使定时器在模式2下工作,定时器1的TH1值计算公式为:在该单片机系统中波特率取值为9600bps,振荡频率为11.06MHz,SMOD为0,将上述数值代入公式中即可计算得出TH1为0xFDH。该单片机通讯软件的流程如下:开始——初始化存储单——设置波特率、选取终端方式、开串口中断——等待上位机命令——接受命令,关中断——判断是控制字?——是:根据控制字转入相应处理子程序;否,重新等待上位机命令。2.4应用实例分析。基于单片机与计算机远程通信接口设计原理进行POS机系统设计,首先在通信模型设计上,选用带有嵌入TCP/IP协议栈的KCU,实现无线通信模块与网络硬件接口的连接,保障无线通信连接的成功运行。其次在无线通信系统的技术应用上,基于GPRS技术有效发挥移动网络在支付过程中的应用优势,用户仅需在网络覆盖环境下即可使用无线POS机,可在2s内建立连接,并且其操作界面较为简单、人性化,无需安装额外的使用线路,易于操作。最后是在控制软件的设计上,主要应用到以下两种控制软件:其一是计算机通信程序,通常可选用VB、VC等用于开发界面通讯程序,利用MSComm控件提供串口通讯,实现对数据输出与发送的有效控制;其二是单片机编程,可选取带有嵌入式操作系统的MCU,有厂家提供固定的程序构架,仅需依据用户使用需求进行管脚配置信息的修改,即可满足实际应用功能。

3结论

本文以单片机与微机远程通信接口电路设计与通信程序设计作为主要研究对象,选取VB6.0作为软件程序设计与开发平台,基于MSComm控件建立MCS-51单片机与计算机间的串口通讯,系统经由调试后具有较强的运行可靠性,且整体设计过程较为简单、呈现出良好的通用性,具备有效适用价值。

作者:方雪莹 单位:天津科技大学