[0035] 本发明的核心思想为:提供一种串口主从通信控制系统的通信通道选通方法,通过定义控制命令的一种编码格式,同时定义一种同频时钟的时钟频率,使得所述控制命令可以适用绝大多数通信应用场景,使设计具有重用性、可移植性以及通用性。
[0036] 下面结合附图和具体的实施例对本发明作进一步的说明,但是不作为本发明的限定。
[0037] 实施例一:
[0038] 本实施例的通信通道选通方法,应用于如图1所示的串口主从通信控制系统,该系统包括一个主控卡10以及多个从卡11(从卡1~从卡n,n为大于等于1的自然数),每个从卡具有多个串口,主控卡10以及从卡11的串口之间通过一背板12连接。
[0039] 在主控卡10以及从卡11之间进行通信的时候,主控卡10发送一个控制命令给从卡11,从卡11根据控制命令打开相应从卡的串行端口,以实现主控卡10和从卡11之间的通信。
[0040] 具体的,本实施例中的控制命令采用8bit编码命令,控制命令的编码格式如图2所示,包括槽位号(SLOT_ID)以及端口号(PORT_ID/CMD)。
[0041] 在8bit编码命令中,如图3所示,高五位定义为SLOT_ID[4:0],用来定义从卡的槽位信息和特殊命令(关闭命令)。具体的,当高五位的值为5'b00001~5'b11000时,指示为从卡的槽位号(支持槽位1-24共24个槽位);值为5'b00000时指示为特殊命令,值为5'b11001~5'b11111时该控制命令不可用。
[0042] 如图4所示,当高五位SLOT_ID[4:0]的值为5'b00001~5'b11000,即从卡11的槽位号信息时,低三位定义为PORT_ID[2:0],指示为需要打开的该从卡槽位(例如高五位的值为00001,则定义到从卡1的槽位)的串行端口号信息。低三位总共可以支持8路串口,本实施例支持6路,因此当低三位的值为3'b000或3'b111时,保留该值对应的控制命令,以供未来扩展用;当低三位的值为3'b001~3'b110时指示为需要打开的相应从卡的串行端口号(1-6)。
[0043] 如图5所示,当高五位SLOT_ID[4:0]值为5'b00000,即指示为特殊命令(关闭命令)时,低三位不再指示从卡的串行端口号,而是定义为CMD[2:0],指示为关闭命令。具体的,当低三位CMD[2:0]的值为3'b000时该控制命令不可用;当低三位CMD[2:0]的值为3'b001~3'b110时,保留该值对应的控制命令,以供未来扩展用;当低三位的值为3'b111时,指示为关闭所有从卡的串行端口。
[0044] 本实施例之所以采用8bit编码命令,且高五位用于指示槽位号(SLOT_ID[4:0]),低三位用于指示端口号(PORT_ID[2:0])或者关闭命令(CMD[2:0]),原因在于:
[0045] 1)通信类设备由于需要放入19英寸机柜内,所以宽度受限,绝大多数系统支持槽位数在20以内,本实施例支持24路从卡槽位,足以满足设计需求;
[0046] 2)从卡一般需要监控的调试串口在4路以内,本实施例支持6路,最大能支持到8路,足以满足设计需求;
[0047] 3)通信设备数据位一般采用8bit或16bit数据位接口,本实施例采用8bit,符合通用规范,可以减少资源的浪费和控制复杂度。
[0048] 实施例二:
[0049] 基于上述实施例一,本发明还定义了主控卡10与从卡11之间的同频时钟的时钟频率,本实施例选用该同频时钟的时钟频率为25MHZ,选用此频率可以带来以下益处:
[0050] 1)目前业界绝大部分现场可编程逻辑门阵列(FPGA)支持25MHZ频率的开关速度,选择此频率不会限制FPGA的选型;
[0051] 2)25MHZ频点在通信设备上大量使用,使用25MHZ频点不需要提供额外的晶体振荡器,不会增加系统设计的复杂度和成本;
[0052] 3)串口通信波特率通用的是从110~115200,使用25MHZ频率检测脉宽编码已能够满足绝大多数应用场景,不需要使用更高的频率(更高的频率意味着更高的成本和功耗)。由标准可知需要支持的最大计数为8'b11000_111(199),25MHZ一个时钟周期为40ns,所以此编码最大脉冲宽度为199*40ns=7.96us;串口波特率最高的是115200,所以最小的串口位宽为1s/115200=8.68us;而由前发明可知,此脉冲宽度应低于串口的一个bit位宽,
7.96us<8.68us,满足设计要求。
[0053] 实施例三:
[0054] 基于实施例一的通信通道选通方法以及实施例二的时钟频率,本发明的串口主从通信控制系统中,从卡11包括8bit脉宽计数器110,解码器111以及选通控制器112。具体的,参照图6所示,从卡11的工作过程为,首先从卡11接收主控卡10输出的控制命令,在检测到BP_TXD的上升边沿时,8bit脉宽计数器110清零;接着,8bit脉宽计数器110根据25MHZ的时钟周期开始计数,在检测到BP_TXD的下降边沿或者计满时,8bit脉宽计数器110停止计数;之后,译码器111对8bit脉宽计数器110的计数结果(即控制命令)进行解码,解码的具体过程为:
[0055] 若高五位SLOT_ID[4:0]的值为5'b11001~5'b11111时,表示串口数据不可用,从卡11重新开始检测BP_TXD的上升边沿;
[0056] 若高五位SLOT_ID[4:0]的值为5'b00000时,判定低三位CMD[2:0]的值是否为3'b111,若是,则关闭从卡所有串口;若不是,则从卡11重新回到检测BP_TXD的上升边沿步骤;
[0057] 若高五位SLOT_ID[4:0]的值为5'b00001~5'b11000时,判定SLOT_ID[4:0]是否等于本槽位号(也即判定打开的相应从卡是否正确),若是,进一步判定低三位PORT_ID[2:0]指示的端口号信息,并且由选通控制器112打开相应的串口;若不是,则表示打开的相应从卡与SLOT_ID[4:0]指示的槽位号不相符,则关闭该从卡的所有串口。
[0058] 通过上述步骤,对应的从卡的对应串口被打开,即选通了一条主从卡之间的通信通道。
[0059] 综上所述,本发明公开了一种串口主从通信控制系统的通信通道选通方法,基于串口主从通信,制定控制命令的8bit编码标准协议,设置脉宽调制标准,定义SLOT_ID和CMD,PORT_ID字段意义,使设计有更好的适用性,也预留了未来的扩展特性,以满足通用、高效和低成本的优点;同时本发明基于串口主从通信应用,定义了同频时钟的时钟频率,使得设计在满足编码标准的前提下,不会增加成本和复杂度。本发明定义的SLOT_ID、CMD以及PORT_ID字段,这些字段的位宽也可以基于其他应用进行相应的调整。
[0060] 本领域技术人员应该理解,本领域技术人员在结合现有技术以及上述实施例可以实现所述变化例,在此不做赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
[0061] 以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。