[发明专利]基于多块USB接口芯片提高与上位机通讯速率的方法在审

专利信息
申请号: 201910369736.9 申请日: 2019-05-06
公开(公告)号: CN110147338A 公开(公告)日: 2019-08-20
发明(设计)人: 张治国;赖小松;王艺璇;施博文 申请(专利权)人: 电子科技大学
主分类号: G06F13/38 分类号: G06F13/38
代理公司: 成都立信专利事务所有限公司 51100 代理人: 冯忠亮
地址: 610054 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 上位机 上位机通讯 多块 数据输入模块 匹配问题 多线程 下位机 并发 数据处理程序 并口数据 并行传输 程序解析 输入模块 传输 并口
【权利要求书】:

1.基于多块USB接口芯片提高与上位机通讯速率的方法,其特征在于,包括并口数据输入模块、多块USB接口芯片、上位机多线程数据处理程序,FPGA控制模块,其中并口数据输入模块采取16线或8线并口作为输入接口,多块USB接口芯片传输速率总和大于并口数据输入模块的传输速率,FPGA控制模块通过并口连接于并口数据输入模块,通过SPI通讯协议连接于各块USB接口芯片,各块USB接口芯片通过USB协议连接于上位机,FPGA控制模块共有(N+1)个并行子程序,FPGA控制模块内部创建N个缓冲区用于保存并口数据输入模块里面的数据,每个缓冲区的大小为64个字节,FPGA控制模块第一个并行子程序为读取子程序,其功能是将并口数据输入模块里面的数据按字节大小依次写入N个缓冲区,每个缓冲区对应一块USB接口芯片,然后其余N个并行子程序为传输子程序,其功能是通过SPI协议驱动各个USB接口芯片将每块缓冲区的数据传输至上位机,在上位机创建N+1个线程安全队列:queue,queue1……queueN,上位机创建N+1个子线程,其中前N个子线程用于接收N块USB接口芯片传上来的数据,并将数据依次存入queue1到queueN线程安全队列里,第N+1个子线程将queue1,queue2……queueN线程安全队列的数据依次取出放入queue线程安全队列里,合成并口数据输入模块的原始数据,即把queue1里面的数据弹出一帧数据放入queue线程安全队列,然后把queue2里面的数据弹出一帧数据放入queue线程安全队列,直到把第N个queueN线程安全队列里面的数据弹出一帧数据放入queue线程安全队列,然后重复以上步骤,queue线程安全队列里面的数据便是原始数据信号,供数字信号处理。

2.根据权利要求1所述的基于多块USB接口芯片提高与上位机通讯速率的方法,其特征在于, FPGA的工作流程如下:

(a)FPGA创建N个数据帧为64个字节的缓冲区:buffer1、buffer2……bufferN,N为缓冲区的编号,

(b)创建N个与缓冲区相对应的状态变量标志Full1、Full2……FullN,其中FullN为0代表缓冲区N未满,FullN为1代表缓冲区N为满,

(c)创建代表缓冲区对应USB接口芯片状态变量Flag,Flag取值为1到N,flag=k代表往第k块USB接口芯片写入并口数据输入模块的数据,

(d)FPGA读取并行子程序用于依次将并口数据输入模块的数据写入FPGA的N块缓冲区,其逻辑流程分别为如下所示:

S1:初始化buffer1=0……buffer2=0,Flag=1,Full1……FullN=0,

S2:读取Flag值,

S3:FPGA检测Flag是否大于零,若是执行S4,否则执行S7,

S4:FPGA检测Flag是否等于1,若是执行S5,否则执行S6 ,

S5:FPGA将FullN置零,执行S7,

S6:FPGA将Full[Flag-1]置零,

S7:FPGA读取并口输入数据写入Flag值对应的缓冲区Buffer[Flag],

S8:FPGA将Full[Flag]置1,

S9:FPGA将Flag标志值加1,

S10:FPGA检测Flag是否等于N+1,若是执行S11,否者执行S2,

S11: FPGA将Flag置1,执行S2,

(e)其余N个FPGA传输子程序逻辑流程一致,只是N的取值不同,其逻辑流程为:

S1:初始化N块USB接口芯片,

S2:读取N块USB接口芯片的FullN标志,

S3:FPGA检测FullN标志是否为1,若是执行S4,否则执行S2,

S4:驱动第N块USB接口芯片把bufferN的数据传入上位机,执行S2,

上位机的程序流程为:

(a)通过上位机建立的多线程并发数据处理程序:

包括主线程,用于初始化各外设,界面配置,以及开启N个数据接收线程来处理并口数据输入模块数据的接收,包括buffer1数据接收线程……bufferN数据接收线程,以及N个用于保存FPGA控制模块数据的线程安全队列queue1……queueN,数据解析线程,以及用以存放合成数据的线程安全队列缓冲区queue,

(b)主线程的逻辑流程为:

S1:初始化界面配置,初始化USB接口芯片,

S2:开启buffer1……bufferN数据接收线程,

S3:开启数据解析线程,

(c)N个数据接收线程的逻辑流程是一致的,只是对应N值不同,其逻辑流程为:

S1:调用USB接口芯片官方提供的DLL函数库里面的读取函数,

S2:判断是否成功读取bufferN中的数据,若读取失败表示暂时无数据传送到上位机,执行S1,否则执行S3,

S3: 将该帧数据写入queueN,

S4:是否结束线程,若是结束,否则执行S1,

(d)数据解析线程的逻辑流程为:

S1:读取queue1……queueN中各帧的大小,

S2: 检测queue1……queueN的数据大小是否都大于100帧,若否执行S1,若是执行S3,

S3: 依次从queue1……queueN中取出100帧数据,放入queue,

4: 是否结束线程,若是直接结束,否则执行步骤S1。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910369736.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top