一种模拟本地总线进行板级管理的方法和装置转让专利

申请号 : CN201110261595.2

文献号 : CN102446132B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程鸿博陈一山章波

申请人 : 迈普通信技术股份有限公司

摘要 :

本发明提供了一种模拟本地总线进行板级管理的方法,A、选择功能卡或功能板上的处理器的1组通用输入输出接口GPIO,将所述GPIO的引脚定义为本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;B、依据在处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并把该驱动程序定义为专用仿真驱动程序模块;C、处理器运行的除专用仿真驱动程序模块之外的其它软件模块通过调用该专用仿真驱动程序模块的应用程序接口,访问所述GPIO上连接的管理外设,以实现处理器对功能卡或功能板的运行管理。本发明提供了一种模拟本地总线进行板级管理的装置。

权利要求 :

1.一种模拟本地总线进行板级管理的方法,其特征在于,A、选择功能卡或功能板上的处理器的1组通用输入输出接口GPIO,将所述GPIO的引脚定义为本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;

B、依据在处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并把该驱动程序定义为专用仿真驱动程序模块;

C、处理器运行的除专用仿真驱动程序模块之外的其它软件模块通过调用该专用仿真驱动程序模块的应用程序接口,访问所述GPIO上连接的管理外设,以实现处理器对功能卡或功能板的运行管理;

其中,步骤B包括:

B1、设置用于模拟本地总线的GPIO功能寄存器;

B2、设置GPIO方向寄存器,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中读操作时为输入引脚,写操作时为输出引脚;

B3、初始化控制信号GPIO数据寄存器,把仿真片选信号、读/写控制信号和地址信号的引脚设置为无效状态;

B4、使能仿真控制信号GPIO输出使能寄存器;

B5、按信号时序要求,设置控制信号和地址信号的GPIO数据寄存器;

B6、判断地址信号和数据信号是否复用,若是,执行步骤B7,否则执行步骤B8;

B7、按复用时序要求设置用于存储地址锁存信号ALE的ALE信号数据寄存器;更改地址信号方向寄存器,把地址仿真信号改为数据仿真信号,然后执行步骤B8;

B8、按信号时序要求,设置用于输出读控制信号的读信号数据寄存器;

B9、读入数据信号数据寄存器,输入仿真数据信号的GPIO;

B10、无效控制和地址信号数据寄存器,使读控制信号、非复用地址信号以及片选信号无效。

2.根据权利要求1所述的方法,其特征在于,所述处理器为多核或单核处理器。

3.根据权利要求1所述的方法,其特征在于,步骤A所选择的处理器的GPIO引脚为所述处理器物理位置上相邻的GPIO引脚。

4.根据权利要求1所述的方法,其特征在于,所述数据总线占用8个、16个、或32个引脚,所述地址总线占用8个引脚;

所述控制信号占用4个引脚,这4个引脚分别为片选信号、读/写控制信号、使能信号和时钟信号。

5.根据权利要求4所述的方法,其特征在于,所述时钟信号的频率范围为1MHz至

60MHz。

6.一种模拟本地总线进行板级管理的装置,其特征在于,该装置包括:功能分组模块和专用仿真驱动程序模块;

功能分组模块,用于选择功能卡或功能板所使用的多核处理器的1组通用输入输出接口GPIO引脚定义本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;

专用仿真驱动程序模块,用于依据所述功能分组模块在多核处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并对外提供应用程序接口;

所述应用程序接口用于被多核处理器运行的其它软件模块所调用,实现对功能卡或功能板连接的外设进行访问;

所述专用仿真驱动程序模块包括:

GPIO功能寄存器设置单元,用于设置GPIO信号的电平,专用仿真驱动程序模块按照规定操作来改变这些寄存器的值,将生成本地总线的各信号时序;

GPIO方向寄存器设置单元,用于设置GPIO信号方向,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中对于读操作设定为输入引脚,对于写操作设定为输出引脚;

控制信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置控制信号输出信号时序;

地址信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置地址信号输出信号时序。

7.根据权利要求6所述的装置,其特征在于,功能分组模块所选择的多核处理器的GPIO引脚为所述多核处理器物理位置上相邻的GPIO引脚。

8.根据权利要求6所述的装置,其特征在于,所述数据总线占用8个引脚,所述地址总线占用8个引脚;

