[发明专利]一种收发器IO端口的状态切换方法及装置有效
申请号: | 201410443473.9 | 申请日: | 2014-09-02 |
公开(公告)号: | CN104598411B | 公开(公告)日: | 2018-01-23 |
发明(设计)人: | 邵起明;郑明吉;刘永;王建刚 | 申请(专利权)人: | 奇点新源国际技术开发(北京)有限公司 |
主分类号: | G06F13/20 | 分类号: | G06F13/20;G06F13/38 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙)11363 | 代理人: | 逯长明,许伟群 |
地址: | 100081 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 收发 io 端口 状态 切换 方法 装置 | ||
技术领域
本发明涉及总线通信技术,尤其涉及一种收发器IO端口的状态切换方法及装置。
背景技术
对于总线上的设备,一般都是由设备的应用层(或者说是应用程序)通过控制IO(Input/Output,输入输出)端口的状态来控制设备的收发器进行数据接收及发送的。例如在设备需要向外发送数据时,由应用层将IO端口设置为发送状态,以便设备的收发器能够向总线发送数据;当数据发送完毕后,再由应用层把IO端口设置为接收状态,以便该设备能够通过收发器接收总线上其他设备所发送的数据。
发明人在实现本发明的过程中发现,应用层通常都存在调度周期(例如Linux操作系统下用于调度的时间片是10ms),所以无法保证对IO端口状态切换的实时性,换句话说,对IO端口状态的切换可能存在时间上的延时,从而带来不良后果,这一点对于485总线等半双工模式的总线系统尤为明显。所谓半双工是指一个设备在发送数据时,其他设备只能处于接收状态;只有等到发送数据的设备发送完毕,其他设备才能进行发送;如果有两个设备同时进行发送,则会发生冲突,即二者发送的数据在总线上相遇时信号重叠,使信号波形发生变化,导致数据出错。
在一种典型的场景下,设备的数据已经发送完毕,但由于发生了任务调度或者其他高优先级的事件,应用层只能延迟切换该设备IO端口的状态,导致在一段时间内该设备的IO端口还是处于发送状态,这就会和总线上的其他设备产生冲突,影响到其他设备的数据发送。
发明内容
为克服相关技术中存在的问题,本发明提供一种收发器IO端口的状态切换方法及装置,以解决对IO端口状态无法进行及时切换的问题。
根据本公开实施例的第一方面,提供一种收发器IO端口的状态切换方法,用于内核层,所述方法包括:
在收发器每次将应用层发来的数据向总线发送完毕之后立即触发中断程序,在所述中断程序中判断本次发送是否是最后一次发送,其中所述收发器每次按照指定单位接收应用层发来的数据并发送给总线;
如果是最后一次发送,则在所述中断程序中将所述收发器的IO端口由发送状态切换为接收状态。
可选的,所述判断本次发送是否是最后一次发送,包括:
判断指定标志位是否被置位;
如果所述指定标志位被置位,则确定本次发送是最后一次发送,其中所述指定标志位在内核层收到应用层将要进行最后一次数据发送的通知时被内核层置位。
可选的,所述方法还包括:
将所述收发器的IO端口由发送状态切换为接收状态之后,对所述指定标志位进行复位。
可选的,所述方法还包括:
如果不是最后一次发送,则执行预设常规操作,然后退出所述中断程序。
根据本公开实施例的第二方面,提供一种收发器IO端口的状态切换方法,用于应用层,所述方法包括:
将待发送数据包中的数据按照指定单位依次发送给收发器,以使所述收发器将每次收到的数据向总线发送;
在最后一次发送数据给所述收发器之前,通知内核层将要进行所述最后一次发送,以使内核层在所述收发器发送完最后一次数据后通过立即触发中断程序将所述收发器的IO端口由发送状态切换为接收状态。
可选的,所述通知内核层将要进行所述最后一次发送,包括:
向所述收发器的IO端口发送命令,以使所述IO端口告知内核层将要进行最后一次发送。
可选的,所述指定单位为一个字节。
根据本公开实施例的第三方面,提供一种收发器IO端口的状态切换装置,用于内核层,所述装置包括:
中断触发单元,用于在收发器每次将应用层发来的数据向总线发送完毕之后立即触发中断单元;
中断单元,用于判断本次发送是否是最后一次发送,如果是最后一次发送,则将所述收发器的IO端口由发送状态切换为接收状态。
可选的,所述中断单元用于判断本次发送是否是最后一次发送时,用于:
判断指定标志位是否被置位;
如果所述指定标志位被置位,则确定本次发送是最后一次发送,其中所述指定标志位在内核层收到应用层将要进行最后一次数据发送的通知时被内核层置位。
根据本公开实施例的第四方面,提供一种收发器IO端口的状态切换装置,用于应用层,所述装置包括:
数据发送单元,用于将待发送数据包中的数据按照指定单位依次发送给收发器,以使所述收发器将每次收到的数据向总线发送;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇点新源国际技术开发(北京)有限公司,未经奇点新源国际技术开发(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410443473.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多芯片间通信系统
- 下一篇:计算设备扩展方法和装置、以及可扩展的计算系统