CN111723033A - 一种多功能串行通信接口设备及其方法 - Google Patents
一种多功能串行通信接口设备及其方法 Download PDFInfo
- Publication number
- CN111723033A CN111723033A CN201910203033.9A CN201910203033A CN111723033A CN 111723033 A CN111723033 A CN 111723033A CN 201910203033 A CN201910203033 A CN 201910203033A CN 111723033 A CN111723033 A CN 111723033A
- Authority
- CN
- China
- Prior art keywords
- communication protocol
- serial
- baud rate
- clock
- data
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
依据本发明,提供了一种多功能串行通信接口及其方法。其中所述多功能串行通信接口包括多功能配置寄存器,用于选择性地提供对应于所述多功能串行通信接口的当前通信协议的通信协议数据;以及多功能串行通信协议控制器,用于根据来自所述多功能寄存器的通信协议数据,控制所述多功能串行通信接口按照当前通信协议进行通信。
Description
技术领域
本发明涉及通信领域,尤其涉及一种多功能串行通讯接口(MultifunctionalSerial Communication(MSC))设备及其方法。
背景技术
在通信领域,通常使用功能单一的通信接口,诸如通用异步收发传输器(Universal Asynchronous Receiver/Transmitter(UART))、串行外设接口(SerialPeripheral Interface(SPI))、集成电路总线(Inter-Integrated Circuit(I2C))等。在需要使用时,只能使用其中固定好的几种通信接口,其灵活性较低。
发明内容
本发明的一个目的在于提供一种多功能串行通信接口及方法。
依据本发明的一个方面,提供了一种多功能串行通信接口,其中所述多功能串行通信接口包括多功能配置寄存器,用于选择性地提供对应于所述多功能串行通信接口的当前通信协议的通信协议数据;以及多功能串行通信协议控制器,用于根据来自所述多功能寄存器的通信协议数据,控制所述多功能串行通信接口按照当前通信协议进行通信。
依据本发明的上述方面的多功能串行通信接口,其中所述多功能串行通信协议控制器包括专用波特率发生器,用于根据来自所述多功能寄存器的通信协议数据,对对应于当前通信协议的时钟进行分频,以产生对应于当前通信协议的时钟分频波特率。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多功能串行通信协议控制器包括分别对应于所述多功能串行通信接口的多个通信协议的多个控制器,所述多个控制器中对应于当前通信协议的控制器根据来自多功能配置寄存器的所述通信协议数据执行对应于当前通信协议的串行接口控制。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多功能寄存器把对应于当前通信协议的使能信号和配置信号提供给所述多个控制器中对应于当前通信协议的控制器,以使所述控制器启动对应于当前通信协议的所述串行接口控制。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述专用波特率发生器根据所述时钟分频波特率,设定对应于当前通信协议的重载值,并根据所述重载值来选择专用波特率。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述专用波特率发生器还用于根据选中的专用波特率对对应于当前通信协议的所述时钟进行分频,以获得串行时钟。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多个控制器包括UART控制器、SPI控制器和/或I2C控制器。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多功能串行通信协议控制器还包括串行协议状态机,用于根据对应于当前通信协议的控制器所执行的串行接口控制,以按照当前通信协议获得对应于并行传输数据的串行传输数据和/或SPI的片选传输数据。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多功能串行通信协议控制器还包括用于获得所述并行传输数据的并行输入输出控制器。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述多功能串行通信协议控制器还包括串行输入输出控制器,用于传输所述串行传输数据、所述SPI的片选传输数据和所述串行时钟中的一个或多个。
依据本发明上述方面中任一个的多功能串行通信接口,其中所述专用波特率发生器包括重载计数器,用于根据所述专用波特率发生器所设定的所述重载值对对应于当前通信协议的时钟进行分频,以获得专用波特率。
依据本发明的一个方面,提供了一种用于多功能串行通信接口的方法,包括用于选择性地提供对应于所述多功能串行通信接口的当前通信协议的通信协议数据;以及根据来自所述通信协议数据,控制所述多功能串行通信接口按照当前通信协议进行通信。
依据本发明的上述方面的方法,还包括用于根据所述通信协议数据,对对应于当前通信协议的时钟进行分频,以产生对应于当前通信协议的时钟分频波特率。
依据本发明上述方面中任一个的方法,还包括根据所述通信协议数据执行对应于当前通信协议的串行接口控制。
依据本发明上述方面中任一个的方法,还包括根据对应于当前通信协议的使能信号和配置信号启动对应于当前通信协议的所述串行接口控制。
依据本发明上述方面中任一个的方法,还包括根据所述时钟分频波特率,设定对应于当前通信协议的重载值,并根据所述重载值来选择专用波特率。
依据本发明上述方面中任一个的方法,还包括根据选中的专用波特率对对应于当前通信协议的所述时钟进行分频,以获得串行时钟。
依据本发明上述方面中任一个的方法,还包括根据所述串行接口控制,按照当前通信协议获得对应于并行传输数据的串行传输数据和/或SPI的片选传输数据。
依据本发明上述方面中任一个的方法,还包括传输所述串行传输数据、所述SPI的片选传输数据和所述串行时钟中的一个或多个。
依据本发明上述方面中任一个的方法,还包括根据所述专用波特率发生器所设定的所述重载值对对应于当前通信协议的时钟进行分频,以获得专用波特率。
附图说明
图1为依据本发明一个实施例的多功能串行协议控制器的示意方框图;
图2为依据本发明一个实施例的专用波特率发生器的示意方框图;
图3为依据本发明一个实施例的UART工作模式0中的双向通信连接的示意图;
图4为依据本发明一个实施例的UART工作模式0中的双向通信连接的示意图;
图5为依据本发明一个实施例的双向通信流程的示意图;
图6为依据本发明一个实施例的UART上的主机/从机通信连接的示意图;
图7为依据本发明一个实施例的主机/从机通信的示意流程图;
图8为依据本发明一个实施例的双向通信的SPI接口连接的示意方框图;
图9为依据本发明一个实施例的SPI工作模式中的双向通信的示意流程图;
图10为依据本发明一个实施例的I2C总线的启动条件的示意图;
图11为依据本发明一个实施例的I2C总线的停止条件的示意图;
图12为依据本发明一个实施例的I2C总线的反复启动条件的示意图;
图13为依据本发明一个实施例的I2C通信流程的一个例子的示意图;
图14为依据本发明一个实施例的I2C通信流程的一个例子的示意图;以及
图15为依据本发明一个实施例的I2C通信流程的一个例子的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
依据本发明的一个实施例,根据工作模式的设置,多功能串行通信接口可以选择以下通信模式中的任一个:
(1)UART0(异步标准串行接口)
(2)UART1(异步多处理器接口)
(3)SPI(串行外设接口/时钟同步通讯)
(4)I2C(I2C总线接口)
(5)专用波特率模块生成串口的时钟和波特率
(6)SPI中连续数据的接收和发送中间可***1-3个等待时间
依据本发明的一个实施例,表1表示接口模式切换的一个例子。在通过各串行通信接口进行通信时,在启动通信前,可使用表1所示串行模式寄存器(Serial Mode Register(SMR))来设置接口操作模式。
表1
图1示出依据本发明的一个实施例的多功能串行接口100的一个例子的示意方框图。如图1所示,所述多功能串行接口100可包括用于从例如以上表1所述的一个或多个接口操作模式中选择一个接口操作模式的多功能串行协议控制器110,以及来往于所述多功能串行协议控制器130进行数据传输的输入/输出(Input/Output(I/O)接口130。所述多功能串行协议(UART/SPI/I2C)控制器108可包括例如,SPI的片选输出。
所述多功能串行协议控制器110包括总线接口102、多功能配置寄存器104、波特率控制器106、并行输入输出控制器108、串行传输协议状态机112、串行输出控制114、串行输入控制116、UART模块118、SPI模块120和/或I2C模块122。例如,波特率控制器106可包括一专用波特率发生器。虽然图1中示出UART控制器118、SPI控制器120、I2C控制器122,在其他实施例中,所述多功能串行协议控制器还可包括基于其他通信协议的控制模块。所述串行输出控制114和串行输入控制116可包括SPI的片选输出。
参考图1,总线接口102可用于连接总线和/或其他模块的输入和/或输出。多功能配置寄存器104可用于按照以上表1来选择当前通信协议,例如多功能配置寄存器104可把对应于所选通信协议的使能信号和/或配置信号提供给选中的控制模块,UART控制器118、SPI控制器120或I2C控制器122。依据一个实施例,使能信号和配置信号可参考以下有关UART操作/SPI操作/I2C操作的描述。
图2示出依据本发明一个实施例的图1所示专用波特率发生器106的一个例子。依据本发明的一个实施例,所述专用波特率发生器106可包括波特率生成器寄存器202、第一多路复用器206、重载计数器208、第一和第二波特率计数比较器210和212、控制器214和/或第二多路复用器216。例如,所述波特率生成器寄存器202可包括第一寄存器BRS1和第二寄存器BRS0。所述波特率发生器寄存器202可耦合到高级外设总线(Advanced PeripheralBus(APB))。
所述第一多路复用器206可根据波特率生成器寄存器202中设置的计数器外部时钟选择位(例如,BRS1.ext)对外设时钟(peripheral clock(PCLK))和***时钟(SCLK)进行多路复用,并选择性地传送到重载计数器208。重载计数器208可把来自所述第一多路复用器206的时钟clk(例如,外部时钟或内部时钟)作为工作时钟。重载计数器208可接收来自波特率生成器寄存器202的波特率系数204(计时器重载值)。重载计数器208可包括第一计数器寄存器BGR1和第二计数器寄存器BGR0,用于根据波特率生成器寄存器(BRS1和BRS0)中的设置值(例如,重载值)对第一多路复用器206的工作时钟clk进行分频,并将分频结果分别输出到第一和第二波特率计数比较器210和212。
依据一个实施例,所述第一波特率计数比较器210可包括1/2波特率计数比较器。所述第二波特率计数比较器212可包括波特率计数比较器。第一波特率计数比较器210可将波特率比较器计数值(cnt data)与1/2波特率系数相比较,并根据比较结果产生第一比较值Sel 1。例如,如果波特率比较器计数值cnt_data等于1/2波特率系数,则所述第一比较值Sel1可以是逻辑“1”。第二波特率计数比较器212可将波特率比较器计数值(cnt data)与0相比较,并根据比较结果产生第二比较值Sel0。例如,如果波特率比较器计数值cnt_data=0,则所述第二比较值Sel0可以是逻辑“1”。第一和第二波特率计数比较器210和212可分别将第一比较值Sel1和第二比较值Sel0输出到控制器214。第二波特率计数比较器212可将重载波特率系数值返回重载计数器208。
控制器214可在Sel1=1(例如,cnt data=1/2波特率系数)时,使传输时钟(transmit clock(tclk))=~tclk(例如,对输入时钟取反,以产生如下所述依据重载值的分频时钟),并在Sel0=1(例如,cnt data=0)时,使得tclk=cinv(串行时钟翻转位)。控制器214可将获得的时钟tclk传送到第二多路复用器216,继而第二多路复用器216对传输时钟tclk或***时钟sclk进行多路复用,以如图1所示作为t1传送到串行协议状态机112。依据一个实施例,在UART模式下,专用波特率发生器106(例如,重载计数器208)可将内部时钟分频后得到的波特率在波特率生成器寄存器202(例如,BRS1、BRS0)中设定15位的重载值,以选择波特率。各重载计数器208可按照所述设置值分频内部时钟。波特率生成器寄存器202中可设置时钟源,以选择内部时钟(例如,BRS1:EXT=0)。
例如,专用波特率发生器106(例如,重载计数器208)可将外部时钟分频后得到的波特率使用外部时钟作为重载计数器208的时钟源。从***时钟(system clock(SCLK))232输入外部时钟。在波特率生成器寄存器202(BRS1和BRS0)中设定15位重载值后,可选择波特率。各重载计数器208通过所述设置值分频外部时钟。设置时钟源,选择使用外部时钟和波特率发生器时钟(例如,BRS1:EXT=1)。
依据另一个实施例,在SPI模式下,对于SPI的波特率选择,主机模式与从机模式下的专用波特率发生器的设置方法可以不同。
例如,在主机操作模式下,使用专用波特率发生器106将内部时钟频率进行分频,并将该分频选择性地输出。专用波特率发生器106可提供例如两个重载计数器208,以用于分别产生接收和发送操作的串行时钟。可通过配置波特率生成器寄存器202(BRS1和BRS0)来设置15位重载值。内部时钟频率可通过设置的重载值分频得到串行时钟,并将该串行时钟经由第二多路复用器216输出到串行协议状态机112。对于从机操作模式,专用波特率在从机模式(例如,CR:MSS=1)下无效,外部时钟可通过时钟输入引脚SCK直接输入,和/或经由第二多路复用器216作为输出到串行协议状态机112。
依据另一个实施例,在I2C模式下,专用波特率发生器106(重载计数器208)可分频内部时钟所得到的波特率,使用第一和第二波特率发生器寄存器(BRS1和BRS0)来设置15位重载值,以选择波特率。重载计数器208可通过所述设置值来分频内部时钟。
如图1所示,并行输入输出控制器108可连接到总线接口102,以得到传输的数据和接收的数据。
串行传输协议状态机112可得到控制逻辑行为,以将并行输入输出控制器108得到的传输数据按照当前选定的通信协议进行串行输出和SPI的片选输出。
串行输出控制114和串行输入控制116用于分别得到串行输出数据和串行输入数据,以分别将数据和时钟控制输出输入到I/O口130,并控制所述输出输入是否反向。
UART控制器118、SPI控制器120和I2C控制器122可分别接收来自多功能配置寄存器104的各使能信号和/或配置信号,以获得控制逻辑行为。
如图1所示,在一个实施例中,多功能配置寄存器104可选择性地提供对应于所述多功能串行通信接口100的当前通信协议的通信协议数据。所述多功能串行通信协议控制器110可根据来自多功能配置寄存器104的通信协议数据,控制所述多功能串行通信接口100按照当前通信协议进行通信。
在一个实施例中,所述专用波特率发生器106用于根据来自所述多功能配置寄存器104的通信协议数据,对对应于当前通信协议的时钟(内部时钟或外部时钟)进行分频,以产生对应于当前通信协议的时钟分频波特率。
依据一个实施例,所述UART控制器118、所述SPI控制器120和所述I2C控制器中对应于当前通信协议的控制器可根据来自多功能配置寄存器104的所述通信协议数据执行对应于当前通信协议的串行接口控制。
在一个实施例中,所述多功能配置寄存器104可把对应于当前通信协议的使能信号和配置信号提供给所述多个控制器118、120和122中对应于当前通信协议的控制器,以使所述控制器启动对应于当前通信协议的所述串行接口控制。
在一个实施例中,所述专用波特率发生器106可根据所述时钟分频波特率,设定对应于当前通信协议的重载值,并根据所述重载值来选择专用波特率。
在一个实施例中,所述专用波特率发生器106可根据选中的专用波特率对对应于当前通信协议的所述时钟进行分频,以获得串行时钟。
在一个实施例中,所述串行协议状态机112,可根据对应于当前通信协议的控制器所执行的串行接口控制,按照当前通信协议获得对应于并行传输数据的串行传输数据和/或SPI的片选传输数据。
在一个实施例中,所述并行输入输出控制器108可用于获得并行传输数据。
在一个实施例中,所述串行输出控制器116和所述串行输入控制器114可分别对所述串行传输数据、所述SPI的片选传输数据和所述串行时钟中的一个或多个的输出/输入进行控制,并可控制使输出输入反向。
在一个实施例中,所述重载计数器208可根据所述专用波特率发生器所设定的所述重载值对对应于当前通信协议的时钟进行分频,以获得专用波特率。
在UART操作中,可实现如下表2所示的一个或多个(异步串行接口)功能。
表2
在一个实施例中,在UART模式下,可使用如下表3所述的UART寄存器列表。
表3
在一个实施例中,专用波特率发生器106可依据如下所述进行操作。例如,UART发送/接收的时钟源可选择专用波特率发生器106(重载计数器208)的内部时钟或输入到专用波特率发生器106(重载计数器208)的外部时钟。专用波特率发生器106可如下所述来选择波特率。
在一个例子中,专用波特率发生器106(重载计数器208)可将内部时钟分频来得到波特率。例如,可在第一和第二波特率发生器寄存器BRS1和BRS0中设定15位的重载值,以选择波特率。各重载计数器208(例如,第一计数器寄存器BGR1和第二计数器寄存器BGR0)可按照所述设置值来分频内部时钟,以获得波特率。可设置时钟源,以选择内部时钟(例如,BRS1:EXT=0)。
在另一个例子中,专用波特率发生器106(重载计数器208)可将外部时钟分频来得到波特率。例如,可使用外部时钟作为重载计数器208的时钟源。例如,可从SCLK 232输入外部时钟。可在第一和第二波特率生成器寄存器BRS1和BRS0中设定15位重载值,以选择波特率。各重载计数器208(例如,第一和第二计数器寄存器BGR1和BGR0)可通过所述设置值来分频外部时钟,以获得波特率。可设置时钟源,以选择使用外部时钟和波特率发生器时钟(例如,BRS1:EXT=1)。在一个实施例中,所述模式可用于非标准频率振荡器的情况。
如果选择外部时钟(BRS1:EXT=1),可暂停重载计数器208(BGR1/0=15'h00)。如果选择外部时钟(BRS1:EXT=1),则其高(HIGH)电平和低(LOW)电平可有至少两个总线时钟的宽度。
依据一个实施例,专用波特率发生器106可如下所述来计算波特率。例如,可使用波特率发生器寄存器202(BRS1和BRS0)来设置15位重载计数器。
在一个实施例中,重载值可用下式(1)表示:
V=φ/b-1 式(1)
其中,V表示重载值,b表示波特率,φ表示总线时钟频率或者外部时钟频率。
例如,如果总线时钟为16MHz的内部时钟,波特率设置为19200bps,重载值可设置为:V=(16×1000000)/19200-1=832,则实际(当前)波特率为:波特率(计算值)=(16×1000000)/(832+1)=19218(bps)。
如果设置20MHz的总线时钟和153600bps的波特率,则重载值可设置为:V=(20×1000000)/153600-1=129,则波特率(计算值)=(20×1000000)/(129+1)=153846(bps)。
可按下式(2)来计算波特率误差:
误差(%)=(计数值-目标值)/目标值×100 式(2)
在一个实施例中,如果重载值设为“0”,则重载计数器停止。在另一个实施例中,如果重载值为偶数,则接收串行时钟一个周期内的LOW电平“L”比HIGH电平(“H”)宽。如果重载值为奇数,则串行时钟的HIGH电平和LOW电平宽度相同。
在一个实施例中,重载值可大于3,但在有些实施例中,因波特率误差和重载值的设置可能导致无法正常接收数据。如果重载值设为小于3,可配合波特率补偿功能来改善传输。例如,如果***频率为32KHz,对于9.6K的波特率,可配合波特率补偿功能来实现收发数据的准确性。
在又一个实施例中,在重载值大于3的情况下,可配合波特率补偿功能来得到更精准的波特率。
下表4示出各总线时钟频率对应的对应的重载值和波特率(其中,重载值为BRS1/0寄存器的设置值(十进制),误差为波特率误差(%):
表4
图3示出依据本发明一个实施例由两个中央处理器(Central Processing Unit(CPU))相互连接的一个例子。在一个实施例中,所述多功能串行通信接口可在UART工作模式0(异步正常模式)中实现CPU至CPU的连接。在UART工作模式0下,可选择例如双向通信。
如图3所示,第一CPU 310与第二CPU 320可在UART工作模式0下进行双向通信。第一CPU 310可包括一个或多个引脚或端口,例如串行输出(Serial Output Terminal(SOT))312、串行输入(Serial Input(SIN))314和/或***时钟(System Clock(SCK))316。第二CPU320可包括SOT 322、SIN 324和/或SCK 326。在一个实施例中,第一CPU 310可以是主控CPU,第二CPU 320可以是从动CPU,反之亦然。
主控CPU 310可经由SOT引脚312把数据发送到从动CPU 320的SIN引脚324。从动CPU 320可经由SOT引脚312向主控CPU 310发送数据,主控CPU 310可经由SIN引脚314接收来自从动CPU 320的数据。
图3中示出CPU引脚的一个例子,其他实施例可包括其他引脚设置。此外,其他实施例还可包括多个主控CPU和/或多个从动CPU。
在一个实施例中,在图3所示的UART工作模式0中双向通信连接禁用流控制。图4示出依据本发明一个实施例的UART工作模式0中的双向通信连接的一个例子,其中具有流控制。
如图4所示,第一CPU 410与第二CPU 430可在UART工作模式0下进行双向通信。第一CPU 410和第二CPU 430可包括一个或多个引脚或端口,例如主输出从输入(masteroutput slave input(MOSI))、主输入从输出(master input slave output(MISO))、SCK、清除发送(Clear to Send(CTS))和/或请求发送(Request to Send(RTS))。在一个实施例中,第一CPU 410可以是主控CPU,第二CPU 420可以是从动CPU,反之亦然。
如图4所示,主控CPU 410可经由MOSI引脚412向从动CPU 430发送数据,并经由MISO引脚414接收来自从动CPU 430的数据。主控CPU 410可经由RTS引脚420向从动CPU 430的CTS引脚438发送数据,并经由CTS引脚418接收来自从动CPU 430的数据。类似的,从动CPU430可经由MOSI引脚432向主控CPU 410发送数据,并经由MISO引脚434接收来自主控CPU410的数据。从动CPU 430可经由RTS引脚440向主控CPU 410的CTS引脚418发送数据,并经由CTS引脚438接收来自主控CPU 410的数据。
图4中示出CPU引脚的一个例子,其他实施例可包括其他引脚设置。
图5示出依据本发明一个实施例在UART工作模式0下的双向通信的一个例子。例如,图5所示的流程图可利用图3或4所示UART工作模式0下的双向通信连接的例子。
如图5所示,在框502,传送端的第一CPU可设置操作模式,例如UART模式0。在框512,接收端的第二CPU可设置相应操作模式,以使其操作模式与传送测的设置匹配,例如第二CPU可将操作模式设置为UART模式0。
在框504,第一CPU可在发送数据寄存器(TXDR)内设置例如1字节的第一数据并启动通信,以将第一数据发送到第二CPU。如果接收到来自传送端的第一CPU所发送的第一数据,接收端的第二CPU可判定RDEF等于1(判断框514)。如果第二CPU判定接收数据满标志位(RDFF)=1,则读取并处理接收到的所述第一数据(框516)。在框518,第二CPU向第一CPU发送例如1字节的第二数据(ANS),并返回判断框514,以通过RDFF判断是否收到来自第一CPU的数据。相反,如果第二CPU在判断框514判定RDFF不等于1(未接收到来自第一CPU的所述第一数据),则第二CPU继续在判断框514判断RDFF是否等于1,直到收到所述第一数据。
在判断框506,如果接收到来自第二CPU的所述第二数据,则第一CPU读取并处理接收到的所述第二数据(框508),并返回框504,以继续向第二CPU发送数据。
相反,如果在判断框506判定RDFF不等于1,例如未接收到来自第二CPU的第二数据(ANS),则第一CPU在判断框906继续对RDFF的判断,直到判定RDFF=1(接收到来自第二CPU的第二数据)。
图6示出依据本发明一个实施例的UART工作模式1(异步多处理模式)中通信连接的一个例子。例如,在图6所示的主机/从机通信中,通信***可配置有第一和第二公用通信线路630和640,以与主机CPU 610和一个或多个从机CPU 620A/620B等连接。在一个实施例中,UART可用作主控或从属。
主控CPU 610可经由MOSI引脚312从第一公用通信线路630把数据分别发送到从动CPU 620A/620B的MISO引脚624A/624B。从动CPU 620A/620B可分别经由MOSI引脚622A/622B从第二公用通信线路640向主控CPU 610发送数据,主控CPU 610可经由MISO引脚614接收来自从动CPU 620A/620B的数据。
图6中示出CPU引脚的一个例子,其他实施例可包括其他引脚设置。此外,其他实施例还可包括多个主控CPU和/或多个从动CPU。
在一个实施例中,在UART工作模式1中,可如表5所述来进行主机/从机功能选择。表5示出主机/从机通信中的选择通信功能选择,例如工作模式和/或数据传输***选择。
表5
在一个实施例中,在UART工作模式1中,发送/接收数据(TXDR/RXDR)以字访问模式工作。
图7示出依据本发明一个实施例的UART工作模式1(多处理器模式)中的通信的一个例子。在一个实施例中,在主机CPU发送地址数据时,通信启动。所述地址数据为D8位为1的数据集,用于选择进行通信的从机CPU。各从机CPU按照图7来判断地址,如果该地址与分配地址匹配,则与主机CPU进行通信。
如图7所示,在框702,主控CPU可设置操作模式,例如UART模式1。在框732,从动CPU可设置相应操作模式,以使其操作模式与主控CPU的操作模式匹配,例如从动CPU可将操作模式设置为UART模式1。
在框704,主控CPU可将MISO引脚设置为串行数据输入,以及将MOSI引脚设置为串行数据输出。在框706,主控CPU可设定7或8位数据位,并设定1或2位停止位。在框708,主控CPU可设定D8位为“1”。在框710,主控CPU可使能传送/接收操作。在框712,主控CPU可把从机地址传送到从动CPU。
在框734,从动CPU可将MISO引脚设置为串行数据输入。在框736,从动CPU可设定7或8位数据位,并设定1或2位停止位。在框738,从动CPU使能传送/接收操作。在框740,从动CPU接收主控CPU发送的字节并在判断框742判断接收到的字节的D8位是否为1。如果从动CPU判定D8位为“1”,则在判断框744判断来自主控CPU的从机地址与自己的分配地址是否匹配。相反,如果从动CPU在判断框742判定D8位不为“1”,则从动CPU返回框740,以继续从主控CPU接收从机地址,并在判断框744判断从机地址是否匹配。如果在判断框744判定来自主控CPU的从机地址与自己的分配地址匹配,则从动CPU在框746把MOSI引脚设置为串行数据输出。否则,从动CPU返回在框738。
在传送从机地址后,主控CPU可在框714设定D8为“0”。在框716,主控CPU与地址匹配的从动CPU进行通信。相应地,在框748,从动CPU与主控CPU进行通信。直到在判断框718和750判定通信完成。如果通信未完成,则主控CPU和从动CPU分别返回框716和748继续通信。
如果主控CPU在判断框718判定与从动CPU的通信已完成,则主控CPU在判断框720判断主控CPU是否与其他从动CPU通信。如果判定与其他从动CPU通信,则主控CPU在框722禁用传送/接收操作,并返回框702,以进行与其他从动CPU的通信。相反,如果在判断框720,主控CPU判定不与其他从动CPU通信,则主控CPU结束操作,从而完成通信。
依据本发明的另一个实施例,多功能串行通信接口可实现SPI操作。表6示出SPI功能的一个例子。
表6
依据一个实施例,表7示出SPI寄存器列表的一个例子。
表7
在一个实施例中,在SPI操作模式下的专用波特率发生器只在主机模式下生效。对于SPI波特率选择,主机模式与从机模式下的专用波特率发生器的设置方法不同。
在一个例子中,主机操作模式下,可使用专用波特率发生器106将内部时钟频率做出分频,并将该分频选择输出。
专用波特率发生器106可提供两个重载计数器208,以分别产生接收和发送操作的串行时钟。可通过配置波特率生成器寄存器(BRS1和BRS0)来设置15位重载值。内部时钟频率可通过设置的重载值分频得到串行时钟频率。
在另一个例子中,在从机操作模式下,专用波特率在从机模式(CR:MSS=1)下无效(例如,外部时钟可通过时钟输入引脚SCK直接输入)。
依据本发明的一个实施例,在SPI模式下,通过波特率生成寄存器(BRS1和BRS0)来设置两个15位重载计数器208。
在一个实施例中,重载值可用下式(3)表示:
V=φ/b-1 式(3)
其中,V表示重载值,b表示波特率,φ表示总线频率。
例如,如果总线时钟为16MHz的内部时钟,波特率设置为19200bps,重载值可设置为:V=(16×1000000)/19200-1=832,则实际波特率为:波特率(计算值)=(16×1000000)/(832+1)=19218(bps)。
如果设置20MHz的总线时钟和153600bps的波特率,则重载值可设置为:V=(20×1000000)/153600-1=129,则波特率(计算值)=(20×1000000)/(129+1)=153846(bps)。
可按下式(4)来计算波特率误差:
误差(%)=(计数值-目标值)/目标值×100 式(4)
在一个实施例中,如果重载值设为“0”,则重载计数器停止。在另一个实施例中,如果重载值为偶数,则串行时钟的低电平“L”的宽度和高电平“H”的宽度与MR:CINV和CR:SPIMODE的设置有关。如果重载值为奇数,则串行时钟的高电平“H”的宽度和低电平“L”的宽度相同。
在无片选传输模式(例如,CR:SPIMODE=0)下且串行时钟检测电平为高电平"H"(MR:CINV=0)时,或者片选传输模式(CR:SPIMODE=1)且串行时钟检测电平为低电平"L"(MR:CINV=1)时,串行时钟的高电平"H"的宽度将比低电平"L"的宽度长1个总线时钟周期。
在无片选传输模式(CR:SPIMODE=0)下且串行时钟检测电平为低电平"L"(MR:CINV=1),或者片选传输模式(CR:SPIMODE=1)且串行时钟检测电平为高电平"H"(MR:CINV=0)时,串行时钟的低电平"L"的宽度将比高电平"H"的宽度长1个总线时钟周期。
在另一个实施例中,重载值设置大于等于3。依据本发明的一个实施例,表8示出SPI模式下各总线时钟频率对应的重载值和波特率。
表8
图8示出依据本发明一个实施例的双向通信的SPI接口的一个例子。主控CPU 810和从动CPU 820可如图8所示在SPI工作模式下进行双向通信。例如,主控CPU 810可经由MOSI引脚812向从动CPU 820发送数据,并经由MISO引脚814接收来自从动CPU 820的数据。主控CPU 810可经由SCK引脚816向从动CPU 820的SCK引脚826发送时钟信号830。
主控CPU 310可经由SOT引脚312把数据发送到从动CPU 320的SIN引脚324。从动CPU 320可经由SOT引脚312向主控CPU 310发送数据,主控CPU 310可经由SIN引脚314接收来自从动CPU 320的数据。
图8中示出CPU引脚的一个例子,其他实施例可包括其他引脚设置。此外,其他实施例还可包括多个主控CPU和/或多个从动CPU。
图9示出依据本发明一个实施例SPI模式下的双向通信的一个例子。如图9所示,在框902,主机端的主控CPU可设置工作方式,例如SPI模式。在框912,从机端的从动CPU可设置相应工作方式,以与主机端的工作模式相一致。例如,从动CPU可将操作模式设置为SPI模式。
在框904,主控CPU可在发送数据寄存器(TXDR)内写入第一字节数据,通信开始。主控CPU把所述第一字节数据发送到从动CPU。如果接收到来自主控CPU所发送的第一字节数据,从动CPU可判定RDEF等于1(判断框914)。如果从动CPU判定RDFF=1,则读取并处理接收到的第一字节数据(框916)。在框918,从动CPU向主控CPU发送例如1字节的第二数据(ANS),并返回判断框914,以通过RDFF判断是否收到来自主控CPU的数据。
相反,如果从动CPU在判断框914判定RDFF不等于1(未接收到来自主控CPU的第一字节数据),则从动CPU继续在判断框914判断RDFF是否等于1,直到收到所述第一字节数据。
在判断框906,如果接收到来自从动CPU的第二数据,则主控CPU判定RDFF=1,以在框908读取并处理来自从动CPU的第二数据,并返回框904,以继续向从动CPU发送数据。
相反,如果在判断框906判定RDFF不等于1,例如未接收到来自从动CPU的第二数据(ANS),则主控CPU在判断框906继续对RDFF的判断,直到判定RDFF=1(接收到来自从动CPU的第二数据)。
依据本发明的又一个实施例,多功能串行通信接口可实现I2C操作。以下表9示出依据本发明一个实施例的I2C功能的一个例子。
表9
依据本发明的一个实施例,下表10示出I2C寄存器列表的一个例子。
表10
依据本发明的一个实施例,可使用专用波特率发生器106来设置串行时钟频率。例如,对波特率的选择可使用专用波特率发生器106(重载计数器208)分频内部时钟所得到的波特率。
可使用第一和第二波特率发生器寄存器1和0(BRS1/BRS0)来设置15位重载值,以选择波特率。重载计数器208可通过设置值分频内部时钟。
在一个实施例中,可利用两个寄存器(BRS1和BRS0)来设置15位重载计数器的波特率设置值。例如,按照以下式(5)来计算重载值:
V=φ/b-1 式(5)
其中,V表示重载值,b表示波特率,φ表示总线时钟频率。在一个实施例中,如果在I2C总线的信号上升沿时间不产生预设的波特率,则调整重载值。
如果总线时钟为16MHz,波特率为400bps时的重载值为:V=(16×1000000)/400000-1=39,实际波特率为:b=(16×1000000)/(39+1)=400(bps)。
例如,以16位为单位写访问波特率发生器寄存器1和波特率发生器寄存器0(BRS1,BRS0)。在从机地址屏蔽寄存器(SAMSK)的从动屏蔽使能位(SAMSK:EN)为“0”时,设置波特率发生器寄存器。在I2C模式时,总线时钟不低于8MHz,禁止设置超出400kbps的波特率发生器。重载值为“0”时,重载计数器停止工作。
表11示出个总线时钟频率对应的重载值和波特率。
表11
如表11所示,所述数值为I2C总线的串行时钟线(Serial Clock Line(SCL))上升为0s时的情况。I2C总线的串行时钟线SCL上升延迟时,波特率比以上数值延迟。如果不是上述值,可参考公式(5)设置。
在一个实施例中,I2C总线可包括一串行数据线(Serial Data(SDA))和一串行时钟线SCL。图10-12示出依据本发明一个实施例的I2C总线操作的例子。图10示出I2C总线的启动条件的一个例子。如图10所示,在串行时钟线1020为高电平时,如果串行数据线1010由高电平向低电平跳变(框1030所示),则I2C总线启动。
图11示出I2C总线的停止条件的一个例子。如图11所示,在串行时钟线1020为高电平时,如果串行数据线1010由低电平向高电平跳变(框1130所示),则I2C总线停止。
图12示出I2C总线的反复启动条件的一个例子。如图12所示,在串行时钟线1020发出应答信号(ACK 1240)且串行时钟线1020跳变为高电平后,如果串行数据线1010由高电平向低电平跳变(框1230所示),则I2C总线反复启动。
图13示出示出依据本发明另一个实施例的I2C操作流程的一个例子。CPU可使用如图13所示的流程来执行I2C总线操作。例如,图13可适用于主控模式。
如图13所示,在框1302,CPU可进行初始设定,例如波特率(BRS)、从动地址(SA)、从动屏蔽设定(SAMSK)和/或I2C使能(SAMSK:EN=1)等设定。在判断框1304,CPU可判断是否为主控模式。如果在判断框1304判定不是主控模式,则流程可进到例如图14所示的从动模式(1400)。
相反,如果在判断框1304判定为主控模式,则在框1306写入发送数据(TXDR),和/或设置主控模式(例如,主从机选择位BCR:MSS=1)。在判断框1308,CPU可判断中断标志清零位(BCR:INTF)是否为1。如果在判断框1308判定BCR:INTF不为1,则流程返回判断框1308。相反,如果在判断框1308判定BCR:INTF=1,则流程进到判断框1310。参考图13、14和15,图14或图15的流程可从圈A(1420)进到图13所示的判断框1308。
在判断框1310,CPU可判断总线错误位(BCR:BERF)是否为零。如果在判断框1310判定BCR:BERF不为零,则流程进到框1312。在框1312,CPU执行总线错误处理,继而流程结束。相反,如果在判断框1310判定BCR:BERF=0,则流程进到判断框1314,以判断反复启动设定位(BCR:OF ITS)是否为1。在判断框1314,如果CPU判定BCR:OFITS不为1,则流程进到框1316,以执行仲裁丢失处理,继而流程结束。相反,如果在判断框1314判定BCR:OFITS=1,则流程进到判断框1318。
在判断框1318,CPU可判断主从机选择位(BCR:MSS)是否为1。如果在判断框1318判定BCR:MSS不为1,则流程进到从动模式(1400)。相反,如果在判断框1318判定BCR:MSS=1,则流程进到判断框1320。在判断框1320,CPU可判断保留地址检测位(IBSR:RAD)是否为零。如果在判断框1320判定IBSR:RAD不为0,则流程进到框1322,以保留地址。相反,如果在判断框1320判定IBSR:RAD=0,则流程进到判断框1324。
在判断框1324,CPU可判断应答标志位(IBSR:ACKF)是否为0。如果在判断框1324判定IBSR:ACKF不为0,则流程进到判断框1342,以判断是否执行反复启动。相反,如果在判断框1324判定IBSR:ACKF=0,则流程进到判断框1326。在判断框1326,CPU可判断数据方向位(IBSR:TRX)是否为1。如果在判断框1326判定IBSR:TRX不为1,则流程进到判断框1332,以判断反复启动条件标志位(BS:FBB)是否为0。相反,如果在判断框1326判定IBSR:TRX=0,则流程进到判断框1328。
在判断框1328,CPU可判断是否发送完成。如果在判断框1328判定发送未完成,则流程进到判断框1342,以判断是否执行反复启动。相反,如果在判断框1328判定发送完成,则流程进到框1330。在框1330,CPU可执行写入发送数据(TXDR)、等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE)和/或中断标志清零(BCR:INTF=0)。继而,流程可返回判断框1308。
在判断框1332,CPU可判断反复启动条件位(BS:FBB)是否为0。如果在判断框1332判定BS:FBB不为0,则流程进到判断框1336。相反,如果在判断框1332判定BS:FBB=0,则CPU可在框1334读取接收数据(RXDR)。在判断框1336,CPU可判断接收是否完成。如果在判断框1336判定接收未完成,则CPU可在框1338执行等待设定(BCR:WTSEL=1)、应答ACK设定(BCR:ACKE=1)和/或中断标志清零(BCR:INTF=0)。继而,流程返回判断框1308。相反,如果在判断框1336判定接收完成(无应答(NACK)应答),则流程进到框1340。
在框1340,CPU可执行等待设定(BCR:WTSEL)和/或应答ACK设定(BCR:ACKE=0)。继而,流程进到判断框1342。参考图13和图15,图15的流程可从图15所示的圈B(1530)进到图13所示的判断框1342。在判断框1342,CPU可判断是否反复启动。如果在判断框1342判定不执行反复启动,则流程进到框1346。在框1346,CPU可执行停止设定(BCR:MSS=0)、应答ACK设定(BCR:ACKE)和/或中断标志清零(BCR:INTF=0)。继而,流程结束。相反,如果在判断框1342判定执行反复启动,则流程进到框1344。在框1344,CPU可执行写入发送数据、反复启动设定(BCR:MSS=OFITS=1)、应答ACK设定(BCR:ACKE)和/或中断标志清零(BCR:INTF=0)。继而,流程返回判断框1308。
图14示出依据本发明另一个实施例的I2C操作流程的一个例子。CPU可使用如图14所示的流程来执行I2C总线操作。例如,图14可适用于CPU的从动模式。
如图14所示,在框1402,CPU可执行从动模式。在判断框1404,CPU可判断保留地址检测位(BSR:RAD)是否为零。如果在判断框1404判定BSR:RAD不为零,则流程进到判断框1422。相反,如果在判断框1404判定BSR:FBB=1,则流程进到判断框1406。
在判断框1406,CPU可判断数据方向位(BSR:TRX)是否等于0。如果在判断框1406判定BSR:TRX不为0,则流程进到判断框1414。相反,如果在判断框1406判定BSR:TRX=0,则流程进到判断框1408。
在判断框1408,CPU可判断反复启动条件标志位(BSR:FBB)是否为0如果在判断框1408判定BSR:FBB不为0,则流程进到框1412。相反,如果在判断框1408判定BSR:FBB=0,则流程进到框1410,以读取接收数据寄存器(RXDR)中的接收数据。继而,流程进到框1412。在框1412,CPU可执行等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE)和/或把中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。
在判断框1414,CPU可判断应答标志位(BSR:ACKF)是否为0。如果在判断框1414判定BSR:ACKF不为0,则流程进到框1418。在框1418,CPU可执行中断标志清零(BCR:INTF=0)。继而,流程结束。相反,如果在判断框1414判定BSR:ACKF=0,则流程进到框1416。在框1416,CPU可把执行写入发送数据(发送数据寄存器(TXDR))、等待设定(BCR:WTSEL)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。
在判断框1422,CPU可判断反复启动条件标志位(BSR:FBB)是否为1如果在判断框1422判定BSR:FBB不为1,则流程进到判断框1426。相反,如果在判断框1422判定BSR:FBB=1,则流程进到框1424,以读取接收数据寄存器(RXDR)中的接收数据。继而,流程进到判断框1426。
在判断框1426,CPU可判断是否执行从动操作。如果在判断框1426判定不执行从动操作,则流程进到框1430,以执行应答ACK设定(BCR:ACKE=0)和/或中断标志清零(BCR:INTF=0)。继而,流程结束。相反,如果在判断框1426判定执行从动操作,则流程进到判断框1428。
在判断框1428,CPU可判断数据方向位(BSR:TRX)是否为1。如果在判断框1428判定BSR:TRX不为1,则流程进到判断框1434。相反,如果在判断框1428判定BSR:TRX=1,则流程进到框1432。在框1432,CPU可执行写入发送数据(TXDR)、等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE=0)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。
在判断框1434,CPU可判断反复启动条件标志位(BSR:FBB)是否为1如果在判断框1434判定BSR:FBB不为1,则流程进到框1436,以读取接收数据寄存器(RXDR)中的接收数据。相反,如果在判断框1434判定BSR:FBB=1,则流程进到框1438。在框1438,CPU可执行等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE=1)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。
图15示出依据本发明另一个实施例的I2C操作流程的一个例子。CPU可使用如图15所示的流程来执行I2C总线操作。例如,图15可适用于保留地址操作。
如图15所示,在框1502,CPU可执行保留地址操作。在判断框1504,CPU可判断反复启动条件标志位(BSR:FBB)是否为1。如果在判断框1504判定BSR:FBB不为1,则流程进到判断框1512。相反,如果在判断框1504判定BSR:FBB=1,则流程进到判断框1506。
在判断框1506,CPU可判断是否有多个主控CPU。如果在判断框1506判定没有多个主控CPU,则流程进到框1510。在框1510,CPU可执行读取接收数据(RXDR)、等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。相反,如果在判断框1506判定有多个主控CPU,则流程进到框1508。在框1508,CPU可执行读取接收数据(RXDR)、等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE=1)和/或把中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以如图13所示执行相应操作。
在判断框1512,CPU可判断数据方向位(BSR:TRX)是否为1。如果在判断框1512判定BSR:TRX不为1,则流程进到框1524。相反,如果在判断框1512判定BSR:TRX=1,则流程进到判断框1514。
在判断框1514,CPU可判断接收数据满标志位(SSR:RDFF)是否为1如果在判断框1514判定SSR:RDFF不为1,则流程进到判断框1518。相反,如果在判断框1514判定BSR:RDFF=1,则流程进到框1516。在判断框1516,CPU可读取接收数据。继而,流程进到判断框1518。
在判断框1518,CPU可判断接收应答标志位(BSR:RACK)是否为0。如果在判断框1518判定BSR:RACK不为0,则流程进到圈A(1420),以按照图13所示执行相应操作。相反,如果在判断框1518判定BSR:RACK=0,则流程进到判断框1520。
在判断框1520,CPU可判断发送是否完成。如果在判断框1520判定发送完成,则流程进到圈B(1530),以按照图13所示执行相应操作。相反,如果在判断框1518判定发送未完成,则流程进到框1522。在框1522,CPU可执行写入发送数据(TXDR)、等待设定(BCR:WTSEL)、应答ACK设定(BCR:ACKE=0)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以按照图13所示执行相应操作。
在框1524,CPU可读取接收数据(RXDR)。继而,流程进到判断框1526。在判断框1526,CPU可判断发送是否完成。如果在判断框1526判定发送完成(例如接收到无应答(NACK)响应),则流程进到框1528,以执行等待设定(BCR:WTSEL)和/或应答ACK设定(BCR:ACKE=0)。继而,流程进到圈B(1530),以按照图13所示执行相应操作。相反,如果在判断框1526判定发送未完成,则流程进到框1532,以执行等待设定(BCR:WTSEL=1),应答ACK设定(BCR:ACKE=1)和/或中断标志清零(BCR:INTF=0)。继而,流程进到圈A(1420),以按照图13所示执行相应操作。
图13-15的流程示出I2C模式时的操作设置的例子,在其他实施例中,可配合适当的应用需要,考虑错误处理等情况。
依据本发明的实施例,多功能串行通信接口100可使得把UART、SPI和I2C串口通信共用同一种控制逻辑和寄存器设置。在同一时间可使用UART、SPI和I2C中的一种串口通信模式,从而使芯片的串口通信设置更加灵活。
Claims (14)
1.一种多功能串行通信接口,其特征在于所述多功能串行通信接口包括多功能配置寄存器,用于选择性地提供对应于所述多功能串行通信接口的当前通信协议的通信协议数据;以及多功能串行通信协议控制器,用于根据来自所述多功能寄存器的通信协议数据,控制所述多功能串行通信接口按照当前通信协议进行通信;所述多功能串行通信协议控制器包括专用波特率发生器,用于根据来自所述多功能寄存器的通信协议数据,对对应于当前通信协议的时钟进行分频,以产生对应于当前通信协议的时钟分频波特率。
2.如权利要求1所述的多功能串行通信接口,其特征在于所述多功能串行通信协议控制器包括分别对应于所述多功能串行通信接口的多个通信协议的多个控制器,所述多个控制器中对应于当前通信协议的控制器根据来自多功能配置寄存器的所述通信协议数据执行对应于当前通信协议的串行接口控制。
3.如以上权利要求中任一项所述的多功能串行通信接口,其特征在于所述多功能寄存器把对应于当前通信协议的使能信号和配置信号提供给所述多个控制器中对应于当前通信协议的控制器,以使所述控制器启动对应于当前通信协议的所述串行接口控制。
4.如以上权利要求中任一项所述的多功能串行通信接口,其特征在于所述专用波特率发生器用于根据所述时钟分频波特率,设定对应于当前通信协议的重载值,并根据所述重载值来选择专用波特率和/或还用于根据选中的专用波特率对对应于当前通信协议的所述时钟进行分频,以获得串行时钟。
5.如以上权利要求中任一项所述的多功能串行通信接口,其特征在于所述多个控制器包括UART控制器、SPI控制器和/或I2C控制器。
6.如以上权利要求中任一项所述的多功能串行通信接口,其特征在于所述多功能串行通信协议控制器还包括串行协议状态机,用于根据对应于当前通信协议的控制器所执行的串行接口控制,以按照当前通信协议获得对应于并行传输数据的串行传输数据和/或SPI的片选传输数据,和/或用于获得所述并行传输数据的并行输入输出控制器,和/或串行输入输出控制器,用于传输所述串行传输数据、所述SPI的片选传输数据和所述串行时钟中的一个或多个。
7.如以上权利要求中任一项所述的多功能串行通信接口,其特征在于所述专用波特率发生器包括重载计数器,用于根据所述专用波特率发生器所设定的所述重载值对对应于当前通信协议的时钟进行分频,以获得专用波特率。
8.一种用于多功能串行通信接口的方法,包括用于选择性地提供对应于所述多功能串行通信接口的当前通信协议的通信协议数据;根据来自所述通信协议数据,控制所述多功能串行通信接口按照当前通信协议进行通信;以及根据所述通信协议数据,对对应于当前通信协议的时钟进行分频,以产生对应于当前通信协议的时钟分频波特率。
9.如权利要求8所述的方法,其特征在于还包括根据所述通信协议数据执行对应于当前通信协议的串行接口控制,和/或根据对应于当前通信协议的使能信号和配置信号启动对应于当前通信协议的所述串行接口控制。
10.如以上权利要求8或9所述的方法,其特征在于还包括根据所述时钟分频波特率,设定对应于当前通信协议的重载值,并根据所述重载值来选择专用波特率。
11.如以上权利要求中任一项所述的方法,其特征在于还包括根据选中的专用波特率对对应于当前通信协议的所述时钟进行分频,以获得串行时钟。
12.如以上权利要求中任一项所述的方法,其特征在于还包括根据所述串行接口控制,按照当前通信协议获得对应于并行传输数据的串行传输数据和/或SPI的片选传输数据。
13.如以上权利要求中任一项所述的方法,其特征在于还包括传输所述串行传输数据、所述SPI的片选传输数据和所述串行时钟中的一个或多个。
14.如以上权利要求中任一项所述的方法,其特征在于还包括根据所述专用波特率发生器所设定的所述重载值对对应于当前通信协议的时钟进行分频,以获得专用波特率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910203033.9A CN111723033A (zh) | 2019-03-18 | 2019-03-18 | 一种多功能串行通信接口设备及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910203033.9A CN111723033A (zh) | 2019-03-18 | 2019-03-18 | 一种多功能串行通信接口设备及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111723033A true CN111723033A (zh) | 2020-09-29 |
Family
ID=72562964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910203033.9A Pending CN111723033A (zh) | 2019-03-18 | 2019-03-18 | 一种多功能串行通信接口设备及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723033A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804128A (zh) * | 2021-03-25 | 2021-05-14 | 广州智慧城市发展研究院 | 一种支持多协议的总线控制***及方法 |
TWI789290B (zh) * | 2022-04-21 | 2023-01-01 | 新唐科技股份有限公司 | 偵測匯流排干擾信號的控制電路及其方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
CN104794088A (zh) * | 2015-04-22 | 2015-07-22 | 成都为开微电子有限公司 | 一种多接口总线转换扩展芯片设计 |
CN104850527A (zh) * | 2015-06-12 | 2015-08-19 | 中国电子科技集团公司第四十七研究所 | 通讯协议处理器 |
CN206075271U (zh) * | 2016-08-05 | 2017-04-05 | 河南誉凌电子科技有限公司 | 一种支持多种串行协议的协议转换器 |
CN106951381A (zh) * | 2017-03-21 | 2017-07-14 | 成都为开微电子有限公司 | 一种uart扩展芯片及实现方法 |
CN107451087A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于fpga的异同步可切换串口及使用方法 |
-
2019
- 2019-03-18 CN CN201910203033.9A patent/CN111723033A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127023A (zh) * | 2006-08-17 | 2008-02-20 | 四川维肯电子有限公司 | 一种多总线接口的通用异步串口扩展芯片 |
CN104794088A (zh) * | 2015-04-22 | 2015-07-22 | 成都为开微电子有限公司 | 一种多接口总线转换扩展芯片设计 |
CN104850527A (zh) * | 2015-06-12 | 2015-08-19 | 中国电子科技集团公司第四十七研究所 | 通讯协议处理器 |
CN206075271U (zh) * | 2016-08-05 | 2017-04-05 | 河南誉凌电子科技有限公司 | 一种支持多种串行协议的协议转换器 |
CN106951381A (zh) * | 2017-03-21 | 2017-07-14 | 成都为开微电子有限公司 | 一种uart扩展芯片及实现方法 |
CN107451087A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于fpga的异同步可切换串口及使用方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804128A (zh) * | 2021-03-25 | 2021-05-14 | 广州智慧城市发展研究院 | 一种支持多协议的总线控制***及方法 |
CN112804128B (zh) * | 2021-03-25 | 2021-07-16 | 广州智慧城市发展研究院 | 一种支持多协议的总线控制***及方法 |
TWI789290B (zh) * | 2022-04-21 | 2023-01-01 | 新唐科技股份有限公司 | 偵測匯流排干擾信號的控制電路及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482055B2 (en) | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine | |
KR100387980B1 (ko) | 서로다른두직렬데이터전송모드로동작가능한직렬인터페이스 | |
US10445270B2 (en) | Configuring optimal bus turnaround cycles for master-driven serial buses | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互***和方法 | |
US20120072629A1 (en) | Communication system, master device and slave device, and communication method | |
CN100370409C (zh) | 用于校准随机存取存储器的方法和存储器接口单元 | |
US10572438B1 (en) | Dynamic optimal data sampling time on a multi-drop bus | |
US20190356412A1 (en) | Fast termination of multilane double data rate transactions | |
TW201926064A (zh) | 用於時間臨界資料交換之多點下傳匯流排上之位元交錯雙向傳輸 | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
CN111723033A (zh) | 一种多功能串行通信接口设备及其方法 | |
US20200201808A1 (en) | Time-division multiplexing (tdm) data transfer on serial interfaces | |
CN111711444B (zh) | 一种专用波特率发生器及通信方法 | |
US10684981B2 (en) | Fast termination of multilane single data rate transactions | |
US20020178310A1 (en) | USB transmission control circuit | |
US20200083875A1 (en) | Master read from slave over pulse-width modulated half-duplex 1-wire bus | |
US20060206763A1 (en) | Debugging system, semiconductor integrated circuit device, microcomputer, and electronic apparatus | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
US11520729B2 (en) | I2C bus architecture using shared clock and dedicated data lines | |
US20180173657A1 (en) | Automatic transmission of dummy bits in bus master | |
US6816935B1 (en) | Interrupt and status reporting structure and method for a timeslot bus | |
WO2009069094A1 (en) | Method and device for routing data between components | |
CN111782574A (zh) | 一种串行外设接口控制方法和串行外设接口控制器 | |
US20080288692A1 (en) | Semiconductor integrated circuit device and microcomputer | |
Li et al. | Research on Improvement of Configurable I2C controller IP Core |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220624 Address after: 201210 floor 10, block a, building 1, No. 1867, Zhongke Road, pilot Free Trade Zone, Pudong New Area, Shanghai Applicant after: Xiaohua Semiconductor Co.,Ltd. Address before: 201203 room 303-304, block a, No. 112, liangxiu Road, pilot Free Trade Zone, Pudong New Area, Shanghai Applicant before: HUADA SEMICONDUCTOR Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200929 |
|
RJ01 | Rejection of invention patent application after publication |