所述控制信号占用4个引脚,分别为片选信号、读/写控制信号、使能信号和时钟信号。

9.根据权利要求8所述的装置,其特征在于,所述时钟信号的频率范围为1MHz至

60MHz。

说明书 :

一种模拟本地总线进行板级管理的方法和装置

技术领域

[0001] 本发明涉及数据通信领域,尤其涉及一种模拟本地总线进行板级管理的方法和装置。

背景技术

[0002] 通信类设备形态多种多样,从单功能主板的台式设备到支持多类型功能卡的机架式设备等。这些功能卡(板)依据承担处理任务的不同,其实现复杂度有很大差异,但通常情况下,功能卡(板)上均设计有嵌入式CPU(专用CPU或承担该管理任务的多用途CPU)进行板级日常管理,比如功能卡(板)的标识(ID)信息处理、热重启处理、受管理外设(device)的控制、工作状态指示等,同时CPU也需要连接非易失类存储器来存放运行用的启动(boot)程序和应用程序。
[0003] 对于通信类设备常用的嵌入式CPU器件,通常情况下均支持常用串行和并行接口总线,以方便CPU与尽量多种类外设的无缝连接,如串行类接口总线:FE/GE、PCIE(PCI-Express)、通用异步接收/发送接口(UART,Universal Asynchronous Receiver/Transmitter)、通用串行总线(USB)、I2C(Inter-Integrated Circuit)、串行外设接口(SPI,Serial Peripheral Interface)、通用输入输出接口(GPIO)等。串行类接口总线:本地总线(local_bus)、动态随机存储器(DRAM)接口等,这些接口的传统使用方法一般是:
[0004] (1)高速类接口:FE/GE和PCIE等,用于主数据通信;
[0005] (2)UART和USB用于设备的对外配置/管理通信;
[0006] (3)DRAM接口为专用接口,连接CPU系统的内存单元;
[0007] (4)本地总线为CPU用途最多的本地总线,也是承担板级管理最常用的外部总线。图1为本地总线的典型应用示意图。处理器101具有本地总线接口106,通过本地总线104连接启动程序闪存(FLASH)102、应用程序闪存103和复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)105,CPLD 105里面通常会设计一组用户自定义的、反映功能卡(板)硬件相关信息的寄存器,同时还负责把功能卡(板)上众多的离散信号(需要管理CPU监控、控制)映射成寄存器方式,以进行功能卡(板)的板级管理。
[0008] 随着现代通信设备的处理能力越来越强大,功能卡(板)的业务处理复杂度越来越高,一些情形下必须使用专用的多核处理器才能满足业务要求,这类多核处理器因为专注于数据业务的高速深度处理,其芯片支持的对外接口偏重于高速数据接口和低速串型类接口,不再支持本地总线这样的低速并型类本地总线,从而使得使用该类多核处理器的功能卡(板)的板级管理非常困难。
[0009] 针对上述情况,目前业内普遍的做法仍以附加一专用管理CPU专用做功能卡(板)的板级管理,虽然可良好继承原有的功能卡(板)板级管理定义和相应软件模块,但将多付出客观的材料成本。

发明内容

