资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
从本学科出发,应着重选对国民经济具有一定实用价值和理论意义的课题。课题具有先进性,便于研究生提出新见解,特别是博士生必须有创新性的成果大型电子投票表决系统通信协议的设计与实现1引言大型电子投票表决系统支持大型会议的电子表决功能,采集和统计大量重要的短时表决数据必须准确稳定,实时性好,能够实现大规模、中距离、高速率、低成本的多机通信。目前,对大型电子投票表决系统的研究和应用成为智能会议系统的重点和难点,而系统通信的可靠性在很大程度上依赖于是否有一个好的通信协议。本文重点研究大型电子投票表决系统的通信协议。2通信协议设计在集散控制系统中,上位机与下位机之间如何联盟进行数据传输,怎么提高通信的效率和可靠性,以及对通信过程中的故障处理,帧格式的约定,都需要一套详尽的通信协议。通常,一个集散控制系统由一个主控计算机和一系列单片机构成,它们之间再通过一定的物理媒介连接在一起,以完成必要的通信功能。对于一个特定的测控系统而言,所要测控的对象和所采取的测控算法是个有个性的东西;而上位机和下位机之间的通信可以看作是一系列命令流和数据流的流动,所采用的通信协议是用来保证传输过程的可靠和高效,是具有共性的,能够也应该有一个统一的设计标准1。通信协议的分层结构通信协议的设计通常采用分层的机构,如ISO的OSI参考模型2。基于RS485串行接口的电气标准属于七层OSI模型物理层的协议标准,如图1所示。物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程,提供用于建立、保持和断开物理连接的机械的、电气的、功能的和过程的条件;数据链路层用于建立、维持和拆除链路连接,实现无差错传输的功能;应用层针对不同的应用,利用链路层提供的服务,完成不同通信节点之间的通信。通信协议的分层设计1)物理层协议设计上位机和下位机都挂在通信总线上,物理层的通信协议由RS485标准和多单片机通信方式共同实现。物理层要完成发送及接收字节流的任务,但对传输过程的可靠性不做出保证,而由高层协议来保证。物理层为链路层提供接口,包括Send子程序及RecEive子程序。2)数据链路层协议设计链路层可以引入帧长度域、冗余字节和CRC校验等方法进行差错处理3。链路层向上层提供的接口为SendFrame和ReceiveFrame,其中利用了下层提供的接口。3)应用层协议设计应用层是协议的最高层,它的设计对于不同的应用可以有所不同,但是也存在很多通用性的原则。应用层也个有一定的差错检查能力:首先,它引入了冗余类型字节;其次,数据域字节也可以采用CRC校验等方法进行校验3。通信协议的机制规范基于本协议的通信可以有两种机制。一种是面向握手的,即每发出一帧,总是要等待确认帧,否则将认为是通信出错。这是一种可靠的通信方式,适合传输系统命令和一些非常重要的系统参数。另一种是无握手的,即发送方假设接收方总是接收正确,从而无须等待确认帧就不停地发送,适合大量前端采集数据的发送。在计算机与单片机实现编程通信之前,两者之间需要规定握手协议,以保证数据收发的正确性4。在本系统中,单片机与单片机之间采用同样格式的通信协议。在上位机呼叫下位机地址之后,就可利用本协议的规范来设计具体的通信流程。另外,设计一套完整的通信协议还要求结构简单、功能完备、高效可靠,同时要求具有通用性、兼容性与可扩充性,并且尽量标准化。3通信协议实现电子投票表决系统从本质上来讲,可认为是一个分布式的数据采集与集散控制系统。在集散控制系统中,普遍采用RS-485总线作为底层通信接口5。大型电子投票表决系统以RS485半双工通信协议为基础,由计算机、主控制器、分支控制器和表决器构成一个多级分层的总线型网络结构。下位机采用AT89CXX系列单片机实现,构成了一个符合RS-485通信规范的主从分布、三级驱动、串行连接的多机网络6。软件系统设计主要包括基于Windows操作系统的计算机统计管理软件设计和采用单片机技术的主控制器、分支控制器和表决器的通信程序编写。系统采用异步串行通信、主从呼叫响应的通信方式,完成下位机通信、上位机通信和上下位机间的通信等功能。主控制器、分支控制器和表决器基于RS-485通信协议,采用查询和地址数据回送的方式实现相互通信和统计功能。最后由主控制器对数据进行收集、统计和处理,并回送计算机。通信协议的实现主要包括下位机通信协议、上位机通信协议、上下位机间的通信过程等几个部分。下位机通信协议主控制器通信协议主控制器核心芯片89C52对应的主控制器的通信协议。主控制器至PC机通信协议:1) 一般约定:采用RS-485标准串行接口,完成主控制器至PC机通信。波特率为:9600 bit/s。1位起始位,8位数据,1位停止位,无校验。2) 帧数据结构:起始码命令码数据校验码3) 命令码定义:表1命令码定义表命令名称命令码1.表决器测试开始“C”2.表决器测试结束“E”3.表决开始“B”4.计票数据“P”5.表决结束“X”分支控制器通信协议电子投票表决系统的分支控制器核心芯片89C51对应的分支控制器的通信协议。通信协议约定:对于晶振,波特率设定为 14400,倍速为28800,单字节传输时间为47us,延时为1ms。表决器通信协议电子投票表决系统的表决器核心芯片89C2051对应的表决器的通信协议。通信协议约定:对于晶振,波特率设定为600,延时为10ms。接受和发送数据为定长8字节。表决时改为按键短时保持。上位机通信协议Visual Basic提供三种通信编程方式。一是使用MSComm控件;二是使用Windows API;另外一个就是使用Inp和Out直接对端口读写方式7。本论文利用MSComm控件实现计算机与主控制器的通信。在上位机开始表决子程序的通信协议中,包含以下过程:1)设置打开通信端口1,并设置通信参数为19200波特,不校验,8个数据位,一个停止位。2)发送单片机命令:为了使主机能够对整个检测过程进行实时控制,须要在发送命令以后设定等待的时间,也可以通过条件判断下一步是发达还是接收命令。对发送的命令,可能是文本方式或二进制代码。发送命令过程是一个带参过程,这样可使发送命令简便易行。3)接收数据:接收数据是一个被动的过程,可以通过函数来实现,由定时器开启。在接收过程中,多数用特征字符,如“OK”、“#”等。这些需要在通信协议中约定。4)Timer控件控制:通过Timer控件来控制通信中的发送命令和接收数据过程,在通信程序中设置两个Timer控件分别控制发送单片机命令和接收单片机数据。5)自动接收、监视总线状态和通信错误的处理:自动接收、监视总线状态和通信错误的处理可以通过OnComm事件实现。通过控件中的OnComm事件可以捕捉和处理错误。当CommEvent属性值发生改变时,表明有通信错误,就会产生OnComm事件。这样可以监视通信线路状态,得到单片机和主机及单片机和单片机之间的通信进程。综合以上分析,我们可知:利用Visual Basic的串行通信控件实现了计算机与多单片机之间的通信。同时,采用定时器控件控制收发过程,在必要的地方自动接收,使定时控制和通信过程完美地结合起来,大大加快了进程,克服了往多“握手”协议造成的通信速度缓慢的缺点。上下位机间的通信过程计算机与多单片机之间的串行通信采用RS-485总线标准,半双工传输方式。1) 通信均有上位机发起,下位机不主动申请通信。2) 当处于轮询状态时,上位机依据下位机地址,定时向下位机发送呼叫指令。此时,每台下位机都中断接受并判断,地址不相符的下位机中断返回,执行其他下位机任务;反之则把本机地址及其状态作为应答信号发送给上位机。上位机接收到应答信号后,可以作进一步的处理。4结论大型电子投票表决系统的软件设计主要集中在通信协议的设计。通信协议是保证通信畅通的关键,在一定程度上也影响着网络通信的可靠性。本论文设计了一种以单片机为主控机的基于帧的通信协议,本通信协议适用于计算机和单片机点对点通信的情况。需要注意的是,数据通信只是整个系统的一部分内容,要占用尽量少的时间,以求达到整个系统的高效率。在通信数据量一定的情况下,采用较高的波特率虽然比较好,但高的波特率必定要降低传输距离,在实际应用中必须仔细衡量。为了能使具体的命令、数据在网络上正确地传输,在数据链路层必须提供一定的网络协议,保证在物理层的比特流出现错误时能够进行检测和校正。为保证数据传输质量,对每个字节进行校验的同时,应尽量减少特征字和校验字。本文所提出的通信协议的设计思想和思路方法对于相关设计和应用具有一定的参考意义和借鉴价值。课题份量和难易程度要恰当,博士生能在二年内作出结果,硕士生能在一年内作出结果,特别是对实验条件等要有恰当的估计。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号