CN1774696B - 通过主处理器实现设备之间的异步串行通信的方法和系统 - Google Patents

通过主处理器实现设备之间的异步串行通信的方法和系统 Download PDF

Info

Publication number
CN1774696B
CN1774696B CN2004800038910A CN200480003891A CN1774696B CN 1774696 B CN1774696 B CN 1774696B CN 2004800038910 A CN2004800038910 A CN 2004800038910A CN 200480003891 A CN200480003891 A CN 200480003891A CN 1774696 B CN1774696 B CN 1774696B
Authority
CN
China
Prior art keywords
task
instruction block
serial
priority
external unit
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.)
Expired - Fee Related
Application number
CN2004800038910A
Other languages
English (en)
Other versions
CN1774696A (zh
Inventor
乔迪·W·刘易斯
克里·L·里格斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GVBB Holdings SARL
Original Assignee
Thomson Licensing SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN1774696A publication Critical patent/CN1774696A/zh
Application granted granted Critical
Publication of CN1774696B publication Critical patent/CN1774696B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

主处理器(11)通过建立串行通信所需要的必要任务来管理与一个或多个外部设备的串行通信。例如,这些任务可以包括(1)串行设备处理,(2)协议封装,和(3)与外部设备的低层通信。在最大化主处理器的处理器效率时,将优先级分配给每个任务,从而满足计时要求。一旦完成每个较低优先级任务,则启动下一个较高优先级任务的执行,从而使数据处理与数据通信同步。

Description

通过主处理器实现设备之间的异步串行通信的方法和系统
交叉引用相关申请
根据35U.S.C.119(e),本发明要求于2003年2月11日提交的美国临时专利申请序列号60/446,524、以及于2003年3月14日提交的美国临时专利申请序列号60/454,734的优先级,其教导在此结合。
技术领域
本发明涉及一种用于实现设备之间的异步串行通信的技术。
背景技术
嵌入式系统通常采用某种形式的异步串行通信与其他设备进行通信。一般来说,协处理器将管理用于通信的串行协议的复杂细节。在没有协处理器时,维护串行设备的任务将落到主处理器上,从而消耗有用的资源并且强加繁琐的优先级和计时要求。多数串行协议一般具有严格的计时要求。在没有协处理器时,处理串行通信任务的主处理器将需要系统硬件的详细知识以发挥处理器的性能。系统硬件的知识需要了解常常易出错的低层设备驱动程序。在该点上,主处理器必须验证串行设备的遵从性(compliance)并且保证其自己的遵从性。采用关于处理器优先级的普通方法将浪费处理器资源。将任务优先级设置得过低将造成由于任务预占而导致的错过最后期限,所述任务预占是由于其他以较高优先级运行的任务而导致的。将任务优先级设置得过高将阻碍关键任务和浪费处理器时间。
因此,需要一种用于在没有协处理器时实现异步串行通信的技术,从而克服上述缺陷。
发明内容
简单来说,根据本发明原理的优选实施例,提供一种通过主处理器来管理串行通信的方法。所述方法首先建立串行通信所需要的必要任务。例如,这些任务可以包括(1)串行设备处理,(2)协议封装,和(3)与外部设备的低层通信。在最大化主处理器的处理器效率时,将优先级分配给每个任务,从而满足计时要求。在其完成之后,每个较低优先级任务启动具有紧接着的较高优先级的任务的执行,从而使数据处理与数据通信同步。
具体的,根据本发明的一个方面,提供一种通过主处理器来方便与至少一个外部通信设备进行异步串行通信的方法。该方法包括以下步骤:在所述主处理器建立设备管理器指令块、串行协议指令块和串行端口指令块,其中每个块包括至少一个由所述主处理器执行以实现串行通信的指令,并且每个块具有至少一个以指定优先级运行的任务,从而不同块的任务具有分级优先级;执行所述设备管理器指令块、串行协议指令块和串行端口指令块,从而每个块中的至少一个任务以其各自的优先级运行;以及一旦完成了相应的较低优先级任务,则触发具有紧接着的较高优先级的任务。
根据本发明的另一方面,提供另一种通过主处理器来方便与至少一个外部通信设备进行异步串行通信的方法。所述方法包括以下步骤:在所述主处理器建立用于串行设备处理的第一指令块、用于协议封装的第二指令块、以及用于与外部设备进行低层通信的第三指令块,其中每个指令块包括至少一个用于由所述主处理器执行的指令,并且每个块具有至少一个以指定优先级运行的任务,从而不同块的任务具有分级优先级;执行所述第一、第二和第三指令块,从而每个指令块中的至少一个任务以其各自的优先级运行;以及一旦完成了相应的较低优先级任务,则触发具有紧接着的较高优先级的任务。
附图说明
图1示出了用于说明与关于串行通信的不同任务有关的一组逻辑块(对象)中的每个的原理图;和
图2示出了用于说明图1的任务所执行的事件的顺序的时序图。
具体实施方式
图1示出了根据本发明原理的系统10的方框图,所述系统不需要专用协处理器就能有效地管理与一个或多个外部设备(未示出)的串行通信。该系统10包括具有第一块12的主处理器11,所述第一块12采取一组指令和相关数据文件的形式。第一块12(下文中称为“设备管理器”)执行关于串行通信的第一组操作,其包括地址空间的轮询,所述地址空间包括处理器10想要通过串行端口13与其通信的串行设备(未示出)。当存在时,通过串行端口13连接到主处理器11的每个串行设备将响应,从而允许设备管理器12从为了通信而需要的设备中请求数据。对于已识别的串行设备,设备管理器块12创建一个任务(如图1所示的设备管理器任务14),该任务启动已识别设备的轮询以进行数据更新。至少相对于其他系统任务,设备管理器任务14以较低优先级运行。如下文中所讨论的,将任务(例如,设备管理器任务14)定义为动作的执行,而对象(例如,设备管理器12)提供由任务使用的功能和/或数据。
在处理器11内,第二块15(下文中称为串行协议块)封装通过串行端口13与外部设备进行通信所采用的串行协议的细节。这样的串行协议的一个例子是esTributary协议,尽管也存在其他协议并且可以很容易地使用这些协议。串行协议块15提供用于根据协议规范来格式化输出消息以及确保输出消息符合协议的计时要求的功能。串行协议块15也包含验证输入消息遵守协议规范和协议计时要求的功能性。串行协议块15创建一个任务16(下文中称为串行协议任务),所述任务根据这个特定的协议要求,控制通过串行端口13向/从外部设备的数据写入/数据读取。串行协议任务15以十分高的优先级来运行,从而保证任务满足给定的计时时限。
图1的主处理器11还包括第三块17(称为串行端口块),串行端口块17封装与串行端口13的低层通信。串行端口块17用于创建串行端口13的抽象(即,模型),从而使这个块的结构更加可移植并且可以再次使用。串行端口块17提供从串行端口13读取数据和将数据写入到串行端口13的功能,并且还负责在读取操作中执行超时设定。串行端口块17创建一个任务18(下文中称为串行读取任务),其通过串行端口13读取发送到处理器11的所有串行数据。因此,串行读取任务必须以足够高的优先级运行从而保证任务满足任何采用串行端口的协议所要求的计时时限。
图2示出了用于说明与启动串行通信有关的事件的顺序的时序图,说明了本发明原理的串行通信技术的优势。当图1的设备管理器任务14通过调用设备管理器12的轮询90功能来启动对应于图1的串行端口13的地址的轮询时,开始串行通信的处理。轮询90转而调用串行协议15的轮询100功能。轮询100转而调用将目的地址复制到串行协议块15的SetDate110功能,然后调用串行端口17的semGive120功能。
在某个先前轮询事件的最初或之后,串行协议任务16在semTake130阻塞(停止运行),以等待它的信号量。SemGive120功能触发具有有效数据并且可能正在运行的串行协议任务16。这将导致写140功能被调用,该写140功能将轮询数据写入图1的串行端口13。然后,调用读150功能。读150转而调用semTake160功能,semTake160功能使得串行协议任务16阻塞(停止运行),直到其在170中被触发。
串行读取任务18在其读180功能中不断地查找来自图1的串行端口13的输入数据。当任何数据可用时,将它们复制到串行端口块17中。当读150中所要求的数据可用或者经过了规定的时间时,semTake 160功能在170返回。这触发串行协议任务16运行,其将轮询数据(如果读取成功)或错误指示(如果超过时限)返回至设备管理器任务14。
串行读取任务18以较高的系统优先级运行,从而可以保证满足其计时时限。但是由于它只在可以从图1的串行端口13得到数据时才运行,所以它将不会不必要地浪费系统资源。
同样地,由于串行协议任务16以较高的系统优先级运行,所以也可以保证满足其计时时限。由于它只在请求轮询功能时才被触发运行,所以当不需要它时也不会不必要地浪费系统资源。当它有效并且等待来自串行设备的响应时,它也在串行端口块17上阻塞(停止并且等待),以便触发其再次运行,因此,在这个阶段的通信周期期间不浪费不必要的系统资源。轮询是一种用于与一组串行设备进行通信的方法。另一个选择就是在数据可用时让串行端口中断处理器。如果只附有一个串行设备,则处理器不用进行任何轮询或寻址就可以与其进行通信。本技术可应用于所有这些机制。通过低优先级设备管理器任务14来控制(gate)整个串行通信周期。这就使得系统在串行通信周期期间满足串行协议的计时要求。但是只在系统中的其他较高优先级任务允许设备管理器任务14运行的时候,才允许这些串行通信周期运行。
以上描述了一种不需要用于管理通信任务的专用协处理器就可以实现串行通信的技术。

Claims (15)

1.一种通过主处理器来方便与至少一个外部通信设备进行异步串行通信的方法,所述方法包括以下步骤:
在所述主处理器建立设备管理器指令块、串行协议指令块和串行端口指令块,其中每个块包括至少一个由所述主处理器执行以实现串行通信的指令,并且每个块具有至少一个以指定优先级运行的任务,从而不同块的任务具有分级优先级;
执行所述设备管理器指令块、串行协议指令块和串行端口指令块,从而每个块中的至少一个任务以其各自的优先级运行;以及
一旦完成了相应的较低优先级任务,则触发具有紧接着的较高优先级的任务。
2.如权利要求1所述的方法,其中所述设备管理器指令块建立与外部设备的通信。
3.如权利要求2所述的方法,其中所述设备管理器指令块启动设备管理器任务,该设备管理器任务启动地址轮询以进行更新。
4.如权利要求1所述的方法,其中所述串行协议指令块包含与外部设备进行通信所采用的每个串行协议的细节。
5.如权利要求4所述的方法,其中所述串行协议指令块启动串行协议任务,所述串行协议任务控制向和从外部设备的数据写入和数据读取。
6.如权利要求1所述的方法,其中所述串行端口指令块封装与串行端口的低层通信。
7.如权利要求6所述的方法,其中所述串行端口指令块启动串行读取任务,该串行读取任务从外部设备读取数据。
8.一种通过主处理器来方便与至少一个外部通信设备进行异步串行通信的方法,所述方法包括以下步骤:
在所述主处理器建立用于串行设备处理的第一指令块、用于协议封装的第二指令块、以及用于与外部设备进行低层通信的第三指令块,其中每个指令块包括至少一个用于由所述主处理器执行的指令,并且每个块具有至少一个以指定优先级运行的任务,从而不同块的任务具有分级优先级;
执行所述第一、第二和第三指令决,从而每个指令块中的至少一个任务以其各自的优先级运行;以及
一旦完成了相应的较低优先级任务,则触发具有紧接着的较高优先级的任务。
9.如权利要求8所述的方法,其中所述第一指令块包括第一任务,所述第一任务启动地址轮询以进行更新。
10.如权利要求8所述的方法,其中所述第二指令块启动第二任务,所述第二任务控制向和从外部设备的数据写入和数据读取。
11.如权利要求8所述的方法,其中所述第三指令块启动第三任务,所述第三任务从外部设备读取数据。
12.一种包括主处理器的系统,用于方便与至少一个外部通信设备进行异步串行通信,所述系统包括:
用于串行设备处理的第一模块,
用于协议封装的第二模块,以及
用于与至少一个外部设备进行低层通信的第三模块,
其中每个模块具有至少一个以指定优先级运行的任务,从而不同模块的任务具有分级的优先级;并且所述第一、第二和第三模块中的至少一个任务以其各自的优先级运行;并且其中一旦完成相应的较低优先级任务,则触发具有紧接着的较高优先级的任务。
13.如权利要求12所述的系统,其中所述第一模块包括第一任务,该第一任务启动地址轮询以进行更新。
14.如权利要求12所述的系统,其中所述第二模块启动第二任务,该第二任务控制向和从外部设备的数据写入和数据读取。
15.如权利要求12所述的系统,其中所述第三模块启动第三任务,该第三任务从外部设备读取数据。
CN2004800038910A 2003-02-11 2004-02-09 通过主处理器实现设备之间的异步串行通信的方法和系统 Expired - Fee Related CN1774696B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US44652403P 2003-02-11 2003-02-11
US60/446,524 2003-02-11
US45473403P 2003-03-14 2003-03-14
US60/454,734 2003-03-14
PCT/US2004/003701 WO2004072852A1 (en) 2003-02-11 2004-02-09 Asynchronous communications technique

Publications (2)

Publication Number Publication Date
CN1774696A CN1774696A (zh) 2006-05-17
CN1774696B true CN1774696B (zh) 2010-04-28

Family

ID=32871989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800038910A Expired - Fee Related CN1774696B (zh) 2003-02-11 2004-02-09 通过主处理器实现设备之间的异步串行通信的方法和系统

Country Status (7)

Country Link
US (1) US8631176B2 (zh)
EP (1) EP1593040A4 (zh)
JP (2) JP2006518902A (zh)
KR (1) KR101119458B1 (zh)
CN (1) CN1774696B (zh)
CA (1) CA2514662A1 (zh)
WO (1) WO2004072852A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1820100B1 (en) * 2004-11-30 2008-08-27 Koninklijke Philips Electronics N.V. Efficient switching between prioritized tasks
US20090083738A1 (en) * 2007-09-25 2009-03-26 Microsoft Corporation Automated data object set administration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1054160A (zh) * 1990-02-14 1991-08-28 国际商业机器公司 通信接口适配器
US5590288A (en) * 1991-07-30 1996-12-31 Restaurant Technology, Inc. Distributed data processing system and method utilizing peripheral device polling and layered communication software
US6275864B1 (en) * 1991-08-13 2001-08-14 Storage Technology Corporation Matrix switch for a network management system
CN1316698A (zh) * 2001-06-01 2001-10-10 北京四方同创保护与控制设备有限公司 广义异步串行通信协议数据链路层软件接口方法
US6438146B1 (en) * 1998-04-13 2002-08-20 International Business Machines Corporation Multiplexed asynchronous serial communication systems methods and computer program products

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800521A (en) * 1982-09-21 1989-01-24 Xerox Corporation Task control manager
US6353857B2 (en) * 1997-03-31 2002-03-05 Intel Corporation Controllerless modem
US6230118B1 (en) * 1997-06-30 2001-05-08 Cirrus Logic, Inc. DOS based application supports for a controllerless modem
JPH11259410A (ja) * 1998-03-13 1999-09-24 Canon Inc 情報処理装置及び情報処理装置における接続装置制御方法並びに記憶媒体
US6360281B1 (en) * 1998-05-29 2002-03-19 3Com Corporation System and method for communicating with a serial communications device using multiple virtual ports
JP3775135B2 (ja) * 1999-10-15 2006-05-17 日産自動車株式会社 マルチタスク処理システム
JPWO2002054548A1 (ja) * 2000-12-28 2004-05-13 松下電器産業株式会社 短波長レーザモジュールおよびその製造方法
US6577635B2 (en) * 2001-02-26 2003-06-10 Maple Optical Systems, Inc. Data packet transmission scheduling
JP4015898B2 (ja) * 2002-07-26 2007-11-28 松下電器産業株式会社 プログラム実行装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1054160A (zh) * 1990-02-14 1991-08-28 国际商业机器公司 通信接口适配器
US5590288A (en) * 1991-07-30 1996-12-31 Restaurant Technology, Inc. Distributed data processing system and method utilizing peripheral device polling and layered communication software
US6275864B1 (en) * 1991-08-13 2001-08-14 Storage Technology Corporation Matrix switch for a network management system
US6438146B1 (en) * 1998-04-13 2002-08-20 International Business Machines Corporation Multiplexed asynchronous serial communication systems methods and computer program products
CN1316698A (zh) * 2001-06-01 2001-10-10 北京四方同创保护与控制设备有限公司 广义异步串行通信协议数据链路层软件接口方法

Also Published As

Publication number Publication date
US20060090019A1 (en) 2006-04-27
US8631176B2 (en) 2014-01-14
EP1593040A1 (en) 2005-11-09
JP2006518902A (ja) 2006-08-17
CN1774696A (zh) 2006-05-17
JP2011048844A (ja) 2011-03-10
EP1593040A4 (en) 2007-02-28
KR20050105462A (ko) 2005-11-04
KR101119458B1 (ko) 2012-03-16
CA2514662A1 (en) 2004-08-26
WO2004072852A1 (en) 2004-08-26

Similar Documents

Publication Publication Date Title
CN100517236C (zh) 智能卡嵌入式操作系统及其控制方法
CN101272564B (zh) 一种软实时定时器调度的方法及软实时定时器模块
CN103942178A (zh) 多核处理器上实时操作系统与非实时操作系统之间的通信方法
US20100153957A1 (en) System and method for managing thread use in a thread pool
KR0128274B1 (ko) 인터페이스 시스템 및 그 동작 방법
CN112671760A (zh) 基于Socket的客户端跨平台网络通信方法及其相关设备
US11347546B2 (en) Task scheduling method and device, and computer storage medium
CN113658351B (zh) 一种产品生产的方法、装置、电子设备及存储介质
CN1774696B (zh) 通过主处理器实现设备之间的异步串行通信的方法和系统
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
US20060184708A1 (en) Host controller device and method
CN109361653B (zh) 一种powerlink主站
CN101349975B (zh) 一种在嵌入式操作系统上实现中断底半部机制的方法及装置
CN108958904B (zh) 嵌入式多核中央处理器的轻量级操作系统的驱动程序框架
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统
CN114760336B (zh) 基于统一接口的多通道复用和通信模式的物联网操作系统
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
CN107634916B (zh) 一种数据通信方法和装置
CN104731652A (zh) 业务的处理方法及装置
KR0154573B1 (ko) 칠 시뮬레이션 환경에서의 프로세스간 통신 방법
JP2000347881A (ja) 複数プロセス間通信方法及びその装置並びに情報記録媒体
US20100110954A1 (en) Method and system for synchronization between application layer controllers and wireless device
CN113778712A (zh) 嵌入式系统
CN117891761A (zh) 一种直接内存访问系统及数据搬运方法
CN117687701A (zh) 一种基于多对多控制的kvm切换器及其控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: GVBB HOLDINGS S.A.R.L.

Free format text: FORMER OWNER: THOMSON LICENSING CORP.

Effective date: 20120605

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120605

Address after: Luxemburg Luxemburg

Patentee after: Gvbb Holdings S. A. R. L.

Address before: French Boulogne

Patentee before: Thomson Licensing Corp.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100428

Termination date: 20140209