CN105824777A - 一种spi总线在ipran设备中的实现方法 - Google Patents
一种spi总线在ipran设备中的实现方法 Download PDFInfo
- Publication number
- CN105824777A CN105824777A CN201610158210.2A CN201610158210A CN105824777A CN 105824777 A CN105824777 A CN 105824777A CN 201610158210 A CN201610158210 A CN 201610158210A CN 105824777 A CN105824777 A CN 105824777A
- Authority
- CN
- China
- Prior art keywords
- spi
- bus interface
- clock
- data
- spi bus
- 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.)
- Granted
Links
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
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
本发明公开了一种SPI总线在IPRAN设备中的实现方法,具体为:在CPLD内构建SPI总线接口模块,实现构成SPI总线接口的四个信号;在控制寄存器,配置每个SPI总线接口的传输模式、SPI时钟的极性和相位以及传输速率;SPI控制状态机产生从选择标志位,写入从选择寄存器,并产生时钟任务信号控制SPI时钟输出的时机,控制寄存器中与SPI时钟的极性和相位相同的SPI总线接口开始数据传输;SPI控制状态机控制SPI移位寄存器对8bit读缓冲器数据的装载和移位;实时检测状态寄存器的状态,数据发送完成,装载下一个数据。本发明解决了因处理器没有SPI总线接口,而不能使用在需要该接口功能的单盘应用开发电路上的问题,且方便后期SPI总线接口电路的修改和维护。
Description
技术领域
本发明涉及数据通信设备,具体涉及一种SPI总线在IPRAN设备中的实现方法。
背景技术
目前,数据业务网正处在发展转型时期,在电信业务IP化趋势推动下,传送网承载的业务从以TDM为主向以IP为主转变,新业务类型的不断出现,对传输网承载数据类型的多样性提出了更高的要求。因此,CiTRANSR845设备对主控盘处理器的性能提出了更高的要求,而前期使用的MPC8247处理器扣板已不能满足这样的需求。
经过评估,其它型号处理器可以满足CiTRANSR845设备对主控盘处理器性能需求,但是没有SPI总线接口,而由于SPI总线接口使用简单方便、节省系统资源,且很多芯片都支持该接口,应用相当广泛,因此设计要求主控盘处理器能够通过SPI总线接口外挂铁电存储器以及配置HUB芯片,所以这些没有SPI总线接口的处理器不能取代MPC8247处理器,而嵌入式MPC8548处理器,它的CPU处理能力最高可达3065MIPS,支持2GB的内存,自带PCI2.2标准接口,可以外接2GB的CF卡,完全满足CiTRANSR845设备对主控盘处理器性能需求。但是,MPC8548处理器却没有SPI总线接口,致使其不能取代MPC8247处理器满足CiTRANSR845设备对主控盘处理器的设计要求。
发明内容
本发明所要解决的技术问题是实际应用中主控盘处理器需要通过SPI总线接口外挂铁电存储器以及配置HUB芯片,但是一些符合CiTRANSR845设备对主控盘处理器性能需求的处理器却没有SPI总线接口,致使其不能取代前期MPC8247处理器作为主控盘处理器的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种SPI总线在IPRAN设备中的实现方法,具体为:
在CPLD内构建SPI总线接口模块,实现构成SPI总线接口的四个信号;其中,SPI总线接口模块包括8bit读缓冲器、SPI移位寄存器、控制寄存器、状态寄存器、从选择寄存器和SPI控制状态机;
主处理器读或写控制寄存器,配置每个SPI总线接口的传输模式、SPI时钟的极性和相位以及传输速率;
根据主处理器从使能信号,SPI控制状态机产生相应从选择标志位,写入从选择寄存器,相应SPI总线接口输出有效,并产生时钟任务信号控制SPI时钟输出到时机,控制寄存器中与SPI时钟的极性和相位相同的SPI总线接口开始数据传输;SPI控制状态机将接收到的数据存入8bit读缓冲器,并控制SPI移位寄存器对缓存数据的装载和移位;实时检测状态寄存器的状态,确定数据发送完成后,装载下一个数据。
在上述方法中,8bit读缓冲器在发送端为单缓冲,接收端为双缓冲。
在上述方法中,所述状态寄存器包含发送完成标志位和系统出错标志位,当相应的事件发生时,发送完成标志位和系统出错标志位的标志自动设置,清除则由软件来完成。
在上述方法中,SPI总线接口开始数据传输后,如果一个字节数据传输结束后数据传输开始信号依然有效的话,SPI控制状态机就接着传输下一个字节数据,且这时的SCK信号要继续保持有效。
在上述方法中,在通过SPI总线接口通信时,数据是同步进行发送和接收的;数据传输的SPI时钟来自主处理器的时钟脉冲。
在上述方法中,SPI总线接口模块的SPI时钟和与之通信的外设时钟相位和极性一致。
本发明用CPLD来模拟实现SPI总线接口的功能,不仅解决了因MPC8548等处理器没有SPI总线接口,而不能使用在需要该接口功能的单盘应用开发电路上的问题,而且CPLD有很强的灵活性,其内部的具体逻辑功能可以根据需要来配置,方便后期对SPI总线接口电路的修改和维护。
附图说明
图1为本发明提供的一种SPI总线在IPRAN设备中的实现方法系统框图;
图2为本发明中SPI时钟的时序图。
具体实施方式
制定成标准的SPI总线已成为常用的外围器件连接方式,针对常用的外围存储器件FLASH,具有SPI总线接口的FLASH芯片连接方便,通过CPLD编程可以便捷地实现FLASH的存取功能,因此基于CPLD的具有SPI总线接口的FLASH功能的实现为工程设计提供了一种原型,用CPLD来模拟实现SPI总线接口的功能是可行的。
下面结合说明书附图和具体实施例对本发明做出详细的说明。
如图1所示,本发明提供的一种SPI总线在IPRAN设备中的实现方法,具体为:
没有SPI总线接口的处理器接入一个CPLD,并在CPLD内构建SPI总线接口模块,实现构成SPI总线接口的四个信号,分别为MISO(串行数据输入)、MOSI(串行数据输出)、SCK(串行移位时钟)和CS(从使能信号)。其中,SPI总线接口模块包括8bit读缓冲器、SPI移位寄存器、控制寄存器、状态寄存器、从选择寄存器和SPI控制状态机;
处理器读或写控制寄存器,用于配置每个SPI总线接口的传输模式(主或是从)、SPI时钟(串行移位时钟SCK)的极性和相位以及传输速率;
根据处理器从使能信号CS,SPI控制状态机产生相应从选择标志位,替换从选择寄存器内的原从选择标志位,相应SPI总线接口输出有效;并产生时钟任务信号控制SPI时钟输出到SPI总线的时机,当SPI时钟的极性和相位与控制寄存器中一个SPI总线接口的对应值相同时,对应SPI总线接口开始数据传输(输出和输入),直到SPI时钟的极性改变;SPI控制状态机将接收到的数据存入8bit读缓冲器,并控制SPI移位寄存器对缓存数据的装载和移位;实时检测状态寄存器的状态,确定数据发送完成后,装载下一个数据。
在本发明中,8bit读缓冲器和SPI移位寄存器是SPI总线接口模块的核心部分,目前,在实际传输中新发送的数据直到前一个数据发送结束才能写进移位寄存器,为了避免数据溢出,本发明的CPU发送端为单缓冲,接收端为双缓冲,这样接收到的数据被送到一个并行的8bit读数据缓冲器中,使得SPI移位寄存器能够自由的接收第二个串行数据,只要第一个数据在第二个数据准备发送前被读出8bit读缓冲器,就不会产生数据的溢出。
本发明的状态寄存器包含了发送完成和系统出错的标志位,当相应的事件发生时,这些标志自动设置,清除则由软件来完成。
在本发明中如果一个字节数据传输结束后,数据传输开始信号依然有效的话,SPI控制状态机就接着传输下一个字节数据,且这时的SCK信号要继续保持有效。
在通过SPI总线接口通信时,数据是同步进行发送和接收的。数据传输的串行移位时钟来自主处理器的时钟脉冲。本发明对串行移位时钟的设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数;CPOL定义SPI串行移位时钟的活动状态,而CPHA定义相对于数据位的时钟相位。CPOL和CPHA的设置决定数据取样的时钟沿。
SPI总线接口模块为了与外设(从设备)进行数据交换,根据外设工作要求,可以设置串行移位时钟极性和相位。图2为SPI时钟的时序图,其中,C表示时钟(串行移位时钟),D表示时钟前沿数据采样,Q表示时钟后沿数据输出,MSB为最高有效位;可见,时钟极性(CPOL)对传输协议没有大的影响,如果CPOL=0,串行移位时钟的空闲状态为低电平;如果CPOL=1,串行移位时钟的空闲状态为高电平。时钟相位(CPHA)用于配置进行数据传输的传输协议(在两种不同的传输协议中选择之一进行数据传输),如果CPHA=0,在串行移位时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行移位时钟的第二个跳变沿(上升或下降)数据被采样。SPI总线接口模块的串行移位时钟和与之通信的外设时钟相位和极性应该一致。
本发明数据传输的过程为:从使能信号CS决定唯一与主设备通信的从设备(如没有CS信号,则只能存在一个从设备),主设备(处理器)通过产生串行移位时钟(SCK)发起通信,在通过SPI总线接口通信时,数据在串行移位时钟的上升沿或下降沿从MOSI输出,在紧接着的下降沿或上升沿由MISO读入,这样经过8/16次时钟改变,完成8/16位数据的传输。
下面例举出SPI控制状态机通过Verilog硬件描述语言实现的具体实例,在该实例中,采用自顶向下的设计方法,从系统级开始,把系统划分为几个基本的单元,其中,主模式下SPI控制器部分的时序用有限状态机来实现。用Verilog硬件描述语言实现SPI控制器的状态机如下:
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种SPI总线在IPRAN设备中的实现方法,其特征在于,具体为:
在CPLD内构建SPI总线接口模块,实现构成SPI总线接口的四个信号;其中,SPI总线接口模块包括8bit读缓冲器、SPI移位寄存器、控制寄存器、状态寄存器、从选择寄存器和SPI控制状态机;
主处理器读或写控制寄存器,配置每个SPI总线接口的传输模式、SPI时钟的极性和相位以及传输速率;
根据主处理器从使能信号,SPI控制状态机产生相应从选择标志位,写入从选择寄存器,相应SPI总线接口输出有效,并产生时钟任务信号控制SPI时钟输出的时机,控制寄存器中与SPI时钟的极性和相位相同的SPI总线接口开始数据传输;SPI控制状态机将接收到的数据存入8bit读缓冲器,并控制SPI移位寄存器对缓存数据的装载和移位;实时检测状态寄存器的状态,确定数据发送完成后,装载下一个数据。
2.如权利要求1所述的方法,其特征在于,8bit读缓冲器在发送端为单缓冲,接收端为双缓冲。
3.如权利要求1所述的方法,其特征在于,所述状态寄存器包含发送完成标志位和系统出错标志位,当相应的事件发生时,发送完成标志位和系统出错标志位的标志自动设置,清除则由软件来完成。
4.如权利要求2所述的方法,其特征在于,SPI总线接口开始数据传输后,如果一个字节数据传输结束后数据传输开始信号依然有效的话,SPI控制状态机就接着传输下一个字节数据,且这时的SCK信号要继续保持有效。
5.如权利要求2所述的方法,其特征在于,在通过SPI总线接口通信时,数据是同步进行发送和接收的;数据传输的SPI时钟来自主处理器的时钟脉冲。
6.如权利要求2所述的方法,其特征在于,SPI总线接口模块的SPI时钟和与之通信的外设时钟相位和极性一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610158210.2A CN105824777B (zh) | 2016-03-18 | 2016-03-18 | 一种spi总线在ipran设备中的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610158210.2A CN105824777B (zh) | 2016-03-18 | 2016-03-18 | 一种spi总线在ipran设备中的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105824777A true CN105824777A (zh) | 2016-08-03 |
CN105824777B CN105824777B (zh) | 2019-03-08 |
Family
ID=56523543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610158210.2A Active CN105824777B (zh) | 2016-03-18 | 2016-03-18 | 一种spi总线在ipran设备中的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824777B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132896A (zh) * | 2018-01-17 | 2018-06-08 | 西安闻泰电子科技有限公司 | 数据传输方法和装置 |
CN108933882A (zh) * | 2017-05-24 | 2018-12-04 | 北京小米移动软件有限公司 | 相机模组及电子设备 |
CN109581927A (zh) * | 2018-12-07 | 2019-04-05 | 庸博(厦门)电气技术有限公司 | 伺服驱动器的串行通讯方法及伺服驱动器 |
CN109902053A (zh) * | 2017-12-07 | 2019-06-18 | 厦门雅迅网络股份有限公司 | 一种基于双控制器的spi通信方法、终端设备及存储介质 |
CN111795638A (zh) * | 2019-04-09 | 2020-10-20 | 泰连感应德国有限公司 | 总线兼容的传感器元件和通信系统 |
CN111897749A (zh) * | 2020-06-23 | 2020-11-06 | 中国船舶重工集团公司第七0七研究所 | 基于Quad-SPI控制器与外扩FLASH通信控制系统及方法 |
CN112035399A (zh) * | 2020-08-26 | 2020-12-04 | 天津津航计算技术研究所 | 一种基于fpga的spi从机模块实现方法 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN112350795A (zh) * | 2020-10-23 | 2021-02-09 | 珠海格力电器股份有限公司 | 数据的传输方法和装置、存储介质、电子装置 |
CN112882881A (zh) * | 2021-02-22 | 2021-06-01 | 上海共进信息技术有限公司 | 5G毫米波gNB系统的SPI总线时序检测方法 |
CN115098428A (zh) * | 2022-07-11 | 2022-09-23 | 深圳市金科泰通信设备有限公司 | Spi数据传输方法、装置、电子设备及存储介质 |
CN117056268A (zh) * | 2023-10-11 | 2023-11-14 | 深圳市鼎阳科技股份有限公司 | 一种用于测量仪器的spi接口电路和spi通讯方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562674B (zh) * | 2017-08-28 | 2020-03-20 | 上海集成电路研发中心有限公司 | 一种嵌入处理器的总线协议异步逻辑电路实现装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133646A1 (en) * | 2001-03-16 | 2002-09-19 | Hugo Cheung | Method and device for providing high data rate for a serial peripheral interface |
US7444440B2 (en) * | 2001-03-16 | 2008-10-28 | Texas Instruments Incorporated | Method and device for providing high data rate for a serial peripheral interface |
CN100437541C (zh) * | 2006-03-28 | 2008-11-26 | 华为技术有限公司 | 一种串行外设接口的实现方法 |
CN103064805A (zh) * | 2012-12-25 | 2013-04-24 | 深圳先进技术研究院 | Spi控制器及通信方法 |
-
2016
- 2016-03-18 CN CN201610158210.2A patent/CN105824777B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133646A1 (en) * | 2001-03-16 | 2002-09-19 | Hugo Cheung | Method and device for providing high data rate for a serial peripheral interface |
US7444440B2 (en) * | 2001-03-16 | 2008-10-28 | Texas Instruments Incorporated | Method and device for providing high data rate for a serial peripheral interface |
CN100437541C (zh) * | 2006-03-28 | 2008-11-26 | 华为技术有限公司 | 一种串行外设接口的实现方法 |
CN103064805A (zh) * | 2012-12-25 | 2013-04-24 | 深圳先进技术研究院 | Spi控制器及通信方法 |
Non-Patent Citations (2)
Title |
---|
何永泰: "基于CPLD的SPI接口设计", 《电脑开发与应用》 * |
谭力: "嵌入式系统SPI总线控制器的内核设计", 《WWW.WANFANGDATA.COM.CN/DETAILS/DETAIL.DO?_TYPE=DEGREE&ID=Y449704#》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933882A (zh) * | 2017-05-24 | 2018-12-04 | 北京小米移动软件有限公司 | 相机模组及电子设备 |
CN109902053B (zh) * | 2017-12-07 | 2022-07-05 | 厦门雅迅网络股份有限公司 | 一种基于双控制器的spi通信方法、终端设备及存储介质 |
CN109902053A (zh) * | 2017-12-07 | 2019-06-18 | 厦门雅迅网络股份有限公司 | 一种基于双控制器的spi通信方法、终端设备及存储介质 |
CN108132896A (zh) * | 2018-01-17 | 2018-06-08 | 西安闻泰电子科技有限公司 | 数据传输方法和装置 |
CN109581927A (zh) * | 2018-12-07 | 2019-04-05 | 庸博(厦门)电气技术有限公司 | 伺服驱动器的串行通讯方法及伺服驱动器 |
CN111795638A (zh) * | 2019-04-09 | 2020-10-20 | 泰连感应德国有限公司 | 总线兼容的传感器元件和通信系统 |
CN111897749A (zh) * | 2020-06-23 | 2020-11-06 | 中国船舶重工集团公司第七0七研究所 | 基于Quad-SPI控制器与外扩FLASH通信控制系统及方法 |
CN112035399A (zh) * | 2020-08-26 | 2020-12-04 | 天津津航计算技术研究所 | 一种基于fpga的spi从机模块实现方法 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
CN112350795A (zh) * | 2020-10-23 | 2021-02-09 | 珠海格力电器股份有限公司 | 数据的传输方法和装置、存储介质、电子装置 |
CN112350795B (zh) * | 2020-10-23 | 2021-10-22 | 珠海格力电器股份有限公司 | 数据的传输方法和装置、存储介质、电子装置 |
CN112882881A (zh) * | 2021-02-22 | 2021-06-01 | 上海共进信息技术有限公司 | 5G毫米波gNB系统的SPI总线时序检测方法 |
CN115098428A (zh) * | 2022-07-11 | 2022-09-23 | 深圳市金科泰通信设备有限公司 | Spi数据传输方法、装置、电子设备及存储介质 |
CN117056268A (zh) * | 2023-10-11 | 2023-11-14 | 深圳市鼎阳科技股份有限公司 | 一种用于测量仪器的spi接口电路和spi通讯方法 |
CN117056268B (zh) * | 2023-10-11 | 2024-01-30 | 深圳市鼎阳科技股份有限公司 | 一种用于测量仪器的spi接口电路和spi通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105824777B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105824777A (zh) | 一种spi总线在ipran设备中的实现方法 | |
US20140115229A1 (en) | Method and system to reduce system boot loader download time for spi based flash memories | |
KR101034494B1 (ko) | 개방형 코어 프로토콜을 기반으로 하는 버스 시스템 | |
CN102023956B (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN105183680B (zh) | 实现PCIe接口转CF卡接口的FPGA芯片及方法 | |
CN201583944U (zh) | 一种采用fpga实现基于pci总线的实时采集卡 | |
CN104714908B (zh) | 支持主从模式的spi接口 | |
CN104834620A (zh) | 串行外设接口spi总线电路、实现方法以及电子设备 | |
CN102855150A (zh) | 一种向待编程设备烧录信息的方法及系统 | |
CN115470163A (zh) | Dma传输的控制方法、控制装置、控制设备及存储介质 | |
Hafeez et al. | IP core of Serial Peripheral Interface (SPI) with AMBA APB interface | |
US10002090B2 (en) | Method for improving the performance of synchronous serial interfaces | |
TW201731272A (zh) | 具有自動從屬選擇產生之串列週邊介面 | |
CN103914427A (zh) | 基于三根物理互连线的集成电路片上通讯方法及装置 | |
Chhikara et al. | Implementing communication bridge between I2C and APB | |
CN112328523A (zh) | 传输双倍速率信号的方法、装置及系统 | |
CN109359082B (zh) | 一种基于fpga的usb数据实时监听系统及方法 | |
CN106292544A (zh) | 基于pcie接口硬件板卡及其总线控制方法及系统 | |
JP5536023B2 (ja) | バスシステムおよび情報処理機器 | |
CN105320637A (zh) | Flash数据读取电路 | |
CN110008162A (zh) | 一种缓冲接口电路及基于该电路传输数据的方法和应用 | |
CN108153698A (zh) | 数据交互方法 | |
CN104331381B (zh) | Spi芯片抗干扰输出方法 | |
CN204706031U (zh) | 串行外设接口spi总线电路以及电子设备 | |
US7302508B2 (en) | Apparatus and method for high speed data transfer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |