一种通用输入输出时序处理器及时序输入输出控制方法与流程

文档序号:11677478阅读:461来源:国知局
一种通用输入输出时序处理器及时序输入输出控制方法与流程

本发明涉及处理器技术领域,具体的说是一种通用输入输出时序处理器及时序输入输出控制方法。



背景技术:

在现有的芯片中,如果要实现各种数字接口,就必须在内部加入其控制器。例如要实现spi接口,就必须加入spi控制器,要加入uart接口,就必须加入uart控制器,要实现对片外sram的读写访问就必须加入sram的控制器。然而这些芯片在不同使用者那里的应用场景并不相同。有些客户不需要spi,但芯片却集成了;而有些客户需要xxx接口,但芯片却没有集成;有些客户需要8路pwm接口,而芯片却只集成了2路。芯片集成了客户不需要的接口,导致性价比下降,不必要的功耗也会增加。而且每设计一种接口会比较复杂,延长了芯片研发生产的周期,也导致成本上升。同时过多接口的加入,导致芯片设计复杂,漏洞过多,出现错误概率增加。



技术实现要素:

针对上述现有技术不足,本发明提供一种通用输入输出时序处理器。

本发明提供的一种通用输入输出时序处理器及时序输入输出控制方法是通过以下技术方案实现的:

一种通用输入输出时序处理器,由总线接口桥、处理器寄存器堆、时序控制状态机、时序发生计数器、时序ram存储器、串并转换控制器组成,所述处理器寄存器堆包含多个序列控制寄存器组,其中:

所述总线接口桥分别连接处理器寄存器堆、时序ram存储器,总线接口桥从总线上接收cpu的各种命令传递给各个寄存器,起到了一个命令格式转换的作用;

所述处理器寄存器堆连接时序控制状态机,处理器寄存器堆用于暂存处理器的处理数据;

所述时序控制状态机连接时序发生计数器,时序控制状态机由取指控制器、译码器、执行器组成,取指器用于读取控制代码,译码器用于分析代码并翻译成执行器便于执行控制的代码,执行器用于配合计数器具体实施控制;

所述时序发生计数器连接时序ram存储器;

时序ram存储器连接串并转换控制器组,时序ram存储器存储各个序列的控制代码,方便于序列状态机和串并转换控制器的读取,所述串并转换控制器用于完成位宽转换,从时序ram存储器读取数据,然后依次输送到指定的引脚上;

所述序列控制寄存器组中,每个序列控制寄存器组对应1个序列控制。

所述串并转换控制器是双向的,可从当前设定成输入的引脚上读取数据,写入到存储器的指定位置。

一种时序输入输出控制方法,采用芯片引脚与ram交换数据的方式,在控制器的控制下,当设定为输出时,从ram中读取数据输出到芯片引脚;当设定为输入时,从芯片引脚读取数据写入到ram中。图2中有两个ram,1个ram(数据ram)中存放输入输出序列的数据。当输出时将ram中的数据写入芯片引脚。当输入时读取芯片引脚的数据写入ram。另1个ram(方向控制ram)存储序列的输入输出方向选择控制序列。在控制器的控制下随着序列的发生依次读取ram中的输入写入芯片引脚的输入输出方向选择寄存器,控制芯片输入输出方向,也同时根据方向控制数据ram当前是读取还是写入;

将一个或多个序列存储在ram中,当同一时刻只有1个序列在运行或者没有序列在运行;每个序列对应着1个序列控制寄存器组,组内至少设置4个寄存器,采用波特率寄存器控制本序列的速度;

序列首地址寄存器存放本序列在ram中存放的开始处地址,尾地址寄存器存放本序列在ram中存放的结束地址;控制寄存器指明本序列的属性。

常见属性有:

1、方向灵活性控制。本序列的方向可以像上面所描述的采用1个专门的ram存储来控制,这样灵活性比较高,可随着序列发生随时切换方向。但也可由本属性指明本序列只是输入,或只是输出,或者输入输出同时支持。如果指明只是输入或输出,那么方向控制ram在本序列发生时不会读取。

