CN114721317B - 一种基于spi控制器网络通讯控制系统及方法 - Google Patents

一种基于spi控制器网络通讯控制系统及方法 Download PDF

Info

Publication number
CN114721317B
CN114721317B CN202210618297.2A CN202210618297A CN114721317B CN 114721317 B CN114721317 B CN 114721317B CN 202210618297 A CN202210618297 A CN 202210618297A CN 114721317 B CN114721317 B CN 114721317B
Authority
CN
China
Prior art keywords
data
network
chip
control line
spi
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.)
Active
Application number
CN202210618297.2A
Other languages
English (en)
Other versions
CN114721317A (zh
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.)
707th Research Institute of CSIC
Original Assignee
707th Research Institute of CSIC
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 707th Research Institute of CSIC filed Critical 707th Research Institute of CSIC
Priority to CN202210618297.2A priority Critical patent/CN114721317B/zh
Publication of CN114721317A publication Critical patent/CN114721317A/zh
Application granted granted Critical
Publication of CN114721317B publication Critical patent/CN114721317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24215Scada supervisory control and data acquisition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及一种基于SPI控制器网络通讯控制系统及方法,通过对准信息处理分配装置中的数据处理模块选用先进的基于ARM Cortex‑M4处理器的工业级单板机STM32F469IGTx系列器件,网络通信模块选用支持IPv4/IPv6双核控制器芯片W6100,通过GPIO模拟SPI控制器与硬件TCP/IP协议栈芯片进行数据传输,能很方便快捷的进行嵌入式以太网应用开发,从而提高产品开发的效率,降低了产品开发的成本,且高效、稳定的方案能够使研发过程更为简单与快捷。

Description

