基于信号名的嵌入式多cpu板间信号自动交换的方法

文档序号:8411780阅读:432来源:国知局
基于信号名的嵌入式多cpu板间信号自动交换的方法
【技术领域】
[0001]本发明属于嵌入式系统领域,特别涉及一种多CPU板通过数据总线实现板间信号自动交换的实现方法。
【背景技术】
[0002]对于由两个或多个CPU板组成的嵌入式系统,各CPU板完成不同的功能,CPU板之间通过数据总线交换信号,从而实现分布式计算和协同工作,如图1所示。为了实现CPU板间信号交换,常规做法是在软件编程阶段,预先为各CPU板需要交换的输出信号、输入信号分配相同的数据总线地址,并将分配的地址写入各个CPU板程序。只有输出方和输入方的数据总线地址相同,才能实现正确的信号交换。如图2所示,板I输出信号Sigl、板2输入信号Sig2都使用了数据总线地址X进行信号交换。在嵌入式系统开发过程中,通常多次调整信号和信号交换(如增加、减少、改变顺序),需要信号收发双方同步修改数据总线地址,重新编译CPU板程序。在一个复杂系统中,板间信号交换可能有几万个,手工调整数据总线地址很容易出现错误。因此,对于一个多CPU板构成的嵌入式系统,如何方便、灵活地使用数据总线进行CPU板间信号自动交换是一个挑战。

【发明内容】

[0003]本发明的目的,在于提供一种基于信号名的嵌入式多CPU板间信号自动交换的方法,其可直观简单地调整CPU板间信号交换,并保证信号交换的正确性。
[0004]为了达成上述目的,本发明的解决方案是:
[0005]一种基于信号名的嵌入式多CPU板间信号自动交换的方法,包括如下步骤:
[0006](I)将嵌入式多CPU板分布式系统中的CPU板划分为主板和从板,将一个具备信号管理功能的CPU板作为主板,其余CPU板均作为从板;在初始化阶段,所有从板依次向主板发送包含信号名、信号内存地址和信号数据类型的信号注册信息;
[0007](2)主板汇总所有从板的信号注册信息后,从配置文件中读取用信号名连线表示的输出、输入信号交换关系,计算分配输出、输入信号映射的数据总线地址,依次将各个信号的内存地址、数据类型和总线地址发给各从板;
[0008](3)从板收到主板的信号的内存地址、数据类型和总线地址后,保存为输出信号表和输入信号表;
[0009](4)在运行阶段,信号发送方按照输出信号表,将输出信号值填入所分配的相应总线地址中,接收方按照输入信号表,从相应总线地址读取输入信号值。
[0010]上述步骤(I)中,从板通过CAN、RS-485或Ethernet向主板发送信号注册信息。[0011 ] 上述步骤(I)中,在初始化阶段,主板轮流向各个从板发送开始注册命令,接收到该开始注册命令的从板向主板发送信号注册信息。
[0012]上述步骤(2)中,主板获取所有从板的信号注册信息后,按照输出、输入类型存储成输出信号注册表和输入信号注册表,所述注册表以数组存储,每个数组项表示一个信号信息,包括信号名字符串、信号所属板卡编号、信号数据类型和信号内存地址;所有信号注册结束后,信号信息表按信号名排序。
[0013]上述步骤(2)中,主板从配置文件中读取用信号名连线表示的输出、输入信号交换关系,具体内容是:主板读取配置文件,逐条提取信号名连线,存储为信号交换关系表数组,其中每个数组项代表一个信号连线;主板根据信号交换关系表中的输出信号名,从输出信号注册表中检索到信号信息,再按输出信号的板卡地址、数据类型和内存地址顺序,对信号交换关系表的表项进行重新排序,具体排序规则是:不同板卡编号的信号按板卡编号从小到大,相同板卡的按信号数据类型宽度从小到大,相同板卡且相同数据类型的按内存地址从小到大。
[0014]上述数据类型宽度的顺序从小到大是:布尔量、单字节整型、双字节整型、四字节整型和浮点型。
[0015]采用上述方案后,本发明通过在初始化阶段从板向主板发送信号注册信息;用信号名连线表示输出、输入信号交换关系;用配置文件存储信号名连线;主板解析配置文件中的信号交换关系,计算分配输出、输入信号的总线地址,将各个信号的内存地址、数据类型和总线地址发给各从板;从板将输出、输入信号内存地址、数据类型和总线地址保存为输出信号表和输入信号表;在运行时,信号发送方按照输出信号表,将信号值填入总线所分配的地址中,接收方按照输入信号表,从数据总线特定地址读取输入信号值,能够降低手工调整信号交换的难度,避免人工出错的风险,从机制上保证了多CPU板间信号交换的正确性;另外,根据信号名来调整CPU板间信号交换,可以通过编辑配置文本来实现,既直观又简单,无需修改CPU板卡程序,简化了嵌入式系统开发设计。
【附图说明】
[0016]图1是本发明所针对的嵌入式多CPU板分布式系统的结构结构图;
[0017]图2是现有基于固定分配数据总线地址的多CPU板间信号交换实现方法示意图;
[0018]图3是本发明中基于信号名多CPU板间信号自动交换实现方法示意图;
[0019]图4是本发明初始化阶段的信号注册及计算分配数据总线地址的示意图;
[0020]图5是本发明运行阶段更新输出、输入信号示意图。
【具体实施方式】
[0021]以下将结合附图,对本发明的技术方案进行详细说明。
[0022]如图3所示,本发明提供一种基于信号名的嵌入式多CPU板间信号自动交换的方法,包括如下步骤:
[0023](I)将嵌入式多CPU板分布式系统(其架构如图1所示)中的CPU板划分为主板和从板,将其中一个CPU板划分为主板,其余均作为从板,形成“主从”系统架构;
[0024]所述嵌入式多CPU板分布式系统上电后,各CPU板首先初始化硬件,然后进行信号注册,即将该从板需要与外部交换的信号信息用通信总线发送给主板,具体可采用CAN、RS-485、Ethernet等;所述信号信息包含信号名、信号内存地址和信号数据类型;为了避免多个从板同时向主板发送,超出主板接收能力,可以采取主板轮流向各个从板发送开始注册命令,让各从板依次注册的方法,如图4所示。
[0025](2)主板汇总所有从板的信号注册信息后,按照输出、输入类型存储成输出信号注册表和输入信号注册表,所述注册表以数组存储,每个数组项表示一个信号信息,包括信号名字符串、板卡编号、数据类型和内存地址。所有信号注册结束后,信号信息表将按信号名排序。
[0026]主板读取如下述结构的配置文件:
[0027]B01.Sigl->B02.Sig2
[0028]B01.Sigl->B03.SigO
[0029]B02.Sigl->B01.Sig4
[0030]…
[0031]主板读取配置文件,逐条提取信号名连线,存储为信号交换关系表数组,其中每个数组项代表一个信号连线(输出信号名字符串、输入信号名字符串)。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1