与无中央处理器单板通讯的方法及通讯设备技术领域
本发明涉及板间通讯技术领域,尤其涉及一种与无中央处理器单板通讯
的方法及通讯设备。
背景技术
在通讯设备中,一块主控板与多块接入单板一起实现通讯业务功能。接
入单板目前普遍使用的是有CPU单板,普通有CPU的接入单板的控制程序独
立运行在单板内部,主控板仅需要将控制指令发送至有CPU单板,就可以相
对简单地实现对单板的控制。
随着通讯设备业务发展的需要,无CPU单板应运而生。无CPU单板的最
大特点是:没有CPU、内存、FPGA(Field-Programmable Gate Array,现场
可编程逻辑门阵列)芯片等,大大降低了接入单板的硬件成本。但是,由于
无CPU单板没有CPU处理器,主控板无法与无CPU单板进行有效通讯。
发明内容
本发明的主要目的在于提供一种与无中央处理器单板通讯的方法及通讯
设备,旨在解决现有无CPU单板无法与主控板进行有效通讯的技术问题。
为实现上述目的,本发明提供的一种与无中央处理器CPU单板通讯的方
法,所述与无CPU单板通讯的方法包括:
当无CPU单板上电后,所述无CPU单板将包含其单板信息的上报报文发
送至主控板;
所述主控板为每个与其连接且处于上电状态的无CPU单板分配一个单板
代理进程;
所述主控板通过单板代理进程向对应的无CPU单板发送控制报文,以控
制对应的无CPU单板进行读处理或写处理。
优选地,所述上报报文和控制报文为添加预设虚拟局域网VLAN标识的
以太网报文。
优选地,所述控制报文包括写操作报文和读操作报文,
所述主控板通过单板代理进程向对应的无CPU单板发送控制报文,以控
制对应的所述无CPU单板进行读处理或写处理的步骤包括:
当所述主控板通过单板代理进程对所述无CPU单板进行写操作时,将包
含所述写操作对应配置值和配置地址的写操作报文发送至所述无CPU单板;
所述无CPU单板从接收到的所述写操作报文中解析出配置值和匹配地
址,并将该配置值配置到所述配置地址对应的芯片寄存器中;
当所述主控板的单板代理进程对所述无CPU单板进行读操作时,将包含
所述读操作对应的芯片寄存器地址的读操作报文发送至所述无CPU单板;
所述无CPU单板从接收到的所述读操作报文中解析出芯片寄存器地址,
并将所述芯片寄存器地址对应的目的信息封装成结果报文发送至所述主控
板;
所述主控板的单板代理进程接收所述无CPU单板发送的结果报文,其中,
所述结果报文为添加预设虚拟局域网VLAN标识的以太网报文。
优选地,所述无CPU单板从接收到的所述读操作报文中解析出芯片寄存
器地址,并将所述芯片寄存器地址对应的目的信息封装成结果报文发送至所
述主控板的步骤包括:
若当前没有接收到其它读操作报文且无正在封装的结果报文,则所述无
CPU单板接收所述主控板发送的所述读操作报文;
所述无CPU单板从接收到的所述读操作报文中解析出芯片寄存器地址,
并将所述芯片寄存器地址对应的目的信息封装成结果报文发送至所述主控
板。
优选地,所述主控板的单板代理进程接收所述无CPU单板发送的结果报
文的步骤包括:
所述主控板的单板代理进程判断所述无CPU单板发送的结果报文是否就
绪;
当所述无CPU单板发送的结果报文就绪时,所述主控板的单板代理进程
接收所述无CPU单板发送的结果报文。
优选地,所述读操作报文和结果报文中包含类型字段,
所述主控板的单板代理进程接收所述无CPU单板发送的结果报文的步骤
之后还包括:
所述主控板的单板代理进程根据接收的结果报文中的类型字段,确定该
结果报文的结果类型。
为实现上述目的,本发明还提供一种通讯设备,所述通讯设备包括无CPU
单板和主控板,
所述主控板包括:
进程分配模块,用于为每个与其连接且处于上电状态的无CPU单板分配
一个单板代理进程;
单板代理进程模块,用于向单板代理进程对应的无CPU单板发送控制报
文,以控制对应的无CPU单板进行读处理或写处理;
所述无CPU单板包括:
报文上报模块,用于当无CPU单板上电后,将包含该无CPU单板的单板
信息的上报报文发送至主控板;
报文通讯模块,用于接收所述主控板发送的控制报文,并根据接收的控
制报文进行读处理或写处理。
优选地,所述上报报文和控制报文为添加预设虚拟局域网VLAN标识的
以太网报文。
优选地,所述控制报文包括写操作报文和读操作报文,
所述单板代理进程模块包括第一写单元、第一读单元和结果处理单元,
所述第一写单元,用于当所述主控板通过单板代理进程对所述无CPU单
板进行写操作时,将包含所述写操作对应配置值和配置地址的写操作报文发
送至所述无CPU单板;
所述第一读单元,用于当所述主控板的单板代理进程对所述无CPU单板
进行读操作时,将包含所述读操作对应的芯片寄存器地址的读操作报文发送
至所述无CPU单板;
结果处理单元,用于接收所述无CPU单板发送的结果报文,其中,所述
结果报文为添加预设虚拟局域网VLAN标识的以太网报文
所述报文通讯模块包括第二写单元和第二读单元,
所述第二写单元,用于从接收到的所述写操作报文中解析出配置值和匹
配地址,并将该配置值配置到所述配置地址对应的芯片寄存器中;
所述第二读单元,用于从接收到的所述读操作报文中解析出芯片寄存器
地址,并将所述芯片寄存器地址对应的目的信息封装成结果报文发送至所述
主控板。
优选地,所述第二读单元还用于:
在当前没有接收到其它读操作报文且无正在封装的结果报文时,接收所
述主控板发送的所述读操作报文;
从接收到的所述读操作报文中解析出芯片寄存器地址,并将所述芯片寄
存器地址对应的目的信息封装成结果报文发送至所述主控板。
优选地,所述结果处理单元还用于:
判断所述无CPU单板发送的结果报文是否就绪;
当所述无CPU单板发送的结果报文就绪时,接收所述无CPU单板发送的
结果报文。
优选地,所述读操作报文和结果报文中包含类型字段,
所述单板代理进程模块还包括:
类型处理单元,用于根据接收的结果报文中的类型字段,确定该结果报
文的结果类型。
本发明通过主控板为每个与其连接且处于上电状态的无CPU单板分配一
个单板代理进程,然后主控板根据需求通过单板代理进程向对应的无CPU单
板发送控制报文,以控制对应的无CPU单板进行读处理或写处理,从而实现
无CPU单板与主控板之间的通讯。
附图说明
图1为本发明无CPU单板和主控板内部结构和控制关系示意图;
图2为本发明与无中央处理器接入单板通讯的方法第一实施例的流程示
意图;
图3为多线程同时读操作互斥访问的控制示意图;
图4为本发明通讯设备第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步
说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限
定本发明。
为了更好地理解本发明的技术方案,在此对本发明无CPU单板和主控板
的硬件结构进行简要介绍,参照图1和表1,在硬件上,无CPU单板上没有
设置CPU最小系统,也没有设置FPGA芯片,无CPU单板的CPLD(Complex
Programmable Logic Device,复杂可编程逻辑器件)芯片与背板(支撑无CPU
单板和主控板之间的相互连接、并为所支撑的无CPU单板和主控板提供电源
的电路板)的两路用于板间通讯的以太网链路直接连接,无CPU单板的CPLD
芯片在出厂时就已经烧录完毕;在软件上,无CPU单板无需运行软件程序和
FPGA程序,使用CPLD程序与主控板的软件程序配合实现接入单板的所有功
能。主控板上为每个无CPU单板启用一个单板代理进程,该进程实现有CPU
接入单板的大部分功能,对接入单板进行读写操作,由单板代理进程和接入
单板的CPLD芯片配合完成,具体过程描述如下:
1)主控板上的单板代理进程通过专用以太网报文格式的以太网报文,通
知无CPU单板应该读写的器件、偏移地址。备用主控板上的单板代理程序,
也同样在运行,只是不进行无CPU单板配置查询操作,也不进行与无CPU单
板的专用以太网报文收发。机架图、告警性能等信息是通过主控板的软件系
统同步到备用主控板上。
2)无CPU单板的CPLD芯片解析主控板的单板代理程序发过来的专用
以太网报文,匹配目标MAC地址后,按照专业以太网报文中预先定义的读写
操作类型和操作地址,转换成芯片专有接口如I2C进行操作。
3)无CPU单板的CPLD芯片在上电后,主动定期往主控板上报包含单
板类型的专用以太网报文。无CPU单板的CPLD芯片根据配置主控板的请求,
配置芯片器件寄存器和远程升级;根据主控板的请求,查询本单板的各种告
警性能,通过专用以太网报文,发送给主控板。
由于无CPU单板通讯报文为该单板的CPLD芯片处理,单板收发报文没
有CPU灵活,因此其报文格式为特定格式。为了能区分是普通S口报文还是
无CPU单板通讯报文,需要对无CPU单板通讯报文打上特定VLAN(即上
述专用以太网报文)。无CPU单板通讯报文采用特定的短报文格式,无法与S
口报文格式保持一致。
该报文由单板CPLD和主控CPU的单板代理进程处理:
(1)无CPU单板的报文封装/解封装在CPLD芯片内完成
(2)主控板的单板代理程序直接调用底层以太网口驱动进行报文封装和收
发包,主控板CPU需要改造以太网口驱动收包处理,添加VLAN。接收时需
要识别VLAN,将特定VLAN的报文投递到单板代理进程。
![]()
表1
本发明提供一种与无中央处理器单板通讯的方法,在本发明与无中央处
理器单板通讯的方法的第一实施例中,参照图2,该与无中央处理器单板通讯
的方法包括:
步骤S10,当无CPU单板上电后,无CPU单板将包含其单板信息的上报
报文发送至主控板;
单板信息包括单板类型、单板位置、单板工作状态等数据,当无CPU单
板上电后,该无CPU单板的CPLD芯片主动向主控板上报包含该无CPU单
板信息的上报报文,以使主控板能够及时更新与其连接的无CPU单板状态,
从而无CPU单板的CPLD芯片根据主控板的请求,配置芯片器件寄存器和远
程升级、根据主控板的请求,查询本板的各种告警性能,并通过上报报文(该
上报报文为添加了预设VLAN标识的以太网报文)发送至主控板,使无CPU
单板和主控板之间的通讯更为及时、有效。
步骤S20,主控板为每个与其连接且处于上电状态的无CPU单板分配一
个单板代理进程;
硬件上,无CPU单板上没有CPU最小系统,也没有FPGA(Field
Programmable Gate Array,现场可编程门阵列,),在无CPU单板上无须运行
软件程序和FPGA程序,使用CPLD芯片中的CPLD程序与主控板的单板代
理进程配合实现接入单板的所有功能。所以主控板为每个与其连接且处于上
电状态的无CPU单板启用和分配一个单板代理进程,该单板代理进程能够实
现有CPU接入单板的大部分功能,接入单板驱动、读写接入单板寄存器等功
能则由单板代理进程和无CPU单板CPLD芯片配合实现。
步骤S30,主控板通过单板代理进程向对应的无CPU单板发送控制报文,
以控制对应的无CPU单板进行读处理或写处理。
控制报文包括写操作报文和读操作报文,主控板通过单板代理进程向对
应的无CPU单板发送控制报文,以控制对应的无CPU单板进行读处理或写处
理,即主控板借用单板代理进程替代了接入单板的CPU,从而通过无CPU单
板和主控板之间的报文交互,主控板根据实际需求通过单板代理进程向无
CPU单板发送控制报文,以控制对应的无CPU单板进行读处理或写处理,即
实现了主控板与无CPU单板之间的通讯。
优选地,上报报文和控制报文为添加预设虚拟局域网VLAN标识的以太
网报文。由于无CPU单板接收的控制报文为单板CPLD芯片处理,无CPU
单板收发报文没有CPU灵活,因此其报文格式为特定格式。为了能区分是普
通S口报文还是无CPU单板的通讯报文(即控制报文),需要对无CPU单板
通讯报文打上特定VLAN。无CPU单板通讯报文采用特定的短报文格式,无
法与S口报文格式保持一致。是与S口报文不同的短报文格式。
在本实施例中,通过主控板为每个与其连接且处于上电状态的无CPU单
板分配一个单板代理进程,然后主控板根据需求通过单板代理进程向对应的
无CPU单板发送控制报文,以控制对应的无CPU单板进行读处理或写处理,
从而实现无CPU单板与主控板之间的通讯。
进一步地,在本发明与无CPU单板通讯的方法第一实施例的基础上,提
出与无CPU单板通讯的方法第二实施例,在第二实施例中,控制报文包括写
操作报文和读操作报文,步骤S30包括:
步骤S31,当主控板通过单板代理进程对无CPU单板进行写操作时,将
包含写操作对应配置值和配置地址的写操作报文发送至无CPU单板;
在主控板需要与无CPU单板进行通讯时(即主控板需要对无CPU单板进
行读操作或写操作时),判断主控板的单板代理程序对无CPU单板进行操作
的操作类型(操作类型包括读操作和写操作),从而确定主控板的单板代理进
程向无CPU单板发送控制报文的类型,即所发送的控制报文为写操作报文还
是读操作报文。
在主控板通过单板代理进程对无CPU单板进行写操作时,单板代理进程
将包含写操作对应配置值和配置地址的写操作报文(该报文为添加了VLAN
标识的以太网报文)发送至无CPU单板。其中,写操作是按照要求将正确的
配置值配置到无CPU单板的芯片寄存器中,相对比较简单,只要按照添加了
VLAN标识的以太网报文格式(如表1所示)将目的MAC(Media Access
Control,介质访问控制层)地址、VLAN(Virtual Local Area Network,虚拟
局域网)、单板目标地址、操作码等填写正确,通过在主控板运行的单板代理
进程将该添加了VLAN标识的以太网报文发送背板上的以太网端口,然后背
板会将该添加了VLAN标识的以太网报文转发至无CPU单板的CPLD芯片,
由该CPLD芯片解析报文,并将报文中的配置值配置到无CPU单板上的物理
层、光模块等芯片。
步骤S32,无CPU单板从接收到的写操作报文中解析出配置值和匹配地
址,并将该配置值配置到配置地址对应的芯片寄存器中;
参照图1,与普通的有CPU单板一样,主控板的单板代理进程也要对PHY
(物理层)芯片、时钟芯片、温度传感器、光模块(如SFP(Small Form
Pluggable,小型可插拔)光模块)、恢复时钟设置等进行初始化配置。只是所
有的初始化操作都要经过适配层,再转换成对应的以太网报文,在以太网报
文的净荷中携带该操作的芯片和地址。单板代理进程将这些命令转换成对接
入单板不同器件的槽位号、器件号、写地址、写数据、写操作码。单板代理
进程将同一次写操作的相关信息发给适配层进行以太网封装适配,将槽位号
转换成不同的目的MAC地址,VLAN,器件号、写地址、写数据、操作码都
封装到以太网净荷中。最后以太网报文通过主控板的L2交换芯片发送到对应
的无CPU单板上,无CPU单板CPLD解析报文并执行相应的器件写处理。
单板代理程序,接收主控板内部S口发过来的内部S口命令,可以设置
PHY的端口模式、1588的模式、恢复时钟等等。单板代理程序将命令转换成
对应单板的内部以太网包,发送给对应单板,处理与初始化过程的一样。
步骤S33,当主控板通过单板代理进程对无CPU单板进行读操作时,将
包含读操作对应的芯片寄存器地址的读操作报文发送至无CPU单板;
在主控板的单板代理进程对无CPU单板进行读操作时,即主控板的单板
代理进程需要查询无CPU单板的芯片寄存器的值,将包含读操作对应的芯片
寄存器地址的读操作报文发送至无CPU单板,具体包括两个步骤,第一步:
主控板上的单板代理进程发送读操作报文至无CPU单板以查询无CPU单板芯
片寄存器和其地址;第二步:无CPU单板的CPLD芯片构建查询的结果报文
回送给主控板的单板代理进程。对于第二步,主控板的单板代理进程需要启
用一个线程去接收无CPU单板发送过来的结果报文,并且第一步的发送读操
作报文操作与第二步的接收结果报文操作是分别在两个线程里进行的。
步骤S34,无CPU单板从接收到的读操作报文中解析出芯片寄存器地址,
并将芯片寄存器地址对应的目的信息封装成结果报文发送至主控板;
无CPU单板从接收到的读操作报文中解析出芯片寄存器地址,获取无
CPU单板芯片寄存器地址对应处的目的信息,将获取的目的信息封装成添加
了VLAN标识的以太网报文格式的结果报文,并将该结果报文及时发送至主
控板。
步骤S35,主控板的单板代理进程接收无CPU单板发送的结果报文,其
中,结果报文为添加预设虚拟局域网VLAN标识的以太网报文。
主控板的单板代理进程在接收到无CPU单板回发的结果报文时,以供后
续分类、解析或其它处理,从而完成主控板对无CPU单板的读操作。
在本实施例中,通过在主控板需要与无CPU单板进行通讯时,通过单板
代理进程向对应的无CPU单板发送控制报文,以控制对应的无CPU单板进行
读处理或写处理;当主控板的单板代理进程对无CPU单板进行写操作时,将
写操作报文发送至无CPU单板,以供无CPU单板解析写操作报文并将配置值
配置到配置地址对应的芯片寄存器中;当主控板的单板代理进程对无CPU单
板进行读操作时,将读操作报文发送至无CPU单板,以供无CPU单板根据解
析后的读操作报文回发结果报文,从而通过主控板与无CPU单板之间的报文
交互,主控板根据实际需求向无CPU单板发送读操作报文或写操作报文,无
CPU单板仅解析和封装报文,不对报文进行逻辑分析和处理,从而实现了主
控板对无CPU单板的读操作和写操作,即实现了主控板与无CPU单板的通讯。
进一步地,基于本发明无中央处理器单板通讯的方法的第二实施例,提
出与无中央处理器单板通讯的方法的第三实施例,在第三实施例中,步骤S34
包括:
步骤S341,若当前没有接收到其它读操作报文且无正在封装的结果报文,
则无CPU单板接收主控板发送的读操作报文;
步骤S342,无CPU单板从接收到的读操作报文中解析出芯片寄存器地址,
并将芯片寄存器地址对应的目的信息封装成结果报文发送至主控板。
参照图3,主控板启用一个单板代理进程对应与一个无CPU单板进行通
讯,并且单板代理进程启用一个线程负责向无CPU单板发送读操作报文、一
个线程负责接收无CPU单板的CPLD芯片发送的结果报文,当无CPU单板
的CPLD芯片同时接收到多个线程发送过来的读操作报文时,检测当前时刻
该无CPU单板是否已经接收了读操作报文且还在对该读操作报文进行处理
(即正在封装接收的读操作报文对应的结果报文),若当前时刻该无CPU单
板有正在封装的结果报文,则不接收主控板发送的读操作报文;若当前时刻
该无CPU单板没有正在封装的结果报文,则继续判断当前时刻该无CPU单板
是否同时接收到多个线程发送的读操作报文,若有多个线程发送读操作报文,
则根据预设规则(例如按照读操作报文的达到时间、报文长度等决定读操作
报文的优先级)选出并解析一个读操作报文。然后根据解析出的芯片寄存器
地址查找到对应的目的信息,并将目的信息封装呈结果报文发送至主控板(发
送解析的读操作报文的主控板)。
在本实施例中,在多个主控板线程同时向无CPU单板发送读操作报文时,
每次只允许接收并处理一个线程发送的读操作报文,即无CPU单板对读操作
报文的接收采用互斥原则,避免一次接收并处理多个读操作报文,从而避免
了因多个读操作报文处解析和处理耗费时间和处理流程不相同,而造成读操
作报文对应结果报文输出混乱的问题,从而较好地保证了主控板接收结果报
文的准确性。
进一步地,基于本发明无中央处理器单板通讯的方法的第二实施例,提
出与无中央处理器单板通讯的方法的第四实施例,在第四实施例中,步骤S35
包括:
步骤S351,主控板的单板代理进程判断无CPU单板发送的结果报文是否
就绪;
步骤S352,当无CPU单板发送的结果报文就绪时,主控板的单板代理进
程接收无CPU单板发送的结果报文。
由于主控板的单板代理进程向无CPU单板发送读操作报文后,该无CPU
单板的CPLD回复结果报文给主控板的单板代理进程需要一定时间,如果主
控板在接收到回复的结果报文之前就去获取缓存中结果报文的值就不是所需
的,所以这里需要一个延时保护处理。通过主控板的单板代理进程先判断无
CPU单板发送的结果报文是否就绪,即通过单板代理进程的专门用于接收结
果报文的线程在接收到读操作报文对应的结果报文时,对该结果报文打上就
绪标记(该标记用于表示结果报文准备就绪),当主控板的单板代理进程中用
于发送读操作报文的线程检测到结果报文上的就绪标记时,即当无CPU单板
发送的结果报文就绪时,主控板的单板代理进程接收无CPU单板发送的结果
报文;若当前时刻主控板的单板代理进程中用于发送读操作报文的线程未检
测到结果报文上的就绪标记,则等待预设等待时长(例如5ms),继续检测到
结果报文上的就绪标记,如此循环,直至主控板的单板代理进程中用于发送
读操作报文的线程未检测到结果报文上的就绪标记或者经过预设次数(例如
20次)的循环检测后提示通讯异常。
在本实施例中,通过主控板的单板代理进程判断无CPU单板发送的结果
报文是否就绪,当无CPU单板发送的结果报文就绪时,主控板的单板代理进
程接收无CPU单板发送的结果报文,防止主控板未接收到结果报文或接收不
正确的结果报文就继续执行后续步骤,提高了主控板与无CPU单板通讯的准
确性。
进一步地,基于本发明无中央处理器单板通讯的方法的第二实施例,提
出与无中央处理器单板通讯的方法的第五实施例,在第五实施例中,步骤S35
之后还包括:
步骤S36,主控板的单板代理进程根据接收的结果报文中的类型字段,确
定该结果报文的结果类型。
例如,由于查询PHY寄存器与查询CPLD寄存器的字节数不同,接收结
果报文后的处理也不同,这时就需要对结果报文进行分类处理,通过在读操
作报文中添加类型字段,无CPU单板解析读操作报文后继续保持其中的类型
字段,并将该类型字段一起封装至结果报文(即结果报文中也包含对应读操
作报文的类型字段)中,主控板的单板代理进程根据接收到的结果报文中的
类型字段,确定结果报文的结果类型,然后对不同结构类型的结果报文进行
批量、集中处理。其中,类型字段可以为以太网报文里的IVH字段,这个字
段在发送读操作报文时填入,无CPU单板的CPLD芯片回复结果报文里会自
动带上填入的IVH字段值,这样就可以区分不同的结果类型。
在本实施例中,通过在读操作报文中添加类型字段,从而在对应结果报
文中也添加类型字段,主控板的单板代理进程可以根据就结果报文的类型字
段对该结果报文进行分类,然后对同一类的结果报文进行批量集中处理,提
高了结果报文的处理速度,使使主控板与无CPU单板之间的通讯更加高效。
本发明还提供一种通讯设备,在本发明通讯设备的第一实施例中,参照
图4,通讯设备包括无CPU单板10(通讯设备可以包括多个无CPU单板,本
实施例以一个无CPU单板为例)和主控板20,
主控板20包括:
进程分配模块21,用于为每个与其连接且处于上电状态的无CPU单板分
配一个单板代理进程;
硬件上,无CPU单板上没有CPU最小系统,也没有FPGA(Field
Programmable Gate Array,现场可编程门阵列,),在无CPU单板上无须运行
软件程序和FPGA程序,使用CPLD芯片中的CPLD程序与主控板的单板代
理进程配合实现接入单板的所有功能。所以主控板的进程分配模块21为每个
与其连接且处于上电状态的无CPU单板启用和分配一个单板代理进程,该单
板代理进程能够实现有CPU接入单板的大部分功能,接入单板驱动、读写接
入单板寄存器等功能则由单板代理进程和无CPU单板CPLD芯片配合实现。
单板代理进程模块22,用于向单板代理进程对应的无CPU单板发送控制
报文,以控制对应的无CPU单板进行读处理或写处理;
控制报文包括写操作报文和读操作报文,主控板通过单板代理进程模块
22控制单板代理进程向对应的无CPU单板发送控制报文,以控制对应的无
CPU单板进行读处理或写处理,即主控板借用单板代理进程替代了接入单板
的CPU,从而通过无CPU单板和主控板之间的报文交互,主控板根据实际需
求通过单板代理进程向无CPU单板发送控制报文,以控制对应的无CPU单板
进行读处理或写处理,即实现了主控板与无CPU单板之间的通讯。
无CPU单板10包括:
报文上报模块11,用于当无CPU单板上电后,将包含该无CPU单板的
单板信息的上报报文发送至主控板;
单板信息包括单板类型、单板位置、单板工作状态等数据,当无CPU单
板上电后,该无CPU单板的报文上报模块11通过CPLD芯片主动向主控板
上报包含该无CPU单板信息的上报报文,以使主控板能够及时更新与其连接
的无CPU单板状态,从而无CPU单板的CPLD芯片根据主控板的请求,配
置芯片器件寄存器和远程升级、根据主控板的请求,查询本板的各种告警性
能,并通过上报报文(该上报报文为添加了预设VLAN标识的以太网报文)
发送至主控板,使无CPU单板和主控板之间的通讯更为及时、有效。
报文通讯模块12,用于接收主控板发送的控制报文,并根据接收的控制
报文进行读处理或写处理。
优选地,上报报文和控制报文为添加预设虚拟局域网VLAN标识的以太
网报文。由于无CPU单板接收的控制报文为单板CPLD芯片处理,无CPU
单板收发报文没有CPU灵活,因此其报文格式为特定格式。为了能区分是普
通S口报文还是无CPU单板的通讯报文(即控制报文),需要对无CPU单板
通讯报文打上特定VLAN。无CPU单板通讯报文采用特定的短报文格式,无
法与S口报文格式保持一致。是与S口报文不同的短报文格式。
在本实施例中,通过主控板20的进程分配模块21为每个与其连接且处
于上电状态的无CPU单板10分配一个单板代理进程,然后主控板20的单板
代理进程模块22根据需求通过单板代理进程向对应的无CPU单板发送控制
报文,以控制对应的无CPU单板10进行读处理或写处理,从而实现无CPU
单板10与主控板20之间的通讯。
进一步地,在本发明通讯设备第一实施例的基础上,提出通讯设备第二
实施例,在第二实施例中,控制报文包括写操作报文和读操作报文,
单板代理进程模块22包括第一写单元221、第一读单元222和结果处理
单元223,
第一写单元221,用于当主控板通过单板代理进程对无CPU单板进行写
操作时,将包含写操作对应配置值和配置地址的写操作报文发送至无CPU单
板;
在主控板需要与无CPU单板进行通讯时(即主控板需要对无CPU单板进
行读操作或写操作时),判断主控板的单板代理程序对无CPU单板进行操作
的操作类型(操作类型包括读操作和写操作),从而确定主控板的单板代理进
程向无CPU单板发送控制报文的类型,即所发送的控制报文为写操作报文还
是读操作报文。
在主控板通过单板代理进程对无CPU单板进行写操作时,第一写单元221
控制单板代理进程将包含写操作对应配置值和配置地址的写操作报文(该报
文为添加了VLAN标识的以太网报文)发送至无CPU单板。其中,写操作是
按照要求将正确的配置值配置到无CPU单板的芯片寄存器中,相对比较简单,
只要按照添加了VLAN标识的以太网报文格式(如表1所示)将目的MAC
(Media Access Control,介质访问控制层)地址、VLAN(Virtual Local Area
Network,虚拟局域网)、单板目标地址、操作码等填写正确,通过在主控板
运行的单板代理进程将该添加了VLAN标识的以太网报文发送背板上的以太
网端口,然后背板会将该添加了VLAN标识的以太网报文转发至无CPU单板
的CPLD芯片,由该CPLD芯片解析报文,并将报文中的配置值配置到无CPU
单板上的物理层、光模块等芯片。
第一读单元222,用于当主控板通过单板代理进程对无CPU单板进行读
操作时,将包含读操作对应的芯片寄存器地址的读操作报文发送至无CPU单
板;
在主控板的单板代理进程对无CPU单板进行读操作时,即主控板的单板
代理进程需要查询无CPU单板的芯片寄存器的值,第一读单元222将包含读
操作对应的芯片寄存器地址的读操作报文发送至无CPU单板,具体包括两个
步骤,第一步:主控板上的第一读单元222控制单板代理进程发送读操作报
文至无CPU单板以查询无CPU单板芯片寄存器和其地址;第二步:无CPU
单板的CPLD芯片构建查询的结果报文回送给主控板的单板代理进程。对于
第二步,主控板的单板代理进程需要启用一个线程去接收无CPU单板发送过
来的结果报文,并且第一步的发送读操作报文操作与第二步的接收结果报文
操作是分别在两个线程里进行的。
结果处理单元223,用于接收无CPU单板发送的结果报文,其中,结果
报文为添加预设虚拟局域网VLAN标识的以太网报文;
主控板的结果处理单元223控制单板代理进程在接收到无CPU单板回发
的结果报文时,以供后续分类、解析或其它处理,从而完成主控板对无CPU
单板的读操作。
报文通讯模块12包括第二写单元121和第二读单元122,
第二写单元121,用于从接收到的写操作报文中解析出配置值和匹配地
址,并将该配置值配置到配置地址对应的芯片寄存器中;
参照图1,与普通的有CPU单板一样,主控板的单板代理进程也要对PHY
(物理层)芯片、时钟芯片、温度传感器、光模块(如SFP(Small Form
Pluggable,小型可插拔)光模块)、恢复时钟设置等进行初始化配置。只是所
有的初始化操作都要经过适配层,再转换成对应的以太网报文,在以太网报
文的净荷中携带该操作的芯片和地址。第二写单元121控制单板代理进程将
这些命令转换成对接入单板不同器件的槽位号、器件号、写地址、写数据、
写操作码。第二写单元121控制单板代理进程将同一次写操作的相关信息发
给适配层进行以太网封装适配,将槽位号转换成不同的目的MAC地址,
VLAN,器件号、写地址、写数据、操作码都封装到以太网净荷中。最后以太
网报文通过主控板的L2交换芯片发送到对应的无CPU单板上,无CPU单板
CPLD解析报文并执行相应的器件写处理。
单板代理程序,接收主控板内部S口发过来的内部S口命令,可以设置
PHY的端口模式、1588的模式、恢复时钟等等。单板代理程序将命令转换成
对应单板的内部以太网包,发送给对应单板,处理与初始化过程的一样。
第二读单元122,用于从接收到的读操作报文中解析出芯片寄存器地址,
并将芯片寄存器地址对应的目的信息封装成结果报文发送至主控板。
无CPU单板的第二读单元122从接收到的读操作报文中解析出芯片寄存
器地址,获取无CPU单板芯片寄存器地址对应处的目的信息,将获取的目的
信息封装成添加了VLAN标识的以太网报文格式的结果报文,并将该结果报
文及时发送至主控板。
在本实施例中,通过在主控板需要与无CPU单板进行通讯时,通过单板
代理进程模块22向对应的无CPU单板发送控制报文,以控制对应的无CPU
单板进行读处理或写处理;当主控板的单板代理进程对无CPU单板进行写操
作时,第一写单元221将写操作报文发送至无CPU单板,以供无CPU单板的
第二写单元121解析写操作报文并将配置值配置到配置地址对应的芯片寄存
器中;当主控板的单板代理进程对无CPU单板进行读操作时,第一读单元222
将读操作报文发送至无CPU单板,以供无CPU单板的第二读单元122根据解
析后的读操作报文回发结果报文,从而通过主控板与无CPU单板之间的报文
交互,主控板根据实际需求向无CPU单板发送读操作报文或写操作报文,无
CPU单板仅解析和封装报文,不对报文进行逻辑分析和处理,从而实现了主
控板对无CPU单板的读操作和写操作,即实现了主控板与无CPU单板的通讯。
进一步地,基于本发明通讯设备的第二实施例,提出通讯设备的第三实
施例,在第三实施例中,第二读单元122还用于:
在当前没有接收到其它读操作报文且无正在封装的结果报文时,接收主
控板发送的读操作报文;
从接收到的读操作报文中解析出芯片寄存器地址,并将芯片寄存器地址
对应的目的信息封装成结果报文发送至主控板。
参照图3,主控板启用一个单板代理进程对应与一个无CPU单板进行通
讯,并且单板代理进程启用一个线程负责向无CPU单板发送读操作报文、一
个线程负责接收无CPU单板的CPLD芯片发送的结果报文,当无CPU单板
的CPLD芯片同时接收到多个线程发送过来的读操作报文时,检测当前时刻
该无CPU单板是否已经接收了读操作报文且还在对该读操作报文进行处理
(即正在封装接收的读操作报文对应的结果报文),若当前时刻该无CPU单
板有正在封装的结果报文,则第二读单元122不接收主控板发送的读操作报
文;若当前时刻该无CPU单板没有正在封装的结果报文,则第二读单元122
继续判断当前时刻该无CPU单板是否同时接收到多个线程发送的读操作报
文,若有多个线程发送读操作报文,则第二读单元122根据预设规则(例如
按照读操作报文的达到时间、报文长度等决定读操作报文的优先级)选出并
解析一个读操作报文。然后第二读单元122根据解析出的芯片寄存器地址查
找到对应的目的信息,并将目的信息封装呈结果报文发送至主控板(发送解
析的读操作报文的主控板)。
在本实施例中,在多个主控板线程同时向无CPU单板发送读操作报文时,
每次只允许接收并处理一个线程发送的读操作报文,即无CPU单板对读操作
报文的接收采用互斥原则,避免一次接收并处理多个读操作报文,从而避免
了因多个读操作报文处解析和处理耗费时间和处理流程不相同,而造成读操
作报文对应结果报文输出混乱的问题,从而较好地保证了主控板接收结果报
文的准确性。
进一步地,基于本发明通讯设备的第二实施例,提出通讯设备的第四实
施例,在第四实施例中,结果处理单元223还用于:
判断无CPU单板发送的结果报文是否就绪;
当无CPU单板发送的结果报文就绪时,接收无CPU单板发送的结果报文。
由于主控板的单板代理进程向无CPU单板发送读操作报文后,该无CPU
单板的CPLD回复结果报文给主控板的单板代理进程需要一定时间,如果主
控板在接收到回复的结果报文之前就去获取缓存中结果报文的值就不是所需
的,所以这里需要一个延时保护处理。通过主控板的结果处理单元223先判
断无CPU单板发送的结果报文是否就绪,即通过单板代理进程的专门用于接
收结果报文的线程(结果处理单元223控制该线程)在接收到读操作报文对
应的结果报文时,对该结果报文打上就绪标记(该标记用于表示结果报文准
备就绪),当主控板的单板代理进程中用于发送读操作报文的线程(第一读单
元222控制该线程)检测到结果报文上的就绪标记时,即当无CPU单板发送
的结果报文就绪时,主控板的结果处理单元223接收无CPU单板发送的结果
报文;若当前时刻主控板的单板代理进程中用于发送读操作报文的线程未检
测到结果报文上的就绪标记,则结果处理单元223等待预设等待时长(例如
5ms),继续检测到结果报文上的就绪标记,如此循环,直至主控板的单板代
理进程中用于发送读操作报文的线程未检测到结果报文上的就绪标记或者经
过预设次数(例如20次)的循环检测后提示通讯异常。
在本实施例中,通过主控板的结果处理单元223判断无CPU单板发送的
结果报文是否就绪,当无CPU单板发送的结果报文就绪时,主控板的结果处
理单元223接收无CPU单板发送的结果报文,防止主控板未接收到结果报文
或接收不正确的结果报文就继续执行后续步骤,提高了主控板与无CPU单板
通讯的准确性。
进一步地,基于本发明通讯设备的第二实施例,提出与通讯设备的第五
实施例,在第五实施例中,读操作报文和结果报文中包含类型字段,
单板代理进程模块22还包括:
类型处理单元224,用于根据接收的结果报文中的类型字段,确定该结果
报文的结果类型。
例如,由于查询PHY寄存器与查询CPLD寄存器的字节数不同,接收结
果报文后的处理也不同,这时就需要对结果报文进行分类处理,通过在读操
作报文中添加类型字段,无CPU单板解析读操作报文后继续保持其中的类型
字段,并将该类型字段一起封装至结果报文(即结果报文中也包含对应读操
作报文的类型字段)中,主控板的类型处理单元224根据接收到的结果报文
中的类型字段,确定结果报文的结果类型,然后对不同结构类型的结果报文
进行批量、集中处理。其中,类型字段可以为以太网报文里的IVH字段,这
个字段在发送读操作报文时填入,无CPU单板的CPLD芯片回复结果报文里
会自动带上填入的IVH字段值,这样就可以区分不同的结果类型。
在本实施例中,通过在读操作报文中添加类型字段,从而在对应结果报
文中也添加类型字段,主控板的类型处理单元224可以根据就结果报文的类
型字段对该结果报文进行分类,然后对同一类的结果报文进行批量集中处理,
提高了结果报文的处理速度,使使主控板与无CPU单板之间的通讯更加高效。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述
实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通
过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的
技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体
现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光
盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务
器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是
利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间
接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。