2、串并转换设置。上面说明的是一种无串并转换设置。1个ram1次读取或写入可以是1个字节(8位),2个字节(16位)或4个字节(32位)等等(本文描述以1个字节为例),每位对应芯片的1个引脚。但还有1种带串并转换的设置,就是1个ram的数据都对应1个引脚,要写入引脚时,需要将每次ram读取的数据由并行到串行转换成位流,依次送入芯片的1个引脚;要读取引脚时,将引脚上的数据由串行转换成并行数据,再写入ram。当需要进行串并转换时,序列的方向控制如果由ram提供,那么方向控制ram中读出的数据也要进行从并行到串行的转换。而如果是由本序列的控制寄存器提供,则不需要。

3、序列启动条件控制。1个控制器可以有几组序列控制寄存器组,以支持多个序列发生。每个序列的启动条件包括:

(1)、当指定的芯片引脚出现上升沿时;

(2)、当指定的芯片引脚出现下降沿时;

(3)、当指定的芯片引脚出现上升沿或者下降沿时;

(4)、当指定的芯片引脚等于0时;

(5)、当指定的芯片引脚等于1时;

(6)、当输入输出时序处理器收到其它cpu命令要求启动时;

(7)、当指定的其它输入输出时序处理器(1个芯片内可以有多个输入输出时序处理器)的某个序列开始,与之同时开始;

(8)、当指定的某个序列结束时开始;

4、大小端控制。指明在串行传输时先发送字节中的高位还是低位。

本发明的有益效果是:

1、实现一种通用的,即支持各种数字端口输入输出时序变化要求,应对复杂多变的各种数字接口协议;

2、每个端口只需支持1个通用输入输出时序处理器即可,降低芯片研发周期;

3、功耗更低;

4、可应用于各种带输入输出数字接口的芯片中。在应用过程中也可以根据应用场景将时序处理器分类以进行简化。例如,有些端口上的时序处理器只支持串行输入(读取某一引脚上的数值将其串转并成字节数据写入ram)或输出(将ram字节数据并转串输出到某一引脚);有些端口上的时序处理器只支持并行输入(例如,同时读取8个引脚上的数据,作为1个字节写入ram)或输出(例如,从ram中读取1个字节并行输出到8个引脚),不进行串并转换;有些端口上的时序处理器支持并行输出,不支持并行输入等等。这些都是为了根据实际情况简化设计而作的类别划分。

附图说明

图1是通用输入输出时序处理器结构示意图;

图2是一种时序输入输出控制方法示意图;

图3是串并转换设置示意图。

具体实施方式

下面将通过实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

文中英文缩写释义:cpu:中央处理器单元;gpio:通用输入输出端口;mux:多路选择器;iic:集成电路总线;uart:通用异步收发传输器;pwm:脉冲宽度调制;ram:随机存取存储器;spi:串行外设接口;外设ip:在集成电路的可重用设计方法学中,ip核,全称知识产权核(英语:intellectualpropertycore),是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。

实施例1:

如图1所示的一种通用输入输出时序处理器,由总线接口桥、处理器寄存器堆、时序控制状态机、计数器,时序ram存储器,串并转换控制器组成。

总线接口桥用于从总线上接收cpu的各种命令传递给各个寄存器。起到了一个命令格式转换的作用。

处理器寄存器堆内部包含若干个序列控制寄存器组(每个寄存器组对应1个序列控制),用于暂存处理器的处理数据。序列首地址寄存器记录了要发生序列的在存储器中访问的起始地址,序列尾地址寄存器记录了要发生序列的在存储器中的结束地址。序列控制寄存器有方向灵活性控制,串并转换,启动条件,大小端控制,序列长度控制,发生次数控制,位使能等。

序列长度控制要发生序列的长度和序列发生次数。其序列长度最大值受限于存储器的大小,根据应用场景和系统规格确定时序存储器的容量。容量越大,序列长度最大值也就越大。序列长度最小值为1位。另外注意存储器中不止存储1个序列,可以存储多个序列。也可以通过程序控制各个序列的发生先后顺序和次数。

每个序列的发生次数从只发生1次到无数次(即持续不停的发生)。每个序列启动的条件有:1、受cpu控制直接启动;2、当某个序列结束时启动或者和某个序列同时启动;3、当输入引脚上出现指定的上升沿,下降沿,边沿(上升沿或下降沿),等于0时或等于1时启动,这些条件要由cpu事先配置入控制寄存器。序列速度寄存器控制要发生序列的运行速度,即每个位占用多少个时钟周期。支持每个序列设定不同的速度。

位使能决定究竟是哪些引脚参与本次序列发生。

