发明内容
本发明所要解决的技术问题是提供一种可简化主控卡读取业务卡类型流程的主控卡读取业务线卡类型的装置和方法,从而可节省业务线卡的CPU最小系统电路,降低整个框式设备成本。
为了解决上述技术问题,本发明采用了以下技术方案:
一种主控卡读取业务线卡类型的装置,包括一个主控卡,一个背板,至少一个被读取线卡类型的业务卡,所述主控卡包含有CPU、CPLD(ComplexProgrammableLogicDevice复杂可编程逻辑器件)、SLOT_ID槽位信号、数据交换中心,所述每个被读取线卡类型的业务卡包含一个CPLD;所述背板是用于连接主控卡与每个线卡的业务数据、管理信息通道;
所述主控卡的CPLD通过扩展出的本地总线Localbus与主控卡的CPU的Localbus接口相连,所述主控卡的CPLD通过其GPIO(GeneralPurposeInputOutput,通用输入/输出)接口扩展出4位数据总线Data_bus[3:0],3位地址总线Address_bus[2:0],1位Card_id_oe线卡类型读使能信号,所述主控卡的CPLD扩展出Data_bus[3:0]数据总线,Address_bus[2:0]地址总线,Card_id_oe线卡类型读使能信号与每个业务线卡CPLD扩展出的Data_bus[3:0]数据总线,Address_bus[2:0]地址总线,Card_id_oe线卡类型读使能信号相连,所述主控卡的Slot_id由所述主控卡的CPLD扩展出对应槽位数量的信号;所述主控卡的数据交换模块承载整个数据交换中心;所述被读取的业务线卡的CPLD通过其GPIO扩展出对应槽位和线卡类型数量的Data_bus[3:0]数据总线,Address_bus[2:0]地址总线,Card_id_oe线卡类型读使能信号。
所述业务线卡的CPLD扩展出的地址总线,数据总线,读使能信号数量与所述主控卡的CPLD扩展地址总线,数据总线,读使能信号数量同等;并且主控卡的CPLD作为主,业务线卡的CPLD作为从,两者之间在物理上的连接通过所扩展出的总线,信号线一一对应相连接。
所述主控卡的CPLD选用ALTERA公司的EPM570T144C5N芯片,业务线卡的CPLD选用ALTERA公司的EPM3128ATC100芯片;
一种主控卡读取业务线卡类型的方法,包括以下步骤:
步骤301,主控卡的CPU同时发送被读取业务线卡槽位地址和业务线卡类型的读使能命令;
步骤302,所有在位的业务线卡的CPLD通过其扩展的地址总线接收主控卡CPLD发送的槽位地址;
步骤303,所有在位的业务线卡的CPLD判断接收的槽位地址与本槽位地址进行异或运算是否为0;
步骤304,被读取的业务线卡的CPLD判断所接的读使能信号是否为低电平;
步骤305,被读取的业务线卡Card_id类型值传输至被读取业务线卡CPLD的寄存器Data_bus[3:0];
步骤306,主控卡的CPLD接收来自业线卡CPLD寄存器的Data_bus[3:0];
步骤307,主控卡的CPU通过Localbus总线读取所述主控卡CPLD中寄存值;
步骤308,CPU根据业务线卡类型Card_id查询真值表;
步骤309,被读取业务线卡CPLD的寄存器Data_bus[3:0]=4'zzzz;
从而实现主控卡读取业务线卡类型的方法。
步骤301中,所述的主控卡的CPU通过片选信号选中所述主控卡的CPLD,采用有限状态机方式访问所述主控卡的CPLD,所述主控卡的CPLD和各业务线卡的CPLD都采用硬件描述语言VerilogHDL编程语言实现信息的传输。
本发明的主控卡和业务线卡均采用可编程逻辑器件进行相互间通信,快速响应,控制灵活方便,节省了业务线卡CPU最小系统电路,降低了整个框式设备的成本。
在结合附图阅读本发明的实施方式的详细描述后,本发明的特点和优点将变得更加清楚。
具体实施方式
下面以一个实施方式对本发明作进一步详细的说明,但应当说明,本发明的保护范围不仅仅限于此。
如图2所示,一种主控卡读取线卡类型的装置,包括:一个主控卡、一个背板和至少一个被读取类型的业务线卡,主控卡包含有CPU、CPLD芯片和框式通信设备所对应的业务线卡数量槽位号SLOT_ID及数据交换处理模块;每个被读取类型的线卡包含一个CPLD、业务线卡类型Card_id和数据通信模块。主控卡的CPLD通过扩展出的Localbus总线与主控卡CPU相连,主控卡的CPLD通过其GPIO扩展出4位数据总线Data_bus[3:0],3位地址总线Address_bus[2:0]和1位读使能Card_id_oe信号。每个线卡的CPLD通过GPIO扩展出所述主控卡的CPLD同等数量的数据总线4位Data_bus[3:0],3位地址总线Address_bus[2:0]和1位读使能Card_id_oe信号,每个线卡的CPLD扩展出的数据总线、地址总线、读使能信号与所述主控卡的CPLD扩展出的数据总线、地址总线、读使能信号一一对应相连接,每个业务线卡还包含有已定义的本线卡类型4位Card_id,背板是用于连接主控卡与每个线卡的业务数据、管理信息通道。
如图3所示,一种主控卡读取业务线卡类型的方法,包括以下步骤:
步骤301,主控卡的CPU同时发送被读取业务线卡槽位地址和业务线卡类型的读使能命令;
所述主控卡的CPLD通过Localbus接收来自主控卡CPU的读取线卡类型的命令并通过其扩展的3位地址总线Address_bus[2:0],4位数据总线Data_bus[3:0],读使能信号1位Card_id_oe转发至所有已在位线卡的CPLD。
所述本地总线localbus包含有数据信号线、地址信号线、片选信号线(低电平有效),读、写使能信号线(低电平有效)。
数据信号线至少8位,地址信号线至少5位;
所述主控卡的CPLD扩展3位地址线Address_bus[2:0],用于主控卡传输业务线卡槽位地址信息,对应主控卡的CPLD寄存器Slot_Add_REG[6..4],其地址信息为001,010,011...对应槽位号SLOT1,SLOT2,SLOT3...
所述主控卡的CPLD扩展出4位数据线[3:0],用于主控卡与每个业务线卡之间的数据传输,对应主控卡的CPLD寄存器Slot_Data_Reg[3:0];
所述主控卡的1位Card_id_oe信号线,用于主控卡对业务线卡读取的使能信号,低电平有效,对应主控卡的CPLD寄存器Slot_Add_REG[3];
所述主控卡的CPLD和各业务线卡的CPLD都采用硬件描述语言VerilogHDL编程语言实现信息的传输;
所述主控卡的CPU通过片选信号选中所述主控卡的CPLD,采用有限状态机方式访问所述主控卡的CPLD,通过Localbus地址总线被写入地址“07”把被读取线卡类型的地址通过CPU_Data[6:0](CPU_Data[6:0]表示主控卡的CPU连接CPLD数据总线所对应的寄存器)写入Slot_Add_REG[6:0]寄存器;
所述步骤301VerilogHDL语言实现如下:
always(negedgeResetorposedgeEPLD_Clock)
EPLD_Write:
case(CPU_Add)
6'h07:beginSlot_Add_REG[6:0]<=CPU_Data[6:0];
CPU写入被读取的槽位地址保存在寄存器Slot_Add_REG[6:0]EPLD_State<=EPLD_Idle;
assignSlot_Add_Wire=Slot_Add_REG;
将寄存器中的Slot_Add_REG[6:0]值写入外部寄存器到Slot_Add_Wire
assignAddress_[2:0]=Slot_Add_Wire[6:4];
写入被读取的线卡槽位号地址
assignCard_id_oe=Slot_Add_Wire[3];
写入业务线卡类型读使能命令
步骤302、所有在位的业务线卡的CPLD通过其扩展的地址总线接收主控卡CPLD发送的槽位地址;
步骤303、所有在位的业务线卡的CPLD判断接收的槽位地址与本槽位地址进行异或运算是否为0;若为0,则表示主控卡的CPU读取的是本业务线卡类型,若不为0,则表示不是读取本业务线卡类型,执行309步骤;
VerilogHDL语言实现如下:
assignSlot_Compare=(SLOT_ID^Address_bus[2:0]);
主控卡的CPLD写入的槽位地址与线卡的地址进行异或运算;
步骤304,被读取的业务线卡的CPLD判断所接的读使能信号是否为低电平;若为低电平,则表示主控卡发送至被读取业务线卡类型的读使能信号有效,若不为0,则执行309步骤;
assignControl_Switch_0=(Card_id_oe==0)?Slot_Compare:1'b1;
步骤305,被读取的业务线卡Card_id类型值传输至被读取业务线卡CPLD的寄存器Data_bus[3:0];
assignData_bus[3:0]=(Control_Switch_0==0)?Card_id:4'bzzzz;
步骤306,主控卡的CPLD接收来自业线卡CPLD寄存器的Data_bus[3:0];
步骤307,主控的CPU通过Localbus总线读取所述主控卡CPLD中寄存值;
所述主控卡的CPU通过Localbus总线发送读取所述主控卡的CPLD寄存器
CPU_Data_REG[3:0]命令,通过主控卡与所述主控卡的CPLD连接的地址总线读取“08”地址,把业务线卡CPLD的Data-_bus[3:0]传输送到主控卡的数据总线寄存器CPU_Data_REG[3:0]里。
步骤308,CPU根据业务线卡类型Card_id查询真值表;
业务线卡类型Card_id真值表如下:
Card_id |
线卡类型 |
0000 |
A类型业务线卡 |
0001 |
B类型业务线卡 |
0010 |
C类型业务线卡 |
... |
... |
zzzz |
NULL |
根据Card_id值定义总线位宽,例如4位总线位宽可有16种业务线卡类型定义选择,其总类型数量计算公式为2的N次方,N表示位宽数。
步骤309,被读取业务线卡CPLD的寄存器Data_bus[3:0]=4'zzzz;
所述的业务线卡Card_id类型值为4'zzzz表示高阻状态。
通过上述方法,从而实现主控卡读取业务线卡类型。
本发明的主控卡和业务线卡均采用可编程逻辑器件进行相互间通信,快速响应,控制灵活方便,节省了业务线卡CPU最小系统电路,降低了整个框式设备的成本。
虽然结合附图描述了本发明的实施方式,但是本领域的技术人员可以在所附权利要求的范围之内作出各种变形或修改,只要不超过本发明的权利要求所描述的保护范围,都应当在本发明的保护范围之内。