欢迎来到天天文库
浏览记录
ID:46318621
大小:66.50 KB
页数:6页
时间:2019-11-22
《串行口通信技术应用探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、串行口通信技术应用探究ExplorationonSerialPortCommunicationTechnologyCaoYaohui(ShaanxiTechnologyCollegeofFinance&Economics,Xianyang712000,China)摘要:当今计算机已很普及,计算机之间的通信是必不可少的。文章根据多年的教学及实践经验,对串行通信技术做一些探究,提出当硬件握手不适应时,釆用软件握手技术进行通信的方法及应用。Abstract:Today,thecomputerisverypopular;thecommunicationbetweencomputersisesse
2、ntial.Articlesbasedonyearsofteachingandpracticalexperienee,todosomeexplorationonserialcommunicationtechnology,theauthorproposestoadoptthesoftwarehandshakemethodofcommunicationtechnologyandappliesHonswhenthehardwarehandshakedoingnotmeet・关键词:串行口通信技术硬件握手软件握手Keywords:serialport;communicationtechnolog
3、y;hardwarehandshaking;softwarehandshake中图分类号:TP39文献标识码:A文章编号:1006-4311(2011)19-0162-020引言计算机与外部设备的连接,不是通过并行口就是通过串行口。并行口编程很简单,相对而言,串行口的编程就要复杂得多了。为了进行可靠的串行通信,标准串行口必须具有握手信号和状态信息。但由于串行口通信是为相距一定距离的两台或两台以上设备提供彼此连接的最方便的办法,尽管编程较复杂,但应用得还是相当广泛。下面针对串口通信进行探究。1数据异步串行的发送和接收数据异步串行的发送和接收具有异步和串行两个特点。所谓“串行”是指一次一个数
4、据位,而并行是一次一个字节。所谓“异步”,是指相邻两个字节之间的停顿时间是长短不一的,尽管同一个字节内各位的定时和顺序是非常严格的。很容易想到有异步串行就会有同步串行,但是为了简单起见,这里把异步串行口就简称为''串行口”。在串行口中收发的每一个字节数据是由以下4个部分按顺序组成的:1个起始位,8个数据位(在某些情况下是7个),奇偶校验位(可有可无,可奇可偶),1个或2个停止位。在每两个字节之间,可以停顿任意长时间。数据收发线的空状态是高电平。起始位标志着一个新字节传送的开始,与一个数据位占用同样的时间宽度,低电平。起始位之后是奇偶校验位,在奇偶校验位之后就是停止位,它可以占一位或两位数
5、据位的时间宽度。停止位是低电平,它表示一个字节传送的结束。在停止位之后,可以接着又是下一个字节的起始位,也可以在停顿任意长时间之后,才是下一个字节的起始位。2RS-232标准2.1RS-232标准信号大部分串行口的结构都是在发送和接收双方都装有一个25针插座,都不很严格地遵循RS-232标准。制造厂家最经常提供的RS-232信号是:针号为3的TXD(发送数据);针号为2的RXD(接收数据);针号为5的GRD(地)。这些信号中许多是为支持Modem而定义,在计算机和Modem之间建立硬件规约,以便在Modem可以接收数据之前计算机不会向它发送数据,在Modern准备好数据之前计算机不会从它
6、那儿接收数据。如果控制通信双方串行口的内部时钟彼此不一样,则可能引起所谓的"帧错^(framingerror)o容易想到,接收方的串行口一旦检测一个起始位,它就会周期性地去对传输线进行取样,得到每一位的信号。这个周期的长短是由波特率计算出来的。然而,每次取样的实际时刻却是由系统内部的主时钟决定的,在传输线上并没有这样一个取样时钟信号。因此,如果双方的波特率不一致,或者系统内部的主时钟发生了偏差,都可能造成发送和接收双方不协调一致,从而发生“帧错”。2.2硬件握手通过串行口发送数据的正确做法是不断地监视接收口上的CTS信号。只有当CTS信号表明可以安全发送数据时才去发送数据。因此,当使用了
7、硬件握手信号时,伪C码描述的发送程序如下所示:do{while(notCTS)wait;send(byte);}while(bytestosend);如果通信双方都支持RS-232标准,并且彼此之间的电缆连接也是正确的,那么显然应该使用握手信号。但是,实际情况两者大都不能同时满足。3通信问题如果通信是在计算机之间进行,则也可以只使用GNDJXD和RXD三个信号线就能解决问题。如果两台同样类型的计算机彼此进行通信,当一台准备好发送数据
此文档下载收益归作者所有