一种模块识别和通信端口自动分配的系统及方法与流程

文档序号:11829579阅读:341来源:国知局
一种模块识别和通信端口自动分配的系统及方法与流程
本发明涉及通信领域,尤其是涉及一种模块识别及通信端口自动分配的系统及方法。
背景技术
:针对目前电子产品设计,采用模块化设计、通用插槽的设计方法。模块化产品的设计达到以下几个目的:(1)模块的组合配置,就可以出创建不同需求的产品,便于用户扩展,满足客户的定制要求。(2)相似性的重用,既可以重用已有件和已有设计经验,也可以重用整个产品生命周期中的采购、物流、制造和服务资源。(3)减少产品工程复杂程度。采用模块化设计、通用插槽的设计方法,便于用户对功能扩展。但是对目前的电子产品,插槽功能固定,即对于每一个用户模块,只能插在固定的插槽上。通信端口固定,即对每一个用户模块,其通信端口固定,不具有对用户模块的通信端口进行实时分配和释放功能。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种便于扩展、便于诊断维修、便于恢复故障的模块识别及通信端口自动分配的系统及方法。本发明的目的可以通过以下技术方案来实现:一种模块识别及通信端口分配的系统,其特征在于,包括互联板、主控模块、用户模块和电源模块,所述的主控模块、用户模块和电源模块分别通过设置在互联板上的插槽与互联板连接,所述的主控模块包括ARM芯片,所述的用户模块包括CPLD,所述的主控模块的ARM芯片和用户模块的CPLD分别设有通信端口,所 述的ARM芯片和用户模块的CPLD通过通信端口进行通信;主控模块对插在互联板上的用户模块进行识别,获取用户模块的模块信息和通信端口信息,然后根据用户模块的模块信息和通信端口信息对不同类型的用户模块进行通信端口分配,并且进行通信测试,测试通过后,最后进行主控模块与用户模块之间的通信。所述的互联板上的插槽个数为8个。所述的主控模块、用户模块和电源模块任意插在互联板的多个插槽中。所述的主控模块包括处理器芯片和通信接口,所述的处理器芯片与通信接口连接。所述的通信接口包括UART接口和SPI接口。一种模块识别及通信端口分配的方法,包括以下步骤:1)主控模块对用户模块进行识别,具体包括以下步骤:11)主控模块周期性地通过译码器查询互联板上的插槽状态信息;12)如果插槽上插有用户模块,则将用户模块的标识信息发回到主控模块中,如果插槽上没有用户模块,则将表示空闲的信号返回给主控模块,并进行下一次的查询;2)主控模块进行通信端口分配,并与用户模块进行通信,具体包括以下步骤:21)主控模块创建一个资源链表,将用户模块的标识信息和通信接口的状态信息储存到资源链表中;22)主控模块通过查询资源链表,找出空闲的通信端口,根据模块类型,从空闲通信端口中分配适合的通信端口;23)主控模块将分配的通信端口的信息发送给用户模块的模块处理器,模块处理器确定分配到的端口类型并配置相应的通信端口;24)主控模块向分配的通信端口发送通信测试命令,如果接收到正确的响应,则通信端口分配成功,进行通信,否则,返回步骤21),重新分配端口。所述的资源链表中的项目包括插槽号、模块类型、分配的端口类型及端口号、模块的固件版本号、模块工作状态和对外端口的工作状态。与现有技术相比,本发明具有以下优点:一、便于扩展,电源模块、主控模块和用户模块可以插在互连板的任意插槽上,便于用户模块的扩展和操作。二、便于诊断维修,主控模块完全掌控插槽、模块及通信端口之间的对应关系,方便故障诊断、定位及维修。三、便于恢复故障,在有通信端口空闲的情况下,也可以实现对通信故障的模块进行通信端口重分配,从而,快速恢复故障模块功能。附图说明图1为本发明的系统结构示意图。图2为本发明中模块识别结构图。图3为通信端口分配功能框图。图4为通信口选择原理框图。其中,1、互联板,2、主控模块,3、用户模块,4、电源模块。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。实施例:如图1所示,该系统包含用于系统供电的电源模块4,用于模块识别以及通信端口分配的主控模块2,用于完成各种功能的用户模块3,用于连接各模块的互连板1。互连板1上安装8个通用插槽,而必配的电源模块4不需要通信接口,必配的主控模块2是与其他模块实现通信对端,也可以说是不需要通信接口,这样,8个通用插槽只需要6个通信接口就足够。主控模块2的ARM处理器内置有4个UART接口和2个SPI接口分配给插槽使用。这6个通信端口与插槽及模块之间也不设置强制的固定对应关系,因此,需要实现一种通信端口在模块之间进行自动分配的方案。模块识别方案每个模块上有4位模块标识信号(M0~M3)用来表示模块的种类。分配情况如表1所示:表1模块标识信号分配表M3M2M1M0模块种类0000电源模块0001主控模块20010用户模块310011用户模块320100用户模块330101用户模块340110用户模块350111用户模块361111无模块依据上表,每个模块上这4位信号都根据模块类型固定,不可人为更改。互连板插槽上用4位信号(Slot0~Slot3)来标示插槽号,Slot0~Slot3(Slot0为最低位,Slot3为最高位)的十进制数值即为对应的插槽号,通过以下机制就能识别出插槽上对应的模块。8个插槽选择/标识信号对应到每个插槽上只需该插槽号对应的那个信号就行,因此,插槽上只需一个信号引脚工作原理如下:如图2所示,Slot0~Slot3是主控模块2的输出信号,M0~M3是主控模块2的输入信号。主控模块2周期性地从0到互连板上最大插槽数-1向Slot0~Slot3发查询命令,每一个查询命令对应4/16译码器的一个输出端输出为低,这样,对应插槽上三态驱动器被选通,模块上模块标识选择开关分别设置在相应的模块种类状态,主控模块2的M0~M3信号上出现的就是该插槽上当前插上的模块的标识值。当读到的M0~M3信号上数值为1111时,表示该插槽上没插上模块,处于空闲状态。周期性的查询能够实时性地反映各插槽上模块的插拔状态,因此,能够实现模块的自动识别功能。通信端口分配方案图3为通信端口分配功能框图,主控模块2可分配给用户模块3的通信端口为UART0、UART2、UART3、UART4、SPI0和SPI1,主控模块2会用4个I/O口信号Psel0、Psel1、Ptype和Pset向用户模块3输出通信端口配置信号,通信端口配置如表2所示,Pset用于配置使能信号,高电平有效,当主控模块2配置好通信端口后,用户模块3的CPLD会根据主控模块2输出的Psel0、Psel1和Ptype的状态来选择主控模块2的通信端口,其实现原理如图4所示,图4为通信口选择原理框图,用户模块3CPLD内部包含一个锁存器、4路4信号分配器和4路2信号 分配器,主控模块2扫描某一插槽时,会将Ssel信号拉低,当插槽上有用户模块3,主控模块2会改变Psel0、Psel1和Ptype的状态,进行通信端口的分配,并将Pset拉高,然后置低,这样Psel0、Psel1和Ptype的状态就会被锁存器锁存,信道复用器会根据Psel0、Psel1和Ptype的状态去选择主控模块2的哪一路通信端口与用户模块3ARM控制器UART或SPI通信端口搭接,并通过Comm_port信号告诉用户模块3的ARM控制器分配的是UART还是SPI端口,以便用户模块3配置相应的通信端口,以此实现通信端口分配。例如当配置为UART0为通信端口时,4信道复用器分别将主控模块2的TXD0、RTS0、CTS0和RXD0分别搭接到用户模块3ARM控制器的RXD1、CTS1、RTS1和TXD1。并将Comm_port置高电平告诉用户模块3的ARM控制器分配的是UART通信端口。表2通信端口配置表NA:表示任意状态插槽上需增加Psel0、Psel1、Ptype及Pset4个信号,这4个信号都由主控模块2输出。Ptype–用于区分通信端口类型,Ptype为1(高电平),选用SPI,Ptype为0(低电平),选用UART口。Psel0、Psel1–用于选择具体的通信端口。Ptype为0,选用UART口时:Ptype为1,选用SPI口时:Psel00SPI01SPI1Pset–通信端口类型及通信端口号使能信号,高电平有效。Ssel–插槽选择/标识信号。Comm_Port–选择的通信口类型指示,用于模块处理器识别选择的通信口类型。通信口分配过程:(1)由插槽及模块自动识别过程可以检测出新插入的模块是在哪个插槽上及模块类型,并添加到一个资源链表中,资源链的项目是一个数据结构,包含插槽号、模块类型、分配的端口类型及端口号、模块的固件版本号、模块工作状态、对外端口的工作状态等信息;(2)通过查询资源链表,找出空闲的通信端口,根据模块类型,从空闲通信端口中分配最适合的通信端口;(3)根据分配的通信端口类型设置Ptype,根据分配的通信端口号设置Psel0、Psel1,设定Pset为高,根据模块所在的插槽号设置Slot0~Slot3,而后恢复Pset为低,Ptype、Psel0、Psel1信号上的信息就所存在模块中,通信端口类型及端口号就被选定。在该电路中,Pset信号采取适当的滤波处理措施,以防止锁存器误动作;(4)模块处理器读取Comm_Port信息,确定分配的端口类型,根据分配的通信端口类型配置相应的通信端口。(5)主控模块2向分配的通信端口发送通信测试命令,如果接收到正确的响应,则表明通信端口分配成功,否则,找到下一个空闲端口,按以上过程进行重新分配。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1