[0010] 本发明提供了一种模拟本地总线进行板级管理的方法和装置,不使用附加的专用管理CPU,仍可良好继承原有的功能卡(板)板级管理定义和相应软件模块。
[0011] 本发明实施例提供一种模拟本地总线进行板级管理的方法,包括如下步骤:
[0012] A、选择功能卡或功能板上的处理器的1组通用输入输出接口GPIO,将所述GPIO的引脚定义为本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;
[0013] B、依据在处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并把该驱动程序定义为专用仿真驱动程序模块;
[0014] C、处理器运行的除专用仿真驱动程序模块之外的其它软件模块通过调用该专用仿真驱动程序模块的应用程序接口,访问所述GPIO上连接的管理外设,以实现处理器对功能卡或功能板的运行管理。
[0015] 较佳地,所述处理器为多核或单核处理器。
[0016] 较佳地,步骤A所选择的处理器的GPIO引脚为所述处理器物理位置上相邻的GPIO引脚。
[0017] 较佳地,所述数据总线占用8个、16个、或32个引脚,所述地址总线占用8个引脚;
[0018] 所述控制信号占用4个引脚,这4个引脚分别为片选信号、读/写控制信号、使能信号和时钟信号。
[0019] 较佳地,所述时钟信号的频率范围为1MHz至60MHz。
[0020] 较佳地,步骤B包括:
[0021] B1、设置用于模拟本地总线的GPIO功能寄存器;
[0022] B2、设置GPIO方向寄存器,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中读操作时为输入引脚,写操作时为输出引脚;
[0023] B3、初始化控制信号GPIO数据寄存器,把仿真片选信号、读写控制信号和地址信号的引脚设置为无效状态;
[0024] B4、使能仿真控制信号GPIO输出使能寄存器;
[0025] B5、按信号时序要求,设置控制信号和地址信号的GPIO数据寄存器;
[0026] B6、判断地址信号和数据信号是否复用,若是,执行步骤B7,否则执行步骤B8;
[0027] B7、按复用时序要求设置用于存储地址锁存信号ALE的ALE信号数据寄存器;更改地址信号方向寄存器,把地址仿真信号改为数据仿真信号,然后执行步骤B8;
[0028] B8、按信号时序要求,设置用于输出读控制信号读信号数据寄存器;
[0029] B9、读入数据信号数据寄存器,输入仿真数据信号的GPIO;
[0030] B10、无效控制和地址信号数据寄存器,使读控制信号、非复用地址信号以及片选信号无效。
[0031] 本发明实施例还提出一种模拟本地总线进行板级管理的装置,该装置包括:功能分组模块和专用仿真驱动程序模块;
[0032] 功能分组模块,用于选择功能卡或功能板所使用的多核处理器的1组通用输入输出接口GPIO引脚定义本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;
[0033] 专用仿真驱动程序模块,用于依据所述功能分组模块在多核处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并对外提供应用程序接口;所述应用程序接口用于被多核处理器运行的其它软件模块所调用,实现对功能卡或功能板连接的外设进行访问。
[0034] 较佳地,功能分组模块所选择的多核处理器的GPIO引脚为所述多核处理器物理位置上相邻的GPIO引脚。
[0035] 较佳地,所述数据总线占用8个引脚,所述地址总线占用8个引脚;
[0036] 所述控制信号占用4个引脚,分别为片选信号、读/写控制信号、使能信号和时钟信号。
[0037] 较佳地,所述时钟信号的频率范围为1MHz至60MHz。
[0038] 较佳地,专用仿真驱动程序模块包括:
[0039] GPIO功能寄存器设置单元,用于设置GPIO信号的电平,仿真驱动程序模块按照规定操作来改变这些寄存器的值,将生成本地总线的各信号时序;
[0040] GPIO方向寄存器设置单元,用于设置GPIO信号方向,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中对于读操作设定为输入引脚,对于写操作设定为输出引脚;
[0041] 控制信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置控制信号输出信号时序;
[0042] 地址信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置地址信号输出信号时序。
[0043] 从以上技术方案可以看出,利用处理器的1组通用输入输出接口GPIO,将其定义为本地总线的功能分组,从而实现将GPIO模拟为本地总线,应用程序可以通过所述模拟的本地总线访问管理外设,以实现处理器对功能卡或功能板的运行管理。本发明方案特别适用于采用无原生本地总线的处理器的功能卡或功能板,可良好继承原有的功能卡(板)板级管理定义和相应软件模块,并且无须付出额外的材料成本。

附图说明

[0044] 图1为现有技术中本地总线的典型应用示意图;
[0045] 图2为GPIO在处理器芯片内部的典型逻辑构成示意图;
[0046] 图3为本发明实施例提供的一种用一组GPIO模拟本地总线的示意图;
[0047] 图4为本发明实施例提出的一种模拟本地总线进行板级管理的流程图;
[0048] 图5为本发明实施例定义的本地总线需要模拟的信号时序波形示意图;
[0049] 图6为本发明实施例提供的仿真驱动程序模块实现流程图;
[0050] 图7为本发明实施例提出的模拟本地总线的装置在处理器整个程序架构中的位置示意图。

具体实施方式

