一种收发器io端口的状态切换方法及装置的制造方法

文档序号:8282233阅读:194来源:国知局
一种收发器io端口的状态切换方法及装置的制造方法
【技术领域】
[0001]本发明涉及总线通信技术,尤其涉及一种收发器1端口的状态切换方法及装置。
【背景技术】
[0002]对于总线上的设备,一般都是由设备的应用层(或者说是应用程序)通过控制1(Input/Output,输入输出)端口的状态来控制设备的收发器进行数据接收及发送的。例如在设备需要向外发送数据时,由应用层将1端口设置为发送状态,以便设备的收发器能够向总线发送数据;当数据发送完毕后,再由应用层把1端口设置为接收状态,以便该设备能够通过收发器接收总线上其他设备所发送的数据。
[0003]发明人在实现本发明的过程中发现,应用层通常都存在调度周期(例如Linux操作系统下用于调度的时间片是10ms),所以无法保证对1端口状态切换的实时性,换句话说,对1端口状态的切换可能存在时间上的延时,从而带来不良后果,这一点对于485总线等半双工模式的总线系统尤为明显。所谓半双工是指一个设备在发送数据时,其他设备只能处于接收状态;只有等到发送数据的设备发送完毕,其他设备才能进行发送;如果有两个设备同时进行发送,则会发生冲突,即二者发送的数据在总线上相遇时信号重叠,使信号波形发生变化,导致数据出错。
[0004]在一种典型的场景下,设备的数据已经发送完毕,但由于发生了任务调度或者其他高优先级的事件,应用层只能延迟切换该设备1端口的状态,导致在一段时间内该设备的1端口还是处于发送状态,这就会和总线上的其他设备产生冲突,影响到其他设备的数据发送。

【发明内容】

[0005]为克服相关技术中存在的问题,本发明提供一种收发器1端口的状态切换方法及装置,以解决对1端口状态无法进行及时切换的问题。
[0006]根据本公开实施例的第一方面,提供一种收发器1端口的状态切换方法,用于内核层,所述方法包括:
[0007]在收发器每次将应用层发来的数据向总线发送完毕之后立即触发中断程序,在所述中断程序中判断本次发送是否是最后一次发送,其中所述收发器每次按照指定单位接收应用层发来的数据并发送给总线;
[0008]如果是最后一次发送,则在所述中断程序中将所述收发器的1端口由发送状态切换为接收状态。
[0009]可选的,所述判断本次发送是否是最后一次发送,包括:
[0010]判断指定标志位是否被置位;
[0011]如果所述指定标志位被置位,则确定本次发送是最后一次发送,其中所述指定标志位在内核层收到应用层将要进行最后一次数据发送的通知时被内核层置位。
[0012]可选的,所述方法还包括:
[0013]将所述收发器的1端口由发送状态切换为接收状态之后,对所述指定标志位进行复位。
[0014]可选的,所述方法还包括:
[0015]如果不是最后一次发送,则执行预设常规操作,然后退出所述中断程序。
[0016]根据本公开实施例的第二方面,提供一种收发器1端口的状态切换方法,用于应用层,所述方法包括:
[0017]将待发送数据包中的数据按照指定单位依次发送给收发器,以使所述收发器将每次收到的数据向总线发送;
[0018]在最后一次发送数据给所述收发器之前,通知内核层将要进行所述最后一次发送,以使内核层在所述收发器发送完最后一次数据后通过立即触发中断程序将所述收发器的1端口由发送状态切换为接收状态。
[0019]可选的,所述通知内核层将要进行所述最后一次发送,包括:
[0020]向所述收发器的1端口发送命令,以使所述1端口告知内核层将要进行最后一次发送。
[0021 ] 可选的,所述指定单位为一个字节。
[0022]根据本公开实施例的第三方面,提供一种收发器1端口的状态切换装置,用于内核层,所述装置包括:
[0023]中断触发单元,用于在收发器每次将应用层发来的数据向总线发送完毕之后立即触发中断单元;
[0024]中断单元,用于判断本次发送是否是最后一次发送,如果是最后一次发送,则将所述收发器的1端口由发送状态切换为接收状态。
[0025]可选的,所述中断单元用于判断本次发送是否是最后一次发送时,用于:
[0026]判断指定标志位是否被置位;
[0027]如果所述指定标志位被置位,则确定本次发送是最后一次发送,其中所述指定标志位在内核层收到应用层将要进行最后一次数据发送的通知时被内核层置位。
[0028]根据本公开实施例的第四方面,提供一种收发器1端口的状态切换装置,用于应用层,所述装置包括:
[0029]数据发送单元,用于将待发送数据包中的数据按照指定单位依次发送给收发器,以使所述收发器将每次收到的数据向总线发送;
[0030]切换通知单元,用于在最后一次发送数据给所述收发器之前,通知内核层将要进行所述最后一次发送,以使内核层在所述收发器发送完最后一次数据后立即通过触发中断程序将所述收发器的1端口由发送状态切换为接收状态。
[0031]本发明的实施例提供的技术方案可以包括以下有益效果:
[0032]在发明本实施例中,应用层通过将待发送数据包分次传递给1端口进行发送(例如每次只发送I个字节)的方式实现了对发送过程的监控,这样应用层便可以确定出哪一次是最后一次发送,然后在最后一次发送之前,应用层通知内核层将要发送最后一次数据;内核层在每次发完数据所触发的中断程序中,便可根据该通知确定本次发送是否是最后一次发送,如果是最后一次发送则在该中断程序中使1端口由发送状态切换为接收状态。这样判断最后一次发送完毕与1端口状态切换在同一个中断中完成,几乎无时间延时,1端口不再需要等待应用层的切换指令即可完成切换,避免了发送完数据后但依然保持发送状态的情况的出现,进而避免了对总线上其他设备的影响。
[0033]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
【附图说明】
[0034]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0035]图1是根据一示例性实施例示出的一种收发器1端口的状态切换方法的流程图;
[0036]图2是根据一示例性实施例示出的一种收发器1端口的状态切换方法的流程图;
[0037]图3是根据一示例性实施例示出的一种收发器1端口的状态切换方法的流程图;
[0038]图4是根据一示例性实施例示出的一种收发器1端口的状态切换方法的流程图;
[0039]图5是根据一示例性实施例示出的一种收发器1端口的状态切换装置的框图;
[0040]图6是根据一示例性实施例示出的一种收发器1端口的状态切换装置的框图;
[0041]图7是根据一示例性实施例示出的一种收发器1端口的状态切换装置的框图。
【具体实施方式】
[0042]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0043]图1是根据一示例性实施例示出的一种收发器1端口的状态切换方法的流程图。该方法可以用于内核层。参见图1所示,该方法可以包括:
[0044]S101,在收发器每次将应用层发来的数据向总线发送完毕之后立即触发中断程序,在所述中断程序中判断本次发送是否是最后一次发送,其中所述收发器每次按照指定单位接收应用层发来的数据并发送给总线。
[0045]S102,如果是最后一次发送,则在所述中断程序中将所述收发器的1端口由发送状态切换为接收状态。
[0046]以Li
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1