一种基于SPI控制器网络通讯控制系统及方法
技术领域
本发明属于嵌入式系统开发技术领域,尤其是一种基于SPI控制器网络通讯控制系统及方法。
背景技术
目前,在嵌入式系统处理器中基于SPI控制器的设备非常丰富,此外,SPI设备的不同以及处理器对GPIO口位寻址是否支持各处理器各有不同,因而不同处理器中GPIO模拟SPI控制器也各不相同。
不同处理器实现网络接口的方法不同,对于无操作系统要求的处理器实现网络通信,按传统的软件TCP/IP协议栈方案,由处理器+MAC+PHY再加入网络接口实现以太网的物理连接,通过在主控处理器芯片中植入TCP/IP协议代码实现通信及上层应用。由于软件协议栈操作需要主控处理器不断地响应中断,这在很大程度上占用了主控处理器的运算、时钟资源,并随着线程增多,处理器的工作效率直线下降,会严重影响通信质量,且本身内存资源匮乏的处理器来说负荷过重,并从安全性的角度看,设备联入网络之后必须考虑网络安全问题,软件协议栈的方式系统一旦受到复杂的恶意攻击,处理器功能很有可能瘫痪掉,这对系统就是致命性打击。
我军舰机惯导对准保障随着海军的发展和作战使命任务的变化,遂行作战任务对准信息快速处理、通信速度提出了更高的要求,Cortex-M4是基于ARMv7的ARM微处理器,是针对微控制器和低成本应用而专门优化的嵌入式处理器,是一系列可向上兼容的高能效、易于使用的处理器,优化了作业流程,提高了对准保障效率。
对准信息处理分配装置内部嵌装网络通信模块、数据处理模块。网络通信模块实现定时以对准保障方式向UDP客户端传送对准保障信息,数据处理模块通过GPIO模拟SPI控制器与网络通信模块实现快速交换数据,数据处理模块将惯导对准保障分系统各数据进行补偿解算、从而获取惯导舰船对准信息。
目前关于ARM Cortex-M4处理器通过GPIO模拟SPI控制器与硬件TCP/IP协议栈芯片实现网络通讯控制系统及方法,国内现有文件资料尚属空白。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于SPI控制器网络通讯控制系统及方法,能够很方便快捷的进行嵌入式以太网应用开发,从而提高产品开发的效率,降低了产品开发的成本,且高效、稳定的方案能够使研发过程更为简单与快捷。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于SPI控制器网络通讯控制系统,包括处理器,网络控制器和集成电路稳压器,其中处理器处理应用层数据,实现通讯控制和各设备逻辑输入输出,网络控制器用于网络包的封装与解封,并通过CSMA/CD协议实现链路层管理,以及进行数据编码及译码,实现与局域网和网络客户端设备间互连功能,集成电路稳压器用于稳定电源电路的输出电压,满足处理器和网络控制器供电电源要求;集成电路稳压器以24v作为电源输入,通过输出端子提供处理器和网络控制器稳定直流电源,网络控制器将局域网或网络客户端设备网络包的数据读进处理器,同时还读入网络包中的网络配置参数信息,处理器完成网络包的处理转换后,将处理转换后的网络包经网络控制器转发向局域网或网络客户端设备提供。
而且,所述处理器包括GPIO模拟SPI控制器和与GPIO模拟SPI控制器连接的控制线RST,控制线RST用于处理器控制硬件TCP/IP协议栈芯片硬件复位。
而且,所述GPIO模拟SPI控制器包括:通讯控制线、时钟控制逻辑、数据控制逻辑和整体控制逻辑,
其中,通讯控制线包括:控制线MISO、控制线MOSI、控制线NSS、控制线SCK;控制线MISO和控制线MOSI为GPIO模拟SPI控制器的数据线,用于收发数据,控制线NSS为GPIO模拟SPI控制器的片选,控制线SCK为GPIO模拟SPI控制器的时钟信号线;
时钟控制逻辑包括:波特率发生器,用于配置GPIO模拟SPI控制器的SCK时钟频率和通讯模式;
数据控制逻辑包括:包括数据和地址总线、数据移位寄存器、接收缓冲区和发送缓冲区;
整体控制逻辑包括:状态寄存器SPI_SR、控制寄存器SPI_CR1和控制寄存器SPI_CR2、主控制电路和通信电路,状态寄存器SPI_SR,用于读取状态寄存器相关的寄存器位,得到GPIO模拟SPI控制器的工作状态;控制寄存器SPI_CR1和控制寄存器SPI_CR2用于设置GPIO模拟SPI控制器的工作模式;主控制电路用于控制中断信号、DMA请求和控制NSS信号线;通信电路用于协调GPIO模拟SPI控制器的外设,并通过GPIO模拟SPI控制器与外设保持通信。
而且,所述网络控制器包括:硬件TCP/IP协议栈模块、网络变压器和RJ45连接器及控制线,控制线包括控制线TXON、控制线TXOP、控制线RXIP、控制线RXIN、控制线LINKn和控制线ACTn。
而且,所述硬件TCP/IP协议栈模块包括W6100芯片及其外围电路,W6100芯片内部包括以太网数据链路层和物理层芯片,以太网数据链路层和物理层芯片通过媒体独立接口MII链接,其中,以太网数据链路层用于和GPIO模拟SPI控制器实现数据交换,物理层芯片用于解码模拟信号,并传送数字信号,同时检测网络上是否有数据传输;网络变压器包括FC62115BNL芯片及其外围电路,RJ45连接器用于局域网和网络客户端设备间连接。
而且,所述控制线TXON和控制线TXOP用于发送信号,通过TXOP信号或TXON信号组发送差分数据信号;
控制线RXIP和控制线RXIN用于接收信号,通过RXIP信号或RXIN信号组接收差分数据信号;
控制线LINKn用于表示PHY连接灯指示状态;
控制线ACTn用于表示连接活动灯指示状态。
而且,所述集成电路稳压器包括LM2675芯片及其外围电路和LM1117芯片及其外围电路,LM2675芯片与LM1117芯片使用级联电源供电方式输出3.3V电源。
一种基于SPI控制器网络通讯控制系统的控制方法,包括以下步骤:
步骤1、配置GPIO管脚,设置管脚操作模式及类型,并使能串口时钟,开启总线时钟;
步骤2、配置SPI控制器,并指定以下各参数,参数包括数据模式、工作模式、传输数据长度、时钟极性与相位、片选管理方式、比特率计算、数据传输顺序、CRC校验计算方式;
步骤3、打开SPI控制器的使能;
步骤4、设置W6100芯片的网络锁定寄存器、IPv4、IPV6网络配置寄存器、重传超时时间值寄存器和重传次数寄存器;
步骤5、配置以太网PHY操作模式,设置W6100芯片的PHY状态寄存器,指示PHY当前的操作模式和连接状态;
步骤6、配置SOCKET0,使其为基于W6100芯片双协议栈IPv4/IPv6的UDP双模式;
步骤7、将要发送的目标数据包的数据写入SOCKET0发送缓冲区,之后通过写入数据大小增加SOCKET0写偏移地址,并通过设置SEND及IPv6 SEND使W6100芯片传输网络数据;
步骤8、在接收到目标数据包后,读取数据包中的数据,需根据读取的数据大小增加SOCKET0读偏移地址,并通过设置RECV命令,使W6100芯片更新接收缓冲区,SOCKET0可以接收来自多个目标的数据包,接收到的UDP数据包PACKINFO存储在SOCKET0接收缓冲区内;
步骤9、SOCKET0通过断开进程、清除超时中断或CLOSE命令来关闭SOCKET0。
本发明的优点和积极效果是:
本发明通过对准信息处理分配装置中的数据处理模块选用先进的基于ARMCortex-M4处理器的工业级单板机STM32F469xx系列器件,网络通信模块选用支持IPv4/IPv6双核控制器芯片W6100,通过GPIO模拟SPI控制器与硬件TCP/IP协议栈芯片进行数据传输,能很方便快捷的进行嵌入式以太网应用开发,从而提高产品开发的效率,降低了产品开发的成本,且高效、稳定的方案能够使研发过程更为简单与快捷。
附图说明
图1为本发明的一种基于SPI控制器网络通讯控制系统组织图;
图2为本发明的GPIO模拟SPI控制器结构框图;
图3为本发明的网络控制器结构框图;
图4为本发明的集成电路稳压器示意图;
图5为本发明的处理器与硬件TCP/IP协议栈芯片连接图;
图6为本发明的硬件TCP/IP协议栈芯片与网络变压器连接图;
图7为本发明的网络变压器与RJ45连接器连接图;
图8为本发明的SPI工作模式;
图9为本发明的SPI可变长度模式下的写访问时序图;
图10为本发明的SPI可变长度模式下的读访问时序图;
图11为本发明的W6100芯片复位时序图;
图12为本发明的UDP双模式操作流程;
图13为本发明的在SOCKET接收缓冲区中接收到UDP数据示意图;
图14为本发明的试验方法验证步骤图;
图15为本发明的SPI时钟频率波形图;
图16为本发明的试验验证过程结构图;
图17为本发明的试验效果验证界面图。
具体实施方式
以下结合附图对本发明做进一步详述。
如图1所示,一种基于SPI控制器网络通讯控制系统,包括处理器,网络控制器和集成电路稳压器,处理器,其中处理器处理应用层数据,实现通讯控制,偏重于I/O和访存能力,实现片上各设备逻辑输入输出,网络控制器处理的TCP/IP 协议的工作,包括传输层、网络层、链路层及物理层数据处理,网络控制器能够进行网络包的封装与解封,并通过CSMA/CD协议实现链路层管理,以及进行数据编码及译码,实现与局域网和网络客户端设备间互连功能,集成电路稳压器用来稳定电源电路的输出电压,采用的串联稳压电路稳压精度较高,电路简单保持电路完善,满足处理器和网络控制器供电电源要求。集成电路稳压器以24v作为电源输入,通过输出端子提供处理器和网络控制器稳定直流电源,网络控制器将局域网或网络客户端设备网络包的数据读进处理器,还读入网络包中的网络配置参数信息,处理器完成网络包的处理转换后,将处理转换后的网络包经网络控制器转发向局域网或网络客户端设备提供。
处理器包括GPIO模拟SPI控制器和与GPIO模拟SPI控制器连接的控制线RST,GPIO模拟SPI控制器采用基于ARM Cortex-M4处理器的32位工业级单板机STM32F469XX系列器件,硬件协议栈芯片选用WiZnet的支持IPv4/IPv6双核控制器芯片W6100芯片。控制线RST是W6100芯片的硬件复位线,通过PD08引脚的复位来重置W6100芯片。
如图2所示,GPIO模拟SPI控制器包括:通讯控制线、时钟控制逻辑、数据控制逻辑和整体控制逻辑,GPIO作为通用输入/输出接口,用来实现各片上设备逻辑输入输出,满足特定应用需求。
其中,通讯控制线与网络控制器相连,通讯控制线包括:控制线MISO、控制线MOSI、控制线NSS、控制线SCK。
控制线MISO作为GPIO模拟SPI控制器的数据线,用于主设备数据输入,从设备数据输出SPI数据到主设备,主设备MISO引脚为输入模式,从设备MISO引脚为输出模式。
控制线MOSI作为GPIO模拟SPI控制器的数据线,用于主设备数据输出,从设备数据接收到来自主设备的SPI数据,主设备MOSI引脚为输出模式,从设备MOSI引脚为输入模式。
控制线NSS为GPIO模拟SPI控制器的片选,用于从设备片选信号,由主设备控制。当从设备的片选被拉低的时候,才能从SPI总线上获取数据信息,主设备NSS引脚为输出模式,从设备NSS引脚为输入模式。
控制线SCK为GPIO模拟SPI控制器的串行时钟信号线,用于时钟信号,由主设备产生。用来提供串行输入和输出操作的时序,即串行输入输出操作的时钟,主设备SCK引脚为输出模式,从设备SCK引脚为输入模式。
时钟控制逻辑包括:波特率发生器,用于配置GPIO模拟SPI控制器的SCK时钟频率和通讯模式,提供串行输入和输出操作的时序。
数据控制逻辑包括:包括数据和地址总线、数据移位寄存器、接收缓冲区和发送缓冲区,地址总线和数据总线会在相应的地址上取到要发送的数据,将数据放入发送缓冲区,或由总线读取接收缓冲区数据。
数据移位寄存器的数据来源于接收缓冲区及发送缓冲区,GPIO模拟SPI控制器的MOSI控制线及MISO控制线都连接到数据移位寄存器上,具体的,在读操作中,移位寄存器中接收到的数据传送到接收缓冲区,在写操作中,数据被写入发送缓冲区,把发送缓冲区中的数据传输到了移位寄存器。
接收缓冲区及发送缓冲区,一个用于写/发送缓冲;另外一个用于读/接收缓冲。写操作将数据写到发送缓冲区,读操作将返回接收缓冲区里的数据,通过写数据寄存器把数据填充到发送缓冲区中,通过读数据寄存器,可以获取接收缓冲区中的数据内容。
整体控制逻辑包括:状态寄存器SPI_SR、控制寄存器SPI_CR1和控制寄存器SPI_CR2、主控制电路和通信电路。
状态寄存器SPI_SR,用于读取状态寄存器相关的寄存器位,得到GPIO模拟SPI控制器的工作状态。
控制寄存器SPI_CR1和控制寄存器SPI_CR2用于设置GPIO模拟SPI控制器的工作模式,工作模式包括SPI模式、主从模式,LSB先行,时钟极性,时钟相位和单双向模式等控制参数。
主控制电路根据具体应用要求,用于控制中断信号、DMA请求和控制NSS信号线。
通信电路用于协调GPIO模拟SPI控制器的外设,并通过GPIO模拟SPI控制器与外设保持通信。
如图3所示,网络控制器包括:硬件TCP/IP协议栈模块、网络变压器和RJ45连接器及控制线,控制线包括控制线TXON、控制线TXOP、控制线RXIP、控制线RXIN、控制线LINKn和控制线ACTn。
硬件TCP/IP协议栈模块包括W6100芯片及其外围电路,W6100芯片是支持IPv4/IPv6双核的新一代全硬件以太网TCP/IP协议栈控制器,内部集成了10M/100M以太网数据链路层(MAC芯片)以及物理层(PHY芯片),具有SPI和并行总线两种主机接口,并自带32KB的高速数据缓存用于发送和接收数据,其芯片的内核由传输层的TCP、UDP、ICMP、IGMP等协议、网络层的IP、ARP、PPPoE等协议以及链路层的MAC构成,再加上物理层的PHY和外围的寄存器、内存、SPI接口组成。W6100芯片具有八个独立的硬件SOCKET,并且支持通过各种命令来实现IPV4、IPV6配置、监查和管理网络。将W6100芯片与必要的外围元器件集成在一块电路板上,并与所述GPIO模拟SPI控制器电连接。
MAC芯片支持10Mbps与100Mbps两种速率,其协议由IEEE 802.3以太网标准协议定义,实现数据链路层,和GPIO模拟SPI控制器实现数据交换。MAC芯片与PHY芯片通过媒体独立接口MII链接。
PHY芯片是一个10M/100M Ethernet网口芯片,将模拟信号进行解码,将数字信号传送出去,并且只做信号转换,不对数字信号进行处理,检测网络上是否有数据传输;
网络变压器包括FC62115BNL芯片及其外围电路,是一款10M/100M自适应RJ45的网络变压器,支持802.3接线标准,内置网络状态指示灯,可以指示W6100芯片以太网连接状态,内部集成了隔离变压器,用于电平信号耦合,对彼此设备不会造成影响,作为绝缘模块,增强抗干扰能力,避免了W6100芯片工作产生的信号因距离远,传送过程有直流分量损失。
RJ45连接器共有八芯构成,应用于局域网和网络客户端设备间连接,本发明实施例用于实现与非屏蔽双绞线的连接,将数据传输给从设备UDP客户端。
控制线TXON和控制线TXOP用于发送信号,通过TXOP信号或TXON信号组发送差分数据信号。
控制线RXIP和控制线RXIN用于接收信号,通过RXIP信号或RXIN信号组接收差分数据信号。
所述控制线LINKn表示PHY连接灯指示状态,低电平:PHY已连接,高电平:PHY未连接;
所述控制线ACTn表示连接活动灯指示状态,低电平:已连接无数据收发,高低电平变化:已连接且有数据收发,高电平:未连接。
如图4所示,集成电路稳压器包括LM2675芯片及其外围电路和LM1117芯片及其外围电路,LM2675芯片与LM1117芯片使用级联电源供电方式输出3.3V电源,以满足所述处理器和所述网络控制器供电电源要求,包含两级电压转换电路,具体的,由24v电源转换为5v,然后由5v再转换为3.3v电源,LM2675芯片是直插式,可以将24v直流电稳压到5V,LM1117芯片是一个正向低压降稳压芯片,可提供3.3v固定输出电压且具有1%的精度,以24v作为电源输入,通过输出端子提供稳定的3.3v直流电源。BLM21BD272是电感元件,用于过滤/稳定电流,与电阻器和电容器形成滤波器。
如图5所示,控制线RST对应工业级单板机STM32F469XX系列器件的PD08引脚,并与硬件TCP/IP协议栈芯片W6100的RSTn引脚相连,GPIO模拟SPI控制器的控制线SCK对应工业级单板机STM32F469XX系列器件的PB13引脚,并与硬件TCP/IP协议栈芯片W6100的SCLK引脚相连,且外接10KΩ上拉电阻,控制线NSS对应工业级单板机STM32F469XX系列器件的PD07引脚,并与硬件TCP/IP协议栈芯片W6100的CSn引脚相连,控制线MOSI对应工业级单板机STM32F469XX系列器件的PB15引脚,并与硬件TCP/IP协议栈芯片W6100的MOSI引脚相连,控制线MISO对应工业级单板机STM32F469XX系列器件的PB14引脚,并与硬件TCP/IP协议栈芯片W6100的MISO引脚相连。
如图6所示,硬件TCP/IP协议栈芯片的控制线TXON对应芯片W6100的引脚2,并与网络变压器芯片FC62115BNL的TD-引脚相连,控制线TXOP对应芯片W6100的引脚3,并与网络变压器芯片FC62115BNL的TD+引脚相连,控制线RXIP对应芯片W6100的引脚6,并与网络变压器芯片FC62115BNL的RD+引脚相连,控制线RXIN对应芯片W6100的引脚5,并与网络变压器芯片FC62115BNL的RD-引脚相连,控制线LINKn对应芯片W6100的引脚17,并与网络变压器芯片FC62115BNL的GRN-引脚相连,控制线ACTn对应芯片W6100的引脚20,并与网络变压器芯片FC62115BNL的YEL-引脚相连。
如图7所示,网络变压器的引脚TXON对应FC62115BNL芯片的R3引脚,并与RJ45连接器的J2相连,引脚TXOP对应FC62115BNL芯片的R2引脚,并与RJ45连接器的J1相连,引脚RXIP对应FC62115BNL芯片的R4引脚,并与RJ45连接器的J3相连,引脚RXIN对应FC62115BNL芯片的R5引脚,并与RJ45连接器的J6相连,J1与J2、J3与J4均外接75Ω电阻穿上1000PF高压电容。
GPIO模拟SPI控制器通信结构包括四个模块:设置工作模式模块、发送器模块、接收器模块和结束通讯模块。
设置工作模式模块:通过设置W6100芯片的MODE[3:0]引脚的MODE2下拉,启用SPI模式,W6100芯片作为SPI从设备运行。W6100芯片与主设备通过SPI控制器通信有两种接线方式,VDM可变数据长度模式与FDM固定数据长度模式, W6100芯片与多个SPI从设备客户端共用SPI接口,可根据指定的参数设置W6100芯片支持SPI模式0/3,如图8所示,本发明实施例采用可变数据长度模式,使用SPI模式3,数据始终在SCLK上升沿采样,并在SCLK的下降沿切换。MOSI和MISO信号始终按每个SCLK从MSB到LSB依次发送或接收;
发送器模块:如图9所示为写访问中的SPI数据帧及时钟。主设备控制CSn从高到低通知W6100芯片SPI数据帧的开始,CSn从低到高通知W6100芯片SPI数据帧的结束。控制段中的RW为“1”,即表示读/写访问模式为写访问,设置SPI工作模式为“00”,即可变长度模式。通过MOSI传输的数据位与SCLK下降沿同步。如果连续传输多个字节的数据,则支持顺序数据写入;
接收器模块:如图10所示为读访问中的SPI数据帧及时钟。主机控制CSn从高到低通知W6100芯片SPI数据帧开始,CSn从低到高通知W6100芯片SPI数据帧结束。控制段中的RW为“1”,即表示读/写访问模式为读访问,设置SPI工作模式为“00”,即可变长度模式。通过MISO接收的数据位与SCLK下降沿同步。如果连续传输多个字节的数据,则支持顺序数据读取;
所述结束通讯模块:发送W6100芯片关闭端口命令,通过断开进程、清除超时中断,设置关闭命令,等待清除关闭命令。
一种基于SPI控制器网络通讯控制系统的控制方法,包括以下步骤:
步骤1、配置GPIO管脚。
步骤1.1、:指定GPIO管脚PB15的操作模式及类型,将PB15(SPI_MOSI)配置成复用推挽输出SPI功能模式,管脚PB15上拉模式,最高输出速率100MHz;
步骤1.2、指定GPIO管脚PB14的操作模式及类型,将PB13(SPI_MISO)配置成复用推挽输出SPI功能模式,管脚PB14上拉模式,最高输出速率100MHz;
步骤1.3、指定GPIO管脚PB13的操作模式及类型,将PB13(SPI_SCLK)配置成复用推挽输出SPI功能模式,管脚PB13上拉模式,最高输出速率100MHz;
步骤1.4、指定GPIO管脚PD07的操作模式,将PD07(SPI_SCSn)配置成输出SPI功能模式,最高输出速率50MHz;
步骤1.5、指定GPIO管脚PD08的操作模式及类型,将PD08 (W6100_RSTn)配置成推挽输出,最高输出速率50MHz;
步骤1.6、配置GPIOB,GPIOD,SPI同步串口时钟使能,开启外设APB1总线时钟。
步骤2、配置SPI控制器参数主要是根据指定的参数设置SPI控制寄存器。
步骤2.1、配置SPI数据模式是单向或双向,将SPI设置为双线双向全双工模式;
步骤2.2、配置SPI工作模式,SPI通讯时分为主设备和从设备,设置SPI工作在主设备模式;
步骤2.3、配置SPI传输数据长度,数据帧结构,设置SPI发送/接收16位帧结构;
步骤2.4、配置SPI时钟极性,选择串行时钟的稳态,时钟空闲状态电平的高低,设置空闲状态为高电平,CLK引脚拉高;
步骤2.5、配置SPI时钟相位,设置位捕捉的时钟活动沿,SCK引脚跳变在哪一个边沿,数据在第几个边沿采集,将数据捕获于第2个时钟跳变沿;
步骤2.6、配置SPI是由硬件还是软件管理片选,因为本发明实施例中片选使用的PD7,在此设置软件控制SPI片选管理从设备,即指定NSS信号由软件管理;
步骤2.7、配置比特率预分频值,用于设置发送和接收SCK时钟,将比特率预分频值设置为128;
步骤2.8、配置数据传输从MSB还是LSB位开始,设置数据传输从MSB到LSB顺序;
步骤2.9、配置CRC校验计算的方式选择,设置CRC计算的初值为7。
步骤3、打开SPI控制器的使能。
步骤3.1、使能SPI控制器功能;
步骤3.2、启动SPI控制器传输。
步骤4、配置W6100芯片复位引脚主要是根据指定的参数设置GPIO外设值,具体步骤:在工业级单板机STM32F469XX系列器件的PD08引脚提供超过500ns的复位信号,设置PD08高电平,如图11所示为芯片复位时序。
步骤5、设置网络通信的基本网络信息主要是设置W6100芯片的通用寄存器,包括网络锁定寄存器、IPv4、IPV6网络配置寄存器、重传超时时间值寄存器、重传次数寄存器。
步骤5.1、设置网络信息前要解锁网络,设置网络解锁;
步骤5.2、设置IPv4网络信息,配置源硬件地址,设置源MAC地址,00:08:DC:FF:FF:FF;
步骤5.3、配置源网关地址,设置网关IP地址,192.168.100.1;
步骤5.4、配置子网掩码地址,设置子网掩码,255.255.255.0;
步骤5.5、配置本机IPV4地址,设置本机IPV4地址,192.168.100.25;
步骤5.6、设置IPv6网络信息,配置链路本地地址,设置链路本地地址,FE80:0000:0000:0000:0208:DCFF:FEFF:FFFF;
步骤5.7、配置全球单播地址,设置全球单播地址,0000:9292:B100:D800:8000:1000:0000:1100;
步骤5.8、配置IPv6子网前缀掩码,设置IPv6子网前缀掩码,FFFF:FFFF:FFFF:FFFF:0000:0000:0000:0000;
步骤5.9、配置IPv6网关IP地址,设置IPv6网关地址,2525:0000:0000:FEA0:0680:0000:01AA:0808;
步骤5.10、设置SOCKET n发送/接收缓冲区,SOCKET n发送/接收缓冲区是一个环形缓冲区结构,因此需计算SOCKET n发送/接收缓冲区控制的基地址和缓存大小。设置SOCKET n的发送/接收存储器的基地址,发送存储器基地址0x8000,接收存储器基地址0xC000;
步骤5.11、配置SOCKET n的发送缓冲区大小。每个寄存器的发送缓存按从SOCKET0到SOCKET 7顺序分配,为每个SOCKET分配2KB的发送缓冲区;
步骤5.12、配置SOCKET n的接收缓冲区大小。每个寄存器的接收缓存按从SOCKET0到SOCKET 7顺序分配,为每个SOCKET分配2KB的接收缓冲区;
步骤5.13、配置重传时间初始值,单位是100us,设置超时为400ms;
步骤5.14、配置重传次数初始值,与重传次数配合使用来重传报文,设置重传次数3次;
步骤5.15、配置网络信息后要锁定网络,设置网络锁定。
步骤6、配置以太网PHY操作模式主要是设置W6100芯片的PHY状态寄存器,指示PHY当前的操作模式和连接状态,通过检测PHY连接标志位判断物理层连接状态,检测非屏蔽双绞线(网线)连接状态,等待物理连接成功后,再进入SOCKET n操作,若没插非屏蔽双绞线,关闭使用的SOCKET n。
步骤6.1、配置以太网PHY处于解锁还是锁定状态,设置PHY处于解锁模式;
步骤6.2、配置以太网PHY的工作模式,如自动协商,速度选择和全双工选择,设置以太网PHY的工作模式为100/10BASE和全双工;
步骤6.3、配置以太网PHY操作模式,设置PHY硬件复位;
步骤6.4、检查PHY工作模式和链路状态设置,等待PHY链接启动;
步骤6.5、在以太网PHY链接之后,检查PHY操作模式是否仍为100/10BASE且全双工;
步骤6.6、设置以太网PHY处于锁定模式。
步骤7、打开SOCKET n为UDP双模式,即配置SOCKET n为基于W6100双协议栈(IPv4/IPv6)的UDP双(UDPD)模式。图12所示了UDPD操作流程,在UDPD模式下,SOCKET可以发送/接收所有UDP4/UDP6数据包。UDP4数据和UDP6数据可以分别通过设置SEND及IPv6 SEND命令发送,而接收的UDP4数据和UDP6数据可以通过接收分组的“PACKETINFO”来区分。本实施例启用socket0建立UDPD,工作在IPV4和IPV6双模式。
步骤7.1、配置SOCKET0模式,设置UDPD模式;
步骤7.2、配置IPv4的目的IP地址,设置目标IP地址,192.168.0.11;
步骤7.3、配置IPv6目的IP地址,设置目标IP地址,FE80:0000:0000:0000:010D:00FC:034A:EF90;
步骤7.4、在UDPD模式下,配置对等方的目标端口,设置目标端口号,5000(0x1388);
步骤7.5、配置SOCKET0的OPEN命令,设置OPEN命令,并等到OPEN命令被清除;
步骤7.6、检查SOCKET0是否仍是UDPD模式。
步骤8、网络发送目标数据包,将要发送的目标数据包的数据写入SOCKET0发送缓冲区,之后通过写入数据大小增加SOCKET0写偏移地址,并通过设置SEND及IPv6 SEND使W6100芯片传输网络数据。
步骤8.1、获取SOCKET0的发送缓冲区大小,从而计算SOCKET0发送缓冲空闲区大小;
步骤8.2、通过SOCKET0发送缓冲空闲区大小,判断SOCKET0发送缓冲区是否空闲;
步骤8.3、获取发送缓冲区中将要保存传输数据的首地址;
步骤8.4、从SOCKET0的发送缓冲区对应的首地址开始保存需要传输的数据;
步骤8.5、根据发送数据的大小增加写偏移地址;
步骤8.6、设置SEND及IPv6 SEND命令,发送保存在SOCKET0发送缓冲区的数据;
步骤8.7、等待SEND或IPv6 SEND命令被清除;
步骤8.8、等待SEND命令完成且超时中断未发生;
步骤8.9、清除SOCKET0的SEND完成中断位,执行下一个SOCKET0命令。
步骤9、网络接收目标数据包的数据以及完成/关闭SOCKET0,在接收到目标数据包后,读取数据包中的数据,需根据读取的数据大小增加SOCKET0读偏移地址,并通过设置RECV命令,使W6100芯片更新接收缓冲区。SOCKET可以接收来自多个目标的数据包,接收到的UDP数据包PACKINFO存储在SOCKET0接收缓冲区内,如图13所示,需从SOCKET0接收缓冲区内读取数据。
步骤9.1、提取数据包PACKINFO中前两个字节,判断数据包是UDP4还是UDP6数据包;
步骤9.2、在PACKEINFO中提取目标IP、端口、计算数据长度;
步骤9.3、检查SOCKET0中断,判断SOCKET0是否接收到数据;
步骤9.4、清除SOCKET0的RECV中断位;
步骤9.5、读取UDP数据,获取在SOCKET0接收缓冲区中已接收的数据大小,进而计算SOCKET0接收缓冲区大小;
步骤9.6、读取保存在接收缓冲区中数据的首地址;
步骤9.7、从保存在SOCKET0接收缓冲区中的数据的首地址开始读取数据;
步骤9.8、根据已接收数据的大小更新SOCKET0接收读指针寄存器的值;
步骤9.9、设置RECV命令,释放SOCKET0接收缓存,并等待RECV命令被清除,执行下一个SOCKET0命令。
所述完成/关闭SOCKET,即SOCKET0通过断开进程、清除超时中断或CLOSE命令来关闭SOCKET0,具体步骤包括:
步骤10.1、设置CLOSE命令;
步骤10.2、等待CLOSE命令被清除;
步骤10.3、检查SOCKET0是否是关闭状态,等待SOCKET0关闭。
根据上述ARM Cortex-M4处理器下基于GPIO模拟SPI控制器与硬件TCP/IP协议栈芯片通信控制系统及方法,使用图14所示的试验方法进行验证,具体步骤:
1、硬件上电测试:硬件是系统应用程序的前提和基础,因此硬件设计不能出现问题。注意电源、时钟以及配置信号正常,各器件引脚没有短路和虚焊;
2、试验环境建立:试验环境必须正确配置才能为后续的试验打好基础。在对准信息处理分配装置上搭建平台测试,数据处理模块通过GPIO模拟SPI1与网络通信模块进行通信,用非屏蔽双绞线连接网络通信模块(RJ45连接器)与超级终端,网络变压器的内置网络状态灯可指示网络通讯状态,并在超级终端上可观察网络运行状况;
3、模拟SPI驱动调试:通过断点窗口确定所调试的各寄存器配置是否正确;
4、SPI时钟频率测量:使用信号示波器测量SPI时钟频率,观察波形进行分析,横向每格表示50毫秒,图15中一个周期就是100毫秒,即10Hz,实测与理论完全一致;
5、试验验证过程:按照上述1、2、3、4正确实施后,在超级终端上可查看网络设置的参数信息是否正确,超级终端还会显示发送和接收回发的16字节网络数据,具体的,发送“12 3 4 5 6 7 8 9 0 A B C D E F”16个字节数据,比较接收数据和发送的数据是否一致,再发送“F E D C B A 0 9 8 7 6 5 4 3 2 1”16个字节数据,,观察接收数据和发送的数据是否一致,见图16。
试验效果分析:使用ARM Cortex-M4处理器通过GPIO模拟SPI控制器与硬件TCP/IP协议栈芯片实现网络通讯控制系统及方法,满足了设备使用功能,见图17。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (5)

