CN1293852A - 用于异步串行通信的自动速率检测 - Google Patents
用于异步串行通信的自动速率检测 Download PDFInfo
- Publication number
- CN1293852A CN1293852A CN99804065.7A CN99804065A CN1293852A CN 1293852 A CN1293852 A CN 1293852A CN 99804065 A CN99804065 A CN 99804065A CN 1293852 A CN1293852 A CN 1293852A
- Authority
- CN
- China
- Prior art keywords
- duration
- bit
- data
- value
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/0262—Arrangements for detecting the data rate of an incoming signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
- Time-Division Multiplex Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
通过确定异步数据流内一个数据位的持续时间检测异步串行通信的速率。数据位的持续时间被用于产生钟频率。钟频率被用于将来自异步数据流的数据输入到寄存器。依据差错指示处理该输入数据。
Description
发明领域
本发明涉及数据通信,尤其涉及异步串行通信。
发明背景
异步串行数据通信系统是已知的,其中数据终端设备(DTE)以变化的波特率异步地发送/接收串行数据到/来自数据通信设备(DCE)。波特率表示数据在DTE和DCE之间通信的速率(也就是每秒位或bps)。例如,DTE可在范围为大约300bps到115,200bps之间的速率上发送/接收数据到/来自DCE。然而,在任何通信开始以前,要求DTE和DCE工作在相同的波特率上。可将自动波特命令用于均衡DTE和DCE所用的波特率。
图1示出一种依据现有技术利用异步串行数据通信的系统。DTE100是数据终端设备,例如ASCII终端或个人计算机。DCE 101可以是一种数据通信设备,例如调制解调器。通信链路117可以是DTE 100和DCE 101之间的异步串行数据通信链路。
DTE 100可以包括一个第一高级软件层105,一个第一低级驱动程序110和一个第一UART 115。第一高级软件层105可以实现DTE 100所需的高等级功能。例如,第一高级软件层105可以是软件应用程序。第一低级驱动程序110可以是实现第一高级软件层105所需的系统功能采用的低等级软件模块。第一低级驱动程序110可以具有关于包含在DTE 100中硬件(例如第一UART 115)的操作的详细信息。第一UART 115是一种通用异步接收器发送器,可以在通信链路117上实现异步串行数据通信。
DCE 101可以包括一个第二UART 120,一个第二低级驱动程序125和一个第二高级软件层130,所有这些可按类似于包含在DTE 100中的模拟部件的方式操作,还有一个处理器122。处理器122可提供对DCE 101的内部服务,包括对包含在DCE 101中的其他部件的同步和管理。
通信链路117可以是被定义为ITU V.24,V.28或其他串行通信格式的一种异步串行数据通信链路。在通信链路117上通信的字符格式可以与ITU T.50,V.4或其他字符格式符合。
第一UART 115和第二UART 120可以在不同速率上工作。例如第一UART 115一开始可工作在28.8Kbps,而第二UART 120一开始可工作在33.3Kbps。在这种初始状态下,第一UART 115和第二UART 120不可能通信。为此,可将自动波特命令用于均衡第一UART 115和120的速率.该自动波特命令可包括从DTE 100发出的任何命令或字符串,使DCE 105能检测DTE 100发送的字符的速率和字符的格式。DTE100可通过发送一对已知的字符到DCE 101执行自动波特命令。当第二UART 120被初始化到第一UART 115所用的相同波特率时,第一UART 115和第二UART 120可通过通信链路117通信。例如,自动波特命令可利用ASCII字符AT,at,a/,或A/来实现,其中每个ASCII字符由一个数据位系列组成。
图2A示出可组成在自动波特中使用的字符的数据位值。例如,ASCII字符A可由以下位值组成:b1=1,b2=0,b3=0,b4=0,b5=0,b6=0,和b7=1。当此数据位系列被检测到时,DCE 101指明ASCII字符A被接收到。ASCII字符T可由位值b1=1,b2=0,b3=1,b4=0,b5=1,b6=0,和b7=1组成。因此,当DCE 101相继接收ASCII字符A和T时,第二UART 120将波特率设置为在接收A和T字符期间测得的速率。第二UART 120可以通过测量为发送在A和T字符中的一个位所需的时间来确定用来发送在自动波特命令中的字符的波特率。位8(b8)和位9(b9)可以是奇偶校验位或一个或二个停止位,取决于所用的字符格式。因而,b8和b9的值是未知的,由间号表示。
图2B示出在由通信链路117所用的异步串行数据通信格式内各种信号的逻辑电平。传输以低电平起始脉冲205开始,占用时间tb,代表用于发送一个单一的位的时间。起始位205发信号给第二UART120,表明随后将是数据流。例如,数据流210可包括七或八个串行发送的数据位,代表上述的ASCII字符A。第一UART可发送一个奇偶校验位215,指明与数据210有关的奇偶性。第一UART115发送一个停止位系列220,指明数据210和奇偶性的传输完成。第一UART 115可通过发送另一个起始位225开始新的传输。
依据现有技术通过测量起始位的持续时间并产生代表所估计的异步串行数据流波特率的相应钟频率可执行自动波特命令。如果钟频率是正确的,第二UART 120可接收代表自动波特命令的两个相继的字符。如果钟频率不正确,则数据210将不按照上述的异步串行数据格式采样,并将不等于由第一UART 115发送的数据。例如,如果第一UART 115以大约56.6Kbits/sec相继发送ASCII字符AT,起始位的持续时间(tb)将是大约17μs。因此,可将大约56.6KHz的钟频率用作钟频率将数据210计输入第二UART 120。如果第二UART 120接收到的两个字符等于AT,所估计的波特率是正确的。然而如果,被输入第二UART 120的两个ASCII字符不等于AT,则所估计的波特率不正确或第一UART 115并未发送自动波特命令。
依据现有技术,异步串行数据通信系统可在高速率下工作(例如,115,200bps)。在115,200bps时,起始位持续时间(tb)大约是8.5微秒。因此,可要求第二UART 120测量大约8.5微秒的tb以执行自动波特功能。可利用硬件或软件测量该起始位持续时间。软件途径可以包括一个软件环路,这在该技术领域是众所周知的。硬件途径可利用一个定时器,以测定起始位205的持续时间。该定时器中断处理器122,读定时器的计数,计算由定时器值暗示的数据速率,并以所计算的波特率建立第二UART 120。正如以下要解释的那样,处理器122可能要拿出大约1毫秒为中断服务。
当波特率接近115,200bps时,无线调制解调器在测量持续时间tb方面可能有困难。特别是,无线调制解调器可以工作在在线命令模式中,在此期间,调制解调器在任何时候可能都是忙的。换句话说,当自动波特命令被接收到时,无线调制解调器可能正在执行其他功能。例如,可能要求为连接一定向服务使用的无线移动设备,即使未建立连接,也要监听基站或发送消息。因此,在无线设备中的调制解调器可能是太忙以致不能利用软件环路或硬件定时器途径来实施自动波特功能。例如,可以拿出1毫秒用于无线调制解调器响应来自UART的中断。在每位8.5微秒时,1毫秒大体上是12个字符的持续时间。因此,在DCE101利用硬件定时器可能处理所发送的字符以前,DTE 100可以发送一个完整的自动波特命令。
发明概述
因此,本发明的一个目的是提供改进的自动波特检测。
本发明的另一个目的是使得降低与处理自动波特命令有关的等待时间。
本发明的另一个目的是使得提高处理自动波特命令的效率。
通过确定在异步数据流内一个数据位的持续时间并产生相应于数据位持续时间的钟频率,达到了这些和其他的目的。将来自异步数据流的数据位利用所产生的钟频率输入到寄存器以形成寄存器值。依据数据位的持续时间和寄存器值的至少一个处理异步数据流。如果检测到差错,停止将来自异步数据流的数据位输入寄存器。如果未指明差错,将UART的波特率设置为所产生的频率。将差错表示为起始位持续时间与后继数据位比较或者寄存器值与预先规定的值比较的结果。
可测量起始位持续时间并与在异步数据流中其他位的持续时间比较。如果其他位的持续时间显著小于起始位的持续时间,将输入终止。另一方案是,可以对异步数据流内第一数据位进行比较或者只对起始位进行比较。
本发明可降低与处理自动波特命令有关的等待时间。特别是,依据本发明的一种异步串行系统通过利用所产生的钟频率将来自异步数据流的数据位输入到寄存器来降低该等待时间。把输入的数据与预先规定的值作比较,该值可以等于用于代表自动波特命令的字符。因此,本发明可确定是否接收到的数据是一个不中断处理器的自动波特命令。依据现有技术的系统,可以利用软件环路或硬件定时器以中断来实施自动波特命令。与这些途径有关的等待时间可能不允许有足够时间来处理组成该自动波特命令的字符。尤其是,如果当DCE忙时,以115,200波特发送自动波特命令,DCE中断等待时间可能使DCE内的处理器错过由DTE发送的自动波特字符。例如,可要求无线调制解调器在任何时候与基站通信,因而当自动波特被服务时,可能正在执行其他功能。
本发明当UART正在发送数据时接收到自动波特命令也可降低等待时间。依据本发明,由自动波特电路处理自动波特命令。因此,DCE可在UART结束发送数据后检查自动波特电路。依据现有技术,UART在自动波特命令可被处理以前完成发送数据。因此,自动波特命令和有关的数据不可能被接收,因为UART目前正忙着发送数据。
本发明也可提高自动波特命令处理的处理效率。特别是,寄存器值可与预先规定的值作比较,后者可等于用来代表自动波特命令的字符。如果预先规定的值并不等于寄存器值,将输入终止和不中断处理器。因此,本发明可降低对处理器错误中断的次数。现有的DTE在发送自动波特命令以前可能发送虚假的字符,引起现有技术中的错误中断。同样,个人计算机可在串行接口上产生瞬变信号,这也可能在现有技术系统中引起错误中断。本发明可通过在中断处理器以前查看虚假字符或瞬变信号来减少错误中断。
特别是,在寄存器保持全部字符以前就做比较。如果在寄存器中的数据位不等于预先规定值的相应部分,则将该输入终止。例如,如果寄存器包含位1=1,位2=0,和位3=0,但还需接收位4到位7,被接收到的字符可能是自动波特命令AT的第一字符,其中字符A由位1=1,位2=0,位3=0,位4=0,位5=0,位6=0,和位7=1来表示。否则,如果寄存器保持位1=0,则接收到的字符不可能是字符A。因此,没有另外的位将被输入寄存器。
附图简述
图1是依据现有技术的一种异步串行通信系统的方框图;
图2A是依据现有技术,用于表示ASCII字符的位值组合表;
图2B是依据现有技术,用作说明一种异步串行通信格式的定时图;
图3是依据本发明的一种异步串行通信系统和方法的方框图;
图4是依据本发明,用作说明一种异步串行通信格式的定时图;
图5A是依据本发明的一种自动波特电路的方框图;
图5B,5C,5D,和5E是用作说明可用于对字符格式编码的位组合表。
图6A和6B是依据本发明,用作说明一种自动波特电路操作的流程图;和
图7,8,9,10和11用作说明本发明另一种实施方案的示范性操作。
发明详述
现在将通过参考表示本发明的一种最佳实施方案的附图更充分地描述本发明。然而,本发明可按许多不同形式实施,不应该解释为限于在此提出的实施方案;更确切地说,提供这些实施方案使得本公开内容将透彻和全面,并将充分地将本发明的范围告知本领域的技术人员。在整个附图中同样的数字表示同样的部件。
正如本领域的技术人员将认识到,本发明可作为一种方法,作为数据处理系统或程序产品来实施。因此,本发明可采取全硬件实施方案,全软件实施方案或将软件和硬件组合的一种实施方案的形式。而且,本发明可采取在计算机可读存储媒介上的计算机程序产品的形式,在媒介中有计算机可读程序码装置。可利用任何适当的计算机可读媒介,包括硬盘,CD-ROM,光存储设备,或磁存储设备。
也利用流程图描述本发明。本领域的技术人员将理解,流程图的每个方框,和流程图中方框的组合,可利用各种通常使用的通信系统部件来实现。也将理解在流程图中所描述的操作部分可作为被装载在计算机或其他数据处理装置中的计算机程序指令来执行,这样产生一种机器,提供用于实现在流程图方框和其组合中所说明的功能的装置。计算机程序可使操作步骤在计算机或数据处理装置上实现,以产生计算机实现的过程,使得在计算机或数据处理装置上执行的指令提供用于实现流程图方框或其组合的功能的步骤。因此,流程图方框支持用于实现所说明的功能的装置组合和用于实现所说明的功能的步骤组合。
图3是依据本发明的一种异步串行通信系统的方框图。DTE 300是数据终端设备,例如一个ASCII终端或一个个人计算机。DCE 301可以是一个数据通信设备,例如调制解调器。通信链路317可以是DTE300和DCE 301之间的一种异步串行数据通信链路。DTE 300可包括第一高级软件层305,第二低级驱动程序310和第一UART 315。第一高级软件层305可实现DTE所需的高等级功能。例如,第一高级软件层305可以是一种软件应用程序。第一低级驱动程序310可以是一种低等级的软件模块,用于实现第一高级软件层305所需的系统功能。第一低级驱动程序310可以具有关于包含在DTE 300中硬件操作的详细信息,例如第一UART 315。第一UART 315可以在通信链路317上实现异步串行数据通信。
DCE 301可以包括第二UART 320,低级驱动程序325,高级软件层330(所有这些可与包含在DTE 300中的部件类似),处理器322,和一个用于处理由第一UART 315发送的自动波特命令的自动波特电路335。然后自动波特电路335可以通知第二UART 320当前的波特率,使第二UART 320可在通信链路317上接收字符信息。
图4示出在由通信链路317所用的一种异步串行数据通信格式内各种信号的逻辑电平。通信链路317利用异步串行数据通信格式,例如ITU V.24或V.28,传送异步数据流。用低电平起始脉冲405开始传送,占用时间tc,代表用于发送单一位的时间,给第二UART 320发信号表明一个数据流将随后出现。例如,起始位405可发信号,随后是数据流,它可包括七或八个数据位,一个奇偶校验位415,指明与数据410有关的奇偶性,和一或两个停止位420,指明数据410和奇偶性415的发送完成。第一UART 315通过发送另一个起始位425开始新的发送。数据可按一种指明所发送的位的重要性的字符格式发送。例如,数据420可包括数据位1到9;其中数据位1到7代表字符数据,数据位8和9可以是一个奇偶位或1或2个停止位,取决于所用的字符格式。
第一UART 315和第二UART 320可以工作在不同的速率。例如,第一UART 115可以一开始工作在28.8Kbps,而第二UART 320可以一开始工作在33.3Kbps。在这种初始状态下,第一UART 315和第二UART 320不可能通信。自动波特命令可用于使第一UART 315和320的速率相等。DTE 300通过发送一对已知的字符到DCE 301执行自动波特命令。DCE 301测量组成已知字符的数据位的持续时间,并将第二UART 320初始化到此波特率。一旦第二UART 320被初始化到由第一UART 315所用的相同的波特率,第一UART 315和第二UART 320可通过通信链路317通信。例如,自动波特命令可利用ASCII字符AT,at,a/,或A/来实现,其中每个ASCII字符由上述的一系列数据位组成。
自动波特电路335确定起始位405的持续时间和产生相应的钟频率,由此串行数据410被计时进入寄存器。然后依据一种差错指示处理异步数据流。差错指示可通过将在数据410内每个相继的数据位的持续时间和起始位持续时间相比较来提供。如果数据位的持续时间和起始位405的持续时间之间的差超过预先规定的阈值,就指明一个差错。在一种优选实施方案中,预先规定的阈值可以是起始位405持续时间的25%。例如,如果起始位持续时间是17微秒,后继数据位的持续时间是8.5微秒,其差将等于8.5微秒,这代表50%的起始位持续时间。如果未指明差错,第二UART 320的波特率被设置为相应的频率,第二UART 320接收异步数据流。
在另一种实施方案中,自动波特电路335也可将一个或多个停止位420的持续时间和起始位405的持续时间作比较。如果在起始位405和停止位420持续时间之间的差超过预先规定的阈值,自动波特电路335将检测出差错。
差错指示也可通过将由DTE 300发送的字符与代表自动波特命令的预先规定值作比较来提供。当数据410内的数据位被计时进入寄存器时,每一位与预先规定的值作比较。因此,自动波特电路335可在所有包括在自动波特命令中的数据被接收到以前,确定接收到的数据并不代表自动波特命令。例如,自动波特电路335在通信链路317上接收到作为b2的1,自动波特电路335将确定相应的字符不可能包括ASCII字符A或a,因而不可能是自动波特命令。因此,自动波特电路335指明一个差错。
现在参考图5A,将更详细地描述自动波特电路335。用位定时器505监视异步数据流。位定时器505确定起始位405的持续时间并将起始位405的持续时间与数据410中后继的数据位作比较。例如,起始位405的持续时间与组成数据410的各位作比较。位定时器505产生钟频率或者波特率,与起始位405的持续时间相对应。相应的钟频率被装载到钟产生器510,给寄存器515提供相应的钟频率。数据410在由钟发生器510产生的相应频率上被计时进入寄存器515。从而,来自异步数据流的字符被移入寄存器515。
位定时器505也确定数据410内相继位的持续时间。如果位定时器505确定相继数据位410的持续时间大大短于起始位405的持续时间,则一个差错507被指明和自动波特电路被复位。
检测器520将寄存器515的内容与适当的预先规定的值525作比较。特定的预先规定的值可取决于自动波特命令的哪部分已被接收。起初代表自动波特命令的第一字符的所有ASCII字符是合适的预先规定的值。例如,ASCII字符A,a,T,t和/起初可以是合适的预先规定的值。然而,在自动波特命令的第一字符已被接收到后,合适的预先规定的值改变。例如在起初接收ASCII字符A以后,ASCII字符T和/是合适的预先规定的值。
如果比较指明寄存器515和预先规定的值525之间差,检测器指明预先规定的值的差错530,将自动波特电路335复位。如果检测器520确定寄存器515的内容部分地匹配合适的预先规定的值525,检测器520指明部分的预先规定的值匹配535,使能进一步对进和寄存器515的数据计时。例如,如果寄存器515包含作为ASCII字符A的位值b1=1,b2=0,和b3=0,检测器520将确定该值部分地匹配一个ASCII字符的预先规定的值。
如果检测器520确定寄存器515和预先规定的值525精确地匹配,就指明预先规定的值匹配540,使数据410的另一序列被计时进入寄存器515。例如,如果寄存器515包含位b1=1,b2=0,b3=0,b4=0,b5=0,b6=0,和b7=1,检测器520指明寄存器515匹配ASCII字符A的预先规定的值。
如果检测器520确定组成自动波特命令的所有字符已相继接收到,产生检测到自动波特命令541检测到自动波特命令541指明第二UART 320可以按与上述所产生的钟频率相应的波特率从异步数据流接收数据。
第二UART 320也可发送异步数据流到第一UART 315。由第二UART320发送的数据应该与第一UART 315所用的格式相同。例如,通过通信链路317发送的字符可以利用许多数据位,一种类型的奇偶性和许多停止位来编排格式。10位格式可以包括7个数据位,1个奇偶位和2个停止位。11位格式可包括8个数据位,1个奇偶位和2个停止位。自动波特电路335可通过查看数据410内的数据位8和9确定第一UART 315所使用的格式。第二UART 320将使用相同格式用于数据传输到第一UART 315。图5B,5C,5D和5E指明在技术上众所周知的不同方案,可用于对使用中的字符格式解码。例如,如果自动波特命令包括ASCII字符AT,图5B指明,如果伴随ASCII字符A的位8和9分别等于0和1,伴随ASCII字符T的位8和9分别等于1和1,使用中的格式将是7个数据位,偶奇偶位和1个停止位。
在一种替代的实施方案中,本发明可用于提供软件流控制。软件流控制归结为利用专门字符发信号开始和停止进行数据传输。特别是,软件流控制可分别使用XON和XOFF字符发信号开始和停止传输。例如,第一UART 315发送XON字符发信号开始传输和发送XOFF字符发信号结束传输。同样,第二UART 320分别发送XON和XOFF字符发信号开始和结束传输。按照现有技术,每个UART可以查看输入字符中每一个的值,确定是否是XON或XOFF字符。
依据本发明,软件流控制可通过利用XON和XOFF字符作为预先规定的值525来实现。由第一UART 315发送的XON和XOFF字符通过异步数据流317被计时进入寄存器515。然后检测器520将寄存器515与预先规定的值525作比较。接着检测器520发信号到处理器,表示XON或XOFF字符已被检测到。然而,使位定时器505不能工作,以致自动波特电路335不可能修改第二UART 320的波特率。
图6A和6B是依据本发明,用作说明一种自动波特电路操作的流程图。现在参考图6A,当数据被接收到时(方框605),位定时器确定起始位的持续时间(方框615)。相应的钟频率被产生(方框620),用相应的钟频率对钟编程。来自异步数据流的数据被按相应的频率计时进入寄存器(方框625)。按差错指示处理异步数据流。通过比较起始位持续时间与后继的数据位持续时间提供差错指示。如果后继数据位持续时间大大小于起始位的持续时间,差错被指出和来自异步数据流的数据计时进入寄存器被终止。如果无差错被指出,UART仍然用相应于所产生钟的波特率配置。也可通过将寄存器值与代表用于组成自动波特命令的字符的预先规定的值作比较来提供差错指示。如果寄存器值并不完全匹配适当的预先规定的值,差错被指出和来自异步数据流的数据计时进入寄存器被终止。如果无差错被指出,UART用与所产生的钟相应的波特率配置。
现在参考图6B,更详细地描述异步数据流的处理(方框629)。在异步数据流内相继位的持续时间与起始位的持续时间作比较(方框630)。如果任何相继数据位的持续时间大大小于起始位,检测器指出波特率上的差错,终止计时,迫使寄存器中所有单元为1,清除UARTFIFO(方框650)。然后处理等待新的起始位被检测(方框660)。参考返回方框630,如果所有后继的数据位的持续时间并不大大小于起始位的持续时间,计时继续进行(方框625)。
该自动波特电路还将通过异步数据流接收到的数据的值与一组预先规定的值作比较。接收到的数据被计时进入寄存器并与合适的预先规定的值作比较(方框635)。如果被计时的数据并不等于合适的预先规定的值,差错被指出和计时被终止,寄存器中所有的单元被强迫为1,UART FIFO被清除(方框650)。然后处理等待新的起始位被检测(方框660)。然而,如果计时数据被确定至少等于预先规定的值的部分(方框635),确定是否全部字符已通过异步数据流被接收到(方框640)。如果全部字符未被接收到(方框640),其他数据被按相应的频率计时进入寄存器(方框635)。如果全部字符已被接收到(方框640),自动波特电路确定是否全部自动波特命令已被接收到(方框642)。如果全部自动波特命令已被接收到,中断被发送到UART和寄存器计时被终止(方框645)。然而,如果全部自动波特命令尚未被接收到,其他数据被按相应频率计时进入寄存器(方框625)。
图7,8,9,10和11示出本发明另一种实施方案的示范性操作,连同在此的描述,使本领域的技术人员能够实践本发明。图7示出依据本发明的第二UART 320,自动波特电路335和处理器322的一种特定一初始化过程(方框705)。在UART的输出FIFO中出现的任何数据被终止(方框710)。在寄存器中设置每位循环的硬件(方框715)。串行输入FIFO中断被禁止(方框720)。串行输入FIFO的内容被设置为全1(方框725)。初始位定时和寄存器钟被设置为300bps(方框730)。然后检查异步数据流的位定时(方框735)。
图8示出依据本发明的一种特定的位定时操作(方框805)。数据被从串行输入管脚计时进入移位寄存器(方框810)。测量数据的位持续时间。基本上同时地用数据位的持续时间检查字符值。如果数据位持续时间大大小于起始位的持续时间(方框815),以前的位定时被确定是不正确的(方框820),字符重新开始被初始化(方框825)。然而,如果数据位持续时间并不大大小于起始位的持续时间(方框815),更多的数据被计时输入(方框810)。
图9示出依据本发明的一种特定的字符匹配过程(方框905)。寄存器的值与预先规定的值:a,A,t,T,/作比较(方框910)。每个预先规定的值与一个特定的输出有关。输出1与字符a和A有关。如果寄存器值等于预先规定的值a或A,两位被计时输入(方框915)。下一个字符计数器在串行输入管脚上下一个1到0瞬变时被重新开始(方框920)。B1到b9被从移位寄存器装入FIFO的第一位置(方框925)。Ba或BA位被设置以指明相应的字符已被接收到(方框930)。然后测量下一个数据位的持续时间(方框935)。
输出2与字符/,t和T有关(方框910)。如果寄存器值等于预先规定的值t,T或/,下一字符计数器被复位(方框940)和两位被计时输入(方框945)。B1到b9被从移位寄存器装入FIFO的第二位置(方框950)。然后FIFO指针被设置以指明相应的字符已被接收到(方框955)。然后结束自动波特(方框960)。
输出3与未接收到字符有关(方框910)。功率节省模式被启动,其中高速钟和寄存器钟可被终止(当在串行输入管脚检测到1到0的瞬变时可恢复正常操作)(方框965)。当检测到1到0的瞬变时,测量位定时(方框975)。
输出4与接收到与代表自动波特命令的字符不匹配的字符有关(方框910)。如果下一个字符计数器未达到限值(方框980),监视下个数据位的位定时(方框975)。如果下个字符计数器已达到限值(方框980),字符重新开始被启动(方框955)。
图10示出依据本发明的字符重新开始(方框1005)。清除自动波特期间放入FIFO的任何字符A或a(方框1010)。串行输入寄存器的内容被强置为全1(方框1015)。串行输入钟被按需要调节并将当前奇偶性的一位装入移位寄存器(方框1020)。然后测量下一数据位的持续时间(方框1025)。
图11示出依据本发明,设置所产生的波特率(方框1105)。处理器被自动波特过程中断(方框1110)。替代方案是,处理器可启动停止运转(方框1115)。当串行输入数据为1时(一个停止位),通过将0写到硬线连接环的位使硬线连接环不能工作(方框1120)。然后钟被关闭,串行输入和计时被设置为正确速率(方框1125)。自动波特使能被设置为0,以便清除中断(方框1130)。
在附图和说明书中,已经公开了本发明的典型最佳实施方案,虽然采用了专门的术语,它们仅是在通用和描述性的意义上的使用而不是为限定的目的,本发明的范围描述在以下的权利要求中。
Claims (20)
1.一种用于检测在异步数据流内多个数据位的定时的电路包括:
位定时器,测量异步数据流内一个数据位的持续时间;
钟发生器,对位定时器作出响应,输入异步数据流内的数据位;
寄存器,由钟发生器输入,保持该输入的数据位;和
检测器,对至少一个位定时器和寄存器值作出响应,检测异步数据位流中的差错。
2.如权利要求1的电路,其中所述的寄存器包括移位寄存器,平行地提供对已输入数据位的入口。
3.如权利要求1的电路,其中所述的检测器包括比较器,将保存在寄存器中的输入数据位与预先规定的值作比较。
4.如权利要求1的电路,其中所述的预先规定的值包括至少一个以下的字符:A,a,T,t,/。
5.如权利要求1的电路,其中所述的检测器包括:
比较器,将起始位的持续时间与异步数据流内数据位的持续时间作比较;和
检测器,如果起始位的持续时间与异步数据流内数据位的持续时间明显不同,指明差错。
6.一种用于处理异步数据流的方法,包括以下步骤:
确定异步数据流内一个数据位的持续时间;
产生对应于数据位持续时间的钟频率;
利用所产生的钟频率将来自异步数据流的数据位输入到寄存器以形成寄存器值;和
根据数据位的持续时间和寄存器值的至少一个处理该异步数据流。
7.如权利要求6的方法,其中所述的处理步骤包括当差错被指明时,终止将来自异步数据流的数据位输入到寄存器的步骤。
8.如权利要求6的方法,其中所述的处理步骤包括按所产生的钟频率接收异步数据流的步骤。
9.如权利要求6的方法,其中所述的如果差错被检测到时,终止对来自异步数据流的数据位输入到寄存器的步骤包括以下步骤:
将起始位的持续时间与相继数据位的持续时间作比较;
和
如果相继数据位的持续时间远小于起始位的持续时间,终止将来自异步数据流的数据位输入到寄存器。
10.如权利要求6的方法,其中所述的如果差错被指出,终止将来自异步数据流的数据位输入到寄存器的步骤包括以下步骤:
将寄存器值与预先规定的值作比较;和
如果寄存器值不等于预先规定的值,终止将来自异步数据流的数据位输入到寄存器。
11.如权利要求10的方法,其中所述的将寄存器值与预先规定值作比较的步骤包括寄存器值与预先规定值相比较的步骤,其中当数据位被输入到寄存器时,比较发生。
12.如权利要求10的方法,其中所述的将寄存器值与预先规定的值作比较的步骤包括寄存器值与预先规定值作比较的步骤,其中预先规定的值至少是以下字符之一:A,T,a,t,/。
13.如权利要求6的方法,其中在所述的确定异步数据流内的一个数据位的持续时间的步骤之前有步骤:
发送来自个人计算机的命令串;和
用调制解调器接收该命令串。
14.一种用于检测异步数据流速率的系统包括:
根据起始位持续时间产生数据位时间的装置;和
根据跟随起始位的数据检测异步数据流中差错的装置。
15.依据权利要求14的系统,其中所述的根据起始位持续时间产生数据位时间的装置包括:
确定起始位持续时间的装置;和
对确定起始位持续时间的装置作出响应,用于确定将异步数据流内数据位输入到寄存器的钟频率的装置。
16.如依据权利要求14的系统,其中所述的用于根据跟随起始位的数据检测异步数据流中差错的装置包括:
用于确定跟随起始位的数据位持续时间的装置;
用于将起始位持续时间与跟随起始位的数据位持续时间作比较的装置;和
对所述的比较装置作出响应,如果起始位持续时间与跟随该起始位的数据位持续时间明显不同,用于指明差错的装置。
17.依据权利要求14的系统,其中用于根据跟随起始位的数据检测异步数据流中差错的装置包括用于将跟随起始位的数据与预先规定的值作比较的装置。
18.依据权利要求14的系统,其中所述的用于将跟随起始位的数据与预先规定的值作比较的装置包括将跟随起始位的数据与预先规定值的部分作比较的装置。
19.一种处理异步数据流的方法包括以下步骤:
将来自异步数据流的数据位输入到寄存器以形成寄存器值;和
将寄存器值与代表流控制的字符的预先规定值作比较。
20.依据权利要求19的方法,其中预先规定的值至少包括以下字符之一:XON和XOFF。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/039,876 US6157689A (en) | 1998-03-16 | 1998-03-16 | Automatic speed detection for asynchronous serial communications |
US09/039,876 | 1998-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1293852A true CN1293852A (zh) | 2001-05-02 |
Family
ID=21907807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99804065.7A Pending CN1293852A (zh) | 1998-03-16 | 1999-02-09 | 用于异步串行通信的自动速率检测 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6157689A (zh) |
EP (1) | EP1070410B1 (zh) |
CN (1) | CN1293852A (zh) |
AU (1) | AU2663999A (zh) |
BR (1) | BR9908831A (zh) |
DE (1) | DE69917624T2 (zh) |
EE (1) | EE200000542A (zh) |
WO (1) | WO1999048244A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392605C (zh) * | 2002-12-03 | 2008-06-04 | Adc长途电讯有限公司 | 测量通信链路中的差错率 |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
CN103324143A (zh) * | 2012-03-19 | 2013-09-25 | 发那科株式会社 | 通过io单元进行时间测量的数值控制系统 |
CN104360974A (zh) * | 2014-10-29 | 2015-02-18 | 上海伽利略导航有限公司 | 一种异步串口uart自动波特率调整方法及装置 |
CN105871655A (zh) * | 2016-03-24 | 2016-08-17 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的波特率估计ip核系统 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581100B1 (en) * | 1998-09-18 | 2003-06-17 | Skyworks Solutions, Inc. | System and method for communication parameter determination |
JP3565730B2 (ja) * | 1999-01-13 | 2004-09-15 | 株式会社リコー | Atコマンド解析装置 |
US6687232B1 (en) * | 2000-01-14 | 2004-02-03 | Adtran, Inc. | Subscriber loop terminal equipment-resident mechanism for determining bit rate of high-level data link control communication channel |
EP1122921B1 (en) * | 2000-02-02 | 2005-11-30 | Telefonaktiebolaget LM Ericsson (publ) | Circuit and method for providing a digital data signal with pre-distortion |
US6850561B1 (en) * | 2000-03-21 | 2005-02-01 | Advanced Micro Devices, Inc. | Predictable updating of a baud divisor of an asynchronous serial port during data reception |
US7017056B1 (en) | 2000-07-31 | 2006-03-21 | Hewlett-Packard Development Company, L.P. | Method and apparatus for secure remote control of power-on state for computers |
US6944248B2 (en) * | 2001-05-17 | 2005-09-13 | Bluebrook Associates Llc | Data rate calibration for asynchronous serial communications |
JP2006503469A (ja) * | 2002-10-18 | 2006-01-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 入力ビットを処理するデータ処理装置 |
US7333536B2 (en) * | 2003-10-09 | 2008-02-19 | Stmicroelectronics Pvt. Ltd. | System and method for auto baud rate detection in asynchronous serial communication |
GB0414793D0 (en) | 2004-07-01 | 2004-08-04 | Ttp Communications Ltd | Determining characteristics of communications signals |
US7904631B2 (en) * | 2006-11-02 | 2011-03-08 | Honeywell International Inc. | Protocol independent bridge |
CN101645752B (zh) * | 2008-08-08 | 2013-01-09 | 鸿富锦精密工业(深圳)有限公司 | 通信协议自动侦测系统及方法 |
US10153892B2 (en) * | 2016-07-15 | 2018-12-11 | New Jersey Institute Of Technology | Asynchronous wireless sensing |
KR20190091929A (ko) * | 2018-01-30 | 2019-08-07 | 엘에스산전 주식회사 | Uart 통신속도 자동 전환 방법 |
CN110275851B (zh) * | 2019-07-19 | 2020-02-07 | 广州波视信息科技股份有限公司 | 一种数据串并转换装置、延时器及数据处理方法 |
US20220061008A1 (en) * | 2020-08-21 | 2022-02-24 | Advanced Energy Industries, Inc. | Uart transmissions with two start bits for automatic baud detection and reduced clock skew |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3689846A (en) * | 1971-03-30 | 1972-09-05 | Burroughs Corp | Start bit detection circuit |
US4586189A (en) * | 1984-02-16 | 1986-04-29 | Itt Corporation | Asynchronous to synchronous data interface |
JPH0748779B2 (ja) * | 1987-09-01 | 1995-05-24 | 株式会社村田製作所 | モデム装置 |
US5140679A (en) * | 1988-09-14 | 1992-08-18 | National Semiconductor Corporation | Universal asynchronous receiver/transmitter |
KR900005313A (ko) * | 1988-09-14 | 1990-04-14 | 존 지.웨브 | 16비트 데이타 버스에 바이트폭 uart 전송을 이행하는 방법 및 장치 |
US5008902A (en) * | 1989-01-25 | 1991-04-16 | International Business Machines Corp. | Automatic baud rate detection |
US5072407A (en) * | 1990-01-08 | 1991-12-10 | Gandalf Technologies, Inc. | Serial data rate detection method and apparatus |
JPH04167738A (ja) * | 1990-10-31 | 1992-06-15 | Nec Corp | 調歩同期通信速度検出装置 |
JP2641999B2 (ja) * | 1991-05-10 | 1997-08-20 | 日本電気株式会社 | データ・フォーマット検出回路 |
US5222081A (en) * | 1991-06-28 | 1993-06-22 | Universal Data Systems, Inc. | Method of performing an autobaud function using a state flow machine |
US5627858A (en) * | 1992-07-20 | 1997-05-06 | Telefonaktiebolaget L M Ericsson | Multi-channel autobauding circuit |
US5490209A (en) * | 1994-02-09 | 1996-02-06 | Harris Corporation | Autobaud rate detection mechanism |
US5654983A (en) * | 1994-06-10 | 1997-08-05 | Hayes Microcomputer Products, Inc. | Method and apparatus of operating data communications equipment in command mode and autobauding |
US5649122A (en) * | 1994-06-24 | 1997-07-15 | Startech Semiconductor, Inc. | Universal asynchronous receiver/transmitter with programmable xon/xoff characters |
-
1998
- 1998-03-16 US US09/039,876 patent/US6157689A/en not_active Expired - Lifetime
-
1999
- 1999-02-09 WO PCT/US1999/002706 patent/WO1999048244A2/en active IP Right Grant
- 1999-02-09 BR BR9908831-2A patent/BR9908831A/pt not_active IP Right Cessation
- 1999-02-09 AU AU26639/99A patent/AU2663999A/en not_active Abandoned
- 1999-02-09 EP EP99906816A patent/EP1070410B1/en not_active Expired - Lifetime
- 1999-02-09 CN CN99804065.7A patent/CN1293852A/zh active Pending
- 1999-02-09 EE EEP200000542A patent/EE200000542A/xx unknown
- 1999-02-09 DE DE69917624T patent/DE69917624T2/de not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100392605C (zh) * | 2002-12-03 | 2008-06-04 | Adc长途电讯有限公司 | 测量通信链路中的差错率 |
CN103324143A (zh) * | 2012-03-19 | 2013-09-25 | 发那科株式会社 | 通过io单元进行时间测量的数值控制系统 |
CN103324143B (zh) * | 2012-03-19 | 2014-10-01 | 发那科株式会社 | 通过io单元进行时间测量的数值控制系统 |
US9377770B2 (en) | 2012-03-19 | 2016-06-28 | Fanuc Corporation | Numerical control system using I/O unit for time measurement |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
CN103001734B (zh) * | 2012-10-17 | 2015-05-06 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
CN104360974A (zh) * | 2014-10-29 | 2015-02-18 | 上海伽利略导航有限公司 | 一种异步串口uart自动波特率调整方法及装置 |
CN105871655A (zh) * | 2016-03-24 | 2016-08-17 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的波特率估计ip核系统 |
CN105871655B (zh) * | 2016-03-24 | 2019-03-29 | 哈尔滨工业大学 | 一种应用于串行总线分析仪器的波特率估计ip核系统 |
Also Published As
Publication number | Publication date |
---|---|
WO1999048244A3 (en) | 1999-11-04 |
EP1070410A2 (en) | 2001-01-24 |
DE69917624D1 (de) | 2004-07-01 |
US6157689A (en) | 2000-12-05 |
EE200000542A (et) | 2002-04-15 |
AU2663999A (en) | 1999-10-11 |
BR9908831A (pt) | 2000-11-21 |
DE69917624T2 (de) | 2004-09-30 |
EP1070410B1 (en) | 2004-05-26 |
WO1999048244A2 (en) | 1999-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1293852A (zh) | 用于异步串行通信的自动速率检测 | |
CN1009893B (zh) | 测定数据传输速率的方法和装置 | |
US5222081A (en) | Method of performing an autobaud function using a state flow machine | |
CN1110886A (zh) | 移动电话机备用时的电源节省 | |
CN103001734A (zh) | 一种基于电平采样的异步串口通信协议自动侦测方法 | |
CN1764179A (zh) | 减小通讯设备功耗的方法和系统 | |
CN102546084A (zh) | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 | |
CN105553628B (zh) | 一种串行通讯波特率检测方法及装置 | |
CN106533621B (zh) | 基于简化的modbus协议的永磁同步电机实时监控的通讯方法 | |
CN102480333B (zh) | 线路编码方法、编码数据块同步的处理方法及装置 | |
FI74847B (fi) | Kommunikationsanordning med underbelastningssignalsystem. | |
CN212969687U (zh) | 异步串口通信波特率自动检测装置 | |
CN103873317A (zh) | 一种ccsds空间链路协议检测方法及系统 | |
CN1119067C (zh) | 比特同步电路及其方法 | |
CN1130860C (zh) | 自动测试调制解调器的方法 | |
WO1989005072A1 (en) | Apparatus and method for identification of message initiation in a process control network | |
EP0669738A2 (en) | System and method for automatically detecting speed, parity, and character length | |
CN113794538A (zh) | 一种高效率的双机通讯反馈方法 | |
KR100976579B1 (ko) | 보 레이트 검출 | |
CN113922924A (zh) | 一种基于spi的绝对值编码器通信方法及系统 | |
JPH07264263A (ja) | シリアル通信インターフェース装置 | |
US5793803A (en) | Underrecovery system and method for block processing modems | |
CN113672544B (zh) | 一种串口通信传输速率的匹配方法 | |
JPH0357349A (ja) | 回線速度検出方式 | |
CN1028825C (zh) | 用于数据通信接收机的节电装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1036538 Country of ref document: HK |