CN107302522B - 基于USB的SpaceWire网络即插即用基础协议 - Google Patents
基于USB的SpaceWire网络即插即用基础协议 Download PDFInfo
- Publication number
- CN107302522B CN107302522B CN201710382020.3A CN201710382020A CN107302522B CN 107302522 B CN107302522 B CN 107302522B CN 201710382020 A CN201710382020 A CN 201710382020A CN 107302522 B CN107302522 B CN 107302522B
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- usb
- control device
- request
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- 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
Abstract
本发明公开了一种基于USB的SpaceWire网络即插即用基础协议,属于数据传输技术领域。所述的基础协议包括主控设备和PC、SpaceWire网络,主控设备同时与PC和SpaceWire网络通讯;所述的主控设备由FPGA、SpaceWire网络接口和USB芯片组成;使用USB的中断传输和批量传输在PC和FPGA之间交换指令和数据。本发明采用USB作为底层,保证可靠、快速以及扩展性。同时USB是所有PC和大部分中高端芯片都会兼容的协议,因此可以应用于许多设备。本发明针对具体的应用场景细分了指令和数据,并且由于它们使用不同的底层USB传输管道,指令和数据不会互相干扰,同时保证指令的优先性。
Description
技术领域
本发明属于数据传输技术领域,涉及一种基于USB的SpaceWire网络即插即用基础协议,使得PC可以通过本发明的基础协议控制主控设备和SpaceWire网络,并和SpaceWire网络中的设备通讯。
背景技术
SpaceWire是由ESA(欧洲空间局)提出的一种在航天航空工程中应用的星载传输总线,它的特点包括高速、低功耗、低延迟、全双工、点对点串行连接等方面,而且因为虫洞交换机制间接节省了成本,非常适合在太空环境中使用。即插即用是计算机术语,广义上是指设备在硬件连接后不需要用户干涉,就可以在很短时间内自动配置好,供用户使用。而USB是一种应用极为广泛的即插即用底层传输协议。
发明内容
为解决SpaceWire网络和PC之间的通讯需求,并实现即插即用功能,本发明将SpaceWire和USB结合起来使得PC可以通过一个主控设备控制SpaceWire网络,并且和网络中的节点通讯,使PC和主控设备通讯配置自动化。
本发明提供的基于USB的SpaceWire网络即插即用基础协议包括主控设备和PC、SpaceWire网络。其中主控设备由FPGA、SpaceWire网络接口和USB芯片组成。
USB是应用最广泛的即插即用协议。该协议保证了数据层的快速可靠传输,并提供了几种可以同时工作的传输模式。本发明使用USB的中断传输和批量传输在PC和FPGA之间交换指令和数据。
本发明与现有技术相比有如下优点:
本发明采用USB作为底层,保证可靠、快速以及扩展性。同时USB是所有PC和大部分中高端芯片都会兼容的协议,因此可以应用于许多设备。本发明针对具体的应用场景细分了指令和数据,并且由于它们使用不同的底层USB传输管道,指令和数据不会互相干扰,同时保证指令的优先性。
附图说明
图1为本发明的基于USB的SpaceWire网络即插即用基础协议的拓扑结构示意图。
具体实施方式
下面就结合附图对本发明进行详细说明。
本发明提供一种基于USB的SpaceWire网络即插即用基础协议,所述的基础协议涉及到的组件包括SpaceWire网络、主控设备和PC,如图1所示。主控设备是核心部分,同时与PC和SpaceWire网络通讯。主控设备由以下几个模块组成:FPGA、USB芯片、SpaceWire网络接口。FPGA程序代码存储在EEPROM中,每次重新上电可直接进入协议状态机而无需重新下载。FPGA和USB芯片采用一样的时钟,SpaceWire网络接口则采用更高速的时钟。USB芯片的程序代码存在另一块EEPROM中,上电后处于Slave FIFO模式。FPGA通过DATA线、Read和Write信号、ADDR选址线等和USB芯片通讯,进而通过几个USB管道和PC通讯。PC上使用USB芯片提供的基础驱动作为底层,封装一层数据API之后实现协议,并向上层应用软件提供协议API。
基于USB的SpaceWire网络即插即用基础协议中的通用数据单元如表1所示。各字段的作用:Protocol Version为协议版本号,固定在一个字节,用来标识当前协议版本,使协议可以升级和兼容;Opcode为数据包的操作码分类标识,固定一个字节;Packet ID为标识包的序列号或者响应包的序列号;Length为长度信息,标识后续Payload部分的字节数;Payload为需要传送的内容,可以嵌套更上层的协议。
表1通用数据单元格式
在通用数据单元中Payload字段下嵌套的指令数据单元如表2所示。各字段的作用:Command Code为长度一个字节的指令代码,用以区分指令类型;Extra为长度不定的指令附加信息。
表2指令数据单元格式
Command Code | Extra |
1Byte | ?Bytes |
在本发明的基础协议中,包含如下指令类型:
1)查询请求指令:发起一次新的查询会话,参与者为PC和主控设备。实现PC读取主控设备状态信息的功能。
查询会话是由PC发起,正常情况下由一次基本通讯构成的会话。PC向主控设备发送一个查询请求包。主控设备收到后处理该查询请求包,之后立即向PC返回一个响应包代表处理结果,如果需要还应该在响应包的Extra字段中附带此次查询会话中需要返回给PC的状态信息数据。
2)IO请求指令:发起一次新的SpaceWire数据传输IO会话,参与者为PC、主控设备和SpaceWire网络。实现PC通过主控设备向SpaceWire网络发送数据、PC通过主控设备从SpaceWire网络接收数据的功能。
通用数据单元Payload为IO请求时,指令数据单元中Extra字段下嵌套的IO数据单元格式如表3所示。各字段的作用:Action:只有在Type为Stream时有效,标志Stream型IO传输开始或结束;Type:Message标志固定数据长度的IO会话,Message会话中数据头部带有2Bytes的数据长度信息,指定本次Message型IO会话中有效数据载荷的长度。Stream标志不固定长度数据流的IO会话,会话发起后进行持续的数据传输,在最后通过一个Action为Stop的IO请求指令结束本次会话。Direction:Output为从PC向主控设备或者SpaceWire网络的发送标识,Input为PC从主控设备或者SpaceWire网络的读取标识。
表3IO数据单元格式
Action | Type | Direction | ||||||
1 | Start | Message | Output | |||||
0 | Stop | Stream | Input |
IO会话可以由PC或者主控设备发起,当PC通过主控设备向SpaceWire网络发送数据时,PC为发起者,主控设备为响应者,PC通过IO会话将需要发送的数据传至主控设备,主控设备再将此次会话携带的有效数据载荷转发到SpaceWire网络中去;当PC通过主控设备从SpaceWire网络接收数据时,主控设备为发起者,PC为响应者,主控设备将从SpaceWire网络中收到的数据通过IO会话传至PC,PC再将这些数据交给应用程序做进一步处理。IO会话分为两种类型:
Message类型的会话:PC或者主控设备中的发起者向响应者发送一个IO Request包,其中IO数据单元中的Type位应为Message。响应者收到这个IO请求包后会确认当前的缓冲区状态、SpaceWire的FIFO状态、SpaceWire的链路状态等信息,如果准备好接收数据,就返回一个Response Status表示“成功”的Response包。如果无法接收数据,就返回携带相应错误码的Response包。发起者收到Response包后,如果Response Status代表“成功”,应立即发送一个准备好的Data包,否则应等待一定时间或者立即重发一个新的IO Request(Packet ID不同)。响应者收到Data包之后,进行相应的动作(如主控设备向SpaceWire网络转发)后,再次返回一个表示“成功”的Response。本次会话即告结束。
Stream类型的会话:PC或者主控设备中的发起者向响应者发送一个IO Request包,其中IO数据单元中的Type位应为Stream,Action位应为Start。响应者收到IO请求后,作出与Message类型会话中类似的状态确认与Response包回复动作。接着,发起者发送一个Data包的头部,其中Length字段表示的是每一次最多传送的字节数,然后开始循环发送数据,每次发送的数据不应多于Length。响应者读取完Data包头部后即开始读取数据,每当读空缓冲区或者读够Length个字节的数据时,应检查在中断传输中是否有Stop请求。发起者将数据全部发送完之后,向响应者发送一个IO Request,其Type为Stream,Action为Stop。响应者收到Stop请求后,向发起者发送一个针对Stop请求的Response,表示已成功停止;当响应者对读取到的数据执行完相应的步骤后(如PC将数据转交给应用程序处理),向发起者发送一个针对Data包的Response。本次会话即告结束。
Claims (2)
1.基于USB的SpaceWire网络即插即用基础协议系统,包括主控设备和PC、SpaceWire网络,主控设备同时与PC和SpaceWire网络通讯;其特征在于:所述的主控设备由FPGA、SpaceWire网络接口和USB芯片组成;使用USB的中断传输和批量传输在PC和FPGA之间交换指令和数据;
FPGA程序代码存储在EEPROM中,每次重新上电直接进入协议状态机而无需重新下载;FPGA和USB芯片采用一样的时钟,SpaceWire网络接口则采用更高速的时钟;USB芯片的程序代码存在另一块EEPROM中,上电后处于Slave FIFO模式;FPGA通过DATA线、Read和Write信号、ADDR选址线和USB芯片通讯,进而通过USB管道和PC通讯;PC上使用USB芯片提供的基础驱动作为底层,封装一层数据API之后实现协议,并向上层应用软件提供协议API;
所述的基础协议中,通用数据单元包括:
Protocol Version 为协议版本号,固定在一个字节,用来标识当前协议版本,使协议升级和兼容;
Opcode为数据包的操作码分类标识,固定一个字节;
Packet ID为标识包的序列号或者响应包的序列号;
Length 为长度信息,标识后续 Payload部分的字节数;
Payload为需要传送的内容,嵌套更上层的协议;
Payload字段下嵌套的指令数据单元包括两个字段:Command Code为长度一个字节的指令代码,用以区分指令类型;Extra为长度不定的指令附加信息;其中,指令类型包括如下:
1)查询请求指令:发起一次新的查询会话,参与者为PC和主控设备;实现PC读取主控设备状态信息的功能;
PC向主控设备发送一个查询请求包,主控设备收到后处理该查询请求包,之后立即向PC返回一个响应包代表处理结果,如果需要还应该在响应包的 Extra字段中附带此次查询会话中需要返回给PC的状态信息数据;
2)IO请求指令:发起一次新的SpaceWire数据传输IO会话,参与者为PC、主控设备和SpaceWire网络;实现PC通过主控设备向SpaceWire网络发送数据、PC通过主控设备从SpaceWire网络接收数据的功能;
所述的基础协议中,通用数据单元Payload为IO请求时,指令数据单元中Extra字段下嵌套的IO数据单元格式:
Action:只有在 Type为 Stream时有效,标志Stream型IO传输开始或结束;
Type: Message标志固定数据长度的 IO会话,Message会话中数据头部带有2Bytes的数据长度信息,指定本次Message型IO会话中有效数据载荷的长度;Stream标志不固定长度数据流的IO会话,会话发起后进行持续的数据传输,在最后通过一个Action为Stop的IO请求指令结束本次会话;
Direction: Output 为从 PC向主控设备或者 SpaceWire网络的发送标识,Input 为PC从主控设备或者 SpaceWire网络的读取标识。
2.根据权利要求1所述的基于USB的SpaceWire网络即插即用基础协议系统,其特征在于:所述的IO会话分为两种类型:
Message类型的会话:PC或者主控设备中的发起者向响应者发送一个IORequest包,其中IO数据单元中的 Type位应为Message;响应者收到这个IO请求包后会确认当前的缓冲区状态、SpaceWire 的 FIFO状态、SpaceWire的链路状态信息,如果准备好接收数据,就返回一个 Response Status表示“成功”的 Response包;如果无法接收数据,就返回携带相应错误码的 Response包;发起者收到 Response包后,如果 Response Status代表“成功”,应立即发送一个准备好的 Data包,否则应等待一定时间或者立即重发一个新的 IO Request;响应者收到 Data包之后,进行相应的动作后,再次返回一个表示“成功”的 Response;本次会话即告结束;
Stream类型的会话:PC或者主控设备中的发起者向响应者发送一个IORequest 包,其中IO数据单元中的 Type位应为Stream,Action位应为 Start;响应者收到IO请求后,作出状态确认与Response包回复动作;接着,发起者发送一个 Data包的头部,其中 Length字段表示的是每一次最多传送的字节数,然后开始循环发送数据,每次发送的数据不应多于Length;响应者读取完Data包头部后即开始读取数据,每当读空缓冲区或者读够Length个字节的数据时,应检查在中断传输中是否有 Stop请求;发起者将数据全部发送完之后,向响应者发送一个 IO Request,其 Type为Stream,Action为 Stop;响应者收到 Stop请求后,向发起者发送一个针对 Stop请求的 Response,表示已成功停止;当响应者对读取到的数据执行完相应的步骤后,向发起者发送一个针对 Data包的Response;本次会话即告结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710382020.3A CN107302522B (zh) | 2017-05-26 | 2017-05-26 | 基于USB的SpaceWire网络即插即用基础协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710382020.3A CN107302522B (zh) | 2017-05-26 | 2017-05-26 | 基于USB的SpaceWire网络即插即用基础协议 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107302522A CN107302522A (zh) | 2017-10-27 |
CN107302522B true CN107302522B (zh) | 2020-12-01 |
Family
ID=60137387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710382020.3A Active CN107302522B (zh) | 2017-05-26 | 2017-05-26 | 基于USB的SpaceWire网络即插即用基础协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107302522B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737275B (zh) * | 2018-05-29 | 2020-04-21 | 北京航空航天大学 | 一种基于SpaceFibre即插即用星载网络管理方法 |
CN109274859A (zh) * | 2018-09-30 | 2019-01-25 | 北京航空航天大学 | 一种基于USB3.0的SpaceWire视频采集卡 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187227A (zh) * | 2015-06-12 | 2015-12-23 | 北京航空航天大学 | 一种应用rmap协议实现can总线设备即插即用的装置 |
CN205103813U (zh) * | 2015-06-15 | 2016-03-23 | 珠海欧比特控制工程股份有限公司 | 一种基于PCI接口的SpaceWire总线节点通讯模块 |
CN105739416A (zh) * | 2016-05-06 | 2016-07-06 | 上海航天测控通信研究所 | 一种星载综合电子计算机 |
CN106201946A (zh) * | 2016-06-29 | 2016-12-07 | 北京航天自动控制研究所 | 一种基于fpga和dsp的星载电子系统数据接口系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160378344A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Processor and platform assisted nvdimm solution using standard dram and consolidated storage |
-
2017
- 2017-05-26 CN CN201710382020.3A patent/CN107302522B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187227A (zh) * | 2015-06-12 | 2015-12-23 | 北京航空航天大学 | 一种应用rmap协议实现can总线设备即插即用的装置 |
CN205103813U (zh) * | 2015-06-15 | 2016-03-23 | 珠海欧比特控制工程股份有限公司 | 一种基于PCI接口的SpaceWire总线节点通讯模块 |
CN105739416A (zh) * | 2016-05-06 | 2016-07-06 | 上海航天测控通信研究所 | 一种星载综合电子计算机 |
CN106201946A (zh) * | 2016-06-29 | 2016-12-07 | 北京航天自动控制研究所 | 一种基于fpga和dsp的星载电子系统数据接口系统 |
Non-Patent Citations (2)
Title |
---|
基于 FPGA 的可更换模块即插即用接口设计;陈园等;《中南大学学报(自然科学版)》;20130730;全文 * |
基于RMAP-IP核的PCIe-SpaceWire接口卡的研究与实现;刘文莉等;《SEMICONDUCTOR OPTOELECTRONICS》;20170430;正文第232-237页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107302522A (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102681957B (zh) | 增强的无线 usb 协议和集线器 | |
CN103559156B (zh) | 一种fpga与计算机之间的通信系统 | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
CN107819659B (zh) | 一种基于spi的智能级联通信网络 | |
CN108107827B (zh) | 一种基于zynq平台软核的srio控制方法 | |
CN101957808B (zh) | 多cpu间的通信方法、系统及cpu | |
EP3009940A1 (en) | Unified connector architecture | |
CN100481054C (zh) | 总线连接设备 | |
CN101005376A (zh) | 一种实现业务板和主控板通信的装置和方法 | |
CN102377778A (zh) | 一种基于以太网的远程非对称端通信方法 | |
CN107302522B (zh) | 基于USB的SpaceWire网络即插即用基础协议 | |
CN105389120A (zh) | 支持通过活动消息的rma api | |
CN101394349B (zh) | 不同接口设备通信中的数据传输方法及系统 | |
CN101937413B (zh) | 一种i2c总线的通信方法 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
JP2007088775A (ja) | 無線通信システム、無線通信装置及び方法 | |
CN110113209B (zh) | 基于mipi协议的设备间通信方法及设备拓扑结构 | |
CN1316387C (zh) | 一种串行接口总线通信控制器 | |
CN112241277A (zh) | Ic固件更新方法 | |
WO2012126352A1 (zh) | 在pcie总线上传输报文的方法、设备和系统 | |
EP3631640B1 (en) | Communication between field programmable gate arrays | |
CN104850517A (zh) | 一种dma传输报文数据的方法及装置 | |
Jokanović | Communication with CNC machine through DNC interface | |
CN116226027B (zh) | 数据传输系统、方法、装置、通信设备及存储介质 | |
CN114363119B (zh) | 一种Android系统下C++socket通讯与蜂窝网络同时使用方法 |
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 |