异步串行数据线信息收发方法及异步串行收发器的制作方法

文档序号:7668344阅读:253来源:国知局
专利名称:异步串行数据线信息收发方法及异步串行收发器的制作方法
技术领域
本发明涉及数据通信领域,特别涉及异步串行数据收发技术。
背景技术
异步串行数据信号线上的信息包括字符数据信息与非字符信息,非字符信息包括Idle序 列、Break序列。Idle序列是连续的逻辑l,表示接口数据信号线空闲。Break序列是大于等 于一个字符长度(含起始、停止位)的连续的逻辑0,作为带内控制信号。
已有的通用异步收发器不能独立地定量接收和发送非字符信息序列。如图1所示,通用 异步收发器(UART)包括字符收发器、中断控制器,接收数据信号线(RXD)与字符收发器的 输入端相连,字符收发器的输出端与发送数据信号线(TXD)相连,字符收发器的控制端与中 断控制器相连,字符收发器与中断控制器分别通过局部总线(Local—bus)与系统通信。
具体地说,通用异步收发器接收Idle序列不直接产生任何接收动作,应用系统只能将无 接收信息间接判断为收到Idle序列;通过停止发送的方法来间接发送Idle序列。通用异步收 发器只能在接收Break序列的起点和终点产生报告信息;控制发送Break序列的起点和终点。
而一些通信协议需要直接地定量接收和发送Idle及Break序列,采用通用异步收发器实 现这类通信协议需要配置外部定时器,在控制软件的配合下,间接地接收和发送Idle及 Break序歹[J。
目前使用外部定时器解决异步串行数据通信中接收和发送Idle序列及Break序列需要较 大的系统开销,大幅度增加软件的复杂度,在控制多个异步串口时会严重降低系统的性能。

发明内容
本发明要解决的技术问题是:提供一种不依赖外部定时器,能定量收发非字符信息的方 法及实现该方法的异步串行收发器。
本发明为解决上述技术问题所采用的技术方案是提供一种异步串行数据线信息收发方 法,异步串行收发器通过异步串行数据线收发字符数据信息,其特征在于,还包括收发非字 符信息的步骤
a、 异步串行收发器从异步串行数据线接收非字符信息时,识别非字符信息的序列类型 并统计非字符信息的序列长度,定量接收非字符信息,并向系统报告收到非字符信息事件;
b、 异步串行收发器向异步串行数据线发送非字符信息时,根据从系统收到的发送非字
符信息事件,定量发送非字符信息。
非字符信息为Idle序列或Break序列。
具体的,步骤a所述定量接收非字符信息,对于接收Idle序列时具体为预先设定Idle 序列最小值、Idle序列分段报告长度、Idle序列最大值;所述Idle序列最大值〉Idle序列分 段报告长度〉Idle序列最小值;分类处理过程如下
(1) 如待接收的Idle序列长度《Idle序列最小值,异步串行收发器统计完该Idle序列 长度后,异步串行收发器忽略该Idle序列,不向系统报告收到Idle序列事件;
(2) 如ldle序列最小值〈待接收的Idle序列长度《Idle序列分段报告长度,异步串行 收发器定量接收的Idle序列长度等于统计的Idle序列长度,并向系统报告收到Idle序列事件
(3) 如ldle序列分段报告长度〈待接收的Idle序列长度〈Idle序列最大值,每当统计 的Idle序列长度等于Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle 序列事件并清零重新分段统计Idle序列长度,直至到本Idle序列的终点,最后一次向系统报 告收到Idle序列事件;除最后一次报告收到Idle序列事件外,异步串行收发器定量接收的 Idle序列长度等于Idle序列分段报告长度;最后一次报告收到Idle序列事件中,异步串行收 发器定量接收的Idle序列长度等于最后一次分段统计的Idle序列长度;
(4) 如ldle序列最大值《待接收的Idle序列长度时,每当统计的Idle序列长度等于 Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle序列事件并清零重新 分段统计Idle序列长度,直至累计的Idle序列长度等于Idle序列最大值时,异步串行收发器 停止统计并最后一次向系统报告收到Idle序列事件;除最后一次报告收到Idle序列事件外, 异步串行收发器定量接收的Idle序列长度等于Idle序列分段报告长度;最后一次报告收到 Idle序列事件中,异步串行收发器定量接收的Idle序列长度等于累计到Idle序列最大值时, 最后一次分段统计的Idle序列长度;
所述待接收的I dl e序列是指异步串行数据线上连续的 一段I dl e序列。 具体的,步骤b所述定量发送非字符信息,对于发送Idle序列时具体为预先设定待发 送的Idle序列长度;
当异步串行收发器发送完待发送的Idle序列,且根据系统发送事件队列顺序已有其它字 符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已有 待发送的内容;
当异步串行收发器发送完待发送的Idle序列,且异步串行收发器无任何内容需要发送,
则继续发送Idle序列直到收到系统发送事件。
具体的,步骤a所述定量接收非字符信息,对于接收Break序列时具体为预先设定 Break序列最大值、Break序列分段报告长度,所述Break序列最大值〉Break序列分段报告长 度;
(1) 当待接收的Break序列长度等于一个字符的长度,异步串行数据收发器向系统报告 收到Break序列事件,进入步骤(2);
(2) 如待接收的Break序列长度《Break序列分段报告长度,异步串行收发器统计完该 Idle序列长度后,立即向系统报告收到Break序列和Break序列终止事件;异步串行收发器定 量接收的Break序列长度等于统计的Break序列长度;
(3) 如Break序列分段报告长度〈待接收的Break序列长度〈Break序列最大值,每当统 计的Break序列长度等于Break序列分段报告长度时,异步串行收发器就向系统报告一次收到 Break序列事件并清零重新分段统计Break序列长度,直至到本Break序列的终点,最后一次 向系统报告收到Break序列事件和Break序列终止事件;除最后一次报告收到Break序列事件 外,异步串行收发器定量接收的Break序列长度等于Break序列分段报告长度;最后一次报告 收到Break序列事件中,异步串行收发器定量接收的Break序列长度等于最后一次分段统计的 Break序列长度;
(4) 如待接收的Break序列S Break序列最大值;每当统计的Break序列长度等于Break 序列分段报告长度时,异步串行收发器就向系统报告一次收到Break序列事件并清零重新分 段统计Break序列长度,直至累计的Break序列长度等于Break序列最大值时,异步串行收发 器停止统计并最后一次向系统报告收到Break序列事件,直到该Break序列终点才报告Break 序列终止事件;除最后一次报告收到Break序列事件外,异步串行收发器定量接收的Break序 列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中异步串行收发器定 量接收的Break序列长度等于累计到Break序列最大值时,最后一次分段统计时的Break序列 长度;
所述待接收的Break序列是指异步串行数据线上连续的一段Break序列。 具体的,步骤b所述定量发送非字符信息,对于发送Break序列时具体为预先设定待发 送的Break序列长度;
当异步串行收发器发送完待发送的Break序列,且根据系统发送事件队列顺序已有其它 字符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已 有待发送的内容;
当异步串行收发器发送完待发送的Break序列,且异步串行收发器无任何内容需要发送 ,则异步串行收发器发送Idle序列直到收到系统发送事件。
本发明还提供了一种实现上述方法的异步串行收发器,包括字符收发器、中断控制器, 中断控制器与字符收发器相连,还包括非字符信息识别器、定量接收单元;非字符信息识别 器的输入端、字符收发器的输入端分别与接收数据信号线相连;非字符信息识别器与定量接 收单元相连;定量接收单元的输出端连接中断控制器;
所述非字符信息识别器用于识别非字符信息的序列类型;
所述定量接收单元用于统计非字符信息的序列长度,定量接收非字符信息。
具体的,定量接收单元包括计数器、接收比较器、接收比较寄存器、非字符信息控制器 、接收长度寄存器、接收队列控制器;非字符信息识别器与计数器相连;接收比较寄存器与 接收比较器的一个输入端相连,接收比较器的另一个输入端与计数器相连;非字符信息控制 器分别与接收比较器、计数器、非字符信息识别器相连;非字符信息控制器的控制端与计数 器相连;非字符信息控制器的输出端分别与接收长度寄存器与接收队列控制器相连,接收队 列控制器的输出端连接中断控制器;
所述计数器用于统计待接收的非字符信息的序列长度;
所述接收比较寄存器用于存储预先设定的控制接收序列长度值;
所述接收比较器用于比较待接收的非字符信息的序列长度与控制接收序列长度值,将比 较结果输出到非字符信息控制器;
所述接收长度寄存器用于存储定量接收的非字符信息;
所述非字符信息控制器用于根据所述比较结果将定量接收的非字符信息写入接收长度寄 存器,并向接收队列控制器报告接收到非字符信息事件;
所述接收队列控制器用于将来自于非字符信息控制器、字符收发器的报告事件组织成队 列,按序向中断控制器发出事件报告信号。
具体的,所述定量接收单元包括Idle序列定量接收单元、Break序列定量接收单元,所 述接收比较寄存器保存的预先设定的控制接收序列长度值包括Idle序列最小值、Idle序列 分段报告长度、Idle序列最大值。所述接收比较寄存器存储的预先设定的控制接收序列长度 值还包括Break序列分段报告长度、Break序列最大值。
进一步的,异步串行收发器还包括定量发送单元,定量发送单元输出端连接发送数据信 号线相连。
定量发送单元包括发送队列控制器、发送长度寄存器;所述字符收发器与发送队列控制
器的一个输入端相连;发送长度寄存器与发送队列控制器的另一个输入端相连;发送队列控 制器的输出端连接发送数据信号线,发送队列控制器还与中断控制器相连; 所述发送长度寄存器用于保存已设定的待发送的非字符信息;
所述发送队列控制器用于将收到的发送事件组织成队列,根据已设定的待发送非字符信 息序列长度,按序向发送数据信号线发送。
定量发送单元包括Idle序列定量发送单元、Break序列定量发送单元,所述发送长度寄 存器保存的已设定的待发送的非字符信息包括Idle序列、Break序列。
本发明的有益效果是,异步串行收发器能直接地收发非字符信息序列,其实现方法相比 现有方法相比有效减小系统开销,降低软件的复杂度。


图l为通用异步收发器示意图; 图2为本发明异步串行收发器示意图; 图3为本发明异步串行收发器的实施例逻辑电路框图。
具体实施例方式
为了能定量收发非字符信息,本发明在通用异步收发器(包括字符收发器、中断控制器
)的基础上增加了非字符信息识别器、定量接收单元、定量发送单元。如图2所示,非字符
信息识别器的输入端、字符收发器的输入端分别与接收数据信号线相连;非字符信息识别器
与定量接收单元相连;定量接收单元、定量发送单元分别连接中断控制器。
非字符信息识别器用于识别非字符信息的序列类型; 定量接收单元用于统计非字符信息序列的序列长度;
定量接收单元包括计数器、接收比较器、接收比较寄存器、非字符信息控制器、接收长 度寄存器、接收队列控制器;非字符信息识别器与计数器相连;计数器用于统计非字符信息 识别器识别出的非字符信息序列(待接收的非字符信息)的序列长度;接收比较寄存器与接 收比较器的一个输入端相连,接收比较器的另一个输入端与计数器相连;非字符信息控制器 分别与接收比较器、计数器、非字符信息识别器相连;非字符信息控制器的控制端与计数器 相连;
其中接收比较器、接收比较寄存器、非字符信息控制器用于定量接收非字符信息序列。 非字符信息识别器与计数器相连。非字符信息识别器输出一路信号到非字符信息控制器 告知其已收到非字符信息;接收比较器一方面接收计数器统计出的非字符信息序列的序列长 度,另一方面将接收比较寄存器中设定的长度值与计数器统计出的非字符信息序列的序列长
度作比较,将比较结果送到非字符信息控制器,该比较结果用于控制非字符信息控制器从计 数器直接获得的非字符信息序列的序列长度做出定量接收的处理,即控制非字符信息控制器 将定量接收的非字符信息写入接收长度寄存器并向接收队列控制器报告收到非字符信息序列 事件;字符收发器、非字符信息控制器的输出端与接收队列控制器相连,接收队列控制器将 来自于非字符信息控制器、字符收发器的报告事件组织成队列,按序向中断控制器发出事件 报告信号。
定量发送单元包括发送队列控制器、发送长度寄存器;字符收发器与发送队列控制器的 一个输入端相连,发送长度寄存器保存有预先设定的非字符信息发送比较值;发送长度寄存 器与发送队列控制器的另一个输入端相连;发送队列控制器的输出端连接发送数据信号线; 发送队列控制器根据已设定的待发送非字符信息序列长度,控制对当前非字符信息序列的发 送状态,定量按序向发送数据信号线发送异步串行数据,从而达到定量发送的目的。
当然,不设置定量发送单元也能实现定量收发非字符信息。定量接收单元向按序向中断 控制器发出事件报告信号后,由系统发送异步串行数据。
实施例以本发明定量收发Idle序列与Break序列的异步串行收发器为例,定量接收单元包括 Idle序列定量接收单元、Break序列定量接收单元;定量发送单元包括Idle序列定量发送单 元、Break序列定量发送单元。字符数据长度以字节为单位;因为Idle序列和Break序列都是 重复的码元序列,所以Idle序列和Break序列长度以码元为单位。
对于Idle序列,定量收发是限定异步串行收发器从异步串行数据线接收Idle序列以及向 异步串行数据线发送Idle序列的长度的最大值与最小值;对于Break序列为限定异步串行收 发器从异步串行数据线接收Break序列以及向异步串行数据线发送Break序列的长度的最大值
要实现Idle序列定量接收和发送需要下列5个寄存器和2个计数器
1) Idle序列最小值寄存器读写寄存器,是接收比较寄存器之一,用于由系统设置期 望删除的Idle序列碎片的最大长度数值,即接收Idle序列的长度最小值,避免接收Idle序列 碎片;
2) Idle序列最大值寄存器读写寄存器,是接收比较寄存器之一,用于对一个长的 Idle序列,由系统设置期望的限制长度数值,即接收Idle序列的长度最大值,限制接收长度
3) Idle序列分段报告寄存器读写寄存器,是接收比较寄存器之一,用于在接收Idle
序列限制寄存器设置值较大时,由系统设置期望的报告间隔长度数值,本发明收发器分段向 系统报告收到Idle序列事件,改善报告的实时性;
4) 接收Idle序列长度寄存器只读寄存器,用于所述收发器向系统报告收到Idle序列 事件时,装入接收到的定量Idle序列长度值;
5) Idle序列报告计数器内部计数器,用于统计上次报告收到Idle序列事件之后新接 收到的Idle序列长度;收发器报告收到Idle序列事件时将接收Idle序列报告计数器的计数值 装入接收Idle序列长度寄存器,清零接收Idle序列报告计数器,重新开始计数;
6) Idle序列累加计数器内部计数器,用于从Idle序列起点累计连续Idle序列的长度
7) Idle序列发送长度寄存器读写寄存器,用于由系统设置要发送的Idle序列长度数 值,控制异步串行收发器发送Idle序列的长度。
要实现Break序列的定量接收和发送部件需要下列4个寄存器和2个计数器
1) Break序列最大值寄存器读写寄存器,是接收比较寄存器之一,用于对一个长的 Break序列,由系统设置期望的限制接收长度数值,即接收Break序列的长度最大值,限制接 收长度;
2) Break序列分段报告寄存器读写寄存器,是接收比较寄存器之一,用于在接收 Break序列限制寄存器设置值较大时,由系统设置期望的报告间隔长度数值;异步串行收发 器分段向系统报告收到Break序列事件,保证报告的实时性;
3) 接收Break序列寄存器只读寄存器,是接收比较寄存器之一,用于异步串行收发器 向系统报告收到Break序列事件时,装入接收到的定量Break序列长度值;
4) Break序列报告计数器内部计数器,用于统计上次报告收到Break序列事件之后新 接收到的Break序列长度;异步串行收发器报告收到Break序列事件时将接收Break序列报告 计数器的计数值装入接收Break序列寄存器,清零接收Break序列报告计数器,重新开始计数
5) Break序列长度累加计数器内部计数器,用于累计连续Break序列的长度;
6) Break序列发送长度寄存器读写寄存器,用于由系统写入要发送的Break序列长度 值,控制所述异步串行收发器发送Break序列的长度。
字符数据、Break序列和Idle序列在异步串行接口数据信号线上是先后串行出现的,本 发明用接收事件队列来表达发生的收到字符、Break序列和Idle序列事件之间的时间顺序, 用发送事件队列来表达需要发送的字符、Break序列和Idle序列的时间顺序。 异步串行收发器定量接收Idle序列具体包括如下处理过程
预先设定Idle序列最小值、Idle序列分段报告长度、Idle序列最大值;将设定的Idle序 列最小值保存于Idle序列最小值寄存器、Idle序列分段值保存于Idle序列分段报告寄存器、 Idle序列最大值保存于Idle序列最大值寄存器中;所述Idle序列最大值〉Idle序列分段报告 长度〉Idle序列最小值;待接收的Idle序列是指异步串行数据线上连续的一段Idle序列;
(1) 如待接收的Idle序列长度《Idle序列最小值,异步串行收发器统计完该Idle序列 长度后,异步串行收发器忽略该Idle序列;不向系统报告收到Idle序列事件;
(2) 如ldle序列最小值〈待接收的Idle序列长度《Idle序列分段报告长度,异步串行 收发器定量接收的Idle序列长度等于统计的Idle序列长度,并向系统报告收到Idle序列事件
(3) 如ldle序列分段报告长度〈待接收的Idle序列长度〈Idle序列最大值,每当统计 的Idle序列长度等于Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle 序列事件并清零重新分段统计Idle序列长度,对于分为多段多次报告的Idle序列,累计的 Idle序列长度不清零,从Idle序列起点继续累计本Idle序列长度,直至到本Idle序列的终点 ,最后一次向系统报告收到Idle序列事件;除最后一次报告收到Idle序列事件外,异步串行 收发器定量接收的Idle序列长度等于Idle序列分段报告长度;最后一次报告收到Idle序列事 件中,异步串行收发器定量接收的Idle序列长度等于最后一次统计的Idle序列长度;
(4) 如ldle序列最大值《待接收的Idle序列长度时,每当统计的Idle序列长度等于 Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle序列事件并清零重新 分段统计本Idle序列长度,对于分为多段多次报告的Idle序列,累计的Idle序列长度为不清 零,从Idle序列起点继续累计本Idle序列长度,直至累计的Idle序列长度等于Idle序列最大 值时,异步串行收发器停止统计并最后一次向系统报告收到Idle序列事件,之后异步串行收 发器不再报告收到限长Idle序列事件,直到下一个Idle序列起点才重新计数;除最后一次报 告收到Idle序列事件外,异步串行收发器定量接收的Idle序列长度等于Idle序列分段报告长 度;最后一次报告收到Idle序列事件中,异步串行收发器定量接收的Idle序列长度等于累计 到I dl e序列最大值时最后 一次分段统计的I dl e序列长度。
异步串行收发器定量接收Break序列具体包括如下处理过程预先设定Break序列最大值 、Break序列分段报告长度,将设定的Break序列分段报告长度保存于Break序列分段报告寄 存器,Break序列最大值保存于Break序列最大值寄存器中,所述Break序列最大值〉Break序 列分段报告长度;待接收的Break序列是指异步串行数据线上连续的一段Break序列;
(1) 当待接收的Break序列长度等于一个字符的长度,异步串行数据收发器向系统报告 收到Break序列事件,进入步骤(2);
(2) 如待接收的Break序列长度《Break序列分段报告长度,异步串行收发器统计完该 Idle序列长度后,立即向系统报告收到Break序列和Break序列终止事件;异步串行收发器定 量接收的Break序列长度等于统计的Break序列长度;
(3) 如Break序列分段报告长度〈待接收的Break序列长度〈Break序列最大值,每当统 计的Break序列长度等于Break序列分段报告长度时,异步串行收发器就向系统报告一次收到 Break序列事件并清零重新分段统计Break序列长度,直至到本Break序列的终点,最后一次 向系统报告收到Break序列事件和Break序列终止事件;除最后一次报告收到Break序列事件 外,异步串行收发器定量接收的Break序列长度等于Break序列分段报告长度;最后一次报告 收到Break序列事件中,异步串行收发器定量接收的Break序列长度等于最后一次分段统计的 Break序列长度;
(4) 如待接收的Break序列S Break序列最大值;每当统计的Break序列长度等于Break 序列分段报告长度时,异步串行收发器就向系统报告一次收到Break序列事件并清零重新分 段统计Break序列长度,直至累计的Break序列长度等于Break序列最大值时,异步串行收发 器停止统计并最后一次向系统报告收到Break序列事件,直到该Break序列终点才报告Break 序列终止事件;除最后一次报告收到Break序列事件外,异步串行收发器定量接收的Break序 列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中,异步串行收发器 定量接收的Break序列长度等于累计到Break序列最大值时,最后一次分段统计的Break序列 长度。
异步串行收发器定量发送Idle序列,包括如下步骤根据发送长度寄存器中已预先设定 的待发送的Idle序列长度;
当异步串行收发器发送完待发送的Idle序列,且根据系统发送事件队列顺序已有其它字 符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已有 待发送的内容;
当异步串行收发器发送完待发送的Idle序列,且异步串行收发器无任何内容需要发送, 则继续发送Idle序列直到收到系统发送事件。
异步串行收发器定量发送Break序列,包括如下步骤根据发送长度寄存器中已预先设 定的待发送的Break序列;
当异步串行收发器发送完待发送的Break序列,且根据系统发送事件队列顺序已有其它
字符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已 有待发送的内容;
当待发送的Break序列长度等于设定的Break序列发送比较值,且异步串行收发器无任何 内容需要发送,则发送Idle序列直到收到系统发送事件。
如图3所示,异步串行收发器与系统连接的接口包括中断请求信号线INT和局部总线 Local—bus,与异步串行电平转换电路连接的接口包括发送信号线TXD和接收信号线RXD。图3 未示出异步串行控制信号线,以下也不赘述。
异步串行收发器中接收数据信号线RXD分别与非字符信息识别器、字符收发器相连;非 字符信息识别器分别通过Idle序列定量接收单元、Break序列定量接收单元相连;定量发送 单元与中断控制器相连,定量发送单元还与字符收发器和发送数据信号线TXD相连。
图3中,Idle序列定量接收单元包括Idle序列报告计数器、Idle序列累加计数器、Idle 序列分段报告寄存器、Idle序列最小值寄存器、Idle序列最大值寄存器、Idle序列控制器、 接收Idle序列长度寄存器、接收队列控制器。
Idle序列定量发送单元包括Idle序列发送长度寄存器、发送队列控制器。
Break序列定量接收单元包括Break序列报告计数器、Break序列累加计数器、Break序列 分段报告寄存器、Break序列最大值寄存器、Break序列控制器、接收Break序列长度寄存器 、接收队列控制器。
Break序列定量发送单元包括Break序列发送长度寄存器、发送队列控制器。
字符收发器,用于收发异步字符数据,本发明所述异步串行收发器的接收字符的功能和 使用方法与通用异步收发器相同。本发明所述字符收发器还增加输出一路信号Rec—char 信号(接收字符信号)。Rec—char信号从一个字符码元序列的起始位开始到停止位结束期间 为逻辑0,其余时间为逻辑l,即在Rec—char信号为逻辑l时,表示从接收数据信号线RXD上收 到非字符码元。
字符收发器从起始位开始,检测到数据位码元为全O,并且停止位码元也为O,即判断为 Break序列,输出检测到Break序列信号至Break序列控制器。由于字符收发器检査整个字符 码元长度后,才能识别出Break序列,因此在检査整个字符码元长度期间,字符收发器输出 的Rec—char信号为逻辑0,即在出现Break序列时,字符收发器输出Rec—char信号为逻辑l的 起始位置滞后于实际Break序列起始位置一个字符长度。
字符收发器从停止位结束开始,检测到数据线码元为l,即判断为Idle序列,输出的 Rec—char信号由逻辑O变为逻辑l,因此在出现Idle序列时,字符收发器输出的Rec—char信号
为逻辑l的起始位置与实际Idle序列起始位置同步。
非字符信息识别器,用于识别接收数据信号线RXD上收到的非字符码元是Idle序列还是 Break序列。非字符信息识别器输出Idle信号和Break信号,输出信号为逻辑l期间表示收到 相应的序列,输出信号为逻辑O期间表示没有收到相应的序列。
Idle信号输出至Idle序列报告计数器和Idle序列累加计数器。Idle序列报告计数器和 Idle序列累加计数器在所述非字符信息识别器输出所述Idle信号为逻辑l期间进行计数,计 数所用时钟信号频率与字符波特率相同。
Idle序列报告计数器的计数输出作为比较器l的一个输入值,Idle序列分段报告寄存器 的设置值作为所述比较器l的另一个输入值, 一旦所述Idle序列报告计数器的计数输出值大 于等于Idle序列分段报告寄存器的设置值,比较器l的比较结果信号即为逻辑l,否则为逻辑 0。所述比较器l的比较结果信号输出至Idle序列控制器。
Idle序列累加计数器的计数输出作为比较器2的一个输入值,Idle序列最小值寄存器的 设置值作为比较器2的另一个输入值, 一旦所述Idle序列长度累加计数器的计数输出值大于 等于Idle序列最小值寄存器的设置值,比较器2的比较结果信号即为逻辑1,否则为逻辑0。 比较器2的比较结果信号输出至Idle序列控制器。
Idle序列累加计数器的计数输出作为比较器3的一个输入值,Idle序列最大值寄存器的 设置数值作为所述比较器3的另一个输入数值, 一旦Idle序列长度累加计数器的计数输出值 大于等于Idle序列最大值寄存器的设置值,比较器3的比较结果信号即为逻辑1,否则为逻辑 0。比较器3的比较结果信号输出至Idle序列控制器。
Idle序列控制器的输入信号除比较器l、比较器2和比较器3输出的比较结果信号外,还 包括非字符信息识别器输出的Idle信号和Idle序列长度报告计数器的计数输出信号。
非字符信息识别器输出的Idle信号状态为逻辑l时,当比较器l的比较结果信号状态为逻 辑l、比较器3的比较结果信号状态为逻辑0、比较器2的比较结果信号状态由逻辑0变为逻辑1 ,表明目前接收的Idle序列长度达到分段长度但未达到Idle序列最大值,Idle序列控制器 将Idle序列长度报告计数器的计数输出值写入接收Idle序列长度寄存器,并向接收队列控制 器报告收到Idle序列事件。Idle序列控制器同时通过清零信号l (逻辑0电平信号)清零Idle 序列长度报告计数器。
非字符信息识别器输出的Idle信号状态为逻辑l时,当比较器3的比较结果信号状态由逻 辑0变为逻辑1,表明当前接收的Idle序列长度达到Idle序列最大值,Idle序列控制器将 Idle序列长度报告计数器的计数输出值写入接收Idle序列长度寄存器,并向接收队列控制器报告收到Idle序列事件。Idle序列控制器发出清零信号l (逻辑0电平信号)清零并封锁Idle 序列长度报告计数器,发出清零信号2清零并封锁所述接收Idle序列长度累加计数器,在该 Idle序列后续期间一直保持所述清零并封锁状态,直到该Idle序列终止,Idle序列控制器 才发出清零信号l (逻辑l电平信号)和清零信号2 (逻辑l电平信号)解除对Idle序列长度报 告计数器和I dl e序列长度累加计数器的封锁。
当比较器1的比较结果为逻辑0,表明本Idle序列是碎片,所述接收Idle序列报告控制器 无动作。
非字符信息识别器输出的Idle信号状态由逻辑1变为逻辑0时,表明Idle序列终止。
由于Break信号的起始位置滞后于实际Break序列起始位置一个字符长度,因此以下对于 Break序列长度的计数均不含实际Break序列头部一个字符长度的数值。
Break信号输出至Break序列报告计数器和接收Break序列累加计数器。Break序列报告 计数器和Break序列累加计数器在非字符信息识别器输出Break信号为逻辑l期间进行计数, 计数所用时钟信号频率与字符波特率相同。
Break序列报告计数器的计数输出作为比较器4的一个输入值,Break序列分段报告寄存 器的设置值作为比较器4的另一个输入值, 一旦Break序列报告计数器的计数输出值大于等于 所述接收Break序列分段报告寄存器的设置值,比较器4的比较结果信号即为逻辑l,否则为 逻辑0。比较器4的比较结果信号输出至Break序列控制器。
Break序列累加计数器的计数输出作为比较器5的一个输入值,Break序列最大值寄存器 的设置值作为比较器5的另一个输入值, 一旦Break序列累加计数器的计数输出值大于等于 Break序列最大值寄存器的设置值,比较器5的比较结果信号即为逻辑l,否则为逻辑0。比较 器5的比较结果信号输出至Break序列控制器。
接收Break序列控制器的输入信号除比较器4和比较器5输出的比较结果信号外,还包括 非字符信息识别器输出的Break信号和Break序列报告计数器的计数输出信号、以及字符收发 器输出的Break序列检测信号。
字符收发器输出的Break序列检测信号状态为逻辑l时,表明字符收发器检测到一个字符 长度的Break序列,Break序列控制器向接收队列控制器报告收到一个字符长度Break序列事 件,写入接收Break序列长度数据寄存器的数值为一个字符长度,同时通过清零信号5清零字 符收发器中Break序列检测信号。
非字符信息识别器输出的Break信号状态为逻辑l时,当比较器4的比较结果信号状态由 逻辑0变为逻辑1,比较器5的比较结果信号状态为逻辑0,表明当前Break序列长度达到分段 长度但未达到Break序列最大值,Break序列控制器将Break序列报告计数器的计数输出值写 入接收Break序列长度寄存器,并向接收队列控制器报告收到持续Break序列事件。Break序 列控制器同时通过清零信号3清零Break序列长度报告计数器。
非字符信息识别器输出的Break信号状态为逻辑l时,当比较器5的比较结果信号状态由 逻辑0变为逻辑1,表明当前Break序列长度达到Break序列最大值,Break序列控制器将 Break序列报告计数器的计数输出值写入接收Break序列长度寄存器,并向接收队列控制器报 告收到持续Break序列事件。Break序列控制器发出清零信号3 (逻辑0电平信号)清零并封锁 Break序列报告计数器,发出清零信号4 (逻辑0电平信号)清零并封锁接收Break序列累加计 数器,在本Break序列后续期间一直保持所述清零并封锁状态,直到本Break序列终止Break 序列控制器才发出清零信号3 (逻辑l电平信号)和清零信号4 (逻辑l电平信号)解除对 Break序列报告计数器和Break序列累加计数器的封锁,并报告收到Break序列终止事件。
非字符信息识别器输出的Break信号状态由逻辑l变为逻辑O时,表明Break序列终止。当 比较器5的比较结果信号状态为逻辑0,表明当前接收的Break序列长度未达到Break序列最大 值,Break序列控制器将Break序列报告计数器的计数输出值写入接收Break序列寄存器,并 向接收队列控制器报告收到Break序列终止事件。Break序列控制器同时发出清零信号3清零 Break序列报告计数器,发出清零信号4清零Break序列累加计数器。
所述接收队列控制器接收的报告事件包括
字符收发器报告的收到字符事件;
字符收发器报告的所述检测到Break序列事件;
接收Idle序列报告控制器报告的所述收到Idle序列事件;
接收Break序列报告控制器报告的所述收到一个字符长度Break序列事件;
接收Break序列报告控制器报告的所述收到持续Break序列事件;
Break序列报告控制器报告的接收Break序列终止事件。
接收队列控制器将其收到的所述各种报告事件组织成队列,按序向中断控制器发出事件 报告信号,中断控制器接收到事件报告信号后产生中断请求信号INT。中断控制器在已有中 断请求信号INT未被响应的情况下,控制接收队列控制器暂不发出新的事件报告信号。
Idle序列发送长度寄存器,用于控制所述异步串行收发器发送Idle序列的长度,由系统 向I dl e序列发送长度寄存器设置要发送的I dl e序列长度数值。
Break序列发送长度寄存器,用于控制所述异步串行收发器发送Break序列的长度,由系 统向Break序列发送长度寄存器写入要发送的Break序列长度数值。
发送队列控制器,将其收到的各种发送事件组织成队列,按序向发送数据信号线TXD发 送。当发送队列控制器发送完字符数据、Break序列或Idle序列,或者余下的未发送完部分 达到设置水平时,发送队列控制器向中断控制器发出发送事件报告信号,中断控制器接收到 发送事件报告信号后产生中断请求信号INT。所述中断控制器在已有中断请求信号INT未被响 应的情况下,控制所述发送队列控制器暂不发出新的发送事件报告信号。
以上所述仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟 悉该技术的人在本发明揭露的技术范围以内,可以轻易想到的变化或替换,都应涵盖在本发 明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
权利要求1异步串行数据线信息收发方法,异步串行收发器通过异步串行数据线收发字符数据信息,其特征在于,还包括收发非字符信息的步骤a、异步串行收发器从异步串行数据线接收非字符信息时,识别非字符信息的序列类型并统计非字符信息的序列长度,定量接收非字符信息,并向系统报告收到非字符信息事件;b、异步串行收发器向异步串行数据线发送非字符信息时,根据从系统收到的发送非字符信息事件,定量发送非字符信息。
2.如权利要求l所述异步串行数据线信息收发方法,其特征在于,所 述非字符信息为Idle序列。
3.如权利要求2所述异步串行数据线信息收发方法,其特征在于,步 骤a所述定量接收非字符信息,对于接收Idle序列时具体为预先设定Idle序列最小值、 Idle序列分段报告长度、Idle序列最大值;所述Idle序列最大值〉Idle序列分段报告长度〉 Idle序列最小值;分类处理过程如下(1) 如待接收的Idle序列长度《Idle序列最小值,异步串行收发器统计完该Idle序列 长度后,异步串行收发器忽略该Idle序列,不向系统报告收到Idle序列事件;(2) 如ldle序列最小值〈待接收的Idle序列长度《Idle序列分段报告长度,异步串行 收发器定量接收的Idle序列长度等于统计的Idle序列长度,并向系统报告收到Idle序列事件(3) 如ldle序列分段报告长度〈待接收的Idle序列长度〈Idle序列最大值,每当统计 的Idle序列长度等于Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle 序列事件并清零重新分段统计Idle序列长度,直至到本Idle序列的终点,最后一次向系统报 告收到Idle序列事件;除最后一次报告收到Idle序列事件外,异步串行收发器定量接收的 Idle序列长度等于Idle序列分段报告长度;最后一次报告收到Idle序列事件中,异步串行收 发器定量接收的Idle序列长度等于最后一次分段统计的Idle序列长度;(4) 如ldle序列最大值《待接收的Idle序列长度时,每当统计的Idle序列长度等于 Idle序列分段报告长度时,异步串行收发器就向系统报告一次收到Idle序列事件并清零重新 分段统计Idle序列长度,直至累计的Idle序列长度等于Idle序列最大值时,异步串行收发器 停止统计并最后一次向系统报告收到Idle序列事件;除最后一次报告收到Idle序列事件外, 异步串行收发器定量接收的Idle序列长度等于Idle序列分段报告长度;最后一次报告收到 Idle序列事件中,异步串行收发器定量接收的Idle序列长度等于累计到Idle序列最大值时, 最后一次分段统计的Idle序列长度;所述待接收的I dl e序列是指异步串行数据线上连续的 一段I dl e序列。
4.如权利要求3所述异步串行数据线信息收发方法,其特征在于,步 骤b所述定量发送非字符信息,对于发送Idle序列时具体为根据发送长度寄存器中系统已 预先设定待发送的Idle序列长度;当异步串行收发器发送完待发送的Idle序列,且根据系统发送事件队列顺序已有其它 字符信息或非字符信息序列需要发送,则异步串行收发器根据系统发送事件队列顺序发送已 有待发送的内容;当异步串行收发器发送完待发送的Idle序列,且异步串行收发器无任何内容需要发送 ,则继续发送Idle序列直到收到系统发送事件。
5.如权利要求2至4任一项权利要求所述异步串行数据线信息收发方 法,其特征在于,所述非字符信息还包括Break序列。
6.如权利要求5所述异步串行数据线信息收发方法,其特征在于,步 骤a所述定量接收非字符信息,对于接收Break序列时具体为预先设定Break序列最大值、 Break序列分段报告长度,所述Break序列最大值〉Break序列分段报告长度;(1) 当待接收的Break序列长度等于一个字符的长度,异步串行数据收发器向系统报 告收到Break序列事件,进入步骤(2);(2) 如待接收的Break序列长度《Break序列分段报告长度,异步串行收发器统计完该 Idle序列长度后,立即向系统报告收到Break序列和Break序列终止事件;异步串行收发器定 量接收的Break序列长度等于统计的Break序列长度;(3) 如Break序列分段报告长度〈待接收的Break序列长度〈Break序列最大值,每当 统计的Break序列长度等于Break序列分段报告长度时,异步串行收发器就向系统报告一次收 到Break序列事件并清零重新分段统计Break序列长度,直至到本Break序列的终点,最后一 次向系统报告收到Break序列事件和Break序列终止事件;除最后一次报告收到Break序列事 件外,异步串行收发器定量接收的Break序列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中,异步串行收发器定量接收的Break序列长度等于最后一次分段统计 的Break序列长度;(4)如待接收的Break序列S Break序列最大值;每当统计的Break序列长度等于Break 序列分段报告长度时,异步串行收发器就向系统报告一次收到Break序列事件并清零重新分 段统计Break序列长度,直至累计的Break序列长度等于Break序列最大值时,异步串行收发 器停止统计并最后一次向系统报告收到Break序列事件,直到该Break序列终点才报告Break 序列终止事件;除最后一次报告收到Break序列事件外,异步串行收发器定量接收的Break序 列长度等于Break序列分段报告长度;最后一次报告收到Break序列事件中异步串行收发器定 量接收的Break序列长度等于累计到Break序列最大值时,最后一次分段统计时的Break序列 长度;所述待接收的Break序列是指异步串行数据线上连续的一段Break序列。
7.如权利要求6所述异步串行数据线信息收发方法,其特征在于,步 骤b所述定量发送非字符信息,对于发送Break序列时具体为根据发送长度寄存器中系统已 预先设定待发送的Break序列长度;当异步串行收发器发送完待发送的Break序列,且根据系统发送事件队列顺序已有其它 当待发送的Break序列长度等于设定的Break序列发送比较值,且异步串行收发器无任 何内容需要发送,则发送Idle序列直到收到系统发送事件。
8.异步串行收发器,包括字符收发器、中断控制器,中断控制器与 字符收发器相连,其特征在于,还包括非字符信息识别器、定量接收单元;非字符信息识别 器的输入端、字符收发器的输入端分别与接收数据信号线相连;非字符信息识别器与定量接 收单元相连;定量接收单元的输出端连接中断控制器;所述非字符信息识别器用于识别非字符信息的序列类型; 所述定量接收单元用于统计非字符信息的序列长度,定量接收非字符信息。
9.如权利要求8所述异步串行收发器,其特征在于,定量接收单元包 括计数器、接收比较器、接收比较寄存器、非字符信息控制器、接收长度寄存器、接收队列 控制器;非字符信息识别器与计数器相连;接收比较寄存器与接收比较器的一个输入端相连 ,接收比较器的另一个输入端与计数器相连;非字符信息控制器分别与接收比较器、计数器 、非字符信息识别器相连;非字符信息控制器的控制端与计数器相连;非字符信息控制器的 输出端分别与接收长度寄存器和接收队列控制器相连,接收队列控制器的输出端连接中断控 制器; 所述计数器用于统计待接收的非字符信息的序列长度; 所述接收比较寄存器用于存储预先设定的控制接收序列长度值;所述接收比较器用于比较待接收的非字符信息的序列长度与控制接收序列长度值,将 比较结果输出到非字符信息控制器;所述接收长度寄存器用于存储定量接收的非字符信息;所述非字符信息控制器用于根据所述比较结果将定量接收的非字符信息写入接收长度 寄存器,并向接收队列控制器报告接收到非字符信息事件;所述接收队列控制器用于将来自于非字符信息控制器、字符收发器的报告事件组织成 队列,按序向中断控制器发出事件报告信号。
10.如权利要求9所述异步串行收发器,其特征在于,所述定量接收 单元包括Idle序列定量接收单元,所述接收比较寄存器保存的预先设定的控制接收序列长度 值包括Idle序列最小值、Idle序列分段报告长度、Idle序列最大值。
11.如权利要求10所述异步串行收发器,其特征在于,所述定量接收 单元还包括Break序列定量接收单元,所述接收比较寄存器存储的预先设定的控制接收序列 长度值还包括Break序列分段报告长度、Break序列最大值。
12.如权利要求8或9所述异步串行收发器,其特征在于,还包括定量 发送单元,定量发送单元输出端连接发送数据信号线相连。
13.如权利要求12所述异步串行收发器,其特征在于,定量发送单元 包括发送队列控制器、发送长度寄存器;所述字符收发器与发送队列控制器的一个输入端相 连;发送长度寄存器与发送队列控制器的另一个输入端相连;发送队列控制器的输出端连接 发送数据信号线,发送队列控制器还与中断控制器相连;所述发送长度寄存器用于保存已设定的待发送的非字符信息;所述发送队列控制器用于将收到的发送事件组织成队列,根据已设定的待发送非字符 信息序列长度,按序向发送数据信号线发送。
14.如权利要求13所述异步串行收发器,其特征在于,所述定量发送 单元包括Idle序列定量发送单元、Break序列定量发送单元,所述发送长度寄存器保存的已 设定的待发送的非字符信息包括Idle序列、Break序列。
全文摘要
本发明涉及数据通信领域,特别涉及异步串行数据收发技术。本发明要解决的技术问题是提供一种不依赖外部定时器,能定量收发非字符信息的方法及实现该方法的异步串行收发器。本发明所采用的技术方案是一种异步串行数据线信息收发方法,异步串行收发器通过异步串行数据线收发字符数据信息,其特征在于,还包括收发非字符信息的步骤。本发明还提供了一种实现上述方法的异步串行收发器,包括字符收发器、中断控制器,中断控制器与字符收发器相连,还包括非字符信息识别器、定量接收单元。本发明的有益效果是,异步串行收发器能直接地收发非字符信息序列,其实现方法相比现有方法,有效减小系统开销,降低软件的复杂度。
文档编号H04L7/00GK101383819SQ20071020158
公开日2009年3月11日 申请日期2007年9月5日 优先权日2007年9月5日
发明者冯克平 申请人:迈普(四川)通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1