1.一种基于SPI控制器网络通讯控制系统,其特征在于:包括处理器,网络控制器和集成电路稳压器,其中处理器处理应用层数据,实现通讯控制和各设备逻辑输入输出,网络控制器用于网络包的封装与解封,并通过CSMA/CD协议实现链路层管理,以及进行数据编码及译码,实现与局域网和网络客户端设备间互连功能,集成电路稳压器用于稳定电源电路的输出电压,满足处理器和网络控制器供电电源要求;集成电路稳压器以24v作为电源输入,通过输出端子提供处理器和网络控制器稳定直流电源,网络控制器将局域网或网络客户端设备网络包的数据读进处理器,同时还读入网络包中的网络配置参数信息,处理器完成网络包的处理转换后,将处理转换后的网络包经网络控制器转发向局域网或网络客户端设备提供;
处理器包括GPIO模拟SPI控制器和与GPIO模拟SPI控制器连接的控制线RST,控制线RST用于处理器控制硬件TCP/IP协议栈模块硬件复位;
GPIO模拟SPI控制器包括:通讯控制线、时钟控制逻辑、数据控制逻辑和整体控制逻辑,
其中,通讯控制线包括:控制线MISO、控制线MOSI、控制线NSS、控制线SCK;控制线MISO和控制线MOSI为GPIO模拟SPI控制器的数据线,用于收发数据,控制线NSS为GPIO模拟SPI控制器的片选,控制线SCK为GPIO模拟SPI控制器的时钟信号线;
时钟控制逻辑包括:波特率发生器,用于配置GPIO模拟SPI控制器的SCK时钟频率和通讯模式;
数据控制逻辑包括:包括数据和地址总线、数据移位寄存器、接收缓冲区和发送缓冲区;
整体控制逻辑包括:状态寄存器SPI_SR、控制寄存器SPI_CR1和控制寄存器SPI_CR2、主控制电路和通信电路,状态寄存器SPI_SR,用于读取状态寄存器相关的寄存器位,得到GPIO模拟SPI控制器的工作状态;控制寄存器SPI_CR1和控制寄存器SPI_CR2用于设置GPIO模拟SPI控制器的工作模式;主控制电路用于控制中断信号、DMA请求和控制NSS信号线;通信电路用于协调GPIO模拟SPI控制器的外设,并通过GPIO模拟SPI控制器与外设保持通信;
硬件TCP/IP协议栈模块包括W6100芯片及其外围电路,W6100芯片的RSTn管脚分别连接接电源电阻和GPIO模拟SPI控制器的RST管脚;W6100芯片的SCLK管脚连接GPIO模拟SPI控制器的SCK管脚;W6100芯片的CSn管脚连接GPIO模拟SPI控制器的NSS管脚;W6100芯片的MOSI管脚连接GPIO模拟SPI控制器的MOSI管脚;W6100芯片的MISO管脚连接GPIO模拟SPI控制器的MISO管脚;W6100芯片内部包括以太网数据链路层和物理层芯片,以太网数据链路层和物理层芯片通过媒体独立接口MII链接,其中,以太网数据链路层用于和GPIO模拟SPI控制器实现数据交换,物理层芯片用于解码模拟信号,并传送数字信号,同时检测网络上是否有数据传输;网络变压器包括FC62115BNL芯片及其外围电路,RJ45连接器用于局域网和网络客户端设备间连接。
2.根据权利要求1所述的一种基于SPI控制器网络通讯控制系统,其特征在于:所述网络控制器包括:硬件TCP/IP协议栈模块、网络变压器和RJ45连接器及控制线,控制线包括控制线TXON、控制线TXOP、控制线RXIP、控制线RXIN、控制线LINKn和控制线ACTn。
3.根据权利要求2所述的一种基于SPI控制器网络通讯控制系统,其特征在于:所述控制线TXON和控制线TXOP用于发送信号,通过TXOP信号或TXON信号组发送差分数据信号;
控制线RXIP和控制线RXIN用于接收信号,通过RXIP信号或RXIN信号组接收差分数据信号;
控制线LINKn用于表示PHY连接灯指示状态;
控制线ACTn用于表示连接活动灯指示状态。
4.根据权利要求1所述的一种基于SPI控制器网络通讯控制系统,其特征在于:所述集成电路稳压器包括LM2675芯片及其外围电路和LM1117芯片及其外围电路,LM2675芯片与LM1117芯片使用级联电源供电方式输出3.3V电源。
5.一种如权利要求1至4任一项所述的基于SPI控制器网络通讯控制系统的控制方法,其特征在于:包括以下步骤:
步骤1、配置GPIO管脚,设置管脚操作模式及类型,并使能串口时钟,开启总线时钟;
步骤2、配置SPI控制器,并指定以下各参数,参数包括数据模式、工作模式、传输数据长度、时钟极性与相位、片选管理方式、比特率计算、数据传输顺序、CRC校验计算方式;
步骤3、打开SPI控制器的使能;
步骤4、设置W6100芯片的网络锁定寄存器、IPv4、IPV6网络配置寄存器、重传超时时间值寄存器和重传次数寄存器;
步骤5、配置以太网PHY操作模式,设置W6100芯片的PHY状态寄存器,指示PHY当前的操作模式和连接状态;
步骤6、配置SOCKET0,使其为基于W6100芯片双协议栈IPv4/IPv6的UDP双模式;
步骤7、将要发送的目标数据包的数据写入SOCKET0发送缓冲区,之后通过写入数据大小增加SOCKET0写偏移地址,并通过设置SEND及IPv6 SEND使W6100芯片传输网络数据;
步骤8、在接收到目标数据包后,读取数据包中的数据,需根据读取的数据大小增加SOCKET0读偏移地址,并通过设置RECV命令,使W6100芯片更新接收缓冲区,SOCKET0可以接收来自多个目标的数据包,接收到的UDP数据包PACKINFO存储在SOCKET0接收缓冲区内;
步骤9、SOCKET0通过断开进程、清除超时中断或CLOSE命令来关闭SOCKET0。
CN202210618297.2A 2022-06-02 2022-06-02 一种基于spi控制器网络通讯控制系统及方法 Active CN114721317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210618297.2A CN114721317B (zh) 2022-06-02 2022-06-02 一种基于spi控制器网络通讯控制系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210618297.2A CN114721317B (zh) 2022-06-02 2022-06-02 一种基于spi控制器网络通讯控制系统及方法

Publications (2)

Publication Number Publication Date
CN114721317A CN114721317A (zh) 2022-07-08
CN114721317B true CN114721317B (zh) 2022-09-16

Family

ID=82232541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210618297.2A Active CN114721317B (zh) 2022-06-02 2022-06-02 一种基于spi控制器网络通讯控制系统及方法

Country Status (1)

Country Link
CN (1) CN114721317B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086455B (zh) * 2022-07-20 2023-01-13 北京国科天迅科技有限公司 Ipfc通信节点、系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719053A (zh) * 2009-11-27 2010-06-02 曹莹莹 一种通过spi接口读取iic存储卡的方法
CN102654857A (zh) * 2011-03-04 2012-09-05 希姆通信息技术(上海)有限公司 采用gpio接口模拟spi协议的通信方法
CN104020704A (zh) * 2014-06-19 2014-09-03 大连理工大学 I/o口模拟spi接口的迷你嵌入式控制器装置和方法
CN104331385A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种串行外围接口的高速半硬件实现方法
CN110765058A (zh) * 2019-09-12 2020-02-07 深圳震有科技股份有限公司 Gpio实现spi从机功能方法、系统、设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858235B2 (en) * 2012-11-15 2018-01-02 Advanced Micro Devices, Inc. Emulated legacy bus operation over a bit-serial bus
US11256652B2 (en) * 2019-06-20 2022-02-22 Analog Devices International Unlimited Company Multi-I/O serial peripheral interface for precision converters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719053A (zh) * 2009-11-27 2010-06-02 曹莹莹 一种通过spi接口读取iic存储卡的方法
CN102654857A (zh) * 2011-03-04 2012-09-05 希姆通信息技术(上海)有限公司 采用gpio接口模拟spi协议的通信方法
CN104020704A (zh) * 2014-06-19 2014-09-03 大连理工大学 I/o口模拟spi接口的迷你嵌入式控制器装置和方法
CN104331385A (zh) * 2014-11-26 2015-02-04 上海爱信诺航芯电子科技有限公司 一种串行外围接口的高速半硬件实现方法
CN110765058A (zh) * 2019-09-12 2020-02-07 深圳震有科技股份有限公司 Gpio实现spi从机功能方法、系统、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于LoRa的物联网无线通信系统设计;李信希;《中国优秀博硕士学位论文全文数据库(硕士) 工程科技Ⅱ辑》;20200615;第27-28页 *

Also Published As

Publication number Publication date
CN114721317A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN103616927B (zh) 一种数据通讯服务器
US20060153238A1 (en) Transfer of control data between network components
US20100122003A1 (en) Ring-based high speed bus interface
US20080288708A1 (en) Multiple virtual usb devices with virtual hub implemented using one usb device controller
WO2001022690A1 (en) Reduced hardware network adapter and communication method
CN114721317B (zh) 一种基于spi控制器网络通讯控制系统及方法
US10996950B2 (en) Apparatuses and methods involving selective disablement of side effects caused by accessing register sets
WO2019072218A1 (zh) 信号转换方法和装置、家庭总线系统hbs电路和用户设备
EP1401155B1 (en) Method and system for wakeup packet detection at gigabit speeds
EP1988470B1 (en) Network device and transmission method thereof
CN103186249A (zh) 远程管理系统及远程管理方法
CN111614533B (zh) Powerlink从站模块扩容系统及从站与总线主节点的交互方法
CN111510363A (zh) 基于modbus协议的从站转换装置及其控制方法
CN102402494B (zh) Xgmii接口数据处理方法及装置以及芯片间双向握手的方法
CN101090353A (zh) 基于嵌入式以太网技术的led显示屏数据通信设备和方法
CN112698614B (zh) 一种任意字节读写用户侧逻辑控制器
CN214042097U (zh) 一种可自定义协议的plc串口通讯扩展模块
CN210119679U (zh) 一种双网口材料试验机联网控制器
WO2020135261A1 (zh) 一种电动自行车用can总线通信电路
CN102932357B (zh) 一种加速器高频数字低电平以太网通讯系统及通讯方法
CN202385121U (zh) 一种基于fsm的短距离家居通讯协议的控制系统
CN105512066B (zh) 基于profibus的软起动器通讯协议转换装置及方法
CN215450170U (zh) 一种基于fpga实现的gmac千兆网外设模块
Yi et al. Design of USB-UART interface converter and its FPGA implementation
CN218482868U (zh) 一种自主可控的powerlink通信装置

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
GR01 Patent grant
GR01 Patent grant