一种基于FPGA的双CAN总线处理管理方法与流程

文档序号:32216987发布日期:2022-11-16 07:49阅读:65来源:国知局
一种基于FPGA的双CAN总线处理管理方法与流程
一种基于fpga的双can总线处理管理方法
技术领域
1.本发明涉及本发明涉及一种空间产品软件设计和实施方案,可用于空间产品软件can总线接口设计与在轨使用。更具体地,涉及一种基于fpga的双can总线处理管理方法。


背景技术:

2.近年来,随着空间飞行器的发展,微小卫星的发展日益迅速,星载单机朝向集成化、小型化、标准化发展。can总线接口作为总线接口,在微小卫星的信息链路设计、使用上日益普遍,其具有总线接口的特点,易于飞行器的设备布置,易于设备数量的增减,也易于中心计算机接口的优化和小型化设计。
3.但因can总线接口发展的源头为汽车工业,其本身质量等级等状态并不为满足于空间飞行器使用。因此,空间飞行器上使用can总线时经常是热备份双总线使用,并对其有一定的可靠性设计要求。通过制定冗余设计、管理设计等一系列的设计规范,从而使得can总线本身的可靠性进行提升,从而满足空间应用的需求。
4.星载设备采用fpga作为主控芯片较多,面对双路的can总线设备存在很多种设计方案。其中,最简单粗暴的方式是采用完全独立的can控制电路,将其分别接入fpga并采用完全独立的两套编码方案进行控制。无论是硬件还是软件层面上,该方案均需要最大的开销,但带来的好处也显而易见,能够很好地兼容两路总线的收发问题。
5.随着应用领域的进一步拓宽和发展,航天器的飞行情况要求can总线在轨能够具备较高的适应性,针对异常情况能够很好的处理及恢复,以匹配飞行器更好的智能管理需求。单纯的采用两套独立的控制方案,势必导致资源的开销成倍增加。特别是针对反熔丝型fpga芯片来说,原本紧张的逻辑资源更是被大量消耗在了can接口的控制上,实在不划算。因此,需要提供一种基于fpga的双can总线处理管理方法。


技术实现要素:

