最新文�? vim-如何修改linux下的vim复制行数限制 vim中如何快速注释当前行 verilog_task使用-使用task编写AHB总线的寄存器读写testbench AHB总线转通用寄存器配置总线的实现(包含寄存器访问模块RTL) 数字电路设计之常用仲裁模块的Verilog实现
FPGA实现GTY光口视频转USB3.0传输,基于FT601+Aurora_8b_10b编解码架构,提供2套工程源码和技术支持 历史版本:
上次修改时间:
OV5640摄像头+动态彩条\n\n输入Sensor是本工程的输入设备,其一为OV5640摄像头,此外本博主在工程中还设计了动态彩条模块,彩条由FPGA内部逻辑产生,且是动态移动的,完全可模拟Sensor,输入源选择Sensor还是彩条,通过Sensor模块的顶层参数配置,默认选择Sensor输入;Sensor模块如下:\n\n \n\nSENSOR_TYPE=0;则输出OV5640摄像头采集的视频;\n\nSENSOR_TYPE=1;则输出动态彩条的视频;\n\nOV5640摄像头需要i2c初始化配置,本设计配置为1280x720@30Hz分辨率,本设计提供纯verilog代码实现的i2c模块实现配置功能;此外,OV5640摄像头还需要图像采集模块实现两个时钟输出一个RGB565的视频转换为一个时钟输出一个RGB888视频,本设计提供纯verilog代码实现的图像采集模块实现配置功能;动态彩条则由FPGA内部逻辑实现,由纯verilog代码编写;将OV5640摄像头配置采集和动态彩条进行代码封装,形成helai_OVsensor.v的顶层模块,整个模块代码架构如下:\n\n \n\n### 输入视频之-->ADV7611芯片解码HDMI+动态彩条\n\n输入视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用板载的HDMI视频输入接口;如果你的手里没有HDMI输入口,则可使用FPGA内部逻辑生成的动态彩条模拟摄像头视频;视频源的选择通过代码顶层的parameter参数配置,默认使用HDMI视频输入接口视频源;HDMI解码方案为ADV7611芯片,使用纯verilog实现的i2c模块对ADV7611芯片做初始化配置,输出分辨率配置为1920x1080@60Hz;模块顶层接口如下:\n\n \n\nparameter SENSOR_TYPE = 0;输出ADV7611解码的HDMI视频\n\nparameter SENSOR_TYPE = 1;输出动态彩条的视频 \n\nADV7611芯片配置采集代码如下:\n\n \n\n### 视频数据组包\n\n由于视频需要在GTY 中通过aurora 8b/10b协议收发,所以数据必须进行组包,以适应aurora 8b/10b协议标准;视频数据组包模块代码位置如下:\n\n \n\n首先,我们将16bit的视频存入FIFO中,存满一行时就从FIFO读出送入GTY发送;在此之前,需要对一帧视频进行编号,也叫作指令,GTY组包时根据固定的指令进行数据发送,GTY解包时根据固定的指令恢复视频的场同步信号和视频有效信号;当一帧视频的场同步信号上升沿到来时,发送一帧视频开始指令 0,当一帧视频的场同步信号下降沿到来时,发送一帧视频开始指令 1,视频消隐期间发送无效数据 0 和无效数据 1,当视频有效信号到来时将每一行视频进行编号,先发送一行视频开始指令,在发送当前的视频行号,当一行视频发送完成后再发送一行视频结束指令,一帧视频发送完成后,先发送一帧视频结束指令 0,再发送一帧视频结束指令 1;至此,一帧视频则发送完成,这个模块不太好理解,所以我在代码里进行了详细的中文注释,需要注意的是,为了防止中文注释的乱序显示,请用notepad++编辑器打开代码;指令定义如下:\n\n \n\n注意!!!指令可以任意更改,但最低字节必须为bc;\n\n### 基于GTY高速接口的视频传输架构\n\n本设计使用GTY高速接口传输视频,使用8b/10b编解码协议,搭建基于GTY高速接口的视频传输架构,包括视频数据组包模块、GTY IP核配置调用、接收数据对齐模块、视频数据解包模块等部分,总体代码架构如下:\n\n \n\n基于GTY高速接口的数据回环传输架构顶层接口核参数配置如下:\n\n \n\n本设计共例化了2路GTY,所以2路GTY的收发回环方式也做了灵活的参数化配置,如果你只需要1路GT,则可删除另一路,如果你想例化更多路GT,则可根据上述设计方法扩展,十分方便;\n\n### GTY IP 简介\n\n关于GTY介绍最详细的肯定是Xilinx官方的《ug578-ultrascale-gty-transceivers》,我们以此来解读:《ug578-ultrascale-gty-transceivers》的PDF文档我已放在了资料包里;我用到的开发板FPGA型号为Kirtex7-UltraScale+-xcku5p-ffvb676-1-i;带有16路GTY资源,其中2路连接到了板载2个SFP光口,每通道的收发速度为 500 Mb/s 到 32.75 Gb/s 之间。GTY收发器支持不同的串行传输接口或协议,比如8b/10b编解码、PCIE /2.0/3.0 接口、万兆网 XUAI 接口、OC-48、串行 RapidIO 接口、 SATA(Serial ATA) 接口、数字分量串行接口(SDI)等等;\n\n### GTY 基本结构\n\nGTY 基本结构如下:\n\n \n\nXilinx 以 Quad 来对串行高速收发器进行分组,四个串行高速收发器和一个 COMMOM(QPLL)组成一个 Quad,每一个串行高速收发器称为一个 Channel(通道),下图为GTY收发器在Kintex7 UltraScale+ FPGA 芯片中的示意图:《ug578-ultrascale-gty-transceivers》第17页;\n\n在 Ultrascale+架构系列的 FPGA 中,GTY 高速收发器通常使用 Quad 来划分,一个 Quad 由四个GTHE4_CHANNEL 原语和一个 GTHE4_COMMON 原语组成。每个GTHE4_COMMON 中包含两个 LC-tank pll(QPLL0 和 QPLL1)。只有在应用程序中使用 QPLL 时,才需要实例化 GTHE4_COMMON。每个 GTHE4_CHANNEL 由一个 channel PLL(CPLL)、一个 transmitter,和一个 receiver 组成。一个参考时钟可以直接连接到一个 GTHE4_CHANNEL 原语,而不需要实例化 GTHE4_COMMON;\n\nGTY 收发器的发送端和接收端功能是相互独立,都是由 Physical Media Attachment(物理媒介适配层 PMA)和Physical Coding Sublayer(物理编码子层 PCS)组成。PMA 内部集成了串并转换(PISO)、预加重、接收均衡、时钟发生器和时钟恢复等;PCS 内部集成了 8b/10b 编解码、弹性缓冲区、通道绑定和时钟修正等,每个 GTHE4_CHANNEL源语的逻辑电路见《ug578-ultrascale-gty-transceivers》第17页;\n\n### GTY 发送和接收处理流程\n\n首先用户逻辑数据经过 8B/10B 编码后,进入一个发送缓存区(Phase Adjust FIFO),该缓冲区主要是 PMA 子层和 PCS 子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的问题,最后经过高速 Serdes 进行并串转换(PISO),有必要的话,可以进行预加重(TX Pre-emphasis)、后加重。值得一提的是,如果在 PCB 设计时不慎将 TXP 和 TXN 差分引脚交叉连接,则可以通过极性控制(Polarity)来弥补这个设计错误。接收端和发送端过程相反,相似点较多,这里就不赘述了,需要注意的是 RX 接收端的弹性缓冲区,其具有时钟纠正和通道绑定功能。这里的每一个功能点都可以写一篇论文甚至是一本书,所以这里只需要知道个概念即可,在具体的项目中回具体用到,还是那句话:对于初次使用或者想快速使用者而言,更多的精力应该关注IP核的调用和使用。\n\n### GTY 的参考时钟\n\nUltraScale+ 器件中的 GTY 收发器提供了不同的参考时钟输入选项。参考时钟选择架构支持 QPLL0、QLPLL1 和CPLL。从架构上讲,每个 Quad 包含四个 GTHE4_CHANNEL 原语,一个 GTHE4_COMMON 原语,两个专用的外部参考时钟引脚对,以及专用的参考时钟路由。如果使用到了高性能 QPLL,则必须实例化 GTHE4_COMMON,如下面 GTHE4_COMMON 时钟多路复用器结构的详细视图所示,(《ug578-ultrascale-gty-transceivers》第31页)在一个 Quad 中有 6 个参考时钟引脚对,两个本地参考时钟引脚对:GTREFCLK0或GTREFCLK1,两个参考时钟引脚对来自上面的两个Quads:GTSOUTHREFCLK0或 GTSOUTHREFCLK1,两个参考时钟引脚对来自下面的两个 Quads: GTNORTHREFCLK0 或GTNORTHREFCLK1。\n\n \n\n### GTY 发送接口\n\n《ug578-ultrascale-gty-transceivers》的第`101到182页`详细介绍了发送处理流程,其中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计思想,留给用户可操作的接口并不多,基于此思路,我们重点讲讲GTY 例化时留给用户的发送部分需要用到的接口;用户只需要关心发送接口的时钟和数据即可,以例化2路GTY为例,经本博主优化,用户只需要关心如下GTY发送接口即可快速使用GTY;\n\n \n\n### GTY 接收接口\n\n《ug578-ultrascale-gty-transceivers》的第`183到321页`详细介绍了发送处理流程,其中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计思想,留给用户可操作的接口并不多,基于此思路,我们重点讲讲GTY例化时留给用户的发送部分需要用到的接口;用户只需要关心接收接口的时钟和数据即可,以例化2路GTY为例,经本博主优化,用户只需要关心如下GTY接收接口即可快速使用GTY;\n\n \n\n### GTY IP核调用和使用\n\nGTY IP核配置调用在工程种位置如下:\n\n \n\nGTY IP核调用和使用很简单,通过vivado的UI界面即可完成,如下:\n\n \n\nGTY基本配置如下:板载差分晶振125M,线速率配置为5G,协议类型被指为aurora 8b/10b;如下:\n\n \n\n相较于Xilinx 7系列FPGA的GT高速接口,UltraScale系列FPGA在物理约束页也有较大改进,已不需要用户再去查看官方数据手册找到原理图所在的FPGA内部位置,而是直接给出了详细PIN脚,只要在这里选对了位置,GT高速接口的时钟和数据引脚在XDC中已不再需要约束,如下:\n\n \n\n此外,有别于Xilinx 7系列FPGA的GT高速接口;UltraScale+系列FPGA的GT高速接口在控制引脚方面更加细节,用户可以选择具体哪些控制引脚被使用,当然,这需要开发人员对SERDES技术有较高的认知,在此基础上,可使我们的设计更加便捷,对于8B/10编解码协议而言,开发者可能只需关注并使用极性反转控制,如果需要动态变速,可能还需要使用DRP接口,其余功能性接口其实不必太过关注;如下:\n\n \n\n### 接收数据对齐模块\n\n由于GT资源的aurora 8b/10b数据收发天然有着数据错位的情况,所以需要对接受到的解码数据进行数据对齐处理,数据对齐模块代码位置如下:\n\n \n\n我定义的 K 码控制字符格式为:XX_XX_XX_BC,所以用一个rx_ctrl 指示数据是否为 K 码 的 COM 符号;\n\nrx_ctrl = 4\'b0000 表示 4 字节的数据没有 COM 码;\n\nrx_ctrl = 4\'b0001 表示 4 字节的数据中[ 7: 0] 为 COM 码;\n\nrx_ctrl = 4\'b0010 表示 4 字节的数据中[15: 8] 为 COM 码;\n\nrx_ctrl = 4\'b0100 表示 4 字节的数据中[23:16] 为 COM 码;\n\nrx_ctrl = 4\'b1000 表示 4 字节的数据中[31:24] 为 COM 码;\n\n基于此,当接收到有K码时就对数据进行对齐处理,也就是将数据打一拍,和新进来的数据进行错位组合,这是FPGA的基础操作,这里不再赘述;数据对齐模块顶层接口如下:\n\n \n\n### 视频数据解包\n\n数据解包是数据组包的逆过程,代码位置如下:\n\n \n\nGTY解包时根据固定的指令恢复视频的场同步信号和视频有效信号;这些信号是作为后面图像缓存的重要信号;由于数据解包是数据组包的逆过程,所以这里不再过多赘述,视频数据解包模块顶层接口如下:\n\n \n\n### FDMA图像缓存\n\nFDMA图像缓存架构实现的功能是将输入视频缓存到板载DDR中再读出送后续模块,目的是实现视频同步输出,实现输入视频到输出视频的跨时钟域问题,更好的呈现显示效果;由于调用了Xilinx官方的MIG作为DDR控制器,所以FDMA图像缓存架构就是实现用户数据到MIG的桥接作用;架构如下:\n\n \n\nFDMA图像缓存架构由FDMA控制器+FDMA组成;FDMA实际上就是一个AXI4-FULL总线主设备,与MIG对接,MIG配置为AXI4-FULL接口;FDMA控制器实际上就是一个视频读写逻辑,以写视频为例,假设一帧图像的大小为M×N,其中M代表图像宽度,N代表图像高度;FDMA控制器每次写入一行视频数据,即每次向DDR中写入M个像素,写N次即可完成1帧图像的缓存,读视频与之一样;同时调用两个FIFO实现输入输出视频的跨时钟域处理,使得用户可以AXI4内部代码,以简单地像使用FIFO那样操作AXI总线,从而达到读写DDR的目的,进而实现视频缓存;本设计图像缓存方式为3帧缓存;图像缓存模块代码架构如下:\n\n \n\n基于FDMA的图像缓存架构在Block Design设计中如下:\n\n \n\n### FT601功能和硬件电路\n\nFT600/601Q 的技术参数如下:\n\nFT600&601Q 芯片是 FT 最新推出的 USB3.0 to FIFO interface IC,实现 USB3.0 与 16/32bit 并行 IO 接口之间的数据传输;整个 USB 通信协议全部由芯片驱动自行完成,开发者无须考虑 USB 底层固件的编程。\n\n-->兼容支持 USB3.0(5Gbps),向下兼容 USB2.0(480Mbps and 12Mbps)传输;\n\n-->高达 8 个可配置 Endpoint. >>支持 2 种 FIFO 传输协议,最大传输可达 400MB/s;\n\n-->芯片内部有 16K 字节的缓冲区,可以进行数据的大吞吐量操作;\n\n-->支持远程唤醒功能;\n\n-->芯片支持多种 IO 电压:1.8V,2.5V.3.3V;\n\n-->通过 16bit D[O:15]或 32bit D[0:31]并行数据线和读写状态/控制线 RXF、TXE、RD、WR,加上时钟 CLK,使能 OE 信号线就可实现与 CPU/FPGA 的数据交换;\n\n-->该芯片内部集成 1.0V LDO,可提供给芯片核心部分使用;\n\n-->工业级芯片,工作温度范围-40 to 85℃;\n\nFT601芯片框架如下:\n\n \n\nFT601外围电路设计参考如下:\n\n \n\nFT601支持的多种传输模式,其中 245 Synchronous FIFO 模式和 Multi-Channel FIFO 模式是最常用的模式,本工程配置为 245 Synchronous FIFO 模式;传输模式通过GPIO引脚高低电平配置,配置真值表如下:\n\n \n\n### FT601读时序解读\n\nFT601的245 Synchronous FIFO 模式读时序如下:\n\n \n\nRXF_N为读数据状态信号,RXF_N为低电平期间FPGA可以读取FT601数据;\n\n检测到RXF_N低电平后,拉低OE_N和RD_N,然后开始读数据;\n\n检测到RXF_N高电平后,拉高OE_N和RD_N,然后退出读数据状态;\n\n### FT601写时序解读\n\nFT601的245 Synchronous FIFO 模式写时序如下:\n\n \n\nTXF_N为读数据状态信号,RXF_N为低电平期间FPGA向FT601写入数据;\n\n检测到TXF_N低电平后,拉低WR_N,然后开始向FT601写入数据;\n\n检测到TXF_N高电平后,拉高WR_N,然后退出写数据状态;\n\n### FPGA的FT601驱动\n\n基于以上对FT601的解读,就可以用verilog实现对FT601的读写操作了,工程中FT601驱动代码如下:\n\n \n\n### USB3.0视频接收显示QT上位机\n\n仅提供Win10版本的QT上位机,位置如下:\n\n \n\n以Win10版本为例,源码位置如下:\n\n \n\n以Win10版本下,可以点击已经编译好的QT软件直接运行,位置如下:\n\n \n\nQT上位机运行效果如下:\n\n \n\n### 工程源码架构\n\n提供3套工程源码,以工程源码1为例,工程Block Design设计如下:\n\n \n\n提供3套工程源码,以工程源码1为例,综合后的工程源码架构如下:\n\n \n\n## 4、vivado工程源码1详解-->KU5P,OV5640输入版本\n\n开发板FPGA型号:Xilinx--Kintex UltraScale+--xcku5p-ffvb676-1-i;\n\nFPGA开发环境:Vivado2019.1;\n\n输入:OV5640摄像头或动态彩条,分辨率1280x720@30Hz;\n\n输出:USB3.0,分辨率1280x720@60Hz;\n\nUSB3.0物理层方案:FT601芯片方案;\n\n回环光口类型:SFP光口;\n\n高速接口类型:GTY,线速率5Gbps;\n\n高速接口编解码协议:8b/10b编解码;\n\n图像缓存方案:FDMA图像缓存+DDR4颗粒+3帧缓存;\n\n实现功能:FPGA实现GTY光口视频转USB3.0传输;\n\n工程作用:此工程目的是让读者掌握FPGA实现GTY光口视频转USB3.0传输的设计能力,以便能够移植和设计自己的项目;\n\n工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;\n\n工程的资源消耗和功耗如下:\n\n \n\n## 5、vivado工程源码1详解-->KU5P,HDMI输入版本\n\n开发板FPGA型号:Xilinx--Kintex UltraScale+--xcku5p-ffvb676-1-i;\n\nFPGA开发环境:Vivado2019.1;\n\n输入:HDMI或者FPGA内部动态彩条,ADV7611解码方案,分辨率1920x1080@60Hz,笔记本电脑模拟输入源;\n\n输出:USB3.0,分辨率1920x1080@60Hz;\n\nUSB3.0物理层方案:FT601芯片方案;\n\n回环光口类型:SFP光口;\n\n高速接口类型:GTY,线速率5Gbps;\n\n高速接口编解码协议:8b/10b编解码;\n\n图像缓存方案:FDMA图像缓存+DDR4颗粒+3帧缓存;\n\n实现功能:FPGA实现GTY光口视频转USB3.0传输;\n\n工程作用:此工程目的是让读者掌握FPGA实现GTY光口视频转USB3.0传输的设计能力,以便能够移植和设计自己的项目;\n\n工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;\n\n工程的资源消耗和功耗如下:\n\n \n\n## 6、工程移植说明\n\n### vivado版本不一致处理\n\n1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;\n\n2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件-->另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;\n\n \n\n3:如果你的vivado版本高于本工程vivado版本,解决如下:\n\n \n\n打开工程后会发现IP都被锁住了,如下:\n\n \n\n此时需要升级IP,操作如下:\n\n \n\n \n\n### FPGA型号不一致处理\n\n如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:\n\n \n\n \n\n \n\n更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;\n\n### 其他注意事项\n\n1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;\n\n2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;\n\n3:纯FPGA移植到Zynq需要在工程中添加zynq软核;\n\n## 7、上板调试验证\n\n### 准备工作\n\n需要准备的器材如下:\n\nOV5640摄像头或者笔记本电脑,没有则请使用FPGA内部生成的彩条;\n\nFT601转接板(FPGA开发板板载FT601除外);\n\nUSB3.0数据线;\n\nFPGA开发板,没有开发板可以找本博提供;\n\nSFP光模块和光纤;\n\n我的开发板了连接如下:\n\n \n\n### UltraScale GTH光口视频转USB3.0传输效果演示\n\nUltraScale GTH光口视频转USB3.0传输效果演示如下:\n\n\n\n00:30\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## 8、福利:工程代码的获取\n\n代码太大,无法邮箱发送,以某度网盘链接方式发送,\n\n资料获取方式:私\n\n网盘资料如下:\n\n \n\n此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:\n\n \n\n\n\n
\n\n[https://zhuanlan.zhihu.com/p/25969542297](https://zhuanlan.zhihu.com/p/25969542297)
\n -->
0条评�?
全部评论

关于博主

an actually real engineer

通信工程专业毕业,7年开发经验

技术栈:

精通c/c++

精通golang

熟悉常见的脚本,js,lua,python,php

熟悉电路基础,嵌入式,单片机

耕耘领域:

服务端开发

嵌入式开发

git

>

gin接口代码CURD生成工具

sql ddl to struct and markdown,将sql表自动化生成代码内对应的结构体和markdown表格格式,节省宝贵的时间。

输入ddl:
输出代码:

qt .ui文件转css文件

duilib xml 自动生成绑定控件代码

协议调试器

基于lua虚拟机的的协议调试器软件 支持的协议有:

串口

tcp客户端/服务端

udp 组播/udp节点

tcp websocket 客户端/服务端

软件界面

使用例子: 通过脚本来获得接收到的数据并写入文件和展示在界面上

下载地址和源码

duilib版本源码 qt qml版本源码 二进制包

webrtc easy demo

webrtc c++ native 库 demo 实现功能:

基于QT

webrtc摄像头/桌面捕获功能

opengl渲染/多播放窗格管理

janus meeting room

下载地址和源码

源码 二进制包

wifi,蓝牙 - 无线开关

实现功能:

通过wifi/蓝牙实现远程开关电器或者其他电子设备

电路原理图:

实物图:

深度学习验证工具

vtk+pcl 点云编辑工具

实现功能:

1. 点云文件加载显示(.pcd obj stl)

2. 点云重建

3. 点云三角化

4. 点云缩放

下载地址:

源码 二进制包

虚拟示波器

硬件实物图:

实现原理

基本性能

采集频率: 取决于外部adc模块和ebaz4205矿板的以太网接口速率,最高可以达到100M/8 约为12.5MPS

上位机实现功能: 采集,显示波形,存储wave文件。

参数可运行时配置

上位机:

显示缓冲区大小可调

刷新率可调节

触发显示刷新可调节

进程守护工具

基本功能:

1. 守护进程,被守护程序崩溃后自动重启。

2. 进程输出获取,显示在编辑框中。

二进制包

openblt 烧录工具

基本功能:

1. 加载openblt 文件,下载到具有openblt bootloader 运行的单片机中。

二进制包

opencv 功能验证工具(开源项目二次开发)

基本功能:

1. 插件化图像处理流程,支持自定义图像处理流程。 2. 完善的日志和权限管理

二进制包

又一个modbus调试工具

最近混迹物联网企业,发现目前缺少一个简易可用的modbus调试工具,本软件旨在为开发者提供一个简单modbus测试工具。
主打一个代码简单易修改。
特点:

1. 基于QT5

2. 基于libmodbus

3. 三方库完全跨平台,linux/windows。

二进制包

屏幕录制工具

1. 基于QT5

2. 基于ffmpeg

3. 支持自定义录屏

源代码

开源plutosdr 板卡

1. 完全开源

2. 提高固件定制服务

3. 硬件售价450 手焊产量有线

测试数据

内部DDS回环测试

接收测试

外部发送500MHZ FM波形

硬件原理图

matlab测试

2TRX版本

大部分plutosdr应用场景都是讲plutosdr板卡作为射频收发器来使用。
实际上plutosdr板卡本身运行linux 操作系统。是具有一定脱机运算的能力。 对于一些微型频谱检测,简单射频信号收发等应用完全可以将应用层直接实现在板卡上
相较于通过网卡或者USB口传输具有更稳定,带宽更高等优点。
本开源板卡由于了SD卡启动,较原版pluto支持了自定义启动应用的功能。
提供了应用层开发SDK(编译器,buildroot文件系统)。
通过usb连接电脑,经过RNDIS驱动可以近似为通过网卡连接
(支持固件的开发定制)。

二次开发例子

``` all:
arm-linux-gnueabihf-gcc -mfloat-abi=hard --sysroot=/root/v0.32_2trx/buildroot/output/staging -std=gnu99 -g -o pluto_stream ad9361-iiostream.c -lpthread -liio -lm -Wall -Wextra -lrt
clean:
rm pluto_stream

bsdiff算法补丁生成器

1. 官方bsdiff算法例子自带bzip压缩方式

2. 本例子没有压缩,直接生成补丁文件

3. 图形化界面基于DUILIB

二进制文件

版面分析即分析出图片内的具体文件元素,如文档标题,文档内容,文档页码等,本工具基于cnstd模型

Base64 Image

. 闽ICP备19002644号