维普资讯 http://www.cqvip.com 《工业控制计算机}2007年2O卷第2期 27 单向无应答串行通讯模式中收发时序自动匹配性研究 Study on Automatic Scheduling Matching of Unilateral Non——response Serial Communication Mode 孙常荣 (成都卷烟厂,四川成都610000) 黄 劫 (西南交通大学机械学院,四川成都610031) 摘 要 针对无应答串行通讯模式因收发时序匹配困难,易出现接收数据混乱的问题,提出选用适当的前导字,兼作连续数据 流间隔的方法,实现在接收错位的情况下,通过前导字的“缓冲”作用,校正起始位,使收发时序自动匹配,保证数据正确接 收。通过位置反馈模块与控制计算机通讯实例的调试,该方法正确有效。 关键词:串行通讯,无应答模式,时序匹配 Abstract Dead against the problem that dificulty in matching send—scheduIing and reception S of non—response serial comuni・ cation mode and easiness to be disorder of received data,raised a solution that choosing proper leader character.which partly as the interval of continuous data stream.On condition of received data are stagger,the leader character played as a buffer.proofread the start bit and matching scheduling automatically,insure data received accurately.The solution has been applied in the instance of location feedback module and computer communication successfully,and it is testified correct and efficient. Keywords:serial communication,non-response mode.time sequence matching 串行通讯是闭环控制系统实现信号反馈的一种普遍形式, 在这种闭环运动控制系统中,串行通讯协议设置的合理性及通 讯软件时序的正确性直接影响信息传输的可靠性,是关系到整 // 收到==大 、\ — 个系统控制性能的关键因素之一。本文针对位置反馈模块以 \\ 数据!、、/, / RSR232协议向控制计算机传输反馈信息的实例,分析引起单 / 向无应答串行通讯模式传输不稳定的原因,据此提出了发送/接 / 前导{ \, \ 收方软件时序匹配原则,在不修改硬件电路的基础上,实现了稳 定可靠的数据传输。 1 系统通讯原理 1 读角度值存储单元 I — 某闭环运动控制系统由PC机控制步进电机驱动工作台转 ' 动,为了精确控制转动角度,系统中有位置反馈环节。反馈环节 lBcD码转化 l ’ 区 采用轴角编码器及单片机系统为核心的信号处理模块实现,单 发送前导字节“从” t 片机系统接收轴角编码器的脉冲信号,经信号调理和相应处理 I发送BCD码值 l 得到工作台转位角度,再将角度值以BCD码形式从串口按 RS232协议送出,因此,PC机从串口正确读取角度值就成为实 现闭环控制的关键。反馈环节通讯原理如图1所示。 图2串行发送流程 图3串行接收流程 2无应答模式通讯机理分析 图3为接收流程,与发送协议和发送流程均是匹配的,但调 磊叵 试发现,通讯过程不稳定:有时能接收到正确的角度值,有时不 能,且陷入死循环,进一步调试发现,通讯失败不是因为收不到 数据帧,而是不能收到前导字“AAH”。根据串行通讯原理可知, 发送方在发送一个字节时,先发送起始位(低电平,“O”),数据发 图1 串行通讯原理图 送完后,发送一位停止位(高电平,“1”),因此,接收方在侦测到 图2是角度反馈模块中单片机从串行口发送角度值的流程 接收端出现“1”到“O”的跳变时,开始接收数据,在接收完协议规 图,所采用的协议为:9600bps、8位数据位、1位起始位和1位 定的位数后,发出接收完成信号,通知CPU读取串口数据。在有 停止位,单片机的主程序在完成初始化后,就是一个循环发送过 请求/应答信号的串行通讯模式中,发送方在没有请求时不发送 程,且不需要接收方的请求和应答信号。因此,这是一种单向无 数据,信号线一直保持高电平,当收到请求时开始发送起始位及 应答串行通讯模式。由于角度值由3字节BCD码组成,为了区 数据位,由于请求是接收方发出的,因此在请求发出后已作好接 分角度值的数位,发送时以AAH为前导字节,后跟3字节BCD 收准备,因而能准确侦测到链路上“1”到“0”的跳变,保证接收正 角度值。因此,接收方只要能收到前导字节,就可连续接收后续 确;而在本文讨论的模式中,发送方在初始化完成后,就连续地 3字节BCD码,得到实际角度的反馈值。 发送前导字和数据字,而接收方开始接收数据的时间是随机的, 维普资讯 http://www.cqvip.com 单向无应答串行通讯模式中收发时序自动匹配性研究 将把第一次遇到的高低跳变作为一帧数据的开始。由于在前导 字和数据字中都可能有“1,,到“0”的跳变,因此极有可能从一个 字节的内部某一位开始接收,且将后续的8位数据作为一个“字 节”保存,当信号线上再一次出现负跳变时,开始“下一帧”数据 的接收。由此看见,在这种模式中,由于串行通讯方式中接收是 情况(前导字是“FFH”,没有负跳变,不可能开始接收),仍然考 虑最不利情况,那么将连续接收3字节无效数据,且最后一个字 节把前导字的某一位作为“停止位”而一直停止到下一个数据字 开始时,从而开始正常接收。于是前导字起到了缓冲作用,达到 了纠错的目的。在极端情况下,接收方将接收3个无效数据和3 个正常数据,经过不超过传送8个字节的时间而识别出前导字, 从负跳变开始的,如果发送方发送数据没有间歇和停顿且发送 接收时序又不匹配时,则接收方可能将数据中正常的“1,'到“0” 变化误判为起始位,而将停止、起始位当作数据接收,导致接收 数据混乱,随机截取连续数据流中的某一段为一个字节,从而出 现前面提到的不能收到前导字“AAH”的情况。 3收发时序自动匹配 从而接收到正确的角度值。在波特率为9600bps时,纠错时间 不大于9ms,这一延迟对于位置反馈完全可以接受。数据流自动 纠错原理如图4所示。 根据上述分析可知,通讯失败的原因在于:没有请求/应答 信号,发送/接收不同步;发送过程没有停顿,无法区分停止/起 始跳变与数据流中正常的“1''到“0”的交替。为了不修改硬件,解 …、接收字1 \ : 可 一I—i鬲 发送字节l前导字l数据字l数据字l数据字l前导字l数据字l数据字I数据字 图4数据流纠错示意图 决通讯失效的关键变成了正确识别停止/起始跳变。根据通讯字 节含义的约定和试验验证,只要能正确接收到前导字,则数据字 肯定能接收到,于是问题进一步简化为正确识别前导字。 4结束语 串行通讯是测控系统中常用的通讯方法,而无应答模式因 如果发送的数据是断续的,即数据流每隔若干字节有一段 停顿,而且停顿时间在一个字节发送时长以上(停止位的高电平 保持一个字节以上),则即使刚开始接收的数据是从连续数据流 中截取的无效数据,但在接收了停顿前的最后一个数据后,由于 停顿期间停止位的“缓冲”作用,可以识别出下一字节正确的起 始位置,达到校正的目的。 硬件简单,编程方便也多有应用,本文针对无应答模式下收发时 序匹配困难,易出现数据接收混乱的问题,充分利用有效数据为 BCD码,且为了区分BCD码数位需加入前导字的特点,将前导 字定义为“FFH”,使其在区分BCD码数位的同时,兼作数据流 的停顿间隔,在接收错位的情况下,实现起始位校正,用软件方 法实现无应答模式下收发时序的自动匹配,克服了该模式在通 讯机理上的缺陷。 参考文献 [1]黄劫,周肇飞.线阵CCD精密测量系统的运动控制系统设计[J],组 合机床自动化加工技术,20O4,36(8):57—59 根据这一原理,结合有效数据为BCD码的特点,可将前导 字改为“FFH”,相当于在连续的数据流中每隔若干字节插入一 段停顿,这样,即使以前接收的数据错位,那么若干字节后将把 “FFH”中的某一位作为“停止位”,而这个“停止位”后发送方“暂 停”了发送,到下一数据字时,则能检测到正确的起始位,从而开 [2]霍华,张利军,熊永超PC机与单片机电话远程通信控制系统[J].辽 宁工程技术大学学报(自然科学版),2002,21(3):352-353 f收稿日期:2006.7.11] 始正常接收。当接收开始于第一个数据字的某一位时是最不利 (上接第26页) SYM—I NIT() I。_INIT0; AD-.I NIT(): CAN—INIT() SCI—INIT0; enable(); ADSOC0; while(1) { //系统初始化 //I/O初始化子程序 //AD初始化子程序 //CAN初始化程序 //SCI初始化程序 ,,歼怠寺颧 //启动AD转换 //采集数据和处理数据的同步控制 } } 3结束语 本系统经过一段时间的调试,各项技术参数基本达到设计 要求。该系统的主要特点是:具有很好的实时性,控制模块和上 位机的通信性能良好,采集的数据精确性高。 参考文献 [1]吴竟昌.供电系统谐波[M].北京:中国电力出版社,1998 [2]程佩青.数字信号处理教程[M].北京:清华大学出版社,1995 [3]刘春玲,等.电力参数数字化测量的常用算法研究【J].辽宁工学院学 报,2001(6) [4]章云,谢莉萍,熊红艳.DSP控制器及其应用[M].北京:机械工业出 版社。2001 图5主函数流程图 [收稿日期:2006.7.6]