CN113110946A - 基于CSME私有协议的dsp通信系统及其方法 - Google Patents
基于CSME私有协议的dsp通信系统及其方法 Download PDFInfo
- Publication number
- CN113110946A CN113110946A CN202110388692.1A CN202110388692A CN113110946A CN 113110946 A CN113110946 A CN 113110946A CN 202110388692 A CN202110388692 A CN 202110388692A CN 113110946 A CN113110946 A CN 113110946A
- Authority
- CN
- China
- Prior art keywords
- dsp
- message
- csme
- sending
- linked list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004891 communication Methods 0.000 title claims abstract description 24
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 239000011093 chipboard Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- 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/22—Parsing or analysis of headers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Communication Control (AREA)
Abstract
本发明涉及基于CSME私有协议的dsp通信系统及方法,CPU主板与DSP扩展板通过以太网总线相连,CPU主板包含CSME协议库模块一和dsp管理库模块,DSP扩展板包含CSME协议库模块二和dsp功能库模块;基于以太网总线的CSME协议库模块一与CSME协议库模块二利用CSME私有协议通信,通过CPU主板控制DSP扩展板申请dsp资源以及DSP扩展板上报DSP的状态给CPU主板并管理,实现CPU主板和DSP扩展板之间的控制消息交互。实现dsp资源的扩容和控制,解决多变的用户场景及扩容的需求。
Description
技术领域
本发明涉及一种基于CSME私有协议的dsp通信系统及其方法。
背景技术
目前,IPPBX设备所使用的DSP芯片都是在CPU内部集成,并且支持的最大转码数少,导致并发数caps不高。因此在设备选型好CPU后,DSP的资源数就被限制了,导致如果某个应用的用户需要通话并发数大,则要更换CPU、硬件板卡等,更甚者需要更换设备,因此存在扩容通话并发数不方便的问题。
由于设备的核心部件是CPU,因此更换CPU的成本比较高。
这种通过外部扩展方法可以解决需要,但更换主框CPU满足用户扩展需求会显著增加成本。
发明内容
本发明的目的是克服现有技术存在的不足,提供一种基于CSME私有协议的dsp通信系统及其方法。
本发明的目的通过以下技术方案来实现:
基于CSME私有协议的dsp通信系统,特点是:CPU主板与DSP扩展板通过以太网总线相连,CPU主板包含CSME协议库模块一和dsp管理库模块,DSP扩展板包含CSME协议库模块二和dsp功能库模块;
基于以太网总线的CSME协议库模块一与CSME协议库模块二利用CSME私有协议通信,通过CPU主板控制DSP扩展板申请dsp资源以及DSP扩展板上报DSP的状态给CPU主板并管理,实现CPU主板和DSP扩展板之间的控制消息交互。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,所述CSME协议库模块一,用于发送dsp的控制请求消息和接收底层的csme消息,将上层发送控制请求消息封装成csme私有协议头的数据包发送,同时将接收到csme私有协议头的数据剥离csme消息头,再将数据上送到应用层;
所述dsp管理库模块,根据控制需要发送各种命令请求,对发送消息的状态机的管理控制消息发送的流程,接收底层上报的事件或响应;
所述CSME协议库模块二,用于从CPU主板接收csme的消息并处理,对DSP扩展板发往CPU主板的消息封装csme消息头的处理及发送控制;
所述dsp功能库模块,用于dsp功能的操作,实现最终的请求功能,主动上报事件及异常状态的通知。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,所述CSME协议库模块一发送dsp控制消息和接收dsp消息,其中,CSME协议库模块一发送dsp控制消息,dsp应用层发送消息到底层,底层将收到的数据封装csme头,拷贝数据到链表头中,启动定时器,将数据发送目的MAC地址,重传机制。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,dsp应用层发送消息到底层,使用上层的发送dsp请求消息接口csmencaps_sendmsg接收上层的要发送的数据;
底层将收到的数据封装csme头,组装要发送的dsp请求消息为私有的csme消息头的数据,底层的csme的发送接口将要发送给DSP扩展板的控制消息封装为CSME协议头的以太报文;
拷贝数据到链表头中,启动定时器,在发送csme的报文之前,先将该次的csme的报文拷贝一份并放入链表中,同时启动定时器,将发送的请求消息存放入链表中,用于消息的管理,确认消息发送成功与否;当发送dsp控制消息的定时器未超时时,CPU主板收到DSP扩展板的响应ack消息时,CSME协议库模块一将原来放入到链表中的dsp控制消息从链表中删除,同时检查此时链表是否为空,如果不为空,发送下一个加入链表中消息;否则等待下次CPU主板主动要求发送控制消息;如果发送dsp控制消息的定时器超时,此时启用重传机制;
将数据发送目的MAC地址,对csme消息的以太报文头的填充,用于支持在以太总线上传输数据,使dsp的控制消息发往指定的MAC目的地址,即DSP扩展板上的dsp芯片;
重传机制,与定时器配合,当发送dsp控制消息的定时器超时,将链表中放在链表头的dsp消息再次发往DSP扩展板,DSP扩展板如果没有收到dsp的控制消息,可再次接收之前没有收到dsp的消息。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,CSME协议库模块一接收dsp消息,收到的dsp消息分为两种类型:响应dsp的消息和dsp主动上报的消息;
响应dsp的消息,收到ack消息遍历链表,匹配链表则从链表上删除消息,遍历链表发送下一个消息;
其中,收到ack消息遍历链表,响应dsp的消息,当CPU主板收到的dsp消息是响应的ack消息,在CPU主板上遍历链表;
匹配链表则从链表上删除消息,如果链表中有匹配的dsp控制消息,将链表中dsp控制消息从链表中删除,否则将接收到的消息直接丢弃;
遍历链表发送下一个消息,再次遍历链表,如果链表中存在dsp消息,则发送下一个dsp的控制消息;
dsp主动上报的消息,判断消息为dsp主动上报消息,将主动上报消息送往上层应用,上层应用层处理消息;
其中,判断消息为dsp主动上报消息,根据收到的数据的消息的类型字段,判断DSP扩展板上报的消息是DSP扩展板主动上报的消息;
将主动上报消息送往上层应用,剥除csme消息头,将dsp原始消息由底层上报到上层;
上层应用层处理消息,上层对dsp的事件进行处理。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,dsp管理库模块,用于dsp请求命令下发和响应;
发送dsp请求业务码,将业务请求分为几个部分发送,各步骤使用同一通道结构体,dsp各请求参数的配置,用链表保证各消息顺序发送,保存当前步骤的下次步骤状态,启动定时器用于判断消息是否响应,完成dsp请求的下一步骤的发送,某次发送没有响应则释放这次请求消息;
发送dsp请求业务码,用于上层的应用,针对各种dsp的请求消息,进行区别处理;主动向DSP扩展板发送具体功能的请求业务码;
将业务请求分为几个部分发送,将具体要完成的功能分为几个步骤完成,在进行各个步骤时,保存当时的步骤状态,用于步骤的顺序执行;
各步骤使用同一通道结构体,每次的第一步骤申请对应的通道结构用于保存对应的请求消息;以后的各分步骤使用第一次申请的通道结构,用来确认是一次完整的业务请求,同时用于区别不同dsp请求业务;
dsp各请求参数的配置,针对不同的dsp请求消息,配置不同的参数和个数;
用链表保证各消息顺序发送,用全局的链表,判断该链表中是否没有消息元素,如果没有,将此时要发送的dsp请求消息加入全局链表的头,然后开始发送该dsp的请求消息;如果该链表中有消息元素,此时要发送的dsp请求消息放入全局链表中;
保存当前步骤的下次步骤状态,保存当前要发送的dsp请求消息的下一步骤状态,封装需要的消息头;
启动定时器用于判断消息是否响应,同时将上层的dsp控制消息通过调用接口sendto进入底层的csme的发送接口csmencaps_sendmsg;由底层的CSME协议库模块一发送消息给DSP扩展板,送达dsp芯片;
完成dsp请求的下一步骤的发送,当收到dsp的响应后,解析消息,找到之前保存的下一步骤状态值,然后进入对应dsp请求的步骤,再次封装消息头和数据,依次循环;直到这次dsp请求的所有步骤执行完成后,这次的dsp请求才算完成;
某次发送没有响应则释放这次请求消息,如果启动的定时器超时,依然没有收到此次步骤的请求消息的响应消息,认为这次的dsp请求消息是失败的,并将保存的dsp消息的数据全部释放。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,所述CSME协议库模块二,用于发送和接收原始数据消息,并封装和剥除csme的消息头,处理dsp芯片数据。
进一步地,上述的基于CSME私有协议的dsp通信系统,其中,所述dsp功能库模块,用于申请dsp资源、发送tone音、发送来显。
本发明基于CSME私有协议的dsp通信方法,CPU主板通过将上层dsp管理库模块要发送的dsp请求,通过系统调用接口sendto发送到底层CSME协议库模块一注册的对应的发送接口csmencaps_sendmsg,底层的CSME协议库模块一获得要发送的skb数据,先申请必要的csme的协议头大小空间及target、channel结构体用于管理要发送和接收到的csme数据,填充csme协议头需要的字段,然后判断之前申请的channel的发送链表是否是空链表,如果是就将要发送的已经封装csme协议头的数据消息插入发送链表的尾部,启动定时器,设置定时器的超时时间以及要发送消息的可重传次数;如果发送链表不是空链表说明还有发送的dsp请求消息没有响应,此时将要发送的dsp消息加入发送链表的尾部,确保先发送的dsp请求消息先处理,只要当正在等待响应的dsp请求消息超过重传次数依然没有收到对应的ack响应时,才会从链表中删除正在等待响应的dsp请求消息,同时发送正在等待响应的dsp请求消息的下一次请求消息;最后调用dev_queue_xmit接口,将要发送的数据通过网卡接口,从以太总线发往DSP扩展板上的dsp芯片,dsp芯片收到dsp的请求消息后,处理请求消息,并发送ack消息回CPU主板,告知CPU主板,DSP扩展板收到请求消息;
CSME协议库模块二管理和处理接收到的csme协议数据,DSP扩展板通过CSME协议库模块二封装的csme协议数据包,通过以太总线从DSP扩展板发送CPU主板,主板的底层网口收到csme协议数据包,直接送给CSME协议库模块一的接收接口csmencaps_rcv,该接口先判断接收到的数据的目的地址是本端的目的地址,然后判断收到的csme消息是响应的ack消息,还是主动上报的dsp通知消息,通过接收到的数据的csme协议头的cr字段来判断;
如果是响应的ack消息,判断收到的此次ack消息是否是发送链表正在等待响应的请求消息;如果不是就释放掉此次收到的skb数据,如果是,就将原来正在等待ack响应的dsp请求消息从发送链表中删除,同时删除之前发送dsp请求时启动的定时器;再次遍历发送链表,如果发送链表中有需要发送的dsp请求消息且该请求消息需要响应ack,直接通过接口dev_queue_xmit将请求消息发往网口,并再次启动定时器用于重传,如果发送链表中准备要发送的dsp请求消息不需要返回ack的响应消息,直接将请求消息发往网口,同时将此要发送的dsp请求消息从发送链表中删除;
处理接收到的DSP扩展板的消息后,将接收到的消息加入接收队列链表尾部,CSME协议库模块一的接收接口csmencaps_recvmsg,当监听到有数据可读后,就将加入接收队列链表中的skb数据送往上层的dsp管理库模块,dsp管理库模块上层revcfrom收到消息再进行相应的处理;
如果接收到的是DSP扩展板主动上报的通知消息,底层的CSME协议库模块一将收到的dsp消息送到dsp管理库模块,dsp管理库模块分析接收到的消息是事件还是响应,如果是事件按事件来处理,如果是响应,首先判断收到的通知消息的序列号是否是最近一次收到的通知消息,如果是,判断收到的通知消息是否需要返回ack消息,需要则本端再次发送ack响应消息给DSP扩展板,并认为此次收到的通知消息不是最新的通知消息,如果是最新的通知消息,本端更新已经接收到的通知消息的序列号,然后发送本次通知消息的ack消息回DSP扩展板上。
本发明与现有技术相比具有显著的优点和有益效果,具体体现在以下方面:
①本发明采用扩展dsp芯片板卡的方法实现扩展dsp资源的级联加扩展,对于需要扩大呼叫并发的数量时,不需要像目前替换设备、更换CPU等手段来实现扩大并发用户数量的目的,而是通过连接dsp扩展板卡的办法,并在主板上增加dsp管理库和CSME协议库来实现扩展dsp资源达到扩大并发数,解决多变的用户场景及扩容的需求;
②由主框设备CPU和扩展DSP板卡通过以太总线进行信令交互,完成主框CPU对扩展DSP的控制功能;
③采用扩展级联的方法,实现dsp资源的扩容和控制,主板的资源可以由扩展设备增加功能,因此节省成本;设备扩展简单,维护方便。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明具体实施方式了解。本发明的目的和其他优点可通过在所写的说明书中所特别指出的结构来实现和获得。
附图说明
图1:本发明系统的整体架构框图;
图2:CSME协议库模块一发送dsp控制消息流程示意图;
图3:CSME协议库模块一接收响应dsp消息流程示意图;
图4:CSME协议库模块一接收dsp主动上报的消息流程示意图;
图5:dsp管理库模块发送请求消息的具体流程示意图;
图6:本发明的具体流程示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现详细说明具体实施方案。
如图1所示,基于CSME私有协议的dsp通信系统,CPU主板1与DSP扩展板2通过以太网总线相连,CPU主板1包含CSME协议库模块一101和dsp管理库模块102,DSP扩展板2包含CSME协议库模块二201和dsp功能库模块202;
基于以太网总线的CSME协议库模块一101与CSME协议库模块二201利用CSME私有协议通信,通过CPU主板1控制DSP扩展板2申请dsp资源以及DSP扩展板2上报DSP的状态给CPU主板1并管理,实现CPU主板1和DSP扩展板2之间的控制消息交互。
CSME协议库模块一101,用于发送dsp的控制请求消息和接收底层的csme消息,将上层发送控制请求消息封装成csme私有协议头的数据包发送,同时将接收到csme私有协议头的数据剥离csme消息头,再将数据上送到应用层;
dsp管理库模块102,根据控制需要发送各种命令请求,对发送消息的状态机的管理控制消息发送的流程,接收底层上报的事件或响应;
CSME协议库模块二201,用于从CPU主板1接收csme的消息并处理,对DSP扩展板2发往CPU主板1的消息封装csme消息头的处理及发送控制;
dsp功能库模块202,用于dsp功能的操作,实现最终的请求功能,主动上报事件及异常状态的通知。
CSME协议库模块一101,发送dsp控制消息,如图2,以及接收dsp消息,如图3、图4;
其中,CSME协议库模块一101发送dsp控制消息,dsp应用层发送消息到底层,底层将收到的数据封装csme头,拷贝数据到链表头中,启动定时器,将数据发送目的MAC地址,重传机制;
dsp应用层发送消息到底层,使用上层的发送dsp请求消息接口csmencaps_sendmsg接收上层的要发送的数据;
底层将收到的数据封装csme头,组装要发送的dsp请求消息为私有的csme消息头的数据,底层的csme的发送接口将要发送给DSP扩展板2的控制消息封装为CSME协议头的以太报文;
拷贝数据到链表头中,启动定时器,在发送csme的报文之前,先将该次的csme的报文拷贝一份并放入链表中,同时启动定时器,将发送的请求消息存放入链表中,用于消息的管理,确认消息发送成功与否;当发送dsp控制消息的定时器未超时时,CPU主板1收到DSP扩展板2的响应ack消息时,CSME协议库模块一101将原来放入到链表中的dsp控制消息从链表中删除,同时检查此时链表是否为空,如果不为空,发送下一个加入链表中消息;否则等待下次CPU主板1主动要求发送控制消息;如果发送dsp控制消息的定时器超时,此时启用重传机制;
将数据发送目的MAC地址,对csme消息的以太报文头的填充,用于支持在以太总线上传输数据,使dsp的控制消息发往指定的MAC目的地址,即DSP扩展板2上的dsp芯片;
重传机制,与定时器配合,当发送dsp控制消息的定时器超时,将链表中放在链表头的dsp消息再次发往DSP扩展板2,DSP扩展板2如果没有收到dsp的控制消息,可再次接收之前没有收到dsp的消息。
CSME协议库模块一101接收dsp消息,收到的dsp消息分为两种类型:响应dsp的消息和dsp主动上报的消息;
响应dsp的消息,收到ack消息遍历链表,匹配链表则从链表上删除消息,遍历链表发送下一个消息;
其中,收到ack消息遍历链表,响应dsp的消息,当CPU主板收到的dsp消息是响应的ack消息,在CPU主板1上遍历链表;
匹配链表则从链表上删除消息,如果链表中有匹配的dsp控制消息,将链表中dsp控制消息从链表中删除,否则将接收到的消息直接丢弃;
遍历链表发送下一个消息,再次遍历链表,如果链表中存在dsp消息,则发送下一个dsp的控制消息;
dsp主动上报的消息,判断消息为dsp主动上报消息,将主动上报消息送往上层应用,上层应用层处理消息;
其中,判断消息为dsp主动上报消息,根据收到的数据的消息的类型字段,判断DSP扩展板2上报的消息是DSP扩展板2主动上报的消息;
将主动上报消息送往上层应用,剥除csme消息头,将dsp原始消息由底层上报到上层;
上层应用层处理消息,上层对dsp的事件进行处理。
dsp管理库模块102,用于dsp请求命令下发和响应,如图5;
发送dsp请求业务码,将业务请求分为几个部分发送,各步骤使用同一通道结构体,dsp各请求参数的配置,用链表保证各消息顺序发送,保存当前步骤的下次步骤状态,启动定时器用于判断消息是否响应,完成dsp请求的下一步骤的发送,某次发送没有响应则释放这次请求消息;
发送dsp请求业务码,用于上层的应用,针对各种dsp的请求消息,进行区别处理;主动向DSP扩展板2发送具体功能的请求业务码;
将业务请求分为几个部分发送,将具体要完成的功能分为几个步骤完成,在进行各个步骤时,保存当时的步骤状态,用于步骤的顺序执行;
各步骤使用同一通道结构体,每次的第一步骤申请对应的通道结构用于保存对应的请求消息;以后的各分步骤使用第一次申请的通道结构,用来确认是一次完整的业务请求,同时用于区别不同dsp请求业务;
dsp各请求参数的配置,针对不同的dsp请求消息,配置不同的参数和个数;
用链表保证各消息顺序发送,用全局的链表,判断该链表中是否没有消息元素,如果没有,将此时要发送的dsp请求消息加入全局链表的头,然后开始发送该dsp的请求消息;如果该链表中有消息元素,此时要发送的dsp请求消息放入全局链表中;
保存当前步骤的下次步骤状态,保存当前要发送的dsp请求消息的下一步骤状态(用于收到dsp响应后,知道下步执行什么操作),封装需要的消息头;
启动定时器用于判断消息是否响应,同时将上层的dsp控制消息通过调用接口sendto进入底层的csme的发送接口csmencaps_sendmsg;由底层的CSME协议库模块一(101)发送消息给DSP扩展板(2),送达dsp芯片;
完成dsp请求的下一步骤的发送,当收到dsp的响应后,解析消息,找到之前保存的下一步骤状态值,然后进入对应dsp请求的步骤,再次封装消息头和数据,依次循环;直到这次dsp请求的所有步骤执行完成后,这次的dsp请求才算完成;
某次发送没有响应则释放这次请求消息,如果启动的定时器超时,依然没有收到此次步骤的请求消息的响应消息,认为这次的dsp请求消息是失败的,并将保存的dsp消息的数据全部释放。
CSME协议库模块二201,用于发送和接收原始数据消息,并封装和剥除csme的消息头,处理dsp芯片数据。
dsp功能库模块202,用于申请dsp资源、发送tone音、发送来显。
如图6所示,CPU主板1通过将上层dsp管理库模块102要发送的dsp请求,通过系统调用接口sendto发送到底层CSME协议库模块一101注册的对应的发送接口csmencaps_sendmsg,底层的CSME协议库模块一101获得要发送的skb数据,先申请必要的csme的协议头大小空间及target、channel结构体用于管理要发送和接收到的csme数据,填充csme协议头需要的字段,然后判断之前申请的channel的发送链表是否是空链表,如果是就将要发送的已经封装csme协议头的数据消息插入发送链表的尾部,启动定时器,设置定时器的超时时间以及要发送消息的可重传次数;如果发送链表不是空链表说明还有发送的dsp请求消息没有响应,此时将要发送的dsp消息加入发送链表的尾部,确保先发送的dsp请求消息先处理,只要当正在等待响应的dsp请求消息超过重传次数依然没有收到对应的ack响应时,才会从链表中删除正在等待响应的dsp请求消息,同时发送正在等待响应的dsp请求消息的下一次请求消息;最后调用dev_queue_xmit接口,将要发送的数据通过网卡接口,从以太总线发往DSP扩展板2上的dsp芯片,dsp芯片收到dsp的请求消息后,处理请求消息,并发送ack消息回CPU主板1,告知CPU主板1,DSP扩展板2收到请求消息;
CSME协议库模块二201管理和处理接收到的csme协议数据,DSP扩展板2通过CSME协议库模块二201封装的csme协议数据包,通过以太总线从DSP扩展板2发送CPU主板1,主板的底层网口收到csme协议数据包,直接送给CSME协议库模块一101的接收接口csmencaps_rcv,该接口先判断接收到的数据的目的地址是本端的目的地址,然后判断收到的csme消息是响应的ack消息,还是主动上报的dsp通知消息,通过接收到的数据的csme协议头的cr字段来判断;
如果是响应的ack消息,判断收到的此次ack消息是否是发送链表正在等待响应的请求消息;如果不是就释放掉此次收到的skb数据,如果是,就将原来正在等待ack响应的dsp请求消息从发送链表中删除,同时删除之前发送dsp请求时启动的定时器;再次遍历发送链表,如果发送链表中有需要发送的dsp请求消息且该请求消息需要响应ack,直接通过接口dev_queue_xmit将请求消息发往网口,并再次启动定时器用于重传,如果发送链表中准备要发送的dsp请求消息不需要返回ack的响应消息,直接将请求消息发往网口,同时将此要发送的dsp请求消息从发送链表中删除;
处理接收到的DSP扩展板2的消息后,将接收到的消息加入接收队列链表尾部,CSME协议库模块一101的接收接口csmencaps_recvmsg,当监听到有数据可读后,就将加入接收队列链表中的skb数据送往上层的dsp管理库模块102,dsp管理库模块102上层revcfrom收到消息再进行相应的处理;
如果接收到的是DSP扩展板2主动上报的通知消息,底层的CSME协议库模块一101将收到的dsp消息送到dsp管理库模块102,dsp管理库模块102分析接收到的消息是事件还是响应,如果是事件按事件来处理,如果是响应,首先判断收到的通知消息的序列号是否是最近一次收到的通知消息,如果是,判断收到的通知消息是否需要返回ack消息,需要则本端再次发送ack响应消息给DSP扩展板2,并认为此次收到的通知消息不是最新的通知消息,如果是最新的通知消息,本端更新已经接收到的通知消息的序列号,然后发送本次通知消息的ack消息回DSP扩展板2上。
综上所述,本发明采用扩展dsp芯片板卡的方法实现扩展dsp资源的级联加扩展,对于需要扩大呼叫并发的数量时,不需要像目前替换设备、更换CPU等手段来实现扩大并发用户数量的目的,而是通过连接dsp扩展板卡的办法,并在主板上增加dsp管理库和CSME协议库来实现扩展dsp资源达到扩大并发数,解决多变的用户场景及扩容的需求。
由主框设备CPU和扩展DSP板卡通过以太总线进行信令交互,完成主框CPU对扩展DSP的控制功能。
采用扩展级联的方法,实现dsp资源的扩容和控制,主板的资源可以由扩展设备增加功能,因此节省成本;设备扩展简单,维护方便。
需要说明的是:以上所述仅为本发明的优选实施方式,并非用以限定本发明的权利范围;同时以上的描述,对于相关技术领域的专门人士应可明了及实施,因此其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在申请专利范围中。
Claims (9)
1.基于CSME私有协议的dsp通信系统,其特征在于:CPU主板(1)与DSP扩展板(2)通过以太网总线相连,CPU主板(1)包含CSME协议库模块一(101)和dsp管理库模块(102),DSP扩展板(2)包含CSME协议库模块二(201)和dsp功能库模块(202);
基于以太网总线的CSME协议库模块一(101)与CSME协议库模块二(201)利用CSME私有协议通信,通过CPU主板(1)控制DSP扩展板(2)申请dsp资源以及DSP扩展板(2)上报DSP的状态给CPU主板(1)并管理,实现CPU主板(1)和DSP扩展板(2)之间的控制消息交互。
2.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:所述CSME协议库模块一(101),用于发送dsp的控制请求消息和接收底层的csme消息,将上层发送控制请求消息封装成csme私有协议头的数据包发送,同时将接收到csme私有协议头的数据剥离csme消息头,再将数据上送到应用层;
所述dsp管理库模块(102),根据控制需要发送各种命令请求,对发送消息的状态机的管理控制消息发送的流程,接收底层上报的事件或响应;
所述CSME协议库模块二(201),用于从CPU主板(1)接收csme的消息并处理,对DSP扩展板(2)发往CPU主板(1)的消息封装csme消息头的处理及发送控制;
所述dsp功能库模块(202),用于dsp功能的操作,实现最终的请求功能,主动上报事件及异常状态的通知。
3.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:所述CSME协议库模块一(101)发送dsp控制消息和接收dsp消息,其中,CSME协议库模块一(101)发送dsp控制消息,dsp应用层发送消息到底层,底层将收到的数据封装csme头,拷贝数据到链表头中,启动定时器,将数据发送目的MAC地址,重传机制。
4.根据权利要求3所述的基于CSME私有协议的dsp通信系统,其特征在于:dsp应用层发送消息到底层,使用上层的发送dsp请求消息接口csmencaps_sendmsg接收上层的要发送的数据;
底层将收到的数据封装csme头,组装要发送的dsp请求消息为私有的csme消息头的数据,底层的csme的发送接口将要发送给DSP扩展板(2)的控制消息封装为CSME协议头的以太报文;
拷贝数据到链表头中,启动定时器,在发送csme的报文之前,先将该次的csme的报文拷贝一份并放入链表中,同时启动定时器,将发送的请求消息存放入链表中,用于消息的管理,确认消息发送成功与否;当发送dsp控制消息的定时器未超时时,CPU主板(1)收到DSP扩展板(2)的响应ack消息时,CSME协议库模块一(101)将原来放入到链表中的dsp控制消息从链表中删除,同时检查此时链表是否为空,如果不为空,发送下一个加入链表中消息;否则等待下次CPU主板(1)主动要求发送控制消息;如果发送dsp控制消息的定时器超时,此时启用重传机制;
将数据发送目的MAC地址,对csme消息的进行以太报文头的填充,用于支持在以太总线上传输数据,使dsp的控制消息发往指定的MAC目的地址,即DSP扩展板(2)上的dsp芯片;
重传机制,与定时器配合,当发送dsp控制消息的定时器超时,将链表中放在链表头的dsp消息再次发往DSP扩展板(2),DSP扩展板(2)如果没有收到dsp的控制消息,可再次接收之前没有收到dsp的消息。
5.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:CSME协议库模块一(101)接收dsp消息,收到的dsp消息分为两种类型:响应dsp的消息和dsp主动上报的消息;
响应dsp的消息,收到ack消息遍历链表,匹配链表则从链表上删除消息,遍历链表发送下一个消息;
其中,收到ack消息遍历链表,响应dsp的消息,当CPU主板收到的dsp消息是响应的ack消息,在CPU主板(1)上遍历链表;
匹配链表则从链表上删除消息,如果链表中有匹配的dsp控制消息,将链表中dsp控制消息从链表中删除,否则将接收到的消息直接丢弃;
遍历链表发送下一个消息,再次遍历链表,如果链表中存在dsp消息,则发送下一个dsp的控制消息;
dsp主动上报的消息,判断消息为dsp主动上报消息,将主动上报消息送往上层应用,上层应用层处理消息;
其中,判断消息为dsp主动上报消息,根据收到的数据的消息的类型字段,判断DSP扩展板(2)上报的消息是DSP扩展板(2)主动上报的消息;
将主动上报消息送往上层应用,剥除csme消息头,将dsp原始消息由底层上报到上层;
上层应用层处理消息,上层对dsp的事件进行处理。
6.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:dsp管理库模块(102),用于dsp请求命令下发和响应;
发送dsp请求业务码,将业务请求分为几个部分发送,各步骤使用同一通道结构体,dsp各请求参数的配置,用链表保证各消息顺序发送,保存当前步骤的下次步骤状态,启动定时器用于判断消息是否响应,完成dsp请求的下一步骤的发送,某次发送没有响应则释放这次请求消息;
发送dsp请求业务码,用于上层的应用,针对各种dsp的请求消息,进行区别处理;主动向DSP扩展板(2)发送具体功能的请求业务码;
将业务请求分为几个部分发送,将具体要完成的功能分为几个步骤完成,在进行各个步骤时,保存当时的步骤状态,用于步骤的顺序执行;
各步骤使用同一通道结构体,每次的第一步骤申请对应的通道结构用于保存对应的请求消息;以后的各分步骤使用第一次申请的通道结构,用来确认是一次完整的业务请求,同时用于区别不同dsp请求业务;
dsp各请求参数的配置,针对不同的dsp请求消息,配置不同的参数和个数;
用链表保证各消息顺序发送,用全局的链表,判断该链表中是否没有消息元素,如果没有,将此时要发送的dsp请求消息加入全局链表的头,然后开始发送该dsp的请求消息;如果该链表中有消息元素,此时要发送的dsp请求消息放入全局链表中;
保存当前步骤的下次步骤状态,保存当前要发送的dsp请求消息的下一步骤状态,封装需要的消息头;
启动定时器用于判断消息是否响应,同时将上层的dsp控制消息通过调用接口sendto进入底层的csme的发送接口csmencaps_sendmsg;由底层的CSME协议库模块一(101)发送消息给DSP扩展板(2),送达dsp芯片;
完成dsp请求的下一步骤的发送,当收到dsp的响应后,解析消息,找到之前保存的下一步骤状态值,然后进入对应dsp请求的步骤,再次封装消息头和数据,依次循环;直到这次dsp请求的所有步骤执行完成后,这次的dsp请求才算完成;
某次发送没有响应则释放这次请求消息,如果启动的定时器超时,依然没有收到此次步骤的请求消息的响应消息,认为这次的dsp请求消息是失败的,并将保存的dsp消息的数据全部释放。
7.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:所述CSME协议库模块二(201),用于发送和接收原始数据消息,并封装和剥除csme的消息头,处理dsp芯片数据。
8.根据权利要求1所述的基于CSME私有协议的dsp通信系统,其特征在于:所述dsp功能库模块(202),用于申请dsp资源、发送tone音、发送来显。
9.基于CSME私有协议的dsp通信方法,其特征在于:CPU主板(1)通过将上层dsp管理库模块(102)要发送的dsp请求,通过系统调用接口sendto发送到底层CSME协议库模块一(101)注册的对应的发送接口csmencaps_sendmsg,底层的CSME协议库模块一(101)获得要发送的skb数据,先申请必要的csme的协议头大小空间及target、channel结构体用于管理要发送和接收到的csme数据,填充csme协议头需要的字段,然后判断之前申请的channel的发送链表是否是空链表,如果是就将要发送的已经封装csme协议头的数据消息插入发送链表的尾部,启动定时器,设置定时器的超时时间以及要发送消息的可重传次数;如果发送链表不是空链表说明还有发送的dsp请求消息没有响应,此时将要发送的dsp消息加入发送链表的尾部,确保先发送的dsp请求消息先处理,只要当正在等待响应的dsp请求消息超过重传次数依然没有收到对应的ack响应时,才会从链表中删除正在等待响应的dsp请求消息,同时发送正在等待响应的dsp请求消息的下一次请求消息;最后调用dev_queue_xmit接口,将要发送的数据通过网卡接口,从以太总线发往DSP扩展板(2)上的dsp芯片,dsp芯片收到dsp的请求消息后,处理请求消息,并发送ack消息回CPU主板(1),告知CPU主板(1),DSP扩展板(2)收到请求消息;
CSME协议库模块二(201)管理和处理接收到的csme协议数据,DSP扩展板(2)通过CSME协议库模块二(201)封装的csme协议数据包,通过以太总线从DSP扩展板(2)发送CPU主板(1),主板的底层网口收到csme协议数据包,直接送给CSME协议库模块一(101)的接收接口csmencaps_rcv,该接口先判断接收到的数据的目的地址是本端的目的地址,然后判断收到的csme消息是响应的ack消息,还是主动上报的dsp通知消息,通过接收到的数据的csme协议头的cr字段来判断;
如果是响应的ack消息,判断收到的此次ack消息是否是发送链表正在等待响应的请求消息;如果不是就释放掉此次收到的skb数据,如果是,就将原来正在等待ack响应的dsp请求消息从发送链表中删除,同时删除之前发送dsp请求时启动的定时器;再次遍历发送链表,如果发送链表中有需要发送的dsp请求消息且该请求消息需要响应ack,直接通过接口dev_queue_xmit将请求消息发往网口,并再次启动定时器用于重传,如果发送链表中准备要发送的dsp请求消息不需要返回ack的响应消息,直接将请求消息发往网口,同时将此要发送的dsp请求消息从发送链表中删除;
处理接收到的DSP扩展板(2)的消息后,将接收到的消息加入接收队列链表尾部,CSME协议库模块一(101)的接收接口csmencaps_recvmsg,当监听到有数据可读后,就将加入接收队列链表中的skb数据送往上层的dsp管理库模块(102),dsp管理库模块(102)上层revcfrom收到消息再进行相应的处理;
如果接收到的是DSP扩展板(2)主动上报的通知消息,底层的CSME协议库模块一(101)将收到的dsp消息送到dsp管理库模块(102),dsp管理库模块(102)分析接收到的消息是事件还是响应,如果是事件按事件来处理,如果是响应,首先判断收到的通知消息的序列号是否是最近一次收到的通知消息,如果是,判断收到的通知消息是否需要返回ack消息,需要则本端再次发送ack响应消息给DSP扩展板(2),并认为此次收到的通知消息不是最新的通知消息,如果是最新的通知消息,本端更新已经接收到的通知消息的序列号,然后发送本次通知消息的ack消息回DSP扩展板(2)上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110388692.1A CN113110946A (zh) | 2021-04-12 | 2021-04-12 | 基于CSME私有协议的dsp通信系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110388692.1A CN113110946A (zh) | 2021-04-12 | 2021-04-12 | 基于CSME私有协议的dsp通信系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113110946A true CN113110946A (zh) | 2021-07-13 |
Family
ID=76715611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110388692.1A Pending CN113110946A (zh) | 2021-04-12 | 2021-04-12 | 基于CSME私有协议的dsp通信系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110946A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328561A1 (en) * | 2015-05-08 | 2016-11-10 | Mcafee Inc. | Hardened event counters for anomaly detection |
US20170286679A1 (en) * | 2016-03-30 | 2017-10-05 | Mcafee, Inc. | System, Apparatus And Method For Performing Secure Memory Training And Management In A Trusted Environment |
CN107615293A (zh) * | 2015-06-17 | 2018-01-19 | 英特尔公司 | 包括期满检测的平台管理方法和装备 |
CN110765060A (zh) * | 2019-10-09 | 2020-02-07 | 深圳震有科技股份有限公司 | Mdio总线到并行总线转换方法及装置、设备、介质 |
-
2021
- 2021-04-12 CN CN202110388692.1A patent/CN113110946A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328561A1 (en) * | 2015-05-08 | 2016-11-10 | Mcafee Inc. | Hardened event counters for anomaly detection |
CN108027860A (zh) * | 2015-05-08 | 2018-05-11 | 迈克菲有限公司 | 用于进行异常检测的硬化事件计数器 |
CN107615293A (zh) * | 2015-06-17 | 2018-01-19 | 英特尔公司 | 包括期满检测的平台管理方法和装备 |
US20170286679A1 (en) * | 2016-03-30 | 2017-10-05 | Mcafee, Inc. | System, Apparatus And Method For Performing Secure Memory Training And Management In A Trusted Environment |
CN110765060A (zh) * | 2019-10-09 | 2020-02-07 | 深圳震有科技股份有限公司 | Mdio总线到并行总线转换方法及装置、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494817B (zh) | 数据传输方法、相关装置及系统 | |
CN2794054Y (zh) | 实现用于增强专用信道传输的数据寿限定时器的装置 | |
CN110381535B (zh) | 传输控制方法及装置 | |
US20090191917A1 (en) | Method of communication between a (u)sim card in a server mode and a client | |
CN104244324A (zh) | 无线链路传输方法和系统 | |
CN103166949A (zh) | 用于提高数据吞吐量的通信协议技术 | |
JP2009505587A (ja) | Ev−doネットワークを介したサービス品質パケット送信のための優先度付け技術 | |
US20030117983A1 (en) | Method and gateway GPRS support node (GGSN) for user (payload) plane redundancy | |
CN102771164B (zh) | 针对旧版本应用和非旧版本应用提供智能无线模块选择的方法和装置 | |
CN111258776A (zh) | 一种服务远程调用的容灾方法及设备 | |
CN111935017B (zh) | 跨网络的应用调用方法、装置及路由设备 | |
CN101682916A (zh) | 在移动通信系统中发送rlc pdu和分配无线资源的方法以及移动通信的rlc实体 | |
CN101160928A (zh) | 一种实现IuUP/NBUP协议过程控制功能的方法 | |
CN107786464B (zh) | 一种实现节点间通信的方法及装置 | |
CN108737397B (zh) | 一种实现路由器中业务与协议栈之间数据交互的方法 | |
EP1511273B1 (en) | Packet receiving method for use in a mobile terminal | |
CN112887416B (zh) | 发送保活包的频率调整方法及装置 | |
US7107345B2 (en) | Method for managing socket in mobile communication system | |
CN113110946A (zh) | 基于CSME私有协议的dsp通信系统及其方法 | |
CN112787828A (zh) | 一种应用程序的流量统计方法、设备、移动电子设备 | |
WO2022048348A1 (zh) | 数据通信方法及相关装置 | |
CN112968951B (zh) | 服务节点的连接方法及装置、存储介质和电子装置 | |
CN114846774B (zh) | 一种通信方法及装置 | |
CN114567912A (zh) | 运营商网络切换方法、系统、装置及存储介质 | |
US6556827B1 (en) | Method of managing a plurality of radio links in wireless local loop |
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 |