发明名称 异步串行数据线信息收发方法及异步串行收发器
摘要 本发明涉及数据通信领域,特别涉及异步串行数据收发技术。本发明要解决的技术问题是:提供一种不依赖外部定时器,能定量收发非字符信息的方法及实现该方法的异步串行收发器。本发明所采用的技术方案是:一种异步串行数据线信息收发方法,异步串行收发器通过异步串行数据线收发字符数据信息,其特征在于,还包括收发非字符信息的步骤。本发明还提供了一种实现上述方法的异步串行收发器,包括字符收发器、中断控制器,中断控制器与字符收发器相连,还包括非字符信息识别器、定量接收单元。本发明的有益效果是,异步串行收发器能直接地收发非字符信息序列,其实现方法相比现有方法相比有效减小系统开销,降低软件的复杂度。
申请公布号 CN101383819B 申请公布日期 2012.02.01
申请号 CN200710201585.3 申请日期 2007.09.05
申请人 迈普通信技术股份有限公司 发明人 冯克平
分类号 H04L29/06(2006.01)I;H04L7/00(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 成都虹桥专利事务所 51124 代理人 李顺德
主权项 异步串行数据线信息收发方法,异步串行收发器通过异步串行数据线收发字符数据信息,其特征在于,还包括收发非字符信息的步骤:a、异步串行收发器从异步串行数据线接收非字符信息时,识别非字符信息的序列类型并统计非字符信息的序列长度,定量接收非字符信息,并向系统报告收到非字符信息事件;b、异步串行收发器向异步串行数据线发送非字符信息时,根据从系统收到的发送非字符信息事件,定量发送非字符信息;所述非字符信息为Idle序列、Break序列;当步骤a定量接收接收Idle序列时,具体为:预先设定Idle序列最小值、Idle序列分段报告长度、Idle序列最大值;所述Idle序列最大值>Idle序列分段报告长度>Idle序列最小值;分类处理过程如下:(1)当待接收的Idle序列长度≤Idle序列最小值,异步串行收发器统计完该Idle序列长度后,异步串行收发器忽略该Idle序列,不向系统报告收到Idle序列事件;(2)当Idle序列最小值<待接收的Idle序列长度≤Idle序列分段报告长度,异步串行收发器定量接收的Idle序列长度等于统计的Idle序列长度,并向系统报告收到Idle序列事件;(3)当Idle序列分段报告长度<待接收的Idle序列长度<Idle序列最大值,每当统计的Idle序列长度等于Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle序列事件并清零重新分段统计Idle序列长度,直至到本Idle序列的终点,最后一次向系统报告收到Idle序列事件;除最后一次报告收到Idle序列事件外,异步串行收发器定量接收的Idle序列长度等于Idle序列分段报告长度;最后一次报告收到Idle序列事件中,异步串行收发器定量接收的Idle序列长度等于最后一次分段统计的Idle序列长度;(4)当Idle序列最大值≤待接收的Idle序列长度时,每当统计的Idle序列长度等于Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle序列事件并清零重新分段统计Idle序列长度,直至累计的Idle序列长度等于Idle序列最大值时,异步串行收发器停止统计并最后一次向系统报告收到Idle序列事件;除最后一次报告收到Idle序列事件外,异步串行收发器定量接收的Idle序列长度等于Idle序列分段报告长度;最后一次报告收到Idle序列事件中,异步串行收发器定量接收的Idle序列长度等于累计到Idle序列最大值时,最后一次分段统计的Idle序列长度;所述待接收的Idle序列是指异步串行数据线上连续的一段Idle序列;当步骤b定量发送Idle序列时,具体为:根据发送长度寄存器中系统已预先设定待发送的Idle序列长度,当异步串行收发器发送完待发送的Idle序列,且根据系统发送事件队列顺序已有其它字符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已有待发送的内容;当异步串行收发器发送完待发送的Idle序列,且异步串行收发器无任何内容需要发送,则继续发送Idle序列直到收到系统发送事件;当步骤a定量接收Break序列时,具体为:预先设定Break序列最大值、Break序列分段报告长度,所述Break序列最大值>Break序列分段报告长度;(1)当待接收的Break序列长度等于一个字符的长度,异步串行数据收发器向系统报告收到Break序列事件,进入步骤(2);(2)当待接收的Break序列长度≤Break序列分段报告长度,异步串行收发器统计完该Break序列长度后,立即向系统报告收到Break序列和Break序列终止事件;异步串行收发器定量接收的Break序列长度等于统计的Break序列长度;(3)当Break序列分段报告长度<待接收的Break序列长度<Break序列最大值,每当统计的Break序列长度等于Break序列分段报告长度时,异步串行收发器就向系统报告一次收到Break序列事件并清零重新分段统计Break序列长度,直至到本Break序列的终点,最后一次向系统报告收到Break序列事件和Break序列终止事件;除最后一次报告收到Break序列事件外,异步串行收发器定量接收的Break序列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中,异步串行收发器定量接收的Break序列长度等于最后一次分段统计的Break序列长度;(4)当待接收的Break序列长度≥Break序列最大值,每当统计的Break序列长度等于Break序列分段报告长度时,异步串行收发器就向系统报告一次收到Break序列事件并清零重新分段统计Break序列长度,直至累计的Break序列长度等于Break序列最大值时,异步串行收发器停止统计并最后一次向系统报告收到Break序列事件,直到该Break序列终点才报告Break序列终止事件;除最后一次报告收到Break序列事件外,异步串行收发器定量接收的Break序列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中异步串行收发器定量接收的Break序列长度等于累计到Break序列最大值时,最后一次分段统计时的Break序列长度;所述待接收的Break序列是指异步串行数据线上连续的一段Break序列;当步骤b定量发送Break序列时,具体为:根据发送长度寄存器中系统已预先设定待发送的Break序列长度,当异步串行收发器发送完待发送的Break序列,且根据系统发送事件队列顺序已有其它字符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已有待发送的内容;当待发送的Break序列长度等于设定的Break序列发送的长度数值,且异步串行收发器无任何内容需要发送,则发送Idle序列直到收到系统发送事件。
地址 610041 四川省成都市高新区九兴大道16号迈普大厦