发明名称 CAN控制器中实现多消息机制的方法
摘要 本发明涉及一种CAN控制器中实现多消息机制的方法。本方法在CAN芯片中加入多类ID帧的消息机制,即一个总线ID对应其自己的验收滤波器和接受缓冲器,并协调各消息机制正常工作。本发明可应用于CAN控制器功能扩展。此方法使得一个控制器能同时滤出更多类ID帧,一方面,增加了设计的灵活性,减少硬件成本,另一方面,多接收缓冲器也使得控制器能够处理更多的信号的同时,使用也更加便利。使CAN控制器更好地满足汽车电子和汽车工业的发展要求。
申请公布号 CN102053601B 申请公布日期 2012.08.29
申请号 CN201010541386.9 申请日期 2010.11.12
申请人 上海大学 发明人 胡越黎;郭金燕;朱卫;徐晓勇;徐磊;王昆
分类号 G05B19/418(2006.01)I 主分类号 G05B19/418(2006.01)I
代理机构 上海上大专利事务所(普通合伙) 31205 代理人 何文欣
主权项 一种CAN控制器中实现多消息机制的方法,其特征在于:在CAN芯片中加入多类ID帧的消息机制, 即一个总线ID消息对应它自己的验收滤波器和接收缓冲器,并协调各消息机制正常工作;其具体步骤为:a.设置多个验收滤波器,以实现对多类ID帧进行验收滤波;b.记录验收滤波过程,以实现验收失败原因通过寄存器可读;c.设置多个接收缓冲器,来实现不同种类ID帧能够存储进不同的接收缓冲器;d.设置专门寄存器对各接收缓冲器进行读转换控制;e.采用先进先出方式对各接收缓冲器进行读写控制;所述的步骤a中设置多个验收滤波器的方法为:设置8个8位验收代码寄存器和8个8位验收屏蔽寄存器构成多个验收滤波器,验收代码寄存器和验收屏蔽寄存器成对使用来对滤波ID进行设置;8对寄存器能够对64位ID进行滤波,因此能够实现4个8位、4个16位及2个32位滤波3种不同位验收滤波模式,即最多存在4个滤波器,按照对应的验收代码寄存器依次取名为验收滤波器0,验收滤波器1,验收滤波器2,验收滤波器3;每个验收滤波器的滤波方式又分为单次滤波和双次滤波两种;单次滤波只需要对接收的帧进行一次滤波,若滤波成功则进行接收;双次滤波则能够对接收帧进行双次滤波,只有两次滤波均成功,则进行接收;验收滤波器有基本模式单次滤波、基本模式双次滤波、扩展模式标准帧单次滤波、扩展模式标准帧双次滤波、扩展模式扩展帧单次滤波和扩展模式扩展帧双次滤波六种滤波工作模式;工作模式的选择是由CAN控制器工作模式决定的;在此把与多个验收滤波器相关的一些信号和寄存器的定义如下:acceptance_filter_mode:寄存器模块与验收滤波器子模块进行通信的外部信号,指示验收滤波方式;acceptance_filter_mode为1时,指示为单次滤波,反之为双次滤波;filter_select[1:0]:寄存器模块与验收滤波器子模块进行通信的外部信号,指示验收滤波位数;其具体的定义为filter_select[1:0]为00时,滤波模式为2个32位验收滤波器;filter_select[1:0]为00时,滤波模式为2个32位验收滤波器;filter_select[1:0]为01时,滤波模式为4个16位验收滤波器;filter_select[1:0]为10时,滤波模式为4个8位验收滤波器;filter_select[1:0]为11时,验收滤波模式无定义;ID [28:0]:CAN控制器接收到的帧ID;acceptance_code_0~7 [7:0]/acc_code_0~7[7:0]:均是寄存器模块与验收滤波器子模块进行通信的外部引脚,验收代码在此进行设置;acceptance_mask_0~7[7:0]/acc_mask_0~7[7:0]:均是寄存器模块与验收滤波器子模块进行通信的外部引脚,验收屏蔽码在此进行设置;id_ok0~ id_ok3:均是验收滤波器子模块与接收子模块进行通信的外部信号,它们指示验收滤波器滤波成功,具体的对应关系是id_ok0为高时,显示帧滤波成功,然后将帧数据存入到接收缓冲器0,id_ok0为低时,显示帧滤波失败,不接受帧数据;id_ok1为高时,帧数据存入到接收缓冲器1,为低时,不接受帧数据;id_ok2为高时,帧数据存入到接收缓冲器2,为低时,不接受帧数据;id_ok3为高时,帧数据存入到接收缓冲器3,为低时,不接受帧数据。
地址 200444 上海市宝山区上大路99号