6.本发明的目的在于提供一种基于fpga的双can总线处理管理方法。
7.为达到上述目的,本发明采用下述技术方案:
8.一种基于fpga的双can总线处理管理方法,包括
9.两条can总线分别包括与fpga的io接口连接的can总线接口控制器,每一总线接口控制器通过寄存器进行中断,两个can总线接口控制器与fpga的io接口连接采用了复用技术;
10.所述方法包括:
11.所述寄存器基于来自fpga的信号和触发模式,以及can总线的当前状态进行第一中断和第二中断,fpga实现对can总线的处理。
12.进一步优选的,所述fpga信号类型包括边沿触发信号、其中一条can总线初次低电平信号、两条can总线均初次低电平信号、can总线多次低电平信号。
13.进一步优选的,can总线的当前状态包括应答结束状态和工作状态。
14.进一步优选的,所述应答结束状态包括空闲等待状态,或者设置完应答发送状态;所述工作状态包括应答复帧、首帧、或中间帧结束状态。
15.进一步优选的,其中一路can总线为主总线,两路can总线可同时处于空闲状态或工作状态。
16.进一步优选的,所述寄存器进行中断包括收中断和发中断。
17.进一步优选的,所述触发模式包括单路触发和双路触发。
18.进一步优选的,所述单路触发包括触发后工作can总线与触发前工作can总线相同,或触发后工作can总线与触发前工作can总线不同。(触发后总线接口控制器的寄存器进行中断)
19.进一步优选的,所述双路触发包括根据fpga信号类型以及can总线工作状态,通过双路can总线接口控制器中的寄存器进行中断,fpga实现对两条can总线执行不同处理。
20.进一步优选的,该方法进一步包括,所述双路触发包括触发后工作can总线控制器中寄存器的发中断情况下,fpga对该can总线不操作;或所述双路触发在两条can总线均初次低电平信号,辅can总线控制器中寄存器发中断的情况下,fpga应答下一帧。
21.本发明的有益效果如下:
22.本发明可满足星载can总线使用,实现can总线的双路控制,能够有效提高通讯自身的可靠性,及时提升通讯的有效性;
23.本发明通过以一路can总线为主、一路can总线为辅的思路,进行双can总线接口合并设计和监测,减轻了作为从节点的单机在硬件和软件设计资源上的消耗,但又保证了双总线的冗余;
24.本发明中实现的双can总线接口合并设计,同时考虑了双can总线带来的各种异常情况,并进行了应对设计和采取了相应的措施,对双can总线接口的自主纠错设计有着很高的实用性与操作性。
附图说明
25.下面结合附图对本发明的具体实施方式作进一步详细的说明。
26.图1示出本发明实施例提供的管理方法原理图。
27.图2示出本发明can总线通讯总控制子模块工作程序框图。
具体实施方式
28.为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
29.针对现有技术存在的问题,本发明提供了一种基于fpga的双can总线处理管理方法,下面结合附图1-2和表1-3对本发明作详细的描述。
30.本发明实施例提供一种基于fpga的双can总线处理管理方法,包括
31.两条can总线分别包括与fpga的io接口连接的can总线接口控制器,每一总线接口控制器通过寄存器进行中断,两个can总线接口控制器与fpga的io接口连接采用了复用技术;
32.所述方法包括:
33.所述寄存器基于来自fpga的信号和触发模式,以及can总线的当前状态进行第一中断和第二中断,fpga实现对can总线的处理。
34.进一步优选的,所述fpga信号类型包括边沿触发信号、其中一条can总线初次低电平信号、两条can总线均初次低电平信号、can总线多次低电平信号。
35.进一步优选的,can总线的当前状态包括应答结束状态和工作状态。
36.进一步优选的,所述应答结束状态包括空闲等待状态,或者设置完应答发送状态;所述工作状态包括应答复帧、首帧、或中间帧结束状态。
37.进一步优选的,其中一路can总线为主总线,两路can总线可同时处于空闲状态或工作状态。
38.进一步优选的,所述寄存器进行中断包括收中断和发中断。
39.进一步优选的,所述触发模式包括单路触发和双路触发。
40.进一步优选的,所述单路触发包括触发后工作can总线与触发前工作can总线相同,或触发后工作can总线与触发前工作can总线不同。(触发后总线接口控制器的寄存器进行中断)
41.进一步优选的,所述双路触发包括根据fpga信号类型以及can总线工作状态,通过双路can总线接口控制器中的寄存器进行中断,fpga实现对两条can总线执行不同处理。
42.进一步优选的,该方法进一步包括,所述双路触发包括触发后工作can总线控制器中寄存器的发中断情况下,fpga对该can总线不操作;或所述双路触发在两条can总线均初次低电平信号,辅can总线控制器中寄存器发中断的情况下,fpga应答下一帧。
43.具体的一个实施例中,下面结合附图2和表1-3对本发明作详细的描述。
44.将双路can总线分别标记为a路can总线和b路can总线,can总线接口控制器分别为a路can总线接口控制和b路can总线接口控制can;
45.can总线接口控制器中的中断寄存器仅开起收发中断;
46.fpga芯片用来控制can总线接口控制器的工作;
47.fpga芯片默认采用a路can总线进行通讯;
48.当需要两路can总线接口控制器执行初始化操作时,先执行a路后执行b路。
49.s010当can总线处于应答结束状态(空闲等待状态,或者刚设置应答发送状态):
50.s0111中断信号为单路can总线边沿触发时,现在触发工作的can总线与原来工作的can总线相同,中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答;中断寄存器为发中断时,fpga芯片不操作,中断寄存器可清除发中断引起的中断信号。
51.s0112中断信号为单路can总线边沿触发时,现在触发工作的can总线与原来工作的can总线不同,中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后fpga芯片对原来工作的can总线接口控制器进行初始化操作,中断寄存器为发中断时,fpga芯片不操作。
52.s0113中断信号为双路can总线边沿触发,中断信号间隔时间不大于t(t=一个系统时钟),且原来工作的为a路can总线时,
53.当现在工作a路can总线工作,中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后,fpga芯片对b路can总线处理,b路can总线中断寄存器为收中
断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器为发中断时,fpga芯片不进行操作;
54.当a路can总线中断寄存器为发中断时,fpga芯片对a路can总线不进行操作,对b路can总线处理,b路can总线中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后,fpga芯片对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器为发中断时,fpga芯片不操作。
55.s0114中断信号为双路can总线边沿触发,工作信号间隔时间不大于t(t=一个系统时钟),原来工作的为b路can总线时;
56.当a路can总线中断寄存器为收中断且b路can总线中断寄存器为收中断时,fpga芯片读取接收a路can总线缓冲区状态,正常应答,应答完成后,再读取接收b路can总线缓冲区状态,正常应答,全部应答完成后fpga芯片对a路can总线接口控制器进行初始化操作,然后再对b路can总线接口控制器进行初始化操作;
57.当a路can总线中断寄存器为收中断且b路总线中断寄存器为发中断时,fpga芯片读取接收a路can总线缓冲区状态,正常应答,应答完成后,对b路can总线接口控制器进行初始化操作;
58.当a路can总线中断寄存器为发中断时,b路can总线中断寄存器为收中断时,fpga芯片对b路can总线进行应答;
59.当a路can总线中断寄存器为发中断,b路can总线中断寄存器为发中断时,fpga芯片不进行操作。
60.s0121中断信号初次低电平且单路can总线工作时,现在触发工作的can总线与原来工作的单路can总线相同,can总线中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答;can总线中断寄存器为发中断时,fpga芯片不操作,读中断寄存器可清除发中断引起的中断信号;
61.与原来工作can总线不同,can总线控制器的中断寄存器收中断时,fpga芯片读取接收缓冲区状态,can总线正常应答,应答完成后,对原来工作can总线接口控制器进行初始化操作,can总线控制器的中断寄存器发中断时,fpga芯片不操作。
62.s0122双路中断信号均初次低电平且双路can总线工作时,
63.原来工作的为a路can总线,当a路can总线接口控制器的中断寄存器收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成对b路can总线处理,b路can总线中断寄存器收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作;b路can总线中断寄存器发中断时,fpga芯片不操作;
64.当a路can总线中断寄存器发中断时,a路can总线不进行操作,对b路can总线处理;b路can总线中断寄存器收中断时,fpga芯片读取接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器发中断时,fpga芯片不操作。
65.s0123双路中断信号初次低电平且双路can总线工作时,原来工作的为b路can总线时,
66.当a路can总线中断寄存器收中断且b路can总线中断寄存器收中断时,fpga芯片读取接收a路can总线缓冲区状态,正常应答,应答完成,读取接收b路can总线缓冲区状态,正
常应答,应答完成后对a路can总线接口控制器进行初始化操作,然后对b路can总线接口控制器进行初始化操作;
67.当a路can总线中断寄存器收中断且b路can总线中断寄存器发中断时,fpga芯片读取接收a路can总线缓冲区状态,正常应答,应答完成对b路can总线接口控制器进行初始化操作;
68.当a路can总线发断寄存器收中断,b路can总线中断寄存器收中断时,对b路can进行应答,b路can总线中断寄存器发中断时,fpga芯片不操作。
69.s013中断信号多次低电平时,fpga芯片不处理,低电平持续状态下该路can总线故障。
70.s014结束后持续无操作,等待超过一定时间t1停止应答等待过程,进入应答结束状态,结束后持续无操作等待超过一定时间t1。
71.s020当总线处于应答复帧、首帧或中间帧结束的状态:
72.s0211中断信号为单路can总线边沿触发时,现在触发工作的can总线与原来工作的can总线相同,can总线发断寄存器收中断,清空缓冲区,继续应答等待,连续仅等待一次,等待超过一次后,停止应答等待过程,进入应答结束状态;can总线发断寄存器发中断,应答下一帧。
73.s0212中断信号为单路can总线边沿触发时,现在触发工作的can总线与原工作的can总线不同,现在工作的can总线控制器的中断寄存器收中断,停止原can总线应答等待过程,fpga芯片读取现工作的can总线接收缓冲区状态,正常应答,应答完成后对原来工作做的can总线接口控制器进行初始化操作;现在工作的can总线控制器的中断寄存器发中断,按原来工作的can总线继续等待处理。
74.s0213中断信号为双路can总线边沿触发,中断信号间隔时间不大于t(t=一个系统时钟),原来工作的为a路can总线时,
75.当a路can总线中断寄存器收中断,a路can总线清空缓冲区,继续应答等待,连续仅等待一次,对b路can总线处理,b路can总线中断寄存器收中断,停止a路can总线应答等待过程,读取接收b路can总线缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器发中断,按a路can总线继续等待处理;
76.当a路can总线中断寄存器发中断,a路can总线应答下一帧,应答完成后对b路can总线处理,b路can总线中断寄存器收中断,停止a路can总线应答等待过程,读取接收b路can总线缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器发中断,不操作,按a路can总线继续等待处理。
77.s0214中断信号为双路can总线边沿触发,中断信号间隔时间不大于t(t=一个系统时钟),原来工作的为b路can总线时,
78.当a路can总线中断寄存器收中断,b路can总线中断寄存器收中断,读取接收a路can总线缓冲区状态,正常应答,应答完成,读取接收b路can总线缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,然后对b路can总线接口控制器进行初始化操作;
79.b路can总线中断寄存器发中断,读取接收a路can总线缓冲区状态,正常应答,应答完成,对b路can总线接口控制器进行初始化操作;
80.当a路can总线中断寄存器发中断,b路can总线中断寄存器收中断,清空缓冲区,继续应答等待,连续仅等待一次,等待超过一次后,停止应答等待过程,进入应答结束状态,b路can总线中断寄存器发中断,应答下一帧。
81.s0221中断信号初次低电平且单路can总线工作时;
82.现在触发工作的can总线与原来工作的单路can总线相同,can总线中断寄存器为收中断时,fpga芯片读取接收缓冲区状态,正常应答;can总线中断寄存器为发中断时,应答下一帧;
83.现在触发工作的can总线与原来工作can总线不同,can总线控制器的中断寄存器收中断时,fpga芯片读取接收现在触发工作的can总线缓冲区状态,正常应答,应答完成后,对原来工作can总线接口控制器进行初始化操作,can总线控制器的中断寄存器发中断时,fpga芯片不操作,按原来工作的can总线继续等待处理。
84.s0222双路中断信号初次低电平且双路can总线工作时,原来工作的为a路can总线时;
85.当a路can总线接口控制器的中断寄存器收中断时,a路can总线清空缓冲区,继续应答等待,连续仅等待一次,等待超过一次后,停止应答等待过程,进入应答结束状态,b路can总线中断寄存器收中断时,停止a路can总线应答等待过程,读取b路can总线接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线执行发送信号工作时,按a路can总线继续等待处理;
86.当a路can总线中断寄存器发中断时,a路can总线应答下一帧,应答完成后对b路can总线处理,b路can总线中断寄存器收中断时,停止a路can总线应答等待过程,读取b路can总线接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,b路can总线中断寄存器发中断时,不操作,按a路can总线继续等待处理。
87.s0223双路中断信号为初次低电平且双路can总线工作时,原来工作的为b路can总线时;
88.当a路can总线中断寄存器收中断时,b路can总线中断寄存器收中断时,a路can总线读取接收缓冲区状态,正常应答,应答完成,读取b路can总线接收缓冲区状态,正常应答,应答完成后对a路can总线接口控制器进行初始化操作,然后对b路can总线接口控制器进行初始化操作;b路can总线中断寄存器发中断时,读取a路can总线接收缓冲区状态,正常应答,应答完成对b路can总线接口控制器进行初始化操作;
89.当a路can总线中断寄存器发中断时,b路can总线中断寄存器收中断时,清空缓冲区,继续应答等待,连续仅等待一次,等待超过一次后,停止应答等待过程,进入应答结束状态,b路can总线中断寄存器发中断时,应答下一帧。
90.s023中断信号多次低电平时,与原路can总线相同时,低停止应答等待过程,进入应答结束状态,但低电平持续状态的can总线故障;与原路can总线不同时,不处理,低电平持续状态的can总线故障。
91.表1
[0092][0093]
表2
[0094][0095]
表3
[0096][0097]
在本发明的描述中,需要说明的是,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0098]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1