适用于窄带信道单元的CPU与FPGA数据交互方法和系统与流程

文档序号:24406838发布日期:2021-03-26 17:33阅读:247来源:国知局
适用于窄带信道单元的CPU与FPGA数据交互方法和系统与流程
适用于窄带信道单元的cpu与fpga数据交互方法和系统
技术领域
1.本发明涉及窄带通信系统技术领域,具体地,涉及一种适用于窄带信道单元的cpu与fpga数据交互方法和系统。


背景技术:

2.窄带通信系统包含了窄带通信控制设备和各类窄带信道设备(如超短波电台、短波电台、流余、散射、被传等)。窄带通信控制设备是一种专有路由器,主要为各类信道设备提供路由、交换、转发功能。窄带信道单元是通信控制设备的核心板卡之一,其负责处理与窄带信道设备之间的信道互连接口及数据传输服务。窄带信道单元拥有多个信道接口,具体包括异步串口、k口、基带口、四线音频口,其中串口用于传输数据和分组话,k口用于传输数据和时隙话,基带口用于传输数据,四线音频口用于传输模拟话。
3.窄带信道单元采用cpu+fpga的架构,fpga处理接口时序和逻辑控制,cpu处理协议栈。对上来说,fpga需要将信道端接收的数据流发送给cpu,对下来说,cpu需要将数据流下发给fpga最终发往指定信道。由于窄带信道的种类繁多,且传输内容既包含数据又包含话音,对数据来说有可靠性需求,对话音来说有实时性需求。而传统的多信道传输协议大多基于ip协议,由于其主要针对的是宽带信道,该协议有大量的冗余性,不能满足窄带信道通信系统的需求。
4.专利文献cn109388597b(申请号:cn201811160055.3)公开了一种基于fpga的数据交互方法及装置,所述方法包括:fpga模块内的虚拟p2p桥接收第一终端发送的tlp类型的数据包,并将数据包存储于缓存单元中;fpga模块内的业务单元对数据包进行解析,获取数据包对应的目的终端地址和地址路由,以及根据目的终端地址确定第二终端;判断第二终端与fpga模块连接的总线的状态;当确定总线的状态处于空闲状态时,从缓存单元中读取数据包,并将数据包通过虚拟p2p桥发送给第二终端。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种适用于窄带信道单元的cpu与fpga数据交互方法和系统。
6.根据本发明提供的适用于窄带信道单元的cpu与fpga数据交互方法,包括:
7.步骤1:在cpu端,利用cpu的spi接口,通过底层驱动程序配置处理器进行数据收发,将cpu端的spi接口设为主端;
8.步骤2:在fpga端,通过编写spi接口程序完成数据收发,将fpga端的spi接口设为从端;
9.步骤3:制定spi数据包协议,数据交互以数据包为单位,主端主动发送数据包,从端通过中断方式来发送数据包;
10.步骤4:制定信道处理流程,根据窄带信道类型保证话音的实时性和数据的可靠性。
11.优选的,所述步骤1包括:
12.步骤1.1:通过驱动程序配置处理器的spi接口,设定spi参数,包括分频系数和主从设置;
13.步骤1.2:配置处理器中断,来自从端的数据包通过中断响应方式进行接收。
14.优选的,所述步骤2包括:
15.根据spi时序,在fpga端编写spi从端接口程序,将从端spi接口引脚与主端spi接口引脚互连。
16.优选的,所述步骤3包括:
17.步骤3.1:制定spi数据包协议,第1字节为数据包头0xea,第2字节为数据包长度低字节,第3字节为数据包长度高字节,第4字节为命令字节,第5字节为保留字节,后面字节为有效数据包字节,有效数据包字节后面再加两个crc16校验字节;
18.步骤3.2:根据传输内容划分命令字节;
19.步骤3.3:制定交互方式,主端在发送时主动产生时钟和片选信号,主动发送数据,在接收时通过中断方式接收数据;从端在发送时通过中断方式发送数据,在接收时根据时钟和片选信号接收数据。
20.优选的,所述步骤4包括:
21.步骤4.1:窄带信道类型包括串口数据、分组话、k口数据、时隙话、基带数据和模拟话;处理优先级为:分组话>时隙话>模拟话>串口数据>k口数据>基带数据;
22.步骤4.2:根据信道带宽窄,将话音使用pcm编码模式,并采用160字节为一数据包,每20ms定时发送的方式来节省spi占用资源;
23.步骤4.3:为保证数据传输的可靠性,根据不同信道的特点对数据进行处理,对串口数据增加slip协议,对k口数据增加hdlc协议,对基带数据增加rs+bch编码。
24.根据本发明提供的适用于窄带信道单元的cpu与fpga数据交互系统,包括:
25.模块m1:在cpu端,利用cpu的spi接口,通过底层驱动程序配置处理器进行数据收发,将cpu端的spi接口设为主端;
26.模块m2:在fpga端,通过编写spi接口程序完成数据收发,将fpga端的spi接口设为从端;
27.模块m3:制定spi数据包协议,数据交互以数据包为单位,主端主动发送数据包,从端通过中断方式来发送数据包;
28.模块m4:制定信道处理流程,根据窄带信道类型保证话音的实时性和数据的可靠性。
29.优选的,所述模块m1包括:
30.模块m1.1:通过驱动程序配置处理器的spi接口,设定spi参数,包括分频系数和主从设置;
31.模块m1.2:配置处理器中断,来自从端的数据包通过中断响应方式进行接收。
32.优选的,所述模块m2包括:
33.根据spi时序,在fpga端编写spi从端接口程序,将从端spi接口引脚与主端spi接口引脚互连。
34.优选的,所述模块m3包括:
35.模块m3.1:制定spi数据包协议,第1字节为数据包头0xea,第2字节为数据包长度低字节,第3字节为数据包长度高字节,第4字节为命令字节,第5字节为保留字节,后面字节为有效数据包字节,有效数据包字节后面再加两个crc16校验字节;
36.模块m3.2:根据传输内容划分命令字节;
37.模块m3.3:制定交互方式,主端在发送时主动产生时钟和片选信号,主动发送数据,在接收时通过中断方式接收数据;从端在发送时通过中断方式发送数据,在接收时根据时钟和片选信号接收数据。
38.优选的,所述模块m4包括:
39.模块m4.1:窄带信道类型包括串口数据、分组话、k口数据、时隙话、基带数据和模拟话;处理优先级为:分组话>时隙话>模拟话>串口数据>k口数据>基带数据;
40.模块m4.2:根据信道带宽窄,将话音使用pcm编码模式,并采用160字节为一数据包,每20ms定时发送的方式来节省spi占用资源;
41.模块m4.3:为保证数据传输的可靠性,根据不同信道的特点对数据进行处理,对串口数据增加slip协议,对k口数据增加hdlc协议,对基带数据增加rs+bch编码。
42.与现有技术相比,本发明具有如下的有益效果:
43.1、对比与传统的ip协议有8个前导码字节、14个以太网首部字节、20个ip首部字节、4个crc32校验字节,共48个冗余字节,本发明只有7个冗余字节,大大节省了传输带宽;
44.2、本发明话音采用了pcm编码方式,以数据包的形式进行话音的定时传输,且进行了话音的优先级排列,能有效保证话音在窄带信道中传输的实时性;
45.3、本发明针对信道特点对串口数据、k口数据、基带数据采用不同的协议或编码方式,提高了数据在信道中的可靠性传输。
附图说明
46.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
47.图1为实施举例的连接示意图;
48.图2为实施举例的方法步骤图;
49.图3为实施举例的spi时序图;
50.图4为spi协议示意图;
51.图5为对下实现流程图;
52.图6为对上实现流程。
具体实施方式
53.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
54.实施例1:
55.本发明提供一种cpu与fpga数据交互方法,本方法适用于通信控制设备的窄带信
道单元,本方法包括如下步骤:
56.步骤1:在cpu端,利用cpu的spi接口,通过底层驱动配置处理器端的数据收发,将cpu端的spi接口设为主端;
57.步骤2:在fpga端,通过编写spi接口模块完成数据收发,将fpga端的spi接口设为从端;
58.步骤3:制定spi数据包协议,数据交互以数据包为单位,主端主动发送数据包,从端通过中断方式来发送数据包;
59.步骤4:制定信道处理流程,根据窄带信道类型,保证话音的实时性,保证数据的可靠性;
60.其中,步骤1包括如下步骤:
61.步骤1.1:通过驱动程序配置处理器的spi接口,设定spi参数,包括分频系数、主从设置等;
62.步骤1.2:配置处理器中断,来自从端的数据包接收将通过中断响应方式。
63.步骤2包括如下步骤:
64.根据spi时序,在fpga端编写spi从端接口模块,将从端spi接口引脚与主端spi接口引脚互连。
65.步骤3包括如下步骤:
66.步骤3.1:制定spi数据包协议。第1字节为数据包头0xea,第2字节为数据包长度低字节,第3字节为数据包长度高字节,第4字节为命令字节,第5字节为保留字节,后面字节为有效数据包字节,有效数据字节后面再加两个crc16校验字节;
67.步骤3.2:根据传输内容划分命令字节,命令字的占了spi协议中一个字节,最多可容纳256中不同传输类型;
68.步骤3.3:制定交互方式。主端在发送时主动产生时钟和片选信号,主动发送数据,在接收时通过中断方式接收数据。从端在发送时通过中断方式发送数据,在接收时根据时钟和片选信号接收数据。
69.步骤4包括如下步骤:
70.步骤4.1:窄带信道共包括串口数据(异步串口)、分组话(异步串口)、k口数据(k口)、时隙话(k口)、基带数据(基带口)、模拟话(四线音频口);
71.步骤4.2:为保证话音实时性,将处理优先级设定为:分组话>时隙话>模拟话>串口数据>k口数据>基带数据。此外,考虑到信道带宽窄,将话音使用pcm编码模式,并采用160字节为一数据包,每20ms定时发送的方式来节省spi占用资源;
72.步骤4.3:为保证数据传输的可靠性,根据不同信道的特点对数据进行处理,对串口数据增加slip协议,对k口数据增加hdlc协议,对基带数据增加rs+bch编码。
73.实施例2:
74.本例子的实施方式中采用的cpu型号为龙芯1b,fpga型号为华微hwd2v6000。实际的连接示意图如图1所示,将龙芯1b处理器的spi接口的四根引脚线连接至fpga的四根普通io引脚,其中ss为片选引脚,sck为时钟引脚,mosi为主端输出从端输入数据引脚,miso为主端输入从端输出数据引脚;此外,将龙芯1b的一根外部中断引脚连接至fpga的一根普通io引脚。
0x31串口数据1 0x32串口数据2 0x41k口数据1 0x42k口数据2 0x51基带数据1 0x52基带数据2 89.表1命令字节
90.步骤4:
91.本实施举例共有2路串口、2路k口、2路基带口、2路四线音频口。所以可细分为两路串口数据(异步串口)、两路分组话(异步串口)、两路k口数据(k口)、两路时隙话(k口)、两路基带数据(基带口)、两路模拟话(四线音频口)。
92.为满足话音的实时性要求,将处理优先级设定为:分组话1>分组话2>时隙话1>时隙话2>模拟话1>模拟话2>串口数据1>串口数据2>k口数据1>k口数据2>基带数据1>基带数据2。所有的话音都使用pcm编码模式,pcm的话音传输速率为64kbps,为了匹配pcm的传输速率,提高话音包交互效率,采用160字节为一包,每20ms定时发送的方式来节省spi占用资源。
93.在数据部分,对串口数据增加slip协议,对k口数据增加hdlc协议,对基带数据增加rs+bch编码。增加协议和编码的原因一是将窄带信道的比特流转换为了字节了,提高传输效率,二是减少了信道误码率,提高传输可靠性。
94.整个处理流程分为对下和对上两个部分。对下是指从cpu端到fpga端到信道端,对上是指从信道端到fpga端到cpu端。对下来说,cpu根据传输内容封装spi协议并发送给fpga,fpga根据命令字来区分信道内容,对于分组话直接转发、对时隙化做分包处理、对模拟化做pcm解码和分包处理、对串口数据做slip协议封装、对k口数据做hdlc协议封装、对基带数据做rs+bch编码,并将处理完的内容发送给信道,具体对下实现流程如图5所示。对上来说,fpga从不同的信道接口接收信道内容,对于分组话直接转发、对时隙化做合包处理、对模拟化做pcm编码和合包处理、对串口数据做slip协议解析、对k口数据做hdlc协议解析、对基带数据做rs+bch解码,并将处理完的内容封装成spi协议发送给cpu。此外,当多信道接口同时接收内容时,fpga需要根据做退避处理,将高优先级内容优先做处理,次优先级内容存入缓存区等待,等处理完高优先级内容后再次判断待处理内容的优先级,择高处理,如此反复,直至所有信道内容皆处理完毕,具体对上实现流程如图6所示。
95.本实例的spi传输协议只加了7个冗余字节,而传统的ip协议有8个前导码+14个以太网首部+20个ip首部+4个crc32校验共48个冗余字节,增加了传输有效性,非常适合窄带信道的传输。此外,针对话音,本方法以pcm数据包形式进行传输,并使用了优先级处理方式,针对数据,结合信道特点封装了不同协议和编码,满足窄带通信系统中多信道、窄带宽、低延迟、高有效的需求。
96.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为
是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
97.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1