单串口控制多处理器的方法及装置制造方法

文档序号:6621933阅读:175来源:国知局
单串口控制多处理器的方法及装置制造方法
【专利摘要】本发明提供一种单串口控制多处理器的方法及装置,所述方法包括以下步骤:主CPU接收控制终端所发送的串口切换指令;所述串口切换指令中包括:主CPU的ID号以及目标子CPU的ID号;主CPU根据所述目标子CPU的ID号对子CPU中标志是否占有串口线的寄存器进行设置;子CPU根据设置后的寄存器的状态来占用串口线。本发明的一种单串口控制多处理器的方法及装置实现了使用单串口来控制多处理器的目的,减少了电路布局成本和设计复杂度。
【专利说明】单串口控制多处理器的方法及装置

【技术领域】
[0001] 本发明涉及通信领域,特别是涉及一种单串口控制多处理器的方法以及一种单串 口控制多处理器的装置。

【背景技术】
[0002] 随着工业发展的进步,电子设备设计难度越来越高,调试手段同样越来越复杂。一 块单板上已不仅仅满足使用一个处理器,有些板卡要求多个处理器协同工作。特别是在高 级电信设备,使用ATCA (Advanced Telecom Computing Architecture,高级电信计算平台) 架构的产品,一套系统内多项业务由不同板卡协同实现,每块板卡都需要相关的调试手段。 而串口作为最通用和最可靠的调试手段,在多处理器系统中要求每个处理器都有一个串口 调试电路。
[0003] 传统的方法中,每块单板上都留有串口接口,用于连接各自的处理器。但是采用这 种方法,由于多个串口连接器需要占用板卡较多的空间,因此增加了电路布局成本。


【发明内容】

[0004] 基于此,本发明提供一种单串口控制多处理器的方法及装置,能够减少电路布局 成本。
[0005] 为实现上述目的,本发明采用如下的技术方案:
[0006] 一种单串口控制多处理器的方法,包括以下步骤:
[0007] 主CPU接收控制终端所发送的串口切换指令;所述串口切换指令中包括:主CPU 的ID号以及目标子CPU的ID号;
[0008] 主CPU根据所述目标子CPU的ID号对子CPU中标志是否占有串口线的寄存器进 行设置;
[0009] 子CPU根据设置后的寄存器的状态来占用串口线。
[0010] 一种单串口控制多处理器的装置,包括主CPU以及至少一个子CPU ;所述主CPU包 括:串口切换指令接收模块以及寄存器设置模块;所述子CPU包括:占用模块;
[0011] 所述串口切换指令接收模块用于接收控制终端所发送的串口切换指令;所述串口 切换指令中包括:主CPU的ID号以及目标子CPU的ID号;
[0012] 所述寄存器设置模块用于根据所述目标子CPU的ID号对子CPU中标志是否占有 串口线的寄存器进行设置;
[0013] 所述占用模块用于根据设置后的寄存器的状态来占用串口线。
[0014] 由以上的方案可以看出,本发明的一种单串口控制多处理器的方法及装置,通过 主CPU来对所有子CPU进行管理,根据控制终端发送的串口切换指令中的目标子CPU的ID 号来对子CPU中的寄存器进行设置,将串口线切换到指定的子CPU。本发明的方法及装置实 现了使用单串口来控制多处理器的目的,减少了电路布局成本和设计复杂度,并且在实现 的过程中无需手动拔线或者拨码切换,实现了自动化控制;另外本发明的方案设计简单,可 操作性强,无需复杂的软件控制,释放了软件资源,且无需增加其它器件,仅由系统处理器 就能实现,节约成本。

【专利附图】

【附图说明】
[0015] 图1为本发明的一种单串口控制多处理器的装置结构示意图;
[0016] 图2为本发明另一实施例中的一种单串口控制多处理器的装置结构示意图;
[0017] 图3为本发明的一种单串口控制多处理器的方法流程示意图。

