CN109359083A - 一种芯片内可重构串行总线控制器的硬件实现方法 - Google Patents

一种芯片内可重构串行总线控制器的硬件实现方法 Download PDF

Info

Publication number
CN109359083A
CN109359083A CN201811131605.9A CN201811131605A CN109359083A CN 109359083 A CN109359083 A CN 109359083A CN 201811131605 A CN201811131605 A CN 201811131605A CN 109359083 A CN109359083 A CN 109359083A
Authority
CN
China
Prior art keywords
state machine
jump instruction
restructural
hardware implementation
bus controller
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
Application number
CN201811131605.9A
Other languages
English (en)
Inventor
黄凯
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201811131605.9A priority Critical patent/CN109359083A/zh
Publication of CN109359083A publication Critical patent/CN109359083A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种芯片内可重构串行总线控制器的硬件实现方法,包括如下步骤:首先定义多个状态,每个状态都能通过控制电路实现对应的逻辑功能,然后将要实现支持的通信协议所对应的状态机转换和跳转按照顺序配置进去,实现通过软件配置来支持不同的接口协议。本发明实现最大程度的复用控制逻辑来支持像I2C、SPI、SSP、Microwire、Enhanced SPI、IrDA 1.0 SIR、RS485、UART、ISO7816‑3等标准的通信协议,以及通过灵活的配置很容易实现支持所需要的一些非标准的协议的硬件实现方法,既节省了面积,也省去了大量非标协议电路的开发时间。

Description