[0051] 本发明提出的模拟本地总线进行板级管理的方法,不再使用附加的专用管理CPU,而是使用多核处理器的其中一个核(core)及其GPIO来实现,不增加任何材料成本,仍可良好继承原有的功能卡(板)板级管理定义和相应软件模块,具有非常好的实用价值。
[0052] 本发明技术方案的基本内容包括:
[0053] ①在使用处理器(所述处理器不直接支持本地总线)的功能卡(板)上,选择处理器的1组GPIO引脚,定义本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号。各总线定义尽量使用所述多核处理器物理位置上相邻的GPIO引脚,以方便与外设(device)之间的印刷电路板(PCB)的布线连接。所述处理器可以是支持GPIO的单核或多核处理器。较佳地,该处理器不支持常规的本地总线。
[0054] ②依据在多核处理器上选定的GPIO及功能分组,按照常用本地总线的时序编写专用驱动程序,并把该驱动程序定义为专用仿真驱动程序模块,多核处理器运行的其它软件模块如果需要通过本地总线访问其上连接的外设(device),仅需要调用该专用仿真驱动程序模块的应用程序接口(API,Application Programming Interface)即可。
[0055] 为使本发明技术方案的原理、优点及技术效果更加清楚,以下通过具体实施例对本发明方案进行详细阐述。
[0056] 本发明涉及到的模拟本地总线进行板级管理的方法基于功能卡(板)所使用的多核处理器的GPIO引脚实现。目前绝大多数专注于数据业务高速深度处理的专用多核处理器,不再支持本地总线,但均支持几十个GPIO,便于使用者自行定义其使用功能。
[0057] GPIO在处理器芯片内部的典型逻辑构成如图2所示。芯片内部通信总线包括数据总线(D_bus)、地址总线(A_bus)和控制总线(C_bus)。对于处理器的CPU内核来说,GPIO相当于一个可内部寻址的单比特(bit)可读写寄存器。对于处理器外部电路来说,一个GPIO仅作为一个多用途信号使用:可定义为输入、输出或双向信号。
[0058] 当GPIO设置为输出信号时,软件程序可依据各种预先定义好的时序对输出寄存器201进行写操作,输出驱动器203将输出寄存器201的时序信号输出到GPIO引脚,相应的GPIO引脚将输出定义的时序波形。
[0059] 当GPIO设置为输入信号时,在其输入寄存器202上可反映芯片外部的GPIO引脚上的逻辑电平,软件程序进行读操作时,该GPIO引脚上的逻辑电平将被作为数据值读取。
[0060] 本发明就是基于处理器GPIO的该种灵活特性,使用1组GPIO,利用软件程序模拟出各种组合时序波形。如图3所示为本发明实施例提供的一种用一组GPIO模拟本地总线的示意图,包括8位数据总线(双向信号)、8位地址总线(输出信号)和4个控制信号(输出信号)。其中数据总线占用8个引脚,用D[0:7]表示,地址总线占用8个引脚,用A[0:7]表示;控制信号占用4个引脚,分别为CS#(片选信号,低有效)、R/W#(读/写控制信号,高电平为读操作,低电平为写操作)、OE#(使能信号,低有效)和CLK(时钟信号)。需要注意的是:在定义数据总线和地址总线时,需要尽量使用处理器物理位置上相邻的GPIO引脚,以方便与外设(device)之间的PCB布线连接。
[0061] 本发明实施例提出的一种模拟本地总线进行板级管理的流程如图4所示,包括如下步骤:
[0062] 步骤401:选择功能卡或功能板上的处理器的1组通用输入输出接口GPIO,将所述GPIO的引脚定义为本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;
[0063] 步骤402:依据在处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并把该驱动程序定义为专用仿真驱动程序模块;
[0064] 步骤403:处理器运行的除专用仿真驱动程序模块之外的其它软件模块通过调用该专用仿真驱动程序模块的应用程序接口,访问所述GPIO上连接的管理外设,以实现处理器对功能卡或功能板的运行管理。
[0065] 本发明实施例定义的本地总线需要模拟的信号时序波形如图5所示。
[0066] 信号时序波形以CLK时钟频率为参考,该时钟频率一般在1MHz到60MHz范围内选择,可依据功能卡(板)上管理目标需求自行选择。对于某些特殊应用,时钟频率也可以选择其它更高频率值。本地总线访问周期为处理器对连接外设(device)一次读或者写操作的时间,以CLK时钟个数为参考,选择范围很大,但一般为几个到几十个CLK时钟周期,仍然需要依据功能卡(板)上管理目标需求合理选择。
[0067] 模拟该典型定义的本地总线时序信号波形,需要编写一专用仿真驱动程序模块,该仿真驱动程序模块实现流程大致如图6所示,包括如下步骤:
[0068] 步骤601:设置用于模拟本地总线的GPIO功能寄存器。
[0069] GPIO通常是多功能引脚(PIN),在此把GPIO功能引脚设定为作为本地总线的引脚。
[0070] 步骤602:设置GPIO方向寄存器,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中读操作时为输入引脚,写操作时为输出引脚。
[0071] 步骤603:初始化控制信号GPIO数据寄存器。把仿真片选信号、读写控制信号和地址信号的引脚设置为无效状态。
[0072] 步骤604:使能仿真控制信号GPIO输出使能寄存器。
[0073] 步骤605:按信号时序要求,设置控制信号和地址信号的GPIO数据寄存器。
[0074] 步骤606:判断地址信号和数据信号是否复用,若是,执行步骤607-608,否则执行步骤609。
[0075] 步骤607:按复用时序要求设置ALE信号数据寄存器。所述ALE信号数据寄存器用于输出地址锁存(ALE)信号。
[0076] 步骤608:更改地址信号方向寄存器,把地址仿真信号改为数据仿真信号,然后执行步骤609。
[0077] 步骤609:按信号时序要求,设置读信号数据寄存器。所述读信号数据寄存器用于输出读控制信号。
[0078] 步骤610:读入数据信号数据寄存器,输入仿真数据信号的GPIO。
[0079] 步骤611:无效控制和地址信号数据寄存器。本步骤的作用是无效读控制信号、地址信号(非复用)、片选信号。
[0080] 本发明实施例提出的模拟本地总线的装置在处理器整个程序架构中的位置如图7所示。模拟本地总线的装置利用GPIO仿真本地总线,对内提供标准读(read)写(write)接口函数,由需要访问本地总线连接外设(device)的模块驱动软件调用,对下直接与处理器的GPIO引脚相关输入/输出寄存器交互,通过GPIO引脚组完成本地总线接口功能。该模拟本地总线的装置701在软件架构中,属于硬件驱动以及板支持包(BSP,Board Support Package)702的范畴。
[0081] 本发明实施例提出的一种模拟本地总线进行板级管理的装置,该装置包括:功能分组模块和专用仿真驱动程序模块;
[0082] 功能分组模块,用于选择功能卡或功能板所使用的多核处理器的1组通用输入输出接口GPIO引脚定义本地总线的功能分组,所述功能分组包括数据总线、地址总线和控制信号;
[0083] 专用仿真驱动程序模块,用于依据所述功能分组模块在多核处理器上选定的GPIO引脚及定义的功能分组,按照本地总线的时序编写专用驱动程序,并对外提供应用程序接口;所述应用程序接口用于被多核处理器运行的其它软件模块所调用,实现对功能卡或功能板连接的外设进行访问。
[0084] 较佳地,功能分组模块所选择的多核处理器的GPIO引脚为所述多核处理器物理位置上相邻的GPIO引脚。
[0085] 较佳地,所述数据总线占用8个引脚,所述地址总线占用8个引脚;
[0086] 所述控制信号占用4个引脚,分别为片选信号、读/写控制信号、使能信号和时钟信号。
[0087] 较佳地,所述时钟信号的频率范围为1MHz至60MHz。对于特殊应用,时钟信号也可以选择其它更高频率值。
[0088] 较佳地,专用仿真驱动程序模块包括:
[0089] GPIO功能寄存器设置单元,用于设置GPIO信号的电平,仿真驱动程序模块按照规定操作来改变这些寄存器的值,将生成本地总线的各信号时序;
[0090] GPIO方向寄存器设置单元,用于设置GPIO信号方向,把仿真控制信号和地址信号引脚设定为输出引脚;把仿真数据信号引脚设定为双向引脚,其中对于读操作设定为输入引脚,对于写操作设定为输出引脚;
[0091] 控制信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置控制信号输出信号时序;
[0092] 地址信号GPIO数据寄存器设置单元,用于按本地总线的访问要求,设置地址信号输出信号时序。
[0093] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。