一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种控制器端口扩展装置及方法与流程

2022-07-13 15:20:50 来源:中国专利 TAG:


1.本发明涉及控制器技术领域,尤其涉及一种控制器端口扩展装置及方法。


背景技术:

2.随着汽车电子技术的不断发展,驾驶舱已由功能单一的传统驾驶舱进化到多屏互动互联的智能驾驶舱。智能驾驶舱集成功能越来越多,系统控制越来越复杂,监控的i/o端口也越来越多,因此控制器也需要越来越强大。然而,目前的控制器的引脚数量都不足以满足智能驾驶舱复杂控制系统的需求。
3.为解决这个技术问题,目前一般是采用多个控制器并行控制的方法,然而,这种方案多个控制器之间时序同步困难,协调难度大,且逻辑复杂,导致软件代码长,可维护性较差。


技术实现要素:

4.本发明提供一种控制器端口扩展装置及方法,旨在解决现有技术中的缺陷,实现控制器的端口扩展,并且逻辑简单,系统可靠性高。
5.为达到上述目的,本发明所采取的技术方案为:本发明一方面提供一种控制器端口扩展装置,包括:设置在第一控制器内的第一通信模块、第一存储模块、第一dma控制器、参数读写模块;设置在第二控制器内的第二通信模块、第二存储模块、第二dma控制器、复制模块、i/o读写模块;所述第一dma控制器与所述第一通信模块、第一存储模块连接,所述第一存储模块还与所述参数读写模块连接;所述第二dma控制器与所述第二通信模块、第二存储模块连接,所述第二存储模块还与所述复制模块、i/o读写模块连接;所述第一通信模块与所述第二通信模块连接;所述第一通信模块、第二通信模,用于在所述第一控制器、第二控制器之间建立通信,具备普通通信模式、dma传输两种模式;所述第一dma控制器、第二dma控制器,用于当所述所述第一通信模块、第二通信模工作在dma传输模式时,控制数据的收发;所述第一存储模块包括第一存储单元,所述第二存储模块包括第三存储单元、第四存储单元;所述第一存储单元,用于存储所述第二控制器各i/o端口的第一虚拟映射表;所述第三存储单元,用于存储所述第二控制器各i/o端口的第二虚拟映射表;所述第四存储单元,用于缓存所述第三存储单元获取的目标i/o端口参数以及所述第二控制器各i/o端口写入的pin状态寄存器、pin值;所述参数读写模块,用于将所述第二控制器的目标i/o端口参数写入到所述第一虚拟映射表中;
所述复制模块,用于将所述第三存储单元获取的目标i/o端口参数复制到所述第四存储单元;所述i/o读写模块,用于将所述目标i/o端口参数写入相应的i/o端口。
6.进一步地,所述控制器端口扩展装置还包括:设置在所述第一存储模块中的第二存储单元,用于存储所述第一虚拟映射表的备份;与所述第一存储单元、第二存储单元连接的参数备份模块,用于在改写所述第一虚拟映射表之前,将当前所述第一虚拟映射表备份到第二存储单元。
7.进一步地,所述控制器端口扩展装置还包括:与所述第二通信模块的接收信号线连接的边沿检测模块,与所述边沿检测模块的中断事件模块,以及与所述中断事件模块、第二dma控制器连接的定时模块;所述边沿检测模块,用于来检测所述第二通讯模块的接收信号线上的信号边沿;所述中断事件模块,用于当检测到预设信号边沿时产生中断和事件;所述定时模块,用于在接收到中断和事件后启动定时,并在定时超时后产生定时中断。
8.具体地,所述边沿检测模块为一配置为外部中断模式的i/o端口。
9.具体地,所述第一控制器为主控制器,所述第二控制器为从控制器。
10.本发明另一方面提供一种控制器端口扩展方法,包括:步骤1、在第一控制器、第二控制器中分别预置第一虚拟映射表、第二虚拟映射表;步骤2、所述第一控制器将所述第一虚拟映射表写入第一存储模块,并控制所述第二控制器启动,所述第二控制器将所述第二虚拟映射表写入第二存储模块;步骤3、所述第一控制器接收目标i/o端口参数;步骤4、所述第一控制器根据所述目标i/o端口参数修改所述第一虚拟映射表,并通知所述第二控制器读取所述第一虚拟映射表;步骤5、所述第一控制器发送所述第一虚拟映射表,所述第二控制器接收所述第一虚拟映射表,并存储到所述第二控制器的第二存储模块;步骤6、所述第二控制器将所述第一虚拟映射表与所述第二映虚拟射表进行比较,获取所述目标i/o端口参数进行缓存;步骤7、所述第二控制器读取所述缓存,将所述目标i/o端口参数写入到对应的i/o端口。
11.进一步地,在所述步骤3之后、步骤4之前还包括:步骤31、所述第一控制器将所述第一虚拟映射表进行备份。
12.进一步地,在所述步骤7之后还包括:步骤8、当所述第一控制器判断系统处于空闲状态后,控制所述第二控制器关机,并控制自身进入休眠。
13.具体地,所述第一控制器发送所述第一虚拟映射表包括:步骤a、若所述第一控制器判断所述目标i/o端口参数的数据量超过预设阈值,或者所述第一控制器判断所述第一控制器或/和第二控制器的使用率高于预设使用率阈值,则控制所述第一控制器、第二控制器进入dma传输模式并进入下一步,否则所述第一控制器
以通信模块的普通通信模式发送所述第一虚拟映射表;步骤b、所述第一控制器以dma传输模式将所述第一虚拟映射表发送给所述第二控制器;步骤c、所述第二控制器以dma模式接收所述第一虚拟映射表。
14.具体地,所述步骤c包括:步骤c1、将所述第二控制器的任一i/o端口设置为外部中断模式,并与所述第二通讯模块的接收信号线连接;步骤c2、判断是否检测到预设信号边沿,是则产生中断和事件并进入下一步,否则循环执行本步骤;步骤c3、控制所述第二控制器的定时模块开始工作,清零定时器;步骤c4、判断所述定时模块是否产生定时中断,是则关闭所述定时模块,对接收到的数据进行处理,并重置所述第二dma控制器,否则返回步骤c2。
15.本发明的有益效果在于:本发明通过预置第一虚拟映射表、第二虚拟映射表,接收目标i/o端口参数,并根据目标i/o端口参数修改第一虚拟映射表,然后将第一虚拟映射表与第二映虚拟射表进行比较,获取目标i/o端口参数,再根据目标i/o端口参数改变对应i/o端口的状态,实现了控制器的端口扩展,并且逻辑简单,系统可靠性高。
附图说明
16.图1是本发明的控制器端口扩展装置的结构示意图;图2是本发明的控制器端口扩展装置的另一结构示意图;图3是本发明的第一存储模块、第二存储模块示意图;图4是本发明的控制器端口扩展装置的又一结构示意图。
具体实施方式
17.下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。
18.实施例1如图1所示,本实施例提供一种控制器端口扩展装置,包括:设置在第一控制器内的第一通信模块、第一存储模块、第一dma控制器、参数读写模块;设置在第二控制器内的第二通信模块、第二存储模块、第二dma控制器、复制模块、i/o读写模块;所述第一dma控制器与所述第一通信模块、第一存储模块连接,所述第一存储模块还与所述参数读写模块连接;所述第二dma控制器与所述第二通信模块、第二存储模块连接,所述第二存储模块还与所述复制模块、i/o读写模块连接;所述第一通信模块与所述第二通信模块连接;所述第一通信模块、第二通信模,用于在所述第一控制器、第二控制器之间建立通信,具备普通通信模式、dma传输两种模式;所述第一dma控制器、第二dma控制器,用于当所述所述第一通信模块、第二通信模工作在dma传输模式时,控制数据的收发;
所述第一存储模块包括第一存储单元,所述第二存储模块包括第三存储单元、第四存储单元;所述第一存储单元,用于存储所述第二控制器各i/o端口的第一虚拟映射表;所述第三存储单元,用于存储所述第二控制器各i/o端口的第二虚拟映射表;所述第四存储单元,用于缓存所述第三存储单元获取的目标i/o端口参数以及所述第二控制器各i/o端口写入的pin状态寄存器、pin值;所述参数读写模块,用于将所述第二控制器的目标i/o端口参数写入到所述第一虚拟映射表中;所述复制模块,用于将所述第三存储单元获取的目标i/o端口参数复制到所述第四存储单元;所述i/o读写模块,用于将所述目标i/o端口参数写入相应的i/o端口。
19.在本实施例中,所述第一控制器为主控制器,所述第二控制器为从控制器。
20.在本实施例中,所述第一存储模块、第二存储模块是所述第一控制器、第二控制器的片内sram。
21.在本实施例中,所述第一虚拟映射表、第一虚拟映射表相同,包括:所述第二控制器各i/o端口的pin地址、pin状态寄存器、pin值。
22.例如,所述第二控制器各i/o端口的pin地址为0x2000~0x2100;所述pin状态寄存器即控制i/o端口工作模式的状态寄存器值,例如0x0001表示i/o输出模式,ox0010表示a/d模式等;所述pin值与i/o端口工作模式有关,例如,当i/o端口工作在为i/o输出模式时,则所述pin值为逻辑高电平1或低电平0;当i/o端口工作在a/d模式时,则所述pin值为某一具体的a/d值,等等。
23.在本实施例中,所述目标i/o端口参数为所述第一控制器要控制修改的所述第二控制器的i/o端口的参数,包括端口工作模式、端口值等。
24.当第一控制器要修改第二控制器某个i/o端口的参数时,第一控制器将该i/o端口参数写入到第一存储单元中的虚拟映射表,第二控制器可以通过通信i/o直接读取第一控制器第一存储单元的数据,存储到第二控制器的第三存储单元,并复制到第四存储单元,由i/o读写模块写入相应的i/o端口从而实现第一控制器对第二控制器的i/o端口控制。
25.如图2所示,在本发明的另一个实施例中,所述控制器端口扩展装置还包括:设置在所述第一存储模块中的第二存储单元,用于存储所述第一虚拟映射表的备份;与所述第一存储单元、第二存储单元连接的参数备份模块,用于在改写所述第一虚拟映射表之前,将当前所述第一虚拟映射表备份到第二存储单元。
26.本发明的所述第一存储模块、第二存储模块,以及所述第一存储单元、第二存储单元、第三存储单元、第四存储单元的关系如图3所示。
27.在所述第一存储模块、第二存储模块中存储有控制器的gpio端口寄存器、虚拟映射表。其中,第二控制器的gpio寄存器通过映射的方式存储在第一存储模块的第一虚拟映射表中。这样,通过修改第一虚拟映射表的方式就可以达到改变第二控制器gpio寄存器的目的,从而实现了对第二控制器的i/o端口进行控制。
28.实施例2
如图4所示,与实施例1不同的是,本实施例提供的控制器端口扩展装置还包括:与所述第二通信模块的接收信号线连接的边沿检测模块,与所述边沿检测模块的中断事件模块,以及与所述中断事件模块、第二dma控制器连接的定时模块;所述边沿检测模块,用于来检测所述第二通讯模块的接收信号线上的信号边沿;所述中断事件模块,用于当检测到预设信号边沿时产生中断和事件;所述定时模块,用于在接收到中断和事件后启动定时,并在定时超时后产生定时中断。
29.在本实施例中,所述边沿检测模块为一配置为外部中断模式的i/o端口。
30.在本实施例中,所述预设信号边沿为上升沿或下降沿。
31.在具体实施时,将所述第二控制器的某一个i/o端口(例如i/o0)设置为外部中断模式,并与所述第二通讯模块的信号接收引脚连接,当i/o0检测到数据开始传输的信号边沿(例如下降沿)时,所述中断事件模块产生中断,所述定时模块开始工作;当i/o0检测到下降沿时同时产生事件,所述定时模块接收到所述事件后清零定时器,防止产生定时中断;当所述定时模块产生定时中断后,关闭所述定时模块,对接收到的数据进行处理,并重置所述第二dma控制器。
32.通过设置上述模块,克服了dma传输模式只能接收固定长度数据的缺陷,实现接收任意长度的数据,从而进一步了提高系统性能。
33.实施例3本实施例提供一种控制器端口扩展方法,包括:步骤1、在第一控制器、第二控制器中分别预置第一虚拟映射表、第二虚拟映射表。
34.步骤2、所述第一控制器将所述第一虚拟映射表写入第一存储模块,并控制所述第二控制器启动,所述第二控制器将所述第二虚拟映射表写入第二存储模块。
35.在本实施例中,所述第一虚拟映射表与所述第二虚拟映射表相同。
36.步骤3、所述第一控制器接收目标i/o端口参数。
37.步骤4、所述第一控制器根据所述目标i/o端口参数修改所述第一虚拟映射表,并通知所述第二控制器读取所述第一虚拟映射表。
38.步骤5、所述第一控制器发送所述第一虚拟映射表,所述第二控制器接收所述第一虚拟映射表,并存储到所述第二控制器的第二存储模块。
39.在本实施例中,所述第一控制器发送所述第一虚拟映射表包括:步骤a、若所述第一控制器判断所述目标i/o端口参数的数据量超过预设阈值,或者所述第一控制器判断所述第一控制器或/和第二控制器的使用率高于预设使用率阈值,则控制所述第一控制器、第二控制器进入dma传输模式并进入下一步,否则所述第一控制器以通信模块的普通通信模式发送所述第一虚拟映射表。
40.步骤b、所述第一控制器以dma传输模式将所述第一虚拟映射表发送给所述第二控制器。
41.步骤c、所述第二控制器以dma模式接收所述第一虚拟映射表。
42.在本实施例中,所述步骤c包括:步骤c1、将所述第二控制器的任一i/o端口设置为外部中断模式,并与所述第二通讯模块的接收信号线连接;
步骤c2、判断是否检测到预设信号边沿,是则产生中断和事件并进入下一步,否则循环执行本步骤;步骤c3、控制所述第二控制器的定时模块开始工作,清零定时器;步骤c4、判断所述定时模块是否产生定时中断,是则关闭所述定时模块,对接收到的数据进行处理,并重置所述第二dma控制器,否则返回步骤c2。
43.步骤6、所述第二控制器将所述第一虚拟映射表与所述第二映虚拟射表进行比较,获取所述目标i/o端口参数进行缓存。
44.步骤7、所述第二控制器读取所述缓存,将所述目标i/o端口参数写入到对应的i/o端口。
45.在本发明的另一个实施例中,在所述步骤3之后、步骤4之前还包括:步骤31、所述第一控制器将所述第一虚拟映射表进行备份。
46.在本发明的另一个实施例中,在所述步骤7之后还包括:步骤8、当所述第一控制器判断系统处于空闲状态后,控制所述第二控制器关机,并控制自身进入休眠。
47.当处于空闲状态后,所述第一控制器进入休眠,第二控制器进入关机,可有效降低系统的待机电流。
48.以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献