首页 > 范文大全 > 正文

MCS-96单片机和PC计算机串行通讯技术的实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇MCS-96单片机和PC计算机串行通讯技术的实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:文章论述了实现工业PC计算机(上位机)与mcs-96单片机(下住机)的数据通讯技术实现要点,并对具体实现思路和实施过程进行了详细说明。

关键词:pc计算机;MCS-96单片机;串行通讯

中图分类号:TP368 文献标识码:A 文章编号:1009-2374(2009)13-0006-02

在电气自动化控制领域,集中分布式测控系统是以计算机技术为核心,与数据通讯技术相结合的集检测、控制和管理为一体的计算机网络控制系统,例如,以单片机作为从机,负责现场控制和实时数据的采集;PC机作为主机,负责对各从机发来的数据进行分析、处理,并向各从机命令,以实现对工业现场的集中监控与管理。由于主从机需不断进行信息交流,因此数据通讯成为分布式测控系统重要而基本的功能,本文以MCS96系列单片机中的800196为例,论述了PC机和单片机串行通讯的实现过程。

一、串行通讯技术总体描述

串口通讯的物理标准,现在得到大家广泛采用的是RS232C、RS422、RS485等。一般微机提供标准的RS232C接口,该接口采用负逻辑,与CMOS、TrL电路的连接需要专用集成电路进行电平转换。一般应用情况下,RS232C的最高传输速率为20kb/s,最大传输线长为30m。

在串行通讯的数据输入过程中,数据一位一位的从下位单片机进入上位机串行接口的“接受移位寄存器”,当“接收移位寄存器”接受完一个字符的各位后,数据就从“接受移位寄存器”进入“数据输入寄存器”,CPU从“数据输入寄存器”中并行读取到接收的字符。“接收移位寄存器”的移位速度由“接收时钟”确定。

当上位计算机要向下位各检测单元的单片机输出数据时,上位CPU把要输出的字符送人“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后,由“发送移位寄存器”移位,把数据一位一位的送到下位各检测单元的单片微机,“发送移位寄存器”的移位速度由“发送时钟”确定。

从理论上讲,上位PC计算机和下位单片微机进行RS232C串口通讯的接线方法是:上位Pc计算机RS232接口的接收数据针脚RXD与下位单片微机串行口的发送数据针脚TXD相连,上位Pc计算机RS232接口的发送数据针脚TXD与下位单片微机串行接口的接收数据针脚RXD相连,两者的信号地GND对应相接。但是,在工程实践中我们必须重视并解决上位Pc机与下位单片机RS232C串口间的逻辑电平是不一致的问题。

通过查阅有关技术标准我们不难发现上位Pc机的串行接口是符合EIARS-232C规范的外部总线标准接口。RS-232C采-用的是负逻辑,即逻辑“1”:5V至-15V;逻辑“O0”:+5V至+15V。而本系统中所使用的下位机80C196单片微机的电平为:逻辑“1”:4.99V,逻辑“0”:0.01V。

因此,在用RS-232C总线进行串行通讯时需外接电路实现电平转换。在发送端用驱动器将CMOS电平转换为RS-232C电平,在接收端用接收器将RS-232C电平再转换为CMOS电平。

二、串行通讯实现过程

(一)串行通讯的具体思路

在串行通讯之前,必须约定好收、发双方的通讯协议,明确规定彼此的联络信号以及数据的传送方式等项内容,具体思路如下:

1 在PC读数据时遵循“读命令-等数据-报告”即PC下达一命令、等待接收数据、再据所接收数据的正误向应用程序报告此命令的执行情况。

2 在PC写数据时遵循“写命令-等回应-报告”,即PC下达一写命令,此时所要写的数据含于此命令中等待单片机发来的已正确接收的回应信号,并向应用程序报告此命令执行完毕。

3 如果在转输过程其间Pc或单片机所接收任何一帧信号出现错误时,均会向对方发送重发此帧信号的请求,如果连续三次转输失败则退出通讯,并向应用程序报告。

(二)下位单片机串口通讯偏程的几个关键环节

串行通讯是上位PC计算机与下位单片计算机之间的数据交换。上面已经对上位微机串行通讯的关键环节和相关实现思路进行了论述,下面再对与之相对应的下位单片机串行通讯的关键环节的实现加以说明,下位单片机串口通讯编程的实现要处理好以下几个关键环节:

1 首先对单片机串口进行正确的初始化设置。进行串行通讯时必须对下位的80C196单片机进行正确的设置,与串行通讯有关的寄存器有:

(1)IOCl控制寄存器:在串行应用中,该寄存器用于选择TXD/P2.0引脚端的复用功能,置1时,选中TXD功能。

(2)SP_CoN寄存器(1lH,只写)和SP_STAT寄存器(11H,只读):该寄存器的低5位作控制寄存器,高3位作状态寄存器。

(3)INT_MASK中断屏蔽寄存器:INTMAS.6置1允许串行口中断。

(4)BAUD_RATE寄存器(OEH,只写):是16位寄存器,对其设置串行通讯的波特率需分两次连续向0EH进行写操作,先送低位字节,后送高位节,80C196单片机CPU和其串行口之间通过SBUF_TX发送寄存器和sBUF_Rx接收寄存器进行数据传输,CPU将欲发送的数据写入SBUVFX;从SBUFRX中读取串行口接收到的数据。一旦一帧信息中最后一个数据位写入缓冲器或从中读出,即产生相应的发送和接收中断。

2 选择单片机串行口正确的工作方式。80C19弹片机的串口共有四种工作方式,简述如下:

方式0:实质是移位寄存器操作同步工作方式。接收和发送数据时,最低有效位DO在前,8位位1帧。

方式1:是标准异步通讯方式,全双工操作。串行收发数据帧格式为:1位起始位(TTL低电平0);8位数据(TTL高电平),最低有效位在前,1位停止位(TTL高电平)。

方式2:方式2的串行帧格式约定为11位,一个起始位(TTL低电平O),8个数据位(TTL电平),1个可编程位(D8,TTL电平),1个停止位(TTL高电平1)。由此可见,方式2与方式1的区别在于数据位D7后面多了一个可编程位D8,发送时可编程预先设置D8为1或0,接收时,若D8=1则接收1帧后引发串口中断;若D8=0,则不中断。方式2不允许奇偶校验。

方式3:方式3的帧格式与方式2完全一致,所不同的是,接收时无论D8是1还是0均引发串行口中端,并且方式3允许实施奇偶校验。

本系统中由于是上位Pc机(单机)对多个下位单片机(多机)的1机对多机的串行通讯方式。所以,必须选择恰当的串行口工作方式,才能实现有关功能。仔细分析和考虑一主机和多从机分布式计算机工作系统的具体通讯特点和要求。采用上述方式2和方式3相结合的方式来实现多机数据通讯比较合理有效。

(三)具体编程思路

通讯开始,计算机工作于方式2,上位Pc机发送一条11位地址帧:1个起始位,8个数据位,1个可编程的的第9位,1个停止位,其中可编程的第9数据位为1。当工作于方式2的下位80C19弹片机接收到地址帧时,所有从机均发生接收中断,并判断上位机所发来的地址帧中8位数据所确定的地址码(实际就是个从机的标示符,各从机可相应编号为00、01、02……等)是否与自己的地址相符,如果相符立即将工作方式转为方式3,则随后无论上位机送来的第9位数据位是1还是0本从机均工作于中断开放状态。随后当上位机送出地址帧之后,紧接着送出数据帧(第九位数据位为0)。仍按方式2工作的其他各从机不能接收这个数据帧,继续处理自己的事项。

以上对工业Pc计算机(上位机)与MCS-96单片机(下位机)的数据通讯技术实现要点、关键环节、实现思路和实施过程进行了详细论述,并且笔者在具体的工程项目中应用以上技术顺利实现了工业Pc计算机(上位机)与多个MeS-96单片机(下位机)构成的集中分布式测控系统的数据通讯问题。为在电气技术职业教育教学过程中实施相关技术的项目教学奠定了理论和实践两个层面的双重基础。

参考文献

[1]陈宝江,Mcs单片机应用系统使用指南,机械工业出版社,2000

[2]方园人机界面设计与应用[s],化学工业出版社,2004

[3]谢平,单片机多机串行通讯,甘肃科技,2006,(9),

作者简介:张晓军,男,青岛市高级技工学校教师,电气工程师。