一种芯片内可重构串行总线控制器的硬件实现方法
技术领域
本发明涉及芯片领域,具体是一种SoC芯片内可重构串行总线控制器的硬件实现方法。
背景技术
串行总线是用来实现芯片与外部设备连接和数据交换的设备。串行总线控制器(接口)的功能是实现CPU通过串行总线把外围设备联系在一起。串行总线控制器的种类很多,其相应的接口电路各不相同。通常芯片可能会连接不同的外围设备,不同的外围设备所能提供的串行总线接口类型也不尽相同。
应对这种需求,通常的做法是芯片会整合不同的接口IP,尽可能全面的支持所需要的串行总线协议,因为这些IP都是独立的,不复用控制逻辑电路,通常不会同时使用所有的串行总线控制器,浪费了大量的面积。有时应对特殊需求的外围设备,芯片可能还需要提供支持非标准协议的串行总线协议,这时需要进行定制化的控制器的开发,这就需要付出时间成本,以及这种定制化的支持非标准协议的串行总线控制器的复用性不高。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种芯片内可重构串行总线控制器的硬件实现方法,包括如下步骤:首先定义多个状态,每个状态都能通过控制电路实现对应的逻辑功能,然后将要实现支持的通信协议所对应的状态机转换和跳转按照顺序配置进去,实现通过软件配置来支持不同的接口协议。
进一步的,所对应的状态机转换和跳转按照顺序配置进去的类似指令分为两种:第一种由状态的值和对应的跳转指令的地址组成;第二种是跳转指令,由几个对应状态所可能跳转到的下一个状态机所对应的地址所组成。
进一步的,所支持的标准协议包括I2C、SPI、SSP、Microwire、Enhanced SPI、IrDA1.0 SIR、RS485、UART、ISO7816-3。
进一步的,所支持的接口协议包括自定义的非标准通信协议。
进一步的,还包括同时存储两份状态及跳转指令,实现全双工的通信协议。
进一步的,可配置的状态机和跳转指令配合,实现接口协议的控制逻辑。
本发明完全复用了各协议的控制逻辑,不用整合不同的接口IP,节省了很多面积,提供灵活的状态机配置和跳转指令(控制逻辑),在可支持标准的I2C、SPI、SSP、Microwire、Enhanced SPI、IrDA 1.0 SIR、RS485、UART、ISO7816-3等的基础上,可灵活的配置成支持一些非标准的协议,节省了非标准接口IP的开发时间,可复用性强。
本发明实现最大程度的复用控制逻辑来支持像I2C、SPI、UART、ISO7816-3等标准的通信协议,以及通过灵活的配置很容易实现支持所需要的一些非标准的协议的硬件实现方法,既节省了面积,也省去了大量非标协议电路的开发时间。
附图说明
图1是本发明的SoC芯片内可重构串行总线控制器的硬件实现方法流程图;
图2是I2C主机7位寻址的发送数据的状态机流程图;
图3是I2C主机7位寻址的接收数据的状态机流程图;
图4是I2C主机10位寻址的发送数据的状态机流程图;
图5是I2C主机10位寻址的接收数据的状态机流程图;
图6是I2C 从机7位寻址的接收数据的状态机流程图;
图7是I2C 从机10位寻址的发送数据的状态机流程图;
图8是SPI 主机发送数据的状态机流程图;
图9是SPI 主机接收数据的状态机流程图;
图10是SPI 从机发送或者接收数据的状态机流程图;
图11是UART 发送数据的状态机流程图;
图12是 UART 接收数据的状态机流程图;
图13是 ISO7816-3 发送数据的状态机流程图;
图14是 ISO7816-3 接收数据的状态机流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
如图1所示,本发明的SoC芯片内可重构串行总线控制器的硬件实现方法流程如下:首先定义多个状态,每个状态都能控制电路实现对应的逻辑功能。然后通过软件将要实现支持的通信协议所对应的状态机转换和跳转按照顺序配置进去,这样就实现了可通过软件配置来支持不同的接口协议的目的,同时也能最大限度的复用控制逻辑以及灵活的实现所需要的非标准的协议。通过软件配置进去的类似于指令分为两种,第一种由状态的值和对应的跳转指令的地址组成。第二种是跳转指令,由几个对应状态所可能跳转到的下一个状态机所对应的地址所组成。
根据几种通信协议的需求给出了能够完全实现协议的各个状态如下(状态的位宽可按照需求进行扩展):
表1 状态的具体实例
每个状态对应硬件实现一种逻辑功能,将所要实现支持的通信协议所对应的状态和需要跳转指令的存储地址按照顺序存储起来。存储的格式大致如表2所示:
表2状态的存储格式
其中状态x是由跳转指令的存储地址和跳转指令的存储地址组成的(跳转指令的存储地址+状态机的状态值),如果该状态不需要跳转,跳转指令的存储地址的位置可写成全“1”。
将状态机所需要的跳转指令也存储起来,跳转指令实际上存储的是状态机所可能要跳转到的状态机的存储地址。假设一个状态机可能要跳转到两个状态机中的一个,大致的跳转指令为“下一个状态0 的存储地址 +下一个状态1的存储地址”。
将要实现支持的通信协议所对应的状态和跳转指令存储好,硬件在启动后从存储单元读出来就能够按照事先计划的状态机运转来实现支持所需要的通信协议,如果要实现全双工的通信协议,也可以同时配置两套状态和跳转指令。通过这种方法能够很容易的实现支持标准及一些非标准的通信协议。
表3 I2C主机7位寻址发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
实现I2C 主机7位寻址的发送数据的协议:
首先将可配状态机和跳转指令按照表 存储好,然后硬件可按照顺序读取可配状态, 根据状态机前面的跳转指令的存储地址读取跳转指令,根据跳转指令存储的下一个状态的 存储地址去读取下一个状态机的值。按照这种方法,会完成如图 2中的状态机跳转流程。
图 2 中的状态机流程实现的功能:
1、启动后,主机发送起始位给从机;
2、主机发送从机地址;
3、如果收从机的ACK(接收低电平),证明与从机匹配上;
4、发送数据给从机;
5、将数据发送完接收到从机的ACK后,发送STOP给从机结束通信;
这样的完整的实现了I2C 主机7位寻址发送数据给从机的完整过程,符合协议要求。
表4 主机7位寻址接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
按照表 4的存储可实现如图 3 中的状态机跳转流程。
图 2 中的状态机流程实现的功能:
1、启动后,主机发送起始位给从机;
2、主机发送从机地址;
3、如果收从机的ACK(接收低电平),证明与从机匹配上;
4、接收来自从机的数据;
5、能够继续接收数据就发送ACK(接收低电平)给从机,否则发送NACK(接收高电平)给从机;
6、所有能够接收的数据完成后,发送STOP给从机结束通信;
这样的完整的实现了I2C主机7位寻址的接收数据的完整过程,符合协议要求。
表5 I2C主机10位寻址发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
按照表 5的存储可实现如图 4 中的状态机跳转流程。
图 3 中的状态机流程实现的功能:
1、启动后,主机发送起始位给从机;
2、主机发送第一帧从机地址;
3、收到从机的ACK后,发送第二帧从机地址;
4、收到从机的ACK后,发送数据给从机;
5、如果没有收到从机的ACK或者不想再发送数据时,发送STOP给从机结束通信;
这样的完整的实现了I2C主机10位寻址的发送数据的完整过程,符合协议要求。
表6 I2C主机10位寻址接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
按照表 6的存储可实现如图 5 中的状态机跳转流程。
图 4 中的状态机流程实现的功能:
1、启动后,主机发送起始位给从机;
2、主机发送第一帧从机地址;
3、收到从机的ACK后,发送第二帧从机地址;
4、收到从机的ACK后,再次发送起始位给从机
5、发送第三帧从机地址;
6、如果收从机的ACK(接收低电平),证明与从机匹配上;
7、接收来自从机的数据;
8、能够继续接收数据就发送ACK(接收低电平)给从机,否则发送NACK(接收高电平)给从机;
9、所有能够接收的数据完成后,发送STOP给从机结束通信;
这样的完整的实现了I2C主机10位寻址的接收数据的完整过程,符合协议要求。
表7 I2C从机7位寻址接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
按照表 7的存储可实现如图 6 中的状态机跳转流程。
图 5 中的状态机流程实现的功能:
1、从机接收到主机发送的起始位后,接收主机发送过来的地址;
2、与主机发送过来的地址匹配上了后,发送ACK(发送低电平)给主机;
3、接收主机发过来的数据;
4、还能继续接收数据的话发送ACK给主机,否则发送NACK给主机;
5、接收到主机发送的STOP后,结束本次通信,直到再次接收到起始位;
这样的完整的实现了I2C从机7位寻址的接收数据的完整过程,符合协议要求。
表8 I2C从机10位寻址发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
按照表 8的存储可实现如图 7 中的状态机跳转流程。
图 6 中的状态机流程实现的功能:
1、从机接收到主机发送的起始位后,接收主机发送过来的第一帧地址;
2、第一帧地址匹配上后,发送ACK给主机;
3、接收主机发送过来的第二帧地址,匹配上后发送ACK给主机;
4、如果主机重新发送起始位,那么状态机会继续接收第三帧地址,匹配上后发送ACK;
5、发送数据给主机,等待主机发送ACK;
6、如果没有数据可以发给主机了,那么进入等待状态状态,等待有新数据可以发送给主机;
7、接收到主机发送的STOP后,结束本次通信,直到再次接收到起始位;
这样的完整的实现了I2C 从机10位寻址的发送数据的完整过程,符合协议要求。
表9 SPI 主机发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址 以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h7_[发送起始位] 3’h0 4’h2_4’h3
4’h1 3’h0_[接收数据帧] 3’h1 4’h1_4’h1
4’h2 3’h1_[插入半拍片选信号]
4’h3 3’h7_[发送停止位]
表 10 SPI 主机接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以 4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h0_[发送数据帧]/[接收数据帧] 3’h0 4’h0_4’h1
4’h1 3’h7_[空闲状态]
表11 SPI 从机发送或接收数据的状态机和跳转指令的配置及存储(可配状态机存储 地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h7_[发送低电平] 3’h0 4’h0_4’h5
4’h1 3’h7_[发送数据帧]
4’h2 3’h7_[发送校验位]
4’h3 3’h7_[发送半个高电平]
4’h4 3’h0_[发送高电平]
4’h5 3’h7_[空闲状态]
表12 UART 发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址以 4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h0_[接收低电平] 3’h0 4’h1_4’h0
4’h1 3’h7_[接收数据帧] 3’h1 4’h0_4’h1
4’h2 3’h7_[接收校验位]
4’h3 3’h1_[接收高电平]
4’h4 3’h7_[空闲状态]
表13 UART 接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以 4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h7_[发送低电平] 3’h0 4’h0_4’h4
4’h1 3’h7_[发送数据帧]
4’h2 3’h7_[发送校验位]
4’h3 3’h0_[等待多拍状态]
4’h4 3’h7_[空闲状态]
表14 ISO7816-3发送数据的状态机和跳转指令的配置及存储(可配状态机存储地址以 4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
状态机存储地址 可配状态机 跳转指令存储地址 跳转指令
4’h0 3’h0_[接收低电平] 3’h0 4’h1_4’h0
4’h1 3’h7_[接收数据帧] 3’h1 4’h3_4’h4
4’h2 3’h1_[接收校验位] 3’h2 4’h5_4’h0
4’h3 3’h2_[发送低电平] 3’h3 4’h0_4’h0
4’h4 3’h3_[发送高电平]
4’h5 3’h7_[空闲状态
表 15 ISO7816-3接收数据的状态机和跳转指令的配置及存储(可配状态机存储地址以4bit,跳转指令存储地址以3bit为例,可根据需要扩展)
同理表 9和图 8实现的是SPI 主机发送数据的协议;表 10和图 9实现的是SPI 主机接收数据的协议;表 11和图 10实现的是SPI 从机发送或者接收数据的协议;表 12和图11实现的是UART 发送数据的协议;表 13和图 12实现的是UART 接收数据的协议;表 14和图 13实现的是ISO7816-3 发送数据的协议;表 15和图 14实现的是ISO7816-3 接收数据的协议;
如果想要实现双工的协议,可以同时存储两份状态和跳转指令。

Claims (6)

1.一种芯片内可重构串行总线控制器的硬件实现方法,包括如下步骤:首先定义多个状态,每个状态都能通过控制电路实现对应的逻辑功能,然后将要实现支持的通信协议所对应的状态机转换和跳转按照顺序配置进去,实现通过软件配置来支持不同的接口协议。
2.如权利要求1所述的片内可重构串行总线控制器的硬件实现方法,其特征在于:所对应的状态机转换和跳转按照顺序配置进去的类似指令分为两种:第一种由状态的值和对应的跳转指令的地址组成;第二种是跳转指令,由几个对应状态所可能跳转到的下一个状态机所对应的地址所组成。
3.如权利要求1所述的片内可重构串行总线控制器的硬件实现方法,其特征在于:所支持的标准协议包括I2C、SPI、SSP、Microwire、Enhanced SPI、IrDA 1.0 SIR、RS485、UART、ISO7816-3。
4.如权利要求1所述的片内可重构串行总线控制器的硬件实现方法,其特征在于:所支持的接口协议包括自定义的非标准通信协议。
5.如权利要求1所述的片内可重构串行总线控制器的硬件实现方法,其特征在于:还包括同时存储两份状态及跳转指令,实现全双工的通信协议。
6.如权利要求1所述的片内可重构串行总线控制器的硬件实现方法,其特征在于:可配置的状态机和跳转指令配合,实现接口协议的控制逻辑。
CN201811131605.9A 2018-09-27 2018-09-27 一种芯片内可重构串行总线控制器的硬件实现方法 Pending CN109359083A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811131605.9A CN109359083A (zh) 2018-09-27 2018-09-27 一种芯片内可重构串行总线控制器的硬件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811131605.9A CN109359083A (zh) 2018-09-27 2018-09-27 一种芯片内可重构串行总线控制器的硬件实现方法

Publications (1)

Publication Number Publication Date
CN109359083A true CN109359083A (zh) 2019-02-19

Family

ID=65347894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811131605.9A Pending CN109359083A (zh) 2018-09-27 2018-09-27 一种芯片内可重构串行总线控制器的硬件实现方法

Country Status (1)

Country Link
CN (1) CN109359083A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798479A (zh) * 2019-11-07 2020-02-14 首都师范大学 动态可重构高速串行总线与以太网的互操作装置与方法
CN110920935A (zh) * 2019-12-18 2020-03-27 哈尔滨工业大学 一种即插即用智能核心系统
CN114157728A (zh) * 2021-11-22 2022-03-08 苏州聚元微电子股份有限公司 适用于多种无线协议的链路层数据控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881388A (zh) * 2015-06-12 2015-09-02 哈尔滨工业大学 基于fpga的usb 3.0接口模块
CN205563555U (zh) * 2016-04-07 2016-09-07 成都华日通讯技术有限公司 基于fpga的自定义可变位宽spi总线协议的实现系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881388A (zh) * 2015-06-12 2015-09-02 哈尔滨工业大学 基于fpga的usb 3.0接口模块
CN205563555U (zh) * 2016-04-07 2016-09-07 成都华日通讯技术有限公司 基于fpga的自定义可变位宽spi总线协议的实现系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李俊: "多标准通信协议可配置外设控制器设计", 《2015年中国优秀硕士学位论文全文数据库信息科技辑》 *
李俊等: "多标准通信协议的可配置外设控制器设计", 《计算机工程》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798479A (zh) * 2019-11-07 2020-02-14 首都师范大学 动态可重构高速串行总线与以太网的互操作装置与方法
CN110798479B (zh) * 2019-11-07 2021-08-06 首都师范大学 动态可重构高速串行总线与以太网的互操作装置与方法
CN110920935A (zh) * 2019-12-18 2020-03-27 哈尔滨工业大学 一种即插即用智能核心系统
CN114157728A (zh) * 2021-11-22 2022-03-08 苏州聚元微电子股份有限公司 适用于多种无线协议的链路层数据控制方法

Similar Documents

Publication Publication Date Title
CN109359083A (zh) 一种芯片内可重构串行总线控制器的硬件实现方法
CN101772955A (zh) 提供双向通信的媒体接口的操作
CN108475241B (zh) 一种基于spi的数据传输方法及装置
US20120131247A1 (en) Apparatus for peripheral device connection using spi in portable terminal and method for data transmission using the same
CN1457615A (zh) 通过固有主从关系接口进行对等通信的方法与设备
EP3218813A1 (en) Multi-channel i2s transmit control system and method
CN102421207A (zh) 移动终端的多种移动通信制式兼容设计方法及移动终端
KR101559089B1 (ko) 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
CN102347904A (zh) 路由设备及其主卡以及用于该主卡适配接口卡的方法
JP2002055936A (ja) Usbデバイス機器、usbデバイス機器間の通信システムおよび通信方法
WO2014134947A1 (zh) 控制信息的收发装置和方法
CN101242284A (zh) 基于spi总线的通信方法和网络设备
CN100459612C (zh) 一种通讯传输控制装置及实现通讯协议控制的方法
US20240267157A1 (en) Data transmission method and apparatus
CN101847135B (zh) 串接通信系统及其通信方法
CN107992439A (zh) 一种可扩展的数据交互方法及系统
CN109388606A (zh) 一种芯片内可重构的串行总线控制器
CN107222379A (zh) 一种串口通信的方法和装置
EP1263175A2 (en) Wireless device, information processing apparatus, and device driver load method
CN112506840B (zh) 一种多对多spi总线切换方法
CN1972314B (zh) 以太网接口上模拟串行接口的方法以及应用该方法的部件
US8913527B2 (en) Multiple die communication system
JP2006304011A (ja) インタフェース回路
CN100514971C (zh) 一种ip核接口标准化方法
CN101729280B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190219

RJ01 Rejection of invention patent application after publication