【具体实施方式】
[0018] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0019] 参见图1所示,一种单串口控制多处理器的装置,包括主CPU(CPU,Central Processing Unit,中央处理器)10以及至少一个子CPU20 (图1中以两个子CPU为例);所 述主CPU10包括:串口切换指令接收模块101以及寄存器设置模块102 ;所述子CPU20包括: 占用模块201 ;
[0020] 所述串口切换指令接收模块101用于接收控制终端所发送的串口切换指令;所述 串口切换指令中包括:主CPU的ID号以及目标子CPU的ID号;所谓的目标子CPU,即指控 制终端所决定要访问的子CPU(即需要切换的子CPU);
[0021] 所述寄存器设置模块102用于根据所述目标子CPU的ID号对子CPU中标志是否 占有串口线的寄存器进行设置;
[0022] 所述占用模块201用于根据设置后的寄存器的状态来占用串口线。
[0023] 本发明实施例的方案中,系统预先为每个CPU都分配了固定位宽的ID号。控制终 端决定访问哪个处理器的串口,每次控制终端通过下发命令来切换其它子CPU串口时,都 需要先访问主CPU,将所述串口切换指令发送给主CPU ;主CPU接收到串口切换指令后,通过 其它通讯路径,设置其它子CPU的寄存器,此时还是由主CPU占有串口线;当寄存器设置完 成后,每个子CPU就可以根据自身的寄存器状态来判断是否占有串口线。此时主CPU与目 标子CPU同时具有接收功能,但发送数据给控制终端的功能只有目标子CPU拥有。
[0024] 作为一个较好的实施例,所述寄存器设置模块可以包括:指令发送模块以及第二 设置模块;另外,所述子CPU还可以包括:第一设置模块;
[0025] 所述指令发送模块用于发送寄存器清0指令给所有子CPU ;
[0026] 所述第一设置模块用于根据所述寄存器清0指令将标志是否占有串口线的寄存 器设置为〇 ;
[0027] 所述第二设置模块用于根据所述目标子CPU的ID号查找到对应的子CPU,并将该 CPU中标志是否占有串口线的寄存器使能设置为1。
[0028] 或者,在另外一个实施例中,所述寄存器设置模块可以包括:第三设置模块以及第 四设置模块;
[0029] 所述第三设置模块将当前占用串口线的子CPU中标志是否占有串口线的寄存器 设置为〇,释放串口线;
[0030] 所述第四设置模块用于根据所述目标子CPU的ID号查找到对应的子CPU,并将该 CPU中标志是否占有串口线的寄存器设置为1。由于本实施例中只需要对当前占用串口线 的子CPU的占用寄存器进行清0,因此可以加快串口切换速度,提高单串口控制多处理器的 效率。
[0031] 本发明的方案中,主CPU与子CPU之间、子CPU与其它子CPU之间通讯的方式可以 有多种,在其中一个实施例中,所述主CPU与子CPU之间、子CPU与其它子CPU之间均可以 通过IIC总线(Inter-Integrated Circuit,集成电路总线)来进行连接。需要指出的是, 本发明中并不限定于这一种方式,采用其它的通讯方式来代替IIC总线也是可行的。
[0032] 作为一个较好的实施例,本发明的一种单串口控制多处理器的装置还可以包括: 连接在控制终端与总线之间的电平转换器,以及与CPU的个数相对应的电气隔离模块,如 图2所示:
[0033] 所述电平转换器用于在控制终端与总线之间进行电平匹配;例如:当控制终端向 总线发送数据时,电平转换器将控制终端发送的信号电平转换成与总线相匹配的电平;同 理,当总线向控制终端发送数据时,电平转换器将总线发送的信号电平转换成与控制终端 相匹配的电平;
[0034] 所述电气隔离模块用于当所述主CPU或子CPU发生故障时,将该发生故障的主CPU 或子CPU与总线进行电气隔离,防止某一路处理器故障对整个系统造成影响。即当其中一 个CPU发生故障时,该CPU无法发送或接收数据,由于使用电气隔离模块,CPU不与总线上的 RX (receive,接收端)和TX (transport,发送端)直接连接,因此不会造成总线上的RX或 TX被拉死成高电平或低电平,避免造成链路瘫痪,保证总线上其它设备正常工作,同时也有 利于故障排除。
[0035] 需要说明的是,在有些处理器内部已经集成电气隔离模块的情况下,此时电气隔 离模块将不是必须的。
[0036] 下面以图2为例,对本发明的方案进行详细阐述:
[0037] 如图2所示,某一具体实现结构框图中,包括一个主CPU,一个以上的子CPU(以两 个子CPU为例),一个PC控制终端,一个RS232电平转换电路,每个CPU配有一个电气隔离 模块。每个CPU之间通过IIC总线进行连接,且设置不同的ID号,如主CPU设为0001,子 CPU1设0002,子CPU2设为0003。所有CPU的RX通过电气隔离模块均连接在一起,TX也通 过电气隔离模块连接在一起。
[0038] 具体运行过程如下:当PC控制终端需要进行串口切换的操作时,由PC控制端发送 切换指令,指令中包括主CPU的ID号与需要切换的目标子CPU的ID号。此时串口线由主 CPU占有。当主CPU接收到串口切换指令,主CPU向PC控制终端返回一个接收成功标志。 同时主CPU发送寄存器清0指令,将所有子CPU标志着是否占有串口的寄存器全部置0,子 CPU释放串口线。然后,主CPU根据PC控制终端指令中的子CPU的ID号,通过IIC进行写 子CPU寄存器,将需要占有串口线的子CPU寄存器使能写1 ;
[0039] 当被选子CPU检测到寄存器被置1后,将占用串口线TX端,同时向PC控制终端发 送一个切换成功标志。此时串口线TX只有被选子CPU占有,其它CPU(包括主CPU)也不能 使用TX,而串口的RX同时由被选子CPU和主CPU占用。此时主CPU只响应新的串口切换指 令,不处理其它串口命令,而被选子CPU可进行正常调试操作。当需要进行二次切换时,主 CPU会接收到新的串口切换指令,重复上述操作即可进行串口切换。
[0040] 与上述一种单串口控制多处理器的装置相对应,本发明还提供一种单串口控制多 处理器的方法,如图3所示,包括以下步骤:
[0041] 步骤S101,主CPU接收控制终端所发送的串口切换指令,然后进入步骤S102 ;其 中,所述串口切换指令中包括:主CPU的ID号以及目标子CPU的ID号;
[0042] 步骤S102,主CPU根据所述目标子CPU的ID号对子CPU中标志是否占有串口线的 寄存器进行设置,然后进入步骤S103 ;
[0043] 步骤S103,子CPU根据设置后的寄存器的状态来占用串口线。
[0044] 作为一个较好的实施例,步骤S102中主CPU根据所述目标子CPU的ID号对子CPU 中标志是否占有串口线的寄存器进行设置的过程具体可以包括如下步骤:
[0045] 步骤S1021,主CPU发送寄存器清0指令给所有子CPU ;
[0046] 步骤S1022,各子CPU根据所述寄存器清0指令将标志是否占有串口线的寄存器设 置为〇 ;
[0047] 步骤S1023,主CPU根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU 中标志是否占有串口线的寄存器设置为1。
[0048] 上述步骤S102中主CPU对子CPU的寄存器进行设置的方式并不是唯一的。在另 外一个实施例中,步骤S102中主CPU根据所述目标子CPU的ID号对子CPU中标志是否占 有串口线的寄存器进行设置的过程具体可以包括如下步骤:
[0049] 步骤S1024,主CPU将当前占用串口线的子CPU中标志是否占有串口线的寄存器设 置为〇,释放串口线;
[0050] 步骤S1025,主CPU根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU 中标志是否占有串口线的寄存器设置为1。
[0051] 作为一个较好的实施例,所述子CPU根据设置后的寄存器的状态来占用串口线的 过程具体可以包括如下步骤:当子CPU检测到自身的寄存器被设置为1后,占用串口线的发 送端,且所述串口线的接收端同时由该子CPU以及主CPU占用。
[0052] 另外,本发明的单串口控制多处理器的方法还具有故障检测功能。即作为一个较 好的实施例,在主CPU接收控制终端所发送的串口切换指令之后,还可以包括步骤:主CPU 返回接收成功标志给控制终端;以及
[0053] 在子CPU检测到自身的寄存器被设置为1之后,还可以包括步骤:子CPU发送切换 成功标志给控制终端;
[0054] 当发生板卡故障时,控制终端根据所述接收成功标志或切换成功标志来定位串口 故障板卡。本实施例中控制终端根据主CPU或子CPU所返回的标志来定位串口故障板卡, 实现故障检测,能够进一步的提高对多处理器的控制效率
[0055] 上述一种单串口控制多处理器的方法的其它技术特征与本发明的一种单串口控 制多处理器的装置相同,此处不予赘述。
[0056] 通过以上的方案可以看出,本发明的一种单串口控制多处理器的方法及装置,通 过主CPU来对所有子CPU进行管理,根据控制终端发送的串口切换指令中的目标子CPU的 ID号来对子CPU中的寄存器进行设置,将串口线切换到指定的子CPU。本发明的方法及装 置实现了使用单串口来控制多处理器的目的,减少了电路布局成本和设计复杂度,并且在 实现的过程中无需手动拔线或者拨码切换,实现了自动化控制;另外本发明的方案设计简 单,可操作性强,无需复杂的软件控制,释放了软件资源,且无需增加其它器件,仅由系统处 理器就能实现,节约成本。
[0057] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种单串口控制多处理器的方法,其特征在于,包括以下步骤: 主CPU接收控制终端所发送的串口切换指令;所述串口切换指令中包括:主CPU的ID 号以及目标子CPU的ID号; 主CPU根据所述目标子CPU的ID号对子CPU中标志是否占有串口线的寄存器进行设 置; 子CPU根据设置后的寄存器的状态来占用串口线。
2. 根据权利要求1所述的单串口控制多处理器的方法,其特征在于,主CPU根据所述目 标子CPU的ID号对子CPU中标志是否占有串口线的寄存器进行设置的过程包括: 主CPU发送寄存器清0指令给所有子CPU ; 各子CPU根据所述寄存器清0指令将标志是否占有串口线的寄存器设置为0 ; 主CPU根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU中标志是否占有 串口线的寄存器设置为1。
3. 根据权利要求1所述的单串口控制多处理器的方法,其特征在于,主CPU根据所述目 标子CPU的ID号对子CPU中标志是否占有串口线的寄存器进行设置的过程包括: 主CPU将当前占用串口线的子CPU中标志是否占有串口线的寄存器设置为0,释放串口 线. 主CPU根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU中标志是否占有 串口线的寄存器设置为1。
4. 根据权利要求2或3所述的单串口控制多处理器的方法,其特征在于,所述子CPU根 据设置后的寄存器的状态来占用串口线的过程包括: 当子CPU检测到自身的寄存器被设置为1后,占用串口线的发送端,且所述串口线的接 收端同时由该子CPU以及主CPU占用。
5. 根据权利要求4所述的单串口控制多处理器的方法,其特征在于,在主CPU接收控制 终端所发送的串口切换指令之后,还包括步骤:主CPU返回接收成功标志给控制终端; 在子CPU检测到自身的寄存器被设置为1之后,还包括步骤:子CPU发送切换成功标志 给控制终端; 当发生板卡故障时,控制终端根据所述接收成功标志或切换成功标志来定位串口故障 板卡。
6. -种单串口控制多处理器的装置,其特征在于,包括主CPU以及至少一个子CPU ;所 述主CPU包括:串口切换指令接收模块以及寄存器设置模块;所述子CPU包括:占用模块; 所述串口切换指令接收模块用于接收控制终端所发送的串口切换指令;所述串口切换 指令中包括:主CPU的ID号以及目标子CPU的ID号; 所述寄存器设置模块用于根据所述目标子CPU的ID号对子CPU中标志是否占有串口 线的寄存器进行设置; 所述占用模块用于根据设置后的寄存器的状态来占用串口线。
7. 根据权利要求6所述的单串口控制多处理器的装置,其特征在于,所述寄存器设置 模块包括:指令发送模块以及第二设置模块;所述子CPU还包括:第一设置模块; 所述指令发送模块用于发送寄存器清〇指令给所有子CPU ; 所述第一设置模块用于根据所述寄存器清〇指令将标志是否占有串口线的寄存器设 置为Ο ; 所述第二设置模块用于根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU 中标志是否占有串口线的寄存器设置为1。
8. 根据权利要求6所述的单串口控制多处理器的装置,其特征在于,所述寄存器设置 模块包括:第三设置模块以及第四设置模块; 所述第三设置模块用于将当前占用串口线的子CPU中标志是否占有串口线的寄存器 设置为〇,释放串口线; 所述第四设置模块用于根据所述目标子CPU的ID号查找到对应的子CPU,并将该CPU 中标志是否占有串口线的寄存器设置为1。
9. 根据权利要求7或8所述的单串口控制多处理器的装置,其特征在于,所述主CPU与 子CPU之间、子CPU与其它子CPU之间均通过IIC总线进行连接。
10. 根据权利要求7或8所述的单串口控制多处理器的装置,其特征在于,还包括:电 平转换器以及电气隔离模块; 所述电平转换器用于将控制终端发送的信号电平转换成与总线相匹配的电平;以及将 总线发送的信号电平转换成与控制终端相匹配的电平; 所述电气隔离模块用于当所述主CPU或子CPU发生故障时,将该发生故障的主CPU或 子CPU与总线进行电气隔离。
【文档编号】G06F13/20GK104142899SQ201410369616
【公开日】2014年11月12日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】周泽强 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1