序列发生控制状态机是中央控制器,决定序列发生的各个步骤,并具体实施。与之配合的计数器起到定时的辅助控制的作用。序列发生控制状态机由3个控制器组成。取指器用于读取控制代码,译码器用于分析代码并翻译成执行器便于执行控制的代码。而执行器用于配合计数器具体实施控制。

时序ram存储器存储各个序列的控制代码,方便于序列状态机和串并转换控制器的读取。cpu可以像访问普通ram存储器那样访问这个ram存储器,所以当时序处理器不工作时,这个ram存储器可以当做一般存储器供cpu使用。

因为从存储器中读取的数据和写入的数据的位宽是固定的,而每个序列所作用于的引脚的个数不同,引脚的编号也不同。例如序列a控制了4个引脚,分别是引脚0,1,2,3;序列b控制了8个引脚,分别是引脚0,1,5,6,10,11,12,13。所以需要串并转换控制器来完成这个转换操作。串并转换控制器用于完成位宽转换,受中央控制器的决定,从存储器读取数据,然后依次输送到制定的引脚上。同时串并转换控制器是双向,从当前设定成输入的引脚上读取数据,写入到存储器的指定位置。

实施例2

如图2所示的一种时序输入输出控制方法,采用芯片引脚与ram交换数据的方式,在控制器的控制下,当设定为输出时,从ram中读取数据输出到芯片引脚;当设定为输入时,从芯片引脚读取数据写入到ram中。图2中有两个ram,1个ram(数据ram)中存放输入输出序列的数据。当输出时将ram中的数据写入芯片引脚。当输入时读取芯片引脚的数据写入ram。另1个ram(方向控制ram)存储序列的输入输出方向选择控制序列。在控制器的控制下随着序列的发生依次读取ram中的输入写入芯片引脚的输入输出方向选择寄存器,控制芯片输入输出方向,也同时根据方向控制数据ram当前是读取还是写入;

将一个或多个序列存储在ram中,当同一时刻只有1个序列在运行或者没有序列在运行;每个序列对应着1个序列控制寄存器组,组内至少设置4个寄存器,采用波特率寄存器控制本序列的速度;

序列首地址寄存器存放本序列在ram中存放的开始处地址,尾地址寄存器存放本序列在ram中存放的结束地址;控制寄存器指明本序列的属性。

常见属性有:

1、方向灵活性控制。本序列的方向可以像上面所描述的采用1个专门的ram存储来控制,这样灵活性比较高,可随着序列发生随时切换方向。但也可由本属性指明本序列只是输入,或只是输出,或者输入输出同时支持。如果指明只是输入或输出,那么方向控制ram在本序列发生时不会读取。

2、串并转换设置。上面说明的是一种无串并转换设置。1个ram1次读取或写入可以是1个字节(8位),2个字节(16位)或4个字节(32位)等等(本文描述以1个字节为例),每位对应芯片的1个引脚。但还有1种带串并转换的设置,就是1个ram的数据都对应1个引脚,要写入引脚时,需要将每次ram读取的数据由并行到串行转换成位流,依次送入芯片的1个引脚;要读取引脚时,将引脚上的数据由串行转换成并行数据,再写入ram。当需要进行串并转换时,如图3所示,序列的方向控制如果由ram提供,那么方向控制ram中读出的数据也要进行从并行到串行的转换。而如果是由本序列的控制寄存器提供,则不需要。

3、序列启动条件控制。1个控制器可以有几组序列控制寄存器组,以支持多个序列发生。每个序列的启动条件包括:

(1)、当指定的芯片引脚出现上升沿时;

(2)、当指定的芯片引脚出现下降沿时;

(3)、当指定的芯片引脚出现上升沿或者下降沿时;

(4)、当指定的芯片引脚等于0时;

(5)、当指定的芯片引脚等于1时;

(6)、当输入输出时序处理器收到其它cpu命令要求启动时;

(7)、当指定的其它输入输出时序处理器(1个芯片内可以有多个输入输出时序处理器)的某个序列开始,与之同时开始;

(8)、当指定的某个序列结束时开始;

4、大小端控制。指明在串行传输时先发送字节中的高位还是低位。

以上所述实施例仅表示本发明的实施方式,其描述较为具体和详细,但并不能理解为对本发明范围的限制。应当指出的是,对于本领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1