CN112988641A - 一种通用异步收发传输器和包含该传输器的处理器 - Google Patents
一种通用异步收发传输器和包含该传输器的处理器 Download PDFInfo
- Publication number
- CN112988641A CN112988641A CN201911284830.0A CN201911284830A CN112988641A CN 112988641 A CN112988641 A CN 112988641A CN 201911284830 A CN201911284830 A CN 201911284830A CN 112988641 A CN112988641 A CN 112988641A
- Authority
- CN
- China
- Prior art keywords
- data
- time period
- register
- baud rate
- frequency
- 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
- 230000005540 biological transmission Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 52
- 230000002093 peripheral effect Effects 0.000 claims description 35
- 230000000630 rising effect Effects 0.000 claims description 35
- 239000000872 buffer Substances 0.000 claims description 27
- 230000000737 periodic effect Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 22
- 238000000034 method Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种数据发射器,包括输出移位寄存器和控制单元。输出移位寄存器存储要以波特率串行输出的发射数据;以及控制单元耦接到输出移位寄存器,根据该发射器的工作频率波特率确定适于输出发射数据的时间周期,并指示输出移位寄存器在所确定的时间周期中串行输出发射数据。该时间周期最接近以波特率输出数据的时间点。本发明还公开了相应的数据接收器、包括该数据发射器和接收器的通用异步收发传输器。
Description
技术领域
本发明涉及处理器领域,尤其涉及处理器中的通用异步收发传输器。
背景技术
随着物联网的快速发展,出现了越来越多的IoT设备,这些设备中通常会使用嵌入式设备来进行数据处理。这些设备由于所处的环境原因,通常对功耗具有较高的要求。因此,嵌入式设备通常会将工作模式划分为正常工作的高功耗模式(工作模式)以及空闲状态的低功耗模式(空闲模式),并根据工作状态而在这两个模式之间进行切换以减少功耗。
嵌入设备会利用通用异步收发传输器(UART)和支持串行通信的外围设备进行通信。在传统的UART中,依照嵌入设备的工作时钟频率和UART所配置的波特率,计算出一个固定的数值V(即工作时钟频率和波特率的比值)。UART每隔V个工作时钟周期对串行输入信号进行采样,或每隔V个工作时钟周期将串行信号发送出去。由于嵌入设备一般在正常工作模式下利用UART和外围设备进行通信,而嵌入设备在工作模式下的工作时钟频率远高于串行波特率,因此,根据比值V来确定采样时间点/发送时间点的偏差可以忽略不计。
当嵌入设备在空闲模式下时,除了实时时钟RTC之外,其它的时钟都关闭了,因此,在空闲模式下,为了能够通过UART和外围设备进行串行通信,则通常使用RTC时钟作为工作时钟。
然而,由于UART进行串行传输的波特率和RTC的时钟频率较为接近,利用现有的方案(即利用比值V的方案)而累积的时间偏差可能会导致采样/发送错误的电平值。
现有的一种方案是在空闲模式下,需要UART进行串行通信时,将嵌入设备返回到正常工作模式,这种方式会显著增加临时的功耗。另一种方式是为UART另外提供专门的低频工作时钟,这种方式会增加额外的电路成本。
因此,需要一种新的UART采样和发射方案,可以在波特率和工作时钟比较接近时,克服现有技术方案中的缺陷并仍然能够准确地进行数据采样/发射。
发明内容
为此,本发明提供了一种新的通用异步收发传输器、处理器和片上系统,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种数据发射器,包括输出移位寄存器和控制单元。输出移位寄存器存储要以波特率串行输出的发射数据;以及控制单元耦接到输出移位寄存器,根据该发射器的工作频率波特率确定适于输出发射数据的时间周期,并指示输出移位寄存器在所确定的时间周期中串行输出发射数据。该时间周期最接近以波特率输出数据的时间点。
可选地,在根据本发明的数据发射器中,时间周期为由周期信号定义的时间段,该周期信号顺序包括上升沿、高电平阶段、下降沿和低电平阶段,以及控制单元适于确定所确定的时间周期中、与上升沿相对应的发送时间点,并指示输出移位寄存器在所确定的时间点串行输出发射数据。该发送时间点最接近以波特率输出数据的时间点。
可选地,在根据本发明的数据发射器中,控制单元包括频率寄存器,以及控制单元适于在要串行输出数据之前,将该频率寄存器的值初始化为工作频率;每进入一个时间周期,将频率寄存器中的值减去波特率,并将剩余的值和波特率进行比较;如果频率寄存器中的值低于波特率的一半,则确定该时间周期为要串行输出发射数据的时间周期,并将频率寄存器中的值增加该工作频率;以及如果频率寄存器中的值不低于波特率的一半且低于波特率时,则确定该时间周期的下一个时间周期为要串行输出发射数据的时间周期,并将频率寄存器中的值增加该工作频率。
可选地,在根据本发明的数据发射器中,控制单元适于在每个时间周期中与上升沿相对应的时间点来更新频率寄存器中的值并控制输出移位寄存器的串行输出。
可选地,根据本发明的数据发射器还包括输出缓存寄存器,适于以并行方式接收要输出的发射数据;以及控制单元耦接到输出缓存寄存器和输出移位寄存器,适于控制输出缓存寄存器将发射数据发送到输出移位寄存器,以及控制输出移位寄存器在所确定的时间周期串行输出该发射数据。
根据本发明的另一个方面,提供了一种数据接收器,包括输入移位寄存器和控制单元。输入移位寄存器存储要以波特率串行输入的接收数据。控制单元耦接到输入移位寄存器,根据接收器的工作频率和波特率确定适于串行输入接收数据的时间周期,并指示输入移位寄存器在所确定的时间周期中串行输入接收数据。时间周期最接近以波特率输入数据的时间点。
可选地,在根据本发明的数据接收器中,控制单元包括频率寄存器,以及控制单元适于在要串行输入数据之前,将频率寄存器的值初始化为工作频率的一半;每进入一个时间周期,将频率寄存器中的值减去波特率,并将剩余的值和波特率进行比较;如果频率寄存器中的值低于波特率的一半,则确定该时间周期为要串行输入接收数据的时间周期,并将频率寄存器中的值增加工作频率;以及如果频率寄存器中的值不低于波特率的一半且低于波特率时,则确定该时间周期的下一个时间周期为要串行输入接收数据的时间周期,并将频率寄存器中的值增加工作频率。
根据本发明的还有一个方面,提供了一种通用异步收发传输器,包括根据本发明的数据发射器和数据接收器。
根据本发明的另一个方面,提供了一种处理器,包括指令处理装置,适于进行指令处理,以便将数据发送到外围设备或者从外围设备接收数据;以及根据本发明的通用异步收发传输器,耦接到指令处理装置和外围设备,适于将来自指令处理装置的数据异步发射到外围设备,以及异步接收来自外围设备的数据并发送到指令处理装置。
根据本发明的还有另一个方面,提供了一种片上系统,包括根据本发明的指令处理装置或者处理器。
根据本发明的还有另一个方面,还提供了一种智能设备,包括根据本发明的片上系统。
根据本发明的方案,无论是在串行输出(发射)数据还是在串行输入(采样)数据时,都先确定最接近以波特率进行数据发射和/或采样时的时间周期,然后在这个时间周期进行数据发射和/或采样。利用这种方案,进行数据发射和/或采样的时间周期之间并不是以固定间隔隔开(即,间隔预定数量个时间周期),一些时间周期之间的间隔较短,而另一些时间周期之间的间隔较长,这样,就可以减少采用固定间隔的时间周期而导致的时间偏差积累,从而确保进行准确的数据发射和/或采样。
另外,根据本发明的方案,可以在UART的控制单元中加入专门的频率寄存器,并在每个时间周期对频率寄存器中的值进行更新以指示在UART的工作时钟频率和预定的波特率之间的差值,并在寄存器中的值低于整个波特率时,选择最接近以波特率进行操作的那个时间周期(即,寄存器值低于波特率值一半时的当前时间周期,以及寄存器值大于波特率值一半时的下一个时间周期)来进行数据异步传输,从而实现了准确的数据异步传输。
根据本发明的方案,可以在诸如嵌入式设备之类的IoT设备处于低功耗模式下时,让UART以例如设备中较低频率的时钟信号作为工作时钟来进行操作,并准确地以正常波特率进行信号的串行传输。对于IoT设备来说,可以利用UART来连接诸如网络传输单元、以串行方式进行数据传输的监控单元(心率、温度监控单元)之类的外围设备。由于可以在低功耗模式下就可以进行这样的信号传输,因此,可以低功耗模式进行信号的实时监控,由此减少了设备的功耗,并延长了设备的使用时间,使得这样的IoT设备在电池供电的情况下长时间工作成为可能。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的指令处理装置100的示意图;
图2示出了根据本发明一个实施例的通用异步收发传输器200的示意图;
图3示出了根据本发明另一个实施例的通用异步收发传输器300的示意图;
图4示出了根据本发明一个实施例的发射器输出信号的时序示意图;
图5示出了根据本发明一个实施例的接收器接收信号的时序示意图;
图6示出了根据本发明一个实施例的处理器的示意图;以及
图7示出了根据本发明的一个实施例的片上系统(SoC)的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是根据本发明一个实施例的指令处理装置100的示意图。在一些实施例中,指令处理装置100可以是处理器、多核处理器的处理器核、或者电子系统中的处理元件。
如图1所示,指令处理装置100包括取指令单元130。取指令单元130可以从高速缓存110、存储设备120或其他源获取要处理的指令,并发送给解码单元140。取指令单元130所取出的指令包括但不限于高级机器指令或者宏指令等。处理装置100通过执行这些指令来完成特定功能。
解码单元140接收从取指令单元130传入的指令,并且解码这些指令以生成低级微操作、微代码进入点、微指令或其他低级指令或控制信号。它们反映了所接收的指令或者从所接收的指令导出。低级指令或控制信号可通过低级(例如,电路级或硬件级)操作来实现高级指令的操作。可使用各种不同的机制来实现解码单元140。合适机制的示例包括但不限于,微代码、查找表、硬件实现、可编程逻辑阵列(PLA)。本发明不受限于实现解码单元140的各种机制,任何可以实现解码单元140的机制都在本发明的保护范围之内。
随后,这些经解码的指令被发送到执行单元150,并由执行单元150执行。执行单元150包括可操作用于执行指令的电路。执行单元150在执行这些指令时,从寄存器组170、高速缓存110和/或存储设备120接收数据输入并向它们生成数据输出。
寄存器组170包括架构寄存器,架构寄存器也被称为寄存器。除非另外予以规定或清楚明显可知,在本文中,短语架构寄存器、寄存器组、以及寄存器用于表示对软件和/或编程器可见(例如,软件可见的)和/或由宏指令指定来标识操作数的寄存器。这些寄存器不同于给定微架构中的其他非架构式寄存器(例如,临时寄存器、重排序缓冲器、引退寄存器等)。根据一个实施例,寄存器组170可以包括一组矢量寄存器175,其中的每个矢量寄存器175可以是512位、256位、或128位宽,或者可以使用不同的向量宽度。可选地,寄存器组170还可以包括一组通用寄存器176。通用寄存器176可以在执行单元执行指令时使用,例如存储跳转条件、存储指令运算结果、存储要访问数据的地址,存储从高速缓存110和/或存储设备120读取的数据等。
执行单元150可以包括多个具体的指令执行单元150a、150b…150c等,这些指令执行单元诸如例如算术单元、算术逻辑单元(ALU)、整数单元、浮点单元、数据存取单元、外围设备操作单元等,并且可以分别执行不同类型的指令。
例如,指令执行单元150a为数据存取单元,可以执行与数据操作相关的指令。与数据操作相关的指令包括数据存储指令和数据加载指令。数据存储指令用于向高速缓存110或存储设备120写入数据。而数据加载指令用于从高速缓存110或存储设备120读取数据。
指令执行单元150b为外围设备操作单元,可以从外围设备160读取数据或者将数据发送给外围设备160。这样的外围设备160例如包括打印机等一些支持串行数据通信的设备。由于指令处理装置100以便以并行方式来接收和发送数据,因此,指令处理装置100包括通用异步收发传输器(UART)200。外围设备160通过特定接口(例如RS 232接口)连接到UART200。UART 200与外围设备160进行串行通信,以便将指令处理装置100中的数据串行传输给外围设备160以及从外围设备160接收串行输入的数据。
指令执行单元150b经由总线180耦接到UART 200。这样UART 200可以通过总线180接收从指令执行单元150b并行输入的数据并串行输出到外围设备160,或者将数据并行输出到总线180并进而发送给指令执行单元150b。
虽然未在图1中示出,但是应当理解的是,除了总线180之后,UART 200具有其它与指令处理装置100相连接的接口。这些接口包括接收工作时钟频率信号的接口、接收各种状态位设置的接口(使能发射数据、使能接收数据等)、指示UART 200状态的接口(允许缓存数据,接收数据错误等)、以及中断接口(在接收到数据时产生中断,以便让指令处理装置100通过中断处理程序来获取所接收的数据并处理),本发明不受限于UART 200的具体接口设置,所有可以让指令处理装置100能够和UART 200进行通信并控制UART 200的操作的具体接口设置和定义都在本发明的保护范围之内。
根据一种实施方式,外围设备160可以是监控设备,可以对周围环境信息,例如温度等进行监控,并且将这些环境信息数据经由UART 200,以串行方式发送给作为IoT设备的处理器的指令处理装置100。当温度等数据为正常数据时,指令处理装置100保持低功耗模式,并将RTC(实时时钟)信号作为工作信号接入到UART 200中,以便UART200根据RTC信号来对以预定波特率传输的温度等数据进行处理。而当温度等数据出现异常时,指令处理装置100可以切换到正常操作模式,并开始让UART 200以较高的操作频率进行操作,并对该温度数据进行后续处理。利用这种方式,可以显著降低IoT设备在环境数据正常状态下的功耗,延长设备的工作时间。
为了避免混淆描述,已示出和描述了相对简单的指令处理装置100。应当理解,指令处理装置100可以具有不同的形式,例如指令处理装置或处理器的其他实施例可具有多个核、逻辑处理器或执行引擎。
图2示出了根据本发明一个实施例的通用异步收发传输器(UART)200的示意图。图3是根据本发明另一个实施例的通用异步收发传输器(UART)300的示意图。应当注意的是,在图2和3中,根据要在UART 200和300中实现的串行传输功能而对UART中的各个部件进行了逻辑划分,这些逻辑划分方式是示意性的,并且可以根据实际的物理布局和业务需要而进行重新划分。所以这些都没有脱离本发明的保护范围。
如图2所示,通用异步收发传输器(UART)200包括发射器210和接收器220。发射器210接收指令处理装置100经由总线180发出的数据(并行方式),缓存数据并以串行方式将数据发送给外围设备160。接收器220则与发射器210相反,以串行方式接收来自外围设备160的数据,缓存数据,并将所接收的数据经由总线180发送到指令处理装置100进行后续处理。
发射器210包括输出移位寄存器212和控制单元214。输出移位寄存器212存储要串行输出的数据。这样的数据包括多位。输出移位寄存器212通过逐个位的移位操作,将每次移位出的数据位发送到耦接到外部设备160的数据线(也称为发射线)上,从而实现了数据的串行输出。数据的串行传输具有预定的数据格式,根据本发明的一个实施方式,串行数据以8个数据位为一帧,在开始传输之前,将发射线上的电平置为高电平,随后,通过最开始的低电平来指示初始化要启动传输,在初始化的启动低电平之后,续之以8位连续的电平来分别发射8个数据位(根据本发明的实施例,8个数据位从最低有效位开始到最高有效位),随后发射奇偶校验位(指示8个数据位的奇偶校验结果),并在奇偶校验位之后将结尾的高停止位(高电平)发送到发射线上以指示该数据帧传输的结束。在这个实施例中,以11个连续位的串行传输来传输一个数据的8个数据位。
应当注意的是,上面给出串行数据传输的一种格式,本发明不受限于此,所有根据格式来进行数据串行传输的方式都在本发明的保护范围之内。
多个位的串行传输以预定时间频率进行,即每个数据位的传输要持续预定时间周期,也就是说,将发射线上的电平维持与数据位的值相对应(高电平或者低电平)持续预定时间段。这样,只要发射方(例如发射器210)和接收方(例如外围设备160)事先就该时间频率达成一致,即具有相同的时间频率,则接收方可以同样的时间频率在发射线上接收发射方发射的串行数据,从而实现串行通信。
在本发明中,将在发射线上发射数据位的频率称为波特率。在理想状态下,输出移位寄存器212在启动数据传输之后,以该波特率逐位进行移位,并将移位得到的数据位发射到数据线上,以便由耦接到该数据线的外围设备来接收。
控制单元214耦接到输出移位寄存器212,以便控制输出移位寄存器212的移位频率,即进行移位的时间点。控制单元214根据发射器210的工作时钟频率和预定的发射波特率来确定发射数据的时间周期,即进行移位的时间点。根据一种实施方式,发射器210的工作时钟频率为UART 200的工作时钟频率,而UART 200的工作时钟频率可以从指令处理装置100来获得。在一种实施方式中,UART 200具有适于输入时钟信号的接口。指令处理装置100可以将时钟信号耦接到该接口,从而为UART 200提供时钟信号,并将其工作频率设置为与该时钟信号的时间周期相对应。
根据一种实施方式,当指令处理装置100处于空闲模式等低功耗模式下时,可以将实时时钟信号RTC耦接到UART 200的时钟信号接口,为UART 200提供RTC作为工作时钟信号。时钟信号为一种周期信号,每个周期持续相同的时间段并重复相同的电平波形。控制单元214在开始启动串行传输之后,在每个时钟信号所定义的时间周期中确定该时间周期是否适于发射数据,并在确定该时间周期适于发射数据时,指示输出移位寄存器212进行移位,以便将新移位出的信号发送到数据线上进行串行输出。
在一种实施方式中,RTC时钟频率和波特率比较接近,例如RTC时钟频率为32.768Khz,而波特率为14.4Khz,因此,控制单元214在每个时间周期来确定在该时间周期来发射数据是否最接近以波特率来发射数据。如果该时间周期为最接近以波特率发射数据的时间周期,则确定该时间周期为适于发射数据的时间周期。
根据一种实施方式,时钟周期信号中的每个信号周期包括上升沿、高电平阶段、下降沿和低电平阶段。数据发射过程包括从一个时间点开始,随后维持相应电平一段时间,直到下一个时间点发送下一个数据位为止。因此,在确定发射时间周期时,确定该时间周期中与上升沿相对应的时间点是否为最适合发射数据的时间点,即该时间点是否最接近以波特率发射数据的时间点。
图4示出了根据本发明一个实施例的输出移位寄存器212输出数据的时序示意图。如图4依次示出了理想按照波特率输出的波形图、发射时钟信号的波形图和输出移位寄存器212实际输出的波形图。
如图4所示,时刻0为启动传输的时刻,因此,在时刻0,理想输出和实际输出都置为低电平,随后,在时钟信号的每个上升沿,确定该上升沿对应的时间点是否最接近理想的发送时间点。对于理想的发送时刻1,可以确定最近的时钟信号的上升沿为前一个沿,因此将该时刻1的前一个时钟信号的上升沿设置为实际输出信号时刻。对于理想的发送时刻2,则确定最近的时钟信号上升沿为后一个沿,因此将时刻2的后一个时钟信号的上升沿设置为实际输出信号时刻,并以此类推。
可以有各种方式来确定最接近以波特率发射数据的时间周期,根据本发明的一种实施方式,控制单元214中包括频率寄存器216,适于存储随着工作时钟周期而改变的频率值,以根据该频率寄存器216中的值来确定适于进行数据输出的时间周期。控制单元214在要输出数据之前,即启动数据输出时,将频率寄存器的值初始化为发射器210即UART 200的工作时钟频率。随后每进入一个新的时间周期,例如在该时间周期的上升沿,将频率寄存器216中的值减去理想输出数据的波特率,并将频率寄存器216中剩余的值和波特率进行比较。
如果频率寄存器216中的值高于波特率,则说明该时间周期距离输出数据的时间点较远,并不适合输出数据,并等待下一个时间周期进行处理。
如果频率寄存器216中的值低于波特率的一半,说明当前时间周期距离以波特率发射数据的时间点最近,因此确定当前时间周期为要进行串行发射数据的时间周期。随后,控制单元214将频率寄存器216中的值增加工作频率值,并指示输出移位寄存器在当前时间周期(例如,当前时间周期的上升沿)进行移位串行输出。
如果频率寄存器216中的值不低于波特率的一半且低于波特率时,则确定与当前时间周期相比,当前时间周期的下一个时间周期距离以波特率发射数据的时间点更近,因此确定当前时间周期的下一个时间周期为要串行发射数据的时间周期。随后,控制单元214将频率寄存器中的值增加工作频率值,并指示输出移位寄存器在当前时间周期的下一个时间周期(例如,下一个时间周期的上升沿)进行移位串行输出。
下面给出了频率寄存器216中的值以及进行移位周期的计算示例:
周期1:寄存器值:32768 初始化移位
周期2:寄存器值:32768-14400=18368 不移位
周期3:寄存器值:18368-14400=3968 移位
并更新寄存器值为:3968+32768=36736
周期4:寄存器值:36736-14400=22336 不移位
周期5:寄存器值:22336-14400=7936 不移位,但是指示下一个周期移位
更新寄存器值为:32768+7936=40704
周期6:寄存器值:40704–14400=26304 移位(根据周期5的指示)
周期7:寄存器值为:26304-14400=11904 不移位,指示下一个周期移位
更新寄存器值为32768+11904=44672
周期8:44672-14400=30272 移位(根据周期7的指示)
周期9:30272–14400=15872 不移位
周期10:15872–14400=1472 移位
更新寄存器值为1472+32768=34240
….
根据上面的计算结果,可以得知,在周期1、3、6、8和10进行移位,这样的周期分布并不是均等的,而是一些周期间隔为3个时间周期,而另一些周期间隔为2个时间周期,这样,在输出接近以波特率进行输出的信号波形的同时,还避免了由于工作时钟频率和波特率不是整数倍关系而导致的时间误差累积对串行输出的影响。
另外,外围设备160在对发射器210串行输出的数据进行采样串行输入时,会尽量接近在每个数据位的中心位置所对应的时间点来进行采样,因此,虽然根据图2所述的发射器210在串行输出数据位时并没有采用与波特率一样的时间频率,但是对于每个数据位的中心点附近,其值和以波特率进行发射数据的电平是一致的,且不会对外围设备160的采样产生影响。
可选地,如图2所示,发射器210还包括输出缓存寄存器218。输出缓存寄存器218耦接到总线180,从总线180接收指令处理装置100要通过串行方式发送给外围设备160的数据并进行缓存。根据一种实施方式,输出缓存寄存器218以并行方式进行数据操作,并在控制单元214的控制下,将所缓存的数据输出到输出移位寄存器212,以便由输出移位寄存器212进行移位串行输出。
控制单元214耦接到输出缓存寄存器218和输出移位寄存器216并对这两个单元的操作进行控制,这样的控制包括控制缓存寄存器218从总线180获取数据、控制缓存寄存器218将数据发送到输出移位寄存器216、控制输出移位寄存器216在串行输出完成之后产生中断等。本发明对控制单元214对输出缓存寄存器218的控制方式不进行任何限制,所有恰当的控制方式都在本发明的保护范围之内。
如图2所示,接收器220包括输入移位寄存器222和控制单元224。输入移位寄存器222存储串行采样输入的数据。这样的数据包括多位。输入移位寄存器222逐个周期地从数据线(也称为接收线)采样数据位,并通过逐个位的移位操作,才串行采样的数据存储到输入移位寄存器222中。从而实现了数据的串行输入。如上参考发射器210所述,数据的串行传输具有预定的数据格式,接收器220可以根据与发生器210所遵循的数据格式相同的格式来接收数据,并根据低电平启动位之后,连续采样8个数据位以构成一个数据,并根据后续的奇偶校验位进行奇偶校验等。
类似地,在进行串行采样输入时,接收器220作为接收方与发射方(例如外围设备160)事先就时间频率,即波特率达成一致,即具有相同的波特率,这样接收器220可以同样的时间频率采样发射方发射的串行数据,从而实现串行通信。
在理想状态下,外围设备160以波特率将数据串行发射到数据线上,输入移位寄存器222以该波特率进行数据串行采样,并通过逐位移位来存储接收到的数据。
控制单元224耦接到输入移位寄存器222,以便控制输入移位寄存器222的移位频率,即进行采样移位输入的时间点。控制单元224根据接收器220的工作时钟频率和预定的接收波特率来确定采样数据的时间周期,即进行采样移位输入的时间点。根据一种实施方式,接收器220的工作时钟频率为UART 200的工作时钟频率,而UART 200的工作时钟频率可以从指令处理装置100来获得。在一种实施方式中,UART 200具有适于输入时钟信号的接口。指令处理装置100可以将时钟信号耦接到该接口,从而为UART 200提供时钟信号,并将其工作频率设置为与该时钟信号的时间周期相对应。
根据一种实施方式,当指令处理装置100处于空闲模式等低功耗模式下时,可以将实时时钟信号RTC耦接到UART 200的时钟信号接口,为UART 200提供RTC作为工作时钟信号。控制单元224在开始启动串行采样输入之后,在每个时钟信号所定义的时间周期中确定该时间周期是否适于采样数据,并在确定该时间周期适于采样数据时,指示输入移位寄存器222进行采样并将采样得到的数据移位到寄存器222中,以便经由总线180发送给指令处理装置100进行后续处理。
如上所述,RTC时钟频率和波特率比较接近。因此,控制单元224在每个时间周期来确定在该时间周期来采样数据是否最接近以波特率来采样数据。如果该时间周期为最接近以波特率采样数据的时间周期,则确定该时间周期为适于采样数据的时间周期。
如上所述,时钟周期信号中的每个信号周期包括上升沿、高电平阶段、下降沿和低电平阶段。外围设备160将要被接收的数据信号发送到数据线上,以等待被采样。根据上述数据格式,该数据信号会维持相应电平一段时间,然后改变为与下一个数据位相对应的电平。因此,为了对数据进行更加准确的采样,数据采样从与数据位相对应的电平持续周期的中间时间点开始,并在采样之后保持一段时间,以便可以顺利地将该数据移位存储到输入移位寄存器222中。因此,在确定接收时间周期时,确定该时间周期中与上升沿相对应的时间点是否为最适合采样数据的时间点,即该时间点是否最接近以波特率采样数据的时间点。
图5示出了根据本发明一个实施例的输入移位寄存器222输出数据的时序示意图。图5依次示出了接收时钟信号的波形图、要接收和采样的信号波形图、理想按照波特率采样的波形图、和输入移位寄存器222实际采样的波形图。
如图5所示,在时钟信号的每个上升沿,确定该上升沿对应的时间点是否最接近理想的采样时间点。时刻0为理想进行采样的采样时刻,可以确定最近的时钟信号上升沿为前一个沿,因此将该时刻1的前一个时钟信号的上升沿设置为实际采样信号时刻。对于理想的采样时刻1,可以确定最近的时钟信号的上升沿为后一个沿,因此将该时刻1的后一个时钟信号的上升沿设置为实际采样时刻。对于理想的采样时刻2,则确定最近的时钟信号上升沿为后一个沿,因此将时刻2的后一个时钟信号的上升沿设置为实际采样信号时刻,并以此类推。
可以有各种方式来确定最接近以波特率采样或者接收数据的时间周期,根据本发明的一种实施方式,控制单元224中包括频率寄存器226,适于存储随着工作时钟周期而改变的频率值,以根据该频率寄存器226中的值来确定适于进行数据采样和输入的时间周期。控制单元224在要采样数据之前,将频率寄存器226的值初始化为接收器220即UART 200的工作时钟频率的一半。随后每进入一个新的时间周期,例如在该时间周期的上升沿,将频率寄存器226中的值减去理想输入和采样数据的波特率,并将频率寄存器226中剩余的值和波特率进行比较。
如果频率寄存器226中的值高于波特率,则说明该时间周期距离采样和输入数据的时间点较远,并不适合采样数据,并等待下一个时间周期进行处理。
如果频率寄存器226中的值低于波特率的一半,说明当前时间周期距离以波特率采样和接收数据的时间点最近,因此确定当前时间周期为要进行串行采样和输入数据的时间周期。随后,控制单元224将频率寄存器226中的值增加工作频率值,并指示输入移位寄存器222在当前时间周期(例如,当前时间周期的上升沿)进行采样和串行移位输入。
如果频率寄存器226中的值不低于波特率的一半且低于波特率时,则确定与当前时间周期相比,当前时间周期的下一个时间周期距离以波特率采样数据的时间点更近,因此确定当前时间周期的下一个时间周期为要采样和串行移位输入数据的时间周期。随后,控制单元224将频率寄存器226中的值增加工作频率值,并指示输入移位寄存器222在当前时间周期的下一个时间周期(例如,下一个时间周期的上升沿)进行采样和串行移位输入。
利用上面的方式,使用频率寄存器226中的值作为是否进行采样的指示。由此得到的周期分布并不是均等的,而是一些周期间隔为3个时间周期,而另一些周期间隔为2个时间周期,这样,在采样并输入接近以波特率进行采样的信号波形的同时,还避免了由于工作时钟频率和波特率不是整数倍关系而导致的时间误差累积对串行输入的影响。
另外,外围设备160在将数据发送到数据线来等待接收器220进行采样输入时,每个数据位会维持相应电平一段时间,虽然根据图2所述的接收器220在串行输入数据位时并没有采用与波特率一样的时间频率,但是都会在数据位维持相应电平期间进行采样,这样的采样和以波特率进行数据采样的电平是一致的,且不会对外围设备160的数据输入产生影响。
可选地,如图2所示,接收器220还包括输入缓存寄存器228。输入缓存寄存器228耦接到输入移位寄存器222和总线180,获取输入移位寄存器222通过诸位串行移位之后获得的数据并进行缓存,随后,将缓存的数据通过从总线180发送到指令处理装置100进行后续处理。根据一种实施方式,输入缓存寄存器228以并行方式进行数据操作,并在控制单元214的控制下,从输入移位寄存器222接收数据并缓存,并将缓存的数据发送到总线160上,以便由指令处理装置100进行后续处理。
控制单元224耦接到输入缓存寄存器228和输入移位寄存器226并对这两个单元的操作进行控制,这样的控制包括控制缓存寄存器228从移位寄存器222获取数据,并发送到总线180上、控制输入移位寄存器222在进行串行采样期间产生中断等。
图3示出了根据本发明另一个实施例的通用异步收发传输器(UART)300的示意图。图3所示的通用异步收发传输器300是图2所示的UART 200的进一步实施例,因此,在图2和3中,用相同或者相似的标记来指示相同或者相似的部件。
如图3所示,UART 300包括发射器310、接收器320和控制单元330。与图2所示的UART 200的结构不同,发射器310和接收器320未分别包括各自的控制单元,而是将与图2中的控制单元214和224对应的功能集成到控制单元330中。这样,发射器310包括输出移位寄存器212,接收器包括输入移位寄存器222,而控制单元330耦接到发射器310和接收器320之后,分别对输出移位寄存器212和输入移位寄存器222进行控制。控制单元330控制输出移位寄存器212的移位频率,即进行移位的时间点。即,控制单元330根据UART 300的工作时钟频率和预定的发射波特率来确定发射数据的时间周期,即进行移位的时间点。类似地,控制单元224控制输入移位寄存器222的移位频率,即进行采样移位输入的时间点。即,控制单元224根据UART 300的工作时钟频率和预定的接收波特率来确定采样数据的时间周期,即进行采样移位输入的时间点。
可选地,控制单元330可以进一步包括发射频率寄存器332和接收频率寄存器334,来分别实现图2中的频率寄存器216和226的功能。另外发射器310中还可以包括输出缓存寄存器218,接收器320中包括输入缓存寄存器228。这些缓存寄存器也由控制单元330对其操作进行控制。这些单元和相关操作在上面参考图2的说明中已经进行了详细描述并不再进行赘述。
应当注意的是,上面参考图2和3给出了通用异步收发传输器200和300在低功耗模式下,例如以RTC这样的实时时钟信号为工作时钟信号的状态下,所采取的发射时间周期和采样时间周期的确定方式。当通用异步收发传输器200和300处于正常功耗模式下,例如工作时钟频率显著大于波特率(例如为波特率的8倍以上等)时,直接将时钟周期的预定倍数设置要进行输出和采样的周期(接近以波特率进行输出和采样),此时由于频率差异而导致的时间积累可以忽略不计。
根据一种实施方式,通用异步收发传输器200和300还可以根据不同的功耗模式在参考图2和3描述的异步收发方式和传统的收发方式之间进行切换。所有这样的方式都在本发明的保护范围之内。
如上所述,根据本发明的指令处理装置可以实现为处理器核,且指令处理方法可以在处理器核中执行。处理器核可以不同的方式在不同的处理器中实现。例如,处理器核可以实现为用于通用计算的通用有序核、用于通用计算的高性能通用无序核、以及用于图形和/或科学(吞吐量)计算的专用核。而处理器可以实现为CPU(中央处理器)和/或协处理器,其中CPU可以包括一个或多个通用有序核和/或一个或多个通用无序核,而协处理器可以包括一个或多个专用核。这样的不同处理器的组合可以导致不同的计算机系统架构。在一种计算机系统架构中,协处理器在与CPU分开的芯片上。在另一种计算机系统架构中,协处理器在与CPU相同的封装中但处于分开的管芯上。在还有一种计算机系统架构中,协处理器与CPU在相同管芯上(在该情况下,这样的协处理器有时被称为诸如集成图形和/或科学(吞吐量)逻辑等专用逻辑,或被称为专用核)。在还有一种称为片上系统的计算机系统架构中,可以将所描述的CPU(有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包括在同一管芯上。后续将参考图6和7来描述示例性处理器和计算机架构。
图6示出了根据本发明一个实施例的处理器1100的示意图。如图6中的实线框所示,根据一种实施方式,处理器1110包括单个核1102A、系统代理单元1110、总线控制器单元1116。如图6中的虚线框所示,根据本发明的另一个实施方式,处理器1100还可以包括多个核1102A-N、处于系统代理单元1110中的集成存储器控制器单元1114以及专用逻辑1108。
根据一种实施方式,处理器1100可以实现为中央处理器(CPU),其中专用逻辑1108是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),且核1102A-N是一个或多个通用核(例如,通用有序核、通用无序核、这两者的组合)。根据另一种实施方式,处理器1100可以实现为协处理器,其中核1102A-N是用于图形和/或科学(吞吐量)的多个专用核。根据还有一种实施方式,处理器1100可以实现为协处理器,其中核1102A-N是多个通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器1100可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将其实现在一个或多个衬底上。
存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元1106、以及耦接到集成存储器控制器单元1114的外部存储器(未示出)。该共享高速缓存单元1106可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元1112将集成图形逻辑1108、共享高速缓存单元1106以及系统代理单元1110/集成存储器控制器单元1114互连,本发明不受限于此,并且可使用任何数量的公知技术来将这些单元互连。
系统代理1110包括协调和操作核1102A-N的那些组件。系统代理单元1110可包括例如功率控制单元(PCU)和显示单元。PCU可以包括调整核1102A-N和集成图形逻辑1108的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核1102A-N可以具有上面参考图1描述的核架构,并且在架构指令集方面可以是同构的或异构的。即,这些核1102A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。
图7示出了根据本发明的一个实施例的片上系统(SoC)1500的示意图。图7所示的片上系统包含了图6所示的处理器1100,因此与图6中相似的部件具有同样的附图标记。如图7所示,互连单元1502耦接到应用处理器1510、系统代理单元1110、总线控制器单元1116、集成存储器控制器单元1114、一个或多个协处理器1520、静态随机存取存储器(SRAM)单元1530、直接存储器存取(DMA)单元1532以及用于耦合至一个或多个外部显示器的显示单元1540。应用处理器1510包括一个或多个核1102A-N的集合以及共享高速缓存单元110。协处理器1520包括集成图形逻辑、图像处理器、音频处理器和视频处理器。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
根据本发明的片上系统(SoC)或者处理器可以在各种智能设备中使用,以便在智能设备用于实现相应的功能。这样的智能设备包括但不限于车载设备、智能音箱、智能显示设备、IoT设备、移动终端和个人数字终端等。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (18)
1.一种数据发射器,包括:
输出移位寄存器,适于存储要以波特率串行输出的发射数据;以及
控制单元,耦接到所述输出移位寄存器,适于根据所述发射器的工作频率和所述波特率确定适于输出所述发射数据的时间周期,并指示所述输出移位寄存器在所确定的时间周期中串行输出所述发射数据,其中所述时间周期最接近以所述波特率输出数据的时间点。
2.如权利要求1所述的数据发射器,其中所述时间周期为由周期信号定义的时间段,所述周期信号顺序包括上升沿、高电平阶段、下降沿和低电平阶段,以及
所述控制单元适于确定所确定的时间周期中、与所述上升沿相对应的发送时间点,并指示所述输出移位寄存器在所确定的时间点串行输出所述发射数据,其中所述发送时间点最接近以所述波特率输出数据的时间点。
3.如权利要求1或者2所述的数据发射器,其中所述控制单元包括频率寄存器,以及
所述控制单元适于:
在要串行输出数据之前,将所述频率寄存器的值初始化为所述工作频率;
每进入一个时间周期,将所述频率寄存器中的值减去所述波特率,并将剩余的值和所述波特率进行比较;
如果所述频率寄存器中的值低于所述波特率的一半,则确定该时间周期为要串行输出所述发射数据的时间周期,并将所述频率寄存器中的值增加所述工作频率;以及
如果所述频率寄存器中的值不低于所述波特率的一半且低于所述波特率时,则确定该时间周期的下一个时间周期为要串行输出所述发射数据的时间周期,并将所述频率寄存器中的值增加所述工作频率。
4.如权利要求3所述的数据发射器,其中所述控制单元适于在每个时间周期中与所述上升沿相对应的时间点来更新所述频率寄存器中的值并控制所述输出移位寄存器的串行输出。
5.如权利要求1-4中任一个所述的数据发射器,还包括:
输出缓存寄存器,适于以并行方式接收所述要输出的发射数据;以及
其中所述控制单元耦接到所述输出缓存寄存器和所述输出移位寄存器,适于控制所述输出缓存寄存器将所述发射数据发送到所述输出移位寄存器,以及控制所述输出移位寄存器在所确定的时间周期串行输出所述发射数据。
6.一种数据接收器,包括:
输入移位寄存器,适于存储要以波特率串行输入的接收数据;以及
控制单元,耦接到所述输入移位寄存器,适于根据所述接收器的工作频率和所述波特率确定适于串行输入所述接收数据的时间周期,并指示所述输入移位寄存器在所确定的时间周期中串行输入所述接收数据,其中所述时间周期最接近以所述波特率输入数据的时间点。
7.如权利要求1所述的数据接收器,其中所述时间周期为由周期信号定义的时间段,所述周期信号顺序包括上升沿、高电平阶段、下降沿和低电平阶段,以及
所述控制单元适于确定所确定的时间周期中、与所述上升沿相对应的接收时间点,并指示所述输入移位寄存器在所确定的时间点串行输入所述接收数据,其中所述接收时间点最接近以所述波特率输入数据的时间点。
8.如权利要求6或者7所述的数据接收器,其中所述控制单元包括频率寄存器,以及
所述控制单元适于:
在要串行输入数据之前,将所述频率寄存器的值初始化为所述工作频率的一半;
每进入一个时间周期,将所述频率寄存器中的值减去所述波特率,并将剩余的值和所述波特率进行比较;
如果所述频率寄存器中的值低于所述波特率的一半,则确定该时间周期为要串行输入所述接收数据的时间周期,并将所述频率寄存器中的值增加所述工作频率;以及
如果所述频率寄存器中的值不低于所述波特率的一半且低于所述波特率时,则确定该时间周期的下一个时间周期为要串行输入所述接收数据的时间周期,并将所述频率寄存器中的值增加所述工作频率。
9.如权利要求8所述的数据接收器,其中所述控制单元适于在每个时间周期中与所述上升沿相对应的时间点来更新所述频率寄存器中的值并控制所述输入移位寄存器的串行输入。
10.如权利要求6-9中任一个所述的数据接收器,还包括:
输入缓存寄存器,适于以并行方式输出所述接收数据;以及
其中所述控制单元耦接到所述输入缓存寄存器和所述输入移位寄存器,适于控制所述输入移位寄存器在所确定的时间周期串行输入所述接收数据,以及控制所述输入移位寄存器将所述接收数据发送到所述输入缓存寄存器。
11.一种通用异步收发传输器,包括:
如权利要求1-5中任一个所述的数据发射器;以及
如权利要求6-10中任一个所述的数据接收器。
12.一种通用异步收发传输器,包括:
发射器,所述发射器包括输出移位寄存器,适于存储要以波特率串行输出的发射数据;
接收器,所述接收器包括输入移位寄存器,适于存储要以波特率串行输入的接收数据;
控制单元,耦接到所述发射器和接收器,适于根据所述传输器的工作频率和所述波特率确定适于输出所述发射数据的第一时间周期,并指示所述输出移位寄存器在所确定的第一时间周期中串行输出所述发射数据,其中所述第一时间周期最接近以所述波特率输出数据的时间点;以及还适于根据所述接收器的工作频率和所述波特率确定适于串行输入所述接收数据的第二时间周期,并指示所述输入移位寄存器在所确定的第二时间周期中串行输入所述接收数据,其中所述第二时间周期最接近以所述波特率输入数据的时间点。
13.如权利要求12所述的通用异步收发传输器,其中所述控制单元包括发射频率寄存器,以及
所述控制单元适于:
在要串行输出数据之前,将所述发射频率寄存器的值初始化为所述工作频率;
每进入一个时间周期,将所述发射频率寄存器中的值减去所述波特率,并将剩余的值和所述波特率进行比较;
如果所述发射频率寄存器中的值低于所述波特率的一半,则确定该时间周期为要串行输出所述发射数据的第一时间周期,并将所述频率寄存器中的值增加所述工作频率;以及
如果所述发射频率寄存器中的值不低于所述波特率的一半且低于所述波特率时,则确定该时间周期的下一个时间周期为要串行输出所述发射数据的第一时间周期,并将所述频率寄存器中的值增加所述工作频率。
14.如权利要求12或者13所述的通用异步收发传输器,其中所述控制单元包括接收频率寄存器,以及
所述控制单元适于:
在要串行输入数据之前,将所述接收频率寄存器的值初始化为所述工作频率的一半;
每进入一个时间周期,将所述接收频率寄存器中的值减去所述波特率,并将剩余的值和所述波特率进行比较;
如果所述接收频率寄存器中的值低于所述波特率的一半,则确定该时间周期为要串行输入所述接收数据的第二时间周期,并将所述接收频率寄存器中的值增加所述工作频率;以及
如果所述接收频率寄存器中的值不低于所述波特率的一半且低于所述波特率时,则确定该时间周期的下一个时间周期为要串行输入所述接收数据的第二时间周期,并将所述接收频率寄存器中的值增加所述工作频率。
15.如权利要求12-14中任一个所述的通用异步收发传输器,其中所述时间周期为由周期信号定义的时间段,所述周期信号顺序包括上升沿、高电平阶段、下降沿和低电平阶段,以及
所述控制单元适于分别确定所确定的第一和第二时间周期中、与所述上升沿相对应的第一和第二时间点,并指示所述输出移位寄存器在所确定的第一时间点串行输出所述发射数据,以及所述输入移位寄存器在所确定的第二时间点串行输入所述接收数据。
16.一种处理器,包括:
指令处理装置,适于进行指令处理,以便将数据发送到外围设备或者从所述外围设备接收数据;以及
如权利要求11-15中任一个所述的通用异步收发传输器,耦接到所述指令处理装置和所述外围设备,适于将来自所述指令处理装置的数据异步发射到所述外围设备,以及异步接收来自所述外围设备的数据并发送到所述指令处理装置。
17.一种片上系统,包括如权利要求16所述的处理器。
18.一种智能设备,包括如权利要求17所述的片上系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284830.0A CN112988641A (zh) | 2019-12-13 | 2019-12-13 | 一种通用异步收发传输器和包含该传输器的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284830.0A CN112988641A (zh) | 2019-12-13 | 2019-12-13 | 一种通用异步收发传输器和包含该传输器的处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988641A true CN112988641A (zh) | 2021-06-18 |
Family
ID=76342135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911284830.0A Pending CN112988641A (zh) | 2019-12-13 | 2019-12-13 | 一种通用异步收发传输器和包含该传输器的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988641A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980294A (zh) * | 2023-06-28 | 2023-10-31 | 深圳精控集成半导体有限公司 | 通信数据的接收方法、装置、电子设备及存储介质 |
CN117389929A (zh) * | 2023-10-27 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 数据传输方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1596520A (zh) * | 2001-07-11 | 2005-03-16 | 维提弗科技公司 | 多信道通信收发信机 |
US6970525B1 (en) * | 2000-08-14 | 2005-11-29 | Texas Instruments Incorporated | High-speed, high granularity baud clock generation |
US20130145084A1 (en) * | 2011-12-06 | 2013-06-06 | Hitachi Ulsi Systems Co., Ltd. | Electronic Apparatus |
US20160179746A1 (en) * | 2014-12-18 | 2016-06-23 | Werner Hein | Coordinating multiple real-time functions of a peripheral over a synchronous serial bus |
CN106326156A (zh) * | 2016-08-30 | 2017-01-11 | 西安翔腾微电子科技有限公司 | 基于自适应波特率的单端口通信处理电路和方法 |
CN108965082A (zh) * | 2017-05-18 | 2018-12-07 | 迈来芯科技有限公司 | 低功率数据总线接收器 |
-
2019
- 2019-12-13 CN CN201911284830.0A patent/CN112988641A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970525B1 (en) * | 2000-08-14 | 2005-11-29 | Texas Instruments Incorporated | High-speed, high granularity baud clock generation |
CN1596520A (zh) * | 2001-07-11 | 2005-03-16 | 维提弗科技公司 | 多信道通信收发信机 |
US20130145084A1 (en) * | 2011-12-06 | 2013-06-06 | Hitachi Ulsi Systems Co., Ltd. | Electronic Apparatus |
US20160179746A1 (en) * | 2014-12-18 | 2016-06-23 | Werner Hein | Coordinating multiple real-time functions of a peripheral over a synchronous serial bus |
CN106326156A (zh) * | 2016-08-30 | 2017-01-11 | 西安翔腾微电子科技有限公司 | 基于自适应波特率的单端口通信处理电路和方法 |
CN108965082A (zh) * | 2017-05-18 | 2018-12-07 | 迈来芯科技有限公司 | 低功率数据总线接收器 |
Non-Patent Citations (2)
Title |
---|
LEE, JUNE-HEE 等: "A Tracked Oversampling Digital Data Recovery for Low Latency, Fast Acquisition, and High Jitter Tolerance", 《 2013 IEEE 56TH INTERNATIONAL MIDWEST SYMPOSIUM ON CIRCUITS AND SYSTEMS (MWSCAS)》, 2 December 2013 (2013-12-02) * |
吴志勇 等: "基于FPGA的波特率连续可调的UART接口设计", 《通信技术》, vol. 51, no. 1, 31 January 2018 (2018-01-31) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980294A (zh) * | 2023-06-28 | 2023-10-31 | 深圳精控集成半导体有限公司 | 通信数据的接收方法、装置、电子设备及存储介质 |
CN116980294B (zh) * | 2023-06-28 | 2024-04-30 | 深圳精控集成半导体有限公司 | 通信数据的接收方法、装置、电子设备及存储介质 |
CN117389929A (zh) * | 2023-10-27 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 数据传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9846581B2 (en) | Method and apparatus for asynchronous processor pipeline and bypass passing | |
US7809933B2 (en) | System and method for optimizing branch logic for handling hard to predict indirect branches | |
US5465376A (en) | Microprocessor, coprocessor and data processing system using them | |
US10089263B2 (en) | Synchronization of interrupt processing to reduce power consumption | |
US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
CN112230992B (zh) | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 | |
CN112988641A (zh) | 一种通用异步收发传输器和包含该传输器的处理器 | |
JP2022138116A (ja) | 管理バスのための通信プロトコルの選択 | |
CN112540792A (zh) | 指令处理方法及装置 | |
US5734927A (en) | System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates | |
KR20030051380A (ko) | 마이크로프로세서 | |
US11675595B2 (en) | Starting reading of instructions from a correct speculative condition prior to fully flushing an instruction pipeline after an incorrect instruction speculation determination | |
CN106775587B (zh) | 计算机指令的执行方法以及使用此方法的装置 | |
EP4152152A1 (en) | Interrupt handling by migrating interrupts between processing cores | |
EP1408405A1 (en) | "A reconfigurable control structure for CPUs and method of operating same" | |
CN111813446A (zh) | 一种数据加载和存储指令的处理方法和处理装置 | |
CN111813447B (zh) | 一种数据拼接指令的处理方法和处理装置 | |
CN112540789A (zh) | 一种指令处理装置、处理器及其处理方法 | |
TWI493450B (zh) | 用於在微碼呼叫程式與微碼次常式之間傳遞別名參數的設備、方法、物件及系統 | |
US20140201505A1 (en) | Prediction-based thread selection in a multithreading processor | |
US7594103B1 (en) | Microprocessor and method of processing instructions for responding to interrupt condition | |
KR100631495B1 (ko) | 마이크로 프로세서 | |
US20120079237A1 (en) | Saving Values Corresponding to Parameters Passed Between Microcode Callers and Microcode Subroutines from Microcode Alias Locations to a Destination Storage Location | |
KR20050085358A (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
CN118312219A (zh) | 向量协处理器、向量数据的运算方法、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |