CN114218155B - 用于天基物联网的网关开发方法及开发平台 - Google Patents
用于天基物联网的网关开发方法及开发平台 Download PDFInfo
- Publication number
- CN114218155B CN114218155B CN202111543514.8A CN202111543514A CN114218155B CN 114218155 B CN114218155 B CN 114218155B CN 202111543514 A CN202111543514 A CN 202111543514A CN 114218155 B CN114218155 B CN 114218155B
- Authority
- CN
- China
- Prior art keywords
- gateway
- chip
- pin
- development
- spi interface
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
Abstract
本申请涉及一种用于天基物联网的网关开发方法及开发平台,通过利用开发板对网关芯片进行驱动,其中采用SPI接口作为两者之间的数据传输通道,并根据网关芯片的需要配置SPI接口和FPGA模块中的GPIO引脚,以完成两者之间的硬件部分的搭建,再通过在芯片模块中对SPI进行初始化,将源代码中SPI驱动部分进行替换,并将源代码中的函数使用数学方法重写,还将源代码中的gettimeofday()用开发板中的XTime_GetTime()进行重写以调用开发板中的时钟,已完成开发板对网关芯片的驱动。采用本方法,开发人员不需要涉及太多硬件相关知识,更多的只需要关注SPI功能的实现,针对已经有的Linux系统驱动代码,开发人员只需要对其中的电源,Reset以及SPI接口替换为本方法的相关API就可以轻松的完成移植工作。
Description
技术领域
本申请涉及物联网技术领域,特别是涉及一种用于天基物联网的网关开发方法及开发平台。
背景技术
物联网是未来网络发展的趋势,是第四次工业革命的核心。但是仅仅依靠地面设备的物联网体系还存在着很大的缺陷,容易受到天气和地面环境的影响。为了解决这个问题,人们开始将目光投向了天上的卫星,着手研发以卫星作为平台的天基物联网。不同于地面网络传输,天基网络通信范围更加广阔,可以实现全球范围性的覆盖,而且在布设传感器时几乎不需要考虑地形和空间的限制。在面对各种自然危害和恶劣天气的情况下,天基网络依然可以正常工作。
与地面不同的是,天基物联网要连接天上的卫星和地面的终端,信息的传输距离长,而且很多地面的终端成本不高,传输的功率较低,因此天基物联网适合采用LPWAN(LowPower Wide Area Network)技术。当前流行的LPWAN技术有LoRa、SigFox和NB-IOT(NarrowBand-Internet of Things)等。LoRa和SigFox均采用非授权频段,但是SigFox只能部署在私有网络,NB-IOT工作的频段又需要获得运营商的授权。
网关是整个天基网络中的重要组成部分,但是目前大家对于网关开发大多数采取的是基于Linux内核的环境,这种开发方式适用于地面却并不适用于卫星环境,首先卫星上面硬件资源受限,很多时候并不能支持操作系统运行,其次卫星的寿命通常以年作为单位,而Linux操作系统虽然稳定,但也过一段时间就需要重启一次。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决上述问题的用于天基物联网的网关开发方法及开发平台。
一种用于天基物联网的网关开发方法,所述方法实施于一网关开发平台上,所述网关开发平台包括开发板以及网关芯片,以使所述开发板在不用安装任何系统下对网关芯片进行驱动,所述开发板包括FPGA模块以及SOC芯片,所述网关芯片安装在一底座上并通过SPI接口连接到所述FPGA模块上与所述SOC芯片进行通信,所述网关开发方法包括:
在硬件部分:将所述网关芯片的传输引脚通过所述SPI接口的SS、MISO、MOSI以及SCLK引脚与所述FPGA模块的JC部分引脚进行连接,并将所述网关芯片的reset引脚与所述FPGA模块的GPIO引脚连接;
在软件部分,在所述SOC模块上,对所述SPI接口进行初始化,并通过配置使得所述FPGA模块的GPIO引脚向所述网关芯片的reset引脚输出reset信号,再对所述SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
在所述SOC模块上将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的硬件时钟,并将获取到的硬件时间戳换算成秒级单位。
在其中一实施例中,所述开发板采用ZYNQ-7000系列,所述网关芯片采用型号为SX1302芯片。
在其中一实施例中,在所述FPGA模块上采用GPIO引脚中的EMIO引脚与所述网关芯片的reset引脚连接。
在其中一实施例中,在对所述SPI接口进行初始化时,对所述开发板与网关芯片之间传输数据时,将每个字节之间的间隔延时设置为100ns。
在其中一实施例中,在对所述SPI接口进行初始化时,将所述SPI接口的通信模式设置为主机模式,pol=0,pha=0,强制片选以及时钟分频为64分频。
在其中一实施例中,在对所述EMIO引脚输出的信号进行设置时,在重启的时候使其输出“0”持续100us,再输出“1”,持续10us,最后再将EMIO引脚的值持续输出为“0”,以使所述EMIO引脚向所述网关芯片输出reset信号。
本申请还提供了一种开发平台,开发平台包括开发板以及网关芯片,以使所述开发板在不用安装任何系统下对网关芯片进行驱动,所述开发板包括FPGA模块以及SOC芯片,所述网关芯片安装在一底座上并通过SPI接口连接到所述FPGA模块上与所述开发板进行通信;
所述网关芯片的传输引脚通过所述SPI接口的SS、MISO、MOSI以及SCLK引脚与所述FPGA模块的JC部分引脚进行连接,并将所述网关芯片的reset引脚与所述FPGA模块的GPIO引脚连接;
所述SOC模块用于对所述SPI接口进行初始化,并通过配置使得所述FPGA模块的GPIO引脚向所述网关芯片的reset引脚输出reset信号,再对所述SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
所述SOC模块用于将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的时钟。
上述用于天基物联网的网关开发方法及开发平台,通过利用开发板对网关芯片进行驱动,其中采用SPI接口作为两者之间的数据传输通道,并根据网关芯片的需要配置SPI接口和FPGA模块中的GPIO引脚,以完成两者之间的硬件部分的搭建,再通过在芯片模块中对SPI进行初始化,将源代码中SPI驱动部分进行替换,并将源代码中使用数学方法重写pow(),ceil()和log10()函数,还将源代码中的gettimeofday()用开发板中的XTime_GetTime()进行重写以调用开发板中的时钟,已完成开发板对网关芯片的驱动,这样在整个开发过程中,开发人员不需要涉及太多硬件相关知识,更多的只需要关注SPI功能的实现,针对已经有的Linux系统驱动代码,开发人员只需要对其中的电源,Reset以及SPI接口替换为本方法的相关API就可以轻松的完成移植工作。
附图说明
图1为一个实施例中用于天基物联网的网关开发平台框架的示意图;
图2为一个实施例中用于天基物联网的网关开发方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本实施例中,提供了一种用于天基物联网的网关开发方法,该方法实施于一网关开发平台上,网关开发平台包括开发板以及网关芯片,以使开发板在不用安装任何系统下对网关芯片进行驱动,开发板包括FPGA模块以及SOC芯片,网关芯片安装在一底座上并通过SPI接口连接到FPGA模块上与SOC芯片进行通信,网关开发方法包括:
在硬件部分:将网关芯片的传输引脚通过SPI接口的SS、MISO、MOSI以及SCLK引脚与FPGA模块的JC部分引脚进行连接,并将网关芯片的reset引脚与FPGA模块的GPIO引脚连接;
在软件部分,在SOC模块上,对SPI接口进行初始化,并通过配置使得FPGA模块的GPIO引脚向网关芯片的reset引脚输出reset信号,再对SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
在SOC模块上将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的硬件时钟,将获取到的硬件时间戳换算成秒级单位。
在本实施例中,网关开发方法包括两个部分,一是对硬件进行搭设,而是对软件部分进行编写。而在硬件搭设部分包括将开发板通过FPGA模块实现SPI接口与网关芯片进行数据传输。在这里将网关芯片安装到以底座上,并将其网关芯片的传输引脚通过SPI接口的SS、MISO、MOSI以及SCLK引脚与FPGA模块的JC部分引脚进行连接,除此之外,还需要对网关芯片的reset引脚输入“reset”信号。在本方法中,由FPGA模块的GPIO引脚充当网关芯片的reset引脚。
在本实施例中,开发板采用ZYNQ-7000系列,网关芯片采用型号为SX1302芯片,而网关开发平台框架如图1所示。其中ZYNQ-7000系列开发板包含PS和PL部门,网关芯片包含基带部分和射频前端部分,主机与芯片之间通过SPI接口传输数据,开发板的GPIO引脚充当网关芯片的Reset引脚。
ZYNQ-7000系列开发板的SPI接口分为两个部分,分别是PS自带的SPI接口和PL扩展的SPI接口,为了后续的配置更加灵活和方便,在本实施例中,采用了PL部分的SPI 0接口。
在本实施例中,开发板采用Xilinx Zedboard,而软件版本采用vivado2018.3。
具体的,在对硬件进行搭设时,先在vivado上创建一个BD文件,添加对应的系统IP核,在IP核中配置SPI 0接口。接下来引出对应的引脚,因为在本方法中只需要用Zedboard驱动一块SX1302芯片,所以只需要引出一根片选引脚。引出引脚后,由于是采用的PL部分的SPI接口,还需要做一个引脚上的约束,虽然增加了工作量但是这种方式更为灵活。为了能够和SX1302芯片做一个更好的连接,这里将JC部分的PMOD和SPI的引脚做一个约束:分别将开发板的AB6,AB7,Y4,AA4引脚与SPI的SS,MISO,MOSI,SCLK引脚做一个引脚约束,这样就能使用Zedboard的SPI接口了,这样就完成了SPI接口的硬件部分的搭建。
并还将网关芯片的电源和接地引脚与开发板的JC部分电源和接地相连。
接着,SX1302网关芯片还有一个Reset引脚,虽然数据手册里面没有写明Reset引脚的工作模式,但通过查阅源代码可以看到,他是通过树莓派的一个GPIO引脚输出一个大于100ns的脉冲信号进行reset的。为了将reset引脚和zedboard相连,通过引出PL部分的EMIO引脚来实现。其中,位宽的选择最多可以到64位,但是由于这里只需要引出一个reset引脚,因此位宽只需要选择1就可以了。再引出这个引脚之后,由于这个引脚是属于PL部分的,同样的需要对它进行一个引脚约束,将它与上面的PC模块里面的R6引脚做一个约束。
以上就完成了本方法在硬件部分的搭设,接下来就是在开发板中SOC模块中进行软件的编写,使其在不用安装任何系统的情况下对网关芯片进行驱动。
接下来就可以生成bit流文件,并且打开对应的SDK(软件开发工具包),在SDK里面实现代码移植。再打开SDK后,创建一个新的project,先实现之前引出的reset(GPIO)引脚的输出。而在实现reset(GPIO)引脚的输出时所适用的函数就是采用的Zedboard为平台开发人员提供的系统函数,分别为XGpioPs_LookupConfig(),XGpio_Initialize(),XGpio_SetOutputEnablePin()以及XGpioPs_WritePin()可以在BSP(板极支持包)上去查找每一个函数的具体功能和实现。它们的功能分别是先找到设置的EMIO引脚(GPIO中的扩展引脚)的基地址,然后将这个引脚初始化,再使能这个引脚,后面的XGpioPs_WritePin()这个函数就是往对应的引脚写值。由于根据ZYNQ的数据手册,EMIO的引脚第一个编号是54,因此最后几个函数的功能就是往当时设置的reset引脚先输出0,然后持续100us,再输出1,持续10us,最后再将这个引脚的值输出为0。这样就使得EMIO这样引脚向网关芯片的reset脚提供一个reset信号,并且在后面使用时就可以直接调用这个部分的代码。
完成对网关芯片的reset脚提供reset信号之后,接下来要做的就是整个工作中最重要的部分,完成SPI接口的读写功能,由于SX1302的数据手册关于这一部分的内容非常的少,所有的工作都要通过阅读源码或者通过示波器抓取对应引脚的输出来完成。
在完成SPI接口的读写功能之前,首先还是关于SPI接口进行初始化,在ZYNQ的BSP里面有关于SPI接口的初始化,这里可以直接拿来调用。
具体的,在对SPI接口初始化时要和对网关芯片SX1302的初始化一致,关于SX1302的初始化可以通过查阅源码得到:在SX1302的SPI初始化中,它设置了通信模式为0,也就是POL(极性)和PHA(相位)都是0,最大时钟频率不超过200M,这个时钟频率后面通过示波器观察发现为2.2M左右。为了与源码一致,下面是在SDK里面设置的SPI初始化:
先是找到SPI接口的基地址,然后初始化,接下来设置通信模式为主机模式,pol=0,pha=0,强制片选,即每次传输时主板会自动拉低片选信号,不需要手动选择了,时钟分频为64分频,因为Zedboard的SPI通信的时钟频率时采取的PS部分的PLL时钟频率,它的时钟频率为166.666M,64分频后大概在2.5M左右,和树莓派的时钟频率能对上。
并且,在对SPI接口进行初始化时,对开发板与网关芯片之间传输数据时,将每个字节之间的间隔延时设置为100ns。
将这些设置完之后Zedboard和SX1302之间就可以通过SPI接口进行通信了。接下来还需要验证SPI的读写正确性,先通过Zedboard读SX1302上面一个存储版本信息的寄存器值,在源码里显示这个寄存器的值为16,地址为0x5606。在Zedboard里,SPI通信是通过XSpiPs_PolledTransfer
(XSpiPs*InstancePtr,u8*SendBufPtr,u8*RecvBufPtr,u32 ByteCount),以及XSpiPs_Transfer(XSpiPs*InstancePtr,u8*SendBufPtr,u8*RecvBufPtr,u32ByteCount)这两个函数来实现的,第一个是轮询式,第二个是中断式,经过查看树莓派SPI通信的源代码发现它是采取的轮询式通信的,因此这里采用第一种。这个函数的参数有四个,分别是SPI的实例地址,发送数组的地址,接收数组的地址和通信的字节数。
由于SPI是全双工通信,发送和接收是同时发生的,当要读取一个寄存器的值时,除了要有一个发送地址和数据的数组,还要有一个接收数据的地址。以读版本寄存器的值为例,由于数据手册中没有说明数据发送的格式,因此这里只能根据源码的数据格式来进行猜测,在进行单字节读写时,主机会一次性发送5个字节,其中第二个和第三个字节就是SX1302的具体地址,并且第二个字节的最高位是0还是1决定了SPI是读还是写,后面两个字节目前在数据手册和源代码都没有找到解释,这里猜测是Semtech公司为后面开发新的功能所预留的两个字节。有了发送数据后,接收字节的数组长度与发送数组长度是一样的。接下来调用XSpiPs_PolledTransfer(XSpiPs*InstancePtr,u8*SendBufPtr,u8*RecvBufPtr,u32 ByteCount)这个函数从SX1302芯片中读取到默认值。
这样就可以实现SPI的正常读写,然后将所有源代码中关于SPI的部分替换掉。到此,SPI接口部分的代码就已经替换完成了。
接下来,由于是在无系统的环境下发现在SOC模块中有一些数学函数是不可以调用问题,所以需要对这些函数进行重写。而在整个源代码中关于这部分的函数只有三个,pow(),ceil()和log10()函数,前两个快就能实现数学重写。而处理最后一个log函数时,需要通过泰勒展开和换底公式将这个函数实现了,而且精度也非常的高。
再将这些函数全部替换之后,还会遇到一个问题,在loragw_sx1302_timestamp这个源文件中有些函数内部调用了gettimeofday()这个系统函数导致编译无法通过,而这个函数是linux系统内置的一个函数,由于本方法中的开发平台没有使用操作系统,因此需要用硬件平台也就是开发板的时钟去重写这个函数。
在其中一实施例中,采用硬件平台中的XTime’_GetTime()这个函数是获取从硬件启动到目前经历的时钟周期,可以将它看成一个计数器,再根据Zedboard平台的时钟频率,换算成1S就能将整个函数重写完成。
至此,关于树莓派和ZYNQ裸机之间的不同函数就大致替换完成了,接下来就一些小的工作和调试,以最终实现在没有系统的情况下,用Zedboard驱动网关芯片。
如图2所示,提供了用于天基物联网的网关开发方法的具体流程图。
上述用于天基物联网的网关开发方法中,通过利用开发板对网关芯片进行驱动,硬件部分的搭建通过网关芯片与开发板之间一共有七个引脚,分别为四个用于两者之间数据传输通道的SPI接口引脚,用于给网关基带处理芯片供电的电源引脚,以及用于reset初始化网关芯片的GPIO引脚和用于接地保护的接地引脚。其中SPI接口引脚和GPIO引脚采用开发板中的PL部分,经过引脚约束后实现开发板与网关芯片之间的硬件连接。完成硬件部分搭建后,在软件部分需要对芯片的SPI模式进行初始化,设置芯片和网关之间的具体通信模式,除此之外还需对源代码中涉及数学运算的函数如pow(),ceil()和log10()通过数学方法进行重写,最后由于源代码中针对获取时间戳的函数为linux系统中的函数,因此还需要将源代码中的gettimeofday()函数用开发板中的XTime_GetTime()进行重写以调用开发板中的时钟,并将获取到的时间戳换算成秒。这样在整个开发过程中,开发人员不需要涉及太多硬件相关知识,更多的只需要关注SPI功能的实现,针对已经有的Linux系统驱动代码,开发人员只需要对其中的电源,Reset以及SPI接口替换为本方法的相关API就可以轻松的完成移植工作。
本申请还提供了一种开发平台,开发平台的框架可参考图1,开发平台包括开发板以及网关芯片,开发板在不用安装任何系统下对网关芯片进行驱动,开发板包括FPGA模块以及SOC芯片,网关芯片安装在一底座上并通过SPI接口连接到FPGA模块上与开发板进行通信;
其中,网关芯片的传输引脚通过SPI接口的SS、MISO、MOSI以及SCLK引脚与FPGA模块的JC部分引脚进行连接,并将网关芯片的reset引脚与FPGA模块的GPIO引脚连接;
其中,SOC模块用于对SPI接口进行初始化,并通过配置使得FPGA模块的GPIO引脚向网关芯片的reset引脚输出reset信号,再对SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
SOC模块还用于将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的时钟。
如图1所示,网关芯片包括用于基带处理的SX1302和2个射频前端SX1250,接收到的LoRa信号经过SAW(声表滤波器)滤除外界干扰信号,经过SWICH(继电器)后由再经过LNA(低噪声放大器)放大信号,放大后的信号通过SAW再次滤波,再进入第一块SX1250无线扩频芯片和第二SX1250射频前端芯片,将无线电模拟信号转换成I/Q信号(In-phase/Quadrature,同相正交数字信号),然后将I/Q信号传输至SX1302射频基带芯片进行解调后,再将还原的原始信息通过SPI接口传递给开发板。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.用于天基物联网的网关开发方法,其特征在于,所述方法实施于一网关开发平台上,所述网关开发平台包括开发板以及网关芯片,以使所述开发板在不用安装任何系统下对网关芯片进行驱动,所述开发板包括FPGA模块以及SOC模块,所述网关芯片安装在一底座上并通过SPI接口连接到所述FPGA模块上与所述SOC模块进行通信,所述网关开发方法包括:
在硬件部分:将所述网关芯片的传输引脚通过所述SPI接口的SS、MISO、MOSI以及SCLK引脚与所述FPGA模块的JC部分引脚进行连接,并将所述网关芯片的reset引脚与所述FPGA模块的GPIO引脚连接;
在软件部分,在所述SOC模块上,对所述SPI接口进行初始化,并通过配置使得所述FPGA模块的GPIO引脚向所述网关芯片的reset引脚输出reset信号,再对所述SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
在所述SOC模块上将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的硬件时钟,并将获取到的硬件时间戳换算成秒级单位。
2.根据权利要求1所述的网关开发方法,其特征在于,所述开发板采用ZYNQ-7000系列,所述网关芯片采用型号为SX1302芯片。
3.根据权利要求2所述的网关开发方法,其特征在于,在所述FPGA模块上采用GPIO引脚中的EMIO引脚与所述网关芯片的reset引脚连接。
4.根据权利要求3所述的网关开发方法,其特征在于,在对所述SPI接口进行初始化时,对所述开发板与网关芯片之间传输数据时,将每个字节之间的间隔延时设置为100ns。
5.根据权利要求4所述的网关开发方法,其特征在于,在对所述SPI接口进行初始化时,将所述SPI接口的通信模式设置为主机模式,pol=0,pha=0,强制片选以及时钟分频为64分频。
6.根据权利要求5所述的网关开发方法,其特征在于,在对所述EMIO引脚输出的信号进行设置时,在重启的时候使其输出“0”持续100us,再输出“1”,持续10us,最后再将EMIO引脚的值持续输出为“0”,以使所述EMIO引脚向所述网关芯片输出reset信号。
7.开发平台,其特征在于,开发平台包括开发板以及网关芯片,以使所述开发板在不用安装任何系统下对网关芯片进行驱动,所述开发板包括FPGA模块以及SOC模块,所述网关芯片安装在一底座上并通过SPI接口连接到所述FPGA模块上与所述开发板进行通信;
所述网关芯片的传输引脚通过所述SPI接口的SS、MISO、MOSI以及SCLK引脚与所述FPGA模块的JC部分引脚进行连接,并将所述网关芯片的reset引脚与所述FPGA模块的GPIO引脚连接;
所述SOC模块用于对所述SPI接口进行初始化,并通过配置使得所述FPGA模块的GPIO引脚向所述网关芯片的reset引脚输出reset信号,再对所述SPI接口的读写代码进行设置,并将设置好的读写代码替换源代码中的SPI读写部分;
所述SOC模块用于将源代码中使用数学方法重写pow(),ceil()和log10()函数,并将源代码中的gettimeofday()用所述开发板中的XTime_GetTime()进行重写以调用所述开发板中的时钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111543514.8A CN114218155B (zh) | 2021-12-16 | 2021-12-16 | 用于天基物联网的网关开发方法及开发平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111543514.8A CN114218155B (zh) | 2021-12-16 | 2021-12-16 | 用于天基物联网的网关开发方法及开发平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114218155A CN114218155A (zh) | 2022-03-22 |
CN114218155B true CN114218155B (zh) | 2023-09-29 |
Family
ID=80702953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111543514.8A Active CN114218155B (zh) | 2021-12-16 | 2021-12-16 | 用于天基物联网的网关开发方法及开发平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218155B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116935939A (zh) * | 2023-09-15 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种基于开发板的存储器验证方法、装置及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200081A (zh) * | 2013-03-26 | 2013-07-10 | 江南大学 | 一种面向异构网络环境的物联网网关开发平台 |
CN103488607A (zh) * | 2013-09-07 | 2014-01-01 | 安徽华东光电技术研究所 | 嵌入式linux平台下SOC处理器与FPGA芯片的通信系统、方法 |
CN107947828A (zh) * | 2017-11-21 | 2018-04-20 | 湖南瓴星空间信息技术有限公司 | 一种星载物联网网关及物联网通信方法 |
CN109743396A (zh) * | 2019-01-10 | 2019-05-10 | 中国人民解放军国防科技大学 | Sca软件无线电平台的组件加载方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10365947B2 (en) * | 2014-07-28 | 2019-07-30 | Hemett Packard Enterprise Development Lp | Multi-core processor including a master core performing tasks involving operating system kernel-related features on behalf of slave cores |
-
2021
- 2021-12-16 CN CN202111543514.8A patent/CN114218155B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200081A (zh) * | 2013-03-26 | 2013-07-10 | 江南大学 | 一种面向异构网络环境的物联网网关开发平台 |
CN103488607A (zh) * | 2013-09-07 | 2014-01-01 | 安徽华东光电技术研究所 | 嵌入式linux平台下SOC处理器与FPGA芯片的通信系统、方法 |
CN107947828A (zh) * | 2017-11-21 | 2018-04-20 | 湖南瓴星空间信息技术有限公司 | 一种星载物联网网关及物联网通信方法 |
CN109743396A (zh) * | 2019-01-10 | 2019-05-10 | 中国人民解放军国防科技大学 | Sca软件无线电平台的组件加载方法 |
Non-Patent Citations (1)
Title |
---|
天地一体化信息网络天基物联网应用体系研究;曾业;周永将;;现代导航(第05期);372-376 * |
Also Published As
Publication number | Publication date |
---|---|
CN114218155A (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114218155B (zh) | 用于天基物联网的网关开发方法及开发平台 | |
US7484188B2 (en) | On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits | |
US20090119659A1 (en) | Method of Computer Based Data Card Software Downloading and Updating | |
CN103077100A (zh) | 非易失性数据备份和恢复方法 | |
US8898420B2 (en) | Non-volatile storage device and a memory controller controlling parity tables of recording regions of the non-volatile storage device | |
CN112231005A (zh) | 一种基于uboot管理fpga版本的方法 | |
WO2018014684A1 (zh) | 一种测试方法和装置、设备、存储介质 | |
US20230315213A1 (en) | Program download method for intelligent terminal and intelligent terminal | |
CN107861775A (zh) | 一种ssd启动控制设备以及方法 | |
CN114994499A (zh) | 一种芯片测试方法及装置 | |
CN101206613A (zh) | 高速基本输入/输出系统调试卡 | |
CN111857867B (zh) | 一种逻辑文件的加载方法、装置和网络设备 | |
CN113127283B (zh) | 芯片修复系统、方法、装置、计算机设备和存储介质 | |
CN211878599U (zh) | 应用于现场可编辑门阵列fpga的仿真验证系统 | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 | |
US7636798B2 (en) | Methods and systems for integrating unique information in SAS interface components | |
CN111698701A (zh) | 无线通讯模块自动杂散测试方法、系统、设备及介质 | |
CN111007989A (zh) | 一种弹载flash芯片坏块信息存储和使用方法 | |
CN116820867B (zh) | 一种芯片调试方法、装置及芯片 | |
CN214253202U (zh) | 一种基于usb接口的fpga程序加载系统 | |
CN116504292B (zh) | nor flash的读取方法、装置、存储芯片及设备 | |
CN113312091B (zh) | 参数处理方法、装置和系统 | |
CN102736976A (zh) | 调试系统及其调试方法 | |
CN113094278B (zh) | 移动终端的调试方法、装置、设备和计算机可读存储介质 | |
CN111641419A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |