信息串行通讯的方法 本发明关于一种信息串行通讯的方法,特别是一种不受硬件限制,能于任何硬件协议的通讯环境中,自动决定任两条信号线,即可进行信息传输的串行通讯方法。
目前串行通讯大多采用RS-232/422等标准,使用时必须通过符合协议标准的硬件,才能进行信息的发送与接收,而且在现行的硬件结构与相应的软件协议下,无论是串行或是并行的通讯端口,其内的每条信号线均只具有固定的传输功能,例如:串行端口(COM)地第二条信号线只用于数据的接收,第三条信号线只用于数据的发送。所以一旦通讯端口中的任何一条信号线发生故障时,不单是所发送(接收)的信息不正确,甚至整个信息的通讯也随之中断,而且无法用别的信号线来替代原信号线所负责的功能。此外,在进行并行端口的功能测试时,因并行端口上很多信号线只能作单向的传输,所以若依现行并行端口的通讯协议的标准,在产品的测试中并无法得知哪些信号线是正常的,很容易因测试程序的遗漏,或是测试信息设计的不当,无法找出异常的信号线,而造成使用者的不便。
因此,就目前的串行信息传输协议的标准而言,只能适用于既定的通讯模式,以固定的硬件连结关系进行信息的传递,缺乏通用性和灵活性,在信号线损坏的情况下,便不能正常地传输信息,更不可能在多根可使用信号线之间自动筛选出未有损坏的信号线,进行信号的发送与接收。
本发明的主要目的在于提供一种信息通讯方法,它不需采用专用的硬件,可于现有的通讯硬件结构中,自动跳过短路、断路的信号线不用,仅用两条单向的信号线,仍然进行信息的传输,不受现有通讯硬件结构的连结关系制约。
根据本发明所揭示的技术,通过由分次读取在所有的输出信号线置于高电位和低电位时,输入信号线的两次电位状态,并配合逻辑或(OR)运算,筛选出可用的成对信号线,舍去输出信号线与输入信号线短路的信号线对,以保证信息的输入不受信息的输出干扰。在进行信息的串行发送/接收时,将欲传递的信息位组,包装成一信息包,自发送端经输出信号线将信息包送出,同时在接收端产生同步脉冲,以检测传输过程中信息包是否正确,并且用信息包中的校验位来检查所接收到的信息包的内容是否与发送端所送出的信息相符;所以,即使是传统的通讯硬件结构(如:串行端口、并行端口)中的信号线损坏到只有两条正常,通过上述方法也可将信息自发送端完整地送至接收端。
有关本发明的详细内容及技术特征,配合附图说明如下:
图一是本发明的通讯硬件结构示意图。
图二是本发明的测试流程图。
图三是本发明中信息包的结构示意图。
图四是本发明发送信息包的流程图。
图五是本发明接收信息包的流程图。
图六是本发明判断信息正确与否的实施例图。
图七是本发明发送信息为正常的实施例图。
图八是本发明发送信息有错误时的实施例图。
如图一所示,根据本发明所揭示的通讯硬件结构,包括有:具有一第一通讯端口101的发送端10;及具有第二通讯端口111的接收端11;并以一具有九条信号线的通讯电缆12,作为发送端10与接收端11的通讯路径;其中通讯电缆12的一端与第一通讯端口101连接,另一端则是连接于第二通讯端口111;而在通讯电缆12中第一、第三、第四及第七信号线(121、123、124、127)为自发送端10传送信息至接收端11的输出信号线;第二、第六、第八及第九信号线(122、126、128、129)为发送端10接收来自接收端11所送来的信息的输入信号线;第五信号线125则为前述各信号线的共同接地线(即电位参考线)。
【实施例一】信号线功能的测试步骤
为了使接收端11能完整接收到自发送端所传来的信息,在尚未开始传输信息前,本发明须先对通讯电缆12中的各信号线进行性能的测试,以在通讯电缆12中找出可使用的工作性能正常的单向信号线,请参阅图二,图二为本发明的信号线测试流程图,其测试步骤依次为:
步骤1A:进入信号线测试模式;
步骤1B:先将使用的通讯端口中的所有输出信号线(121、123、124、127)置于高电位;
步骤1C:读取目前输入信号线(122、126、128、129)的状态,并将之记录于暂存器A(图中未示出)中;
步骤1D:重新将输出信号线(121、123、124、127)置于低电位;
步骤1E:读取目前输入信号线(122、126、128、129)的状态,并将之记录于暂存器B(图中未示出)中;
步骤1F:比较在暂存器A与暂存器B中的前后两次读取输入信号线(122、126、128、129)的结果,并逐一把自同一条输入信号线读取的状态结果进行逻辑或(OR)运算,倘若经运算所得结果为高电位(High),则表示此一输入信号线与输出信号线短路,然后,将发生短路的输入信号线与输出信号线去掉不用;
步骤1G:结束信号线测试。
为了便于下文的说明,假设经由上述的测试后,第一信号线121与第二信号线122为正常的信号线,并在以后的说明中将第一信号线121称为输出信号线,第二信号线122称为输入信号线。同时请参阅图三,其为本发明中用以进行串行传输的信息包的结构示意图,系由一起始位131、一信息位组132、以及一校验位133组成一信息包13,其中起始位131为一低电位,信息位组包含有D0~D7八个信息位,校验位133则可采用奇校验或偶校验,在传输时从起始位131开始传送,再传信息位的最低有效位(LSB),逐一将信息包13的每一位自发送端传送至接收端。
【实施例二】发送信息包的步骤
图四为本发明的发送信息包13的流程图,有关信息包13自发送端10发送的步骤依次为:
步骤2A:准备发送信息包13;
步骤2B:检查所有的信号线,其方法如“图二”所示,并找出可用的输入信号线及输出信号线;
步骤2C:发送端10等待输入信号线持续两个时间周期的低电位,以使发送端10知道接收端11已准备就绪,可以开始传送信息包13;
步骤2D:发送欲传送的信息包13的起始位131;
步骤2E:检查起始位131的发送是否成功(注一),若为是则执行2F,若为否则返回至步骤2C;
步骤2F:准备自信息位D0开始发送信息位组132;
步骤2G:发送当前的信息位;
步骤2H:检查当前发送的信息位是否发送成功(注一),若为是则执行2I,若为否则返回至步骤2C;
步骤2I:判断是否已发送完所有的信息位,若为是则执行2J,若为否则返回至步骤2G;
步骤2J:发送校验位133;
步骤2K:检查校验位133的发送是否成功(注一),若为是则执行2L,若为否则返回至步骤2C;
步骤2L:结束信息包的发送。
注一:检查发送(或接收)是否成功的方式是根据图六所示的方式进行,如图六所示,无论是在输出信号线121(用以传送发送端10的信息包),或是输入信号线122(用以传送接收端11发送的同步脉冲14)上传输的信息,其在每一个时间周期内正常的信息信号均会有两个电位状态,一为高电位,另一为低电位,例如:在时间周期t0时,在输出信号线121上的信息信号为高电位→低电位,在输入信号线122上的信息信号为高电位→低电位,这表示所传的信息信号为十六进制的“1”;又,当输出信号线121上的信息信号变化为低电位→高电位,在输入信号线122上的同步脉冲14变化为高电位→低电位,则表示所传的信息信号为十六进制的“0” (如图六中的时间周期t1),但是若在时间周期内输出信号线121上的信号均为低电位或是高电位的话,就表示发送(或接收)的信息是错误的(如图六中的时间周期t2和时间周期t3)。
【实施例三】接收信息包的步骤
图五为本发明的接收信息包13的流程图,有关接收端11接收信息包13的步骤依次为:
步骤3A:准备接收信息包13;
步骤3B:检查所有的信号线,其方法如“图二”所示,并找出可用的输入信号线及输出信号线;
步骤3C:发送端10等待输出信号线持续两个时间周期的低电位,以使接收端11知道发送端10已准备就绪,可以接收信息包13;
步骤3D:接收传来的信息包13的起始位131;
步骤3E:检查起始位131的接收是否成功(注一),若为是则执行3F,若为否则返回至步骤3C;
步骤3F:准备自信息位D0开始接收信息位组132;
步骤3G:接收当前传来的信息位;
步骤3H:检查当前接收的信息位是否接收成功(注一),若为是则执行3I,若为否则返回至步骤3C;
步骤3I:判断是否已接收完所有的信息位,若为是则执行3J,若为否则返回至步骤3G;
步骤3J:接收校验位133;
步骤3K:检查校验位133的接收是否成功(注一),若为是则执行3L,若为否则返回至步骤3C;
步骤3L:检查校验位133是否正确,若为是则执行3M,若为否则返回至步骤3C;
步骤3M:结束信息包的接收。
请参阅图七,其为本发明发送信息为正常的实施例图,信息包13中包括十六进制的“87”的信息位组,首先使输出信号线121与输入信号线122在时间周期t0、t1同时持续两个时间周期的低电位,然后由发送端10和接收端11同时送出信息包13及同步脉冲,当接收端在收到发送端传来的校验位133,并确认所收的信息包与信息位组无误(有关检查校验位是否正确的方法,在本领域中是公知的)后,便结束此次的信息传送;请参阅图八,其为本发明发送信息有错误时的实施例的示意图,其在时间周期t5时发生信息传输的错误,所以在时间周期t6、t7时,立即使输出信号线121与输入信号线122产生持续两个时间周期的低电位,以重新发送信息包13。
虽然本发明以实施例方式进行了描述,然其并非用以限定本发明,本领域的任何普通技术人员在不脱离本发明的精神和范围内,可进行各种修改或改变,因此本发明的保护范围由所附的权利要求书限定。