公开/公告号CN112162730A
专利类型发明专利
公开/公告日2021-01-01
原文格式PDF
申请/专利权人 北京特种机械研究所;
申请/专利号CN202011062975.9
申请日2020-09-30
分类号G06F8/20(20180101);G06F9/445(20180101);G06F13/16(20060101);G06F13/40(20060101);
代理机构11011 中国兵器工业集团公司专利中心;
代理人辛海明
地址 100143 北京市海淀区西四环北路149号
入库时间 2023-06-19 09:24:30
技术领域
本发明属于CAN总线通信领域,具体涉及一种实现多功能CAN总线通信的DSP软件设计方法。
背景技术
近年来,由于CAN总线自身的通信可靠性高、成本低和使用灵活等优势,逐渐在车载电子通信、军工航天等领域得到广泛应用。DSP数字处理芯片由于其计算速度快、信号采集及处理能力强大,被广泛应用于嵌入式系统中。
采用CAN总线通信需要为网络里每一个通信设备分配一个ID号码,现有的ID配置方式有以下4种:一是将ID固化到代码中,在软件初始化时完成ID配置;二是使用拨码开关设置ID,软件完成ID识别;三是主节点在每次系统上电后使用串口通信方式向每个从节点发送ID设置指令;四是通过串口上位机或其他方式向DSP发送ID设置指令,DSP软件使用EEPROM等外部存储器固化ID。方法一不能动态配置ID,只能通过修改代码方式重新配置ID,导致软件存在多个版本;方法二和方法三需要额外的硬件电路配合,增加了硬件设计和开发成本;方法四除了需要额外的硬件电路,还需要开发专门设置ID的串口上位机等工具。因此,以上4种方法均存在不足。
在软件设计时,若能实现多种工作模式,可将不同功能软件重构为一个软件,大大节约了软件管理和维护成本。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种实现多功能CAN总线通信的DSP软件设计方法,以克服现有的ID设置方法不能动态配置ID、需要额外的硬件电路、需要开发专门设置ID的串口上位机等问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种实现多功能CAN总线通信的DSP软件设计方法,所述DSP片上集成有FLASH和CAN控制器,该方法包括如下步骤:
步骤一、DSP软件初始化后使用默认ID,用户通过CAN总线发送设置ID指令;
步骤二、所述DSP软件接收设置ID指令后,将指令中的ID值写入DSP片上的所述FLASH的两个固定地址中;
步骤三、所述DSP软件从DSP片上的所述FLASH的两个固定地址中读取ID值,根据读取结果初始化所述CAN控制器,根据ID值进入不同工作模式。
进一步地,所述步骤一中DSP软件初始化后使用默认ID具体包括如下步骤:当所述DSP上电时,所述DSP软件首先从所述DSP片上的所述FLASH的两个固定地址ADDR_1和ADDR_2中读取ID值,分别是ID_1和ID_2,并比较ID_1和ID_2是否相等且不等于-1,ID_1和ID_2相等且不等于-1则使用此ID值ID_1或ID_2,否则使用默认ID值ID_DEFAULT;然后初始化CAN控制器,初始化完成对外发送一帧数据,用来提示用户所述DSP已经具备CAN总线通信条件和当前ID号,其中,若未设置ID,所述DSP片上的所述FLASH两个固定地址中存储数据为-1。
进一步地,所述步骤一中用户通过CAN总线发送设置ID指令具体包括如:用户使用计算机根据上述当前ID通过CAN总线发送设置ID指令,该指令中包括有ID值ID_USER。
进一步地,所述步骤二具体包括:所述DSP软件判断是否收到用户设置ID指令,若收到用户设置ID指令,解析得到ID值ID_USER,将ID_USER分别写入所述DSP片上的所述FLASH的两个固定地址ADDR_1和ADDR_2中。
进一步地,所述步骤三中的所述DSP软件从DSP片上的所述FLASH的两个固定地址中读取ID值,根据读取结果初始化所述CAN控制器具体包括:所述DSP软件分别读出DSP片上的所述FLASH的两个固定地址中ADDR_1和ADDR_2中的ID值,判断是否均等于ID_USER,若相等则根据ID_USER重新初始化CAN控制器,初始化完成对外发送一帧数据,用来提示用户ID设置成功;不相等说明ID写入过程发生错误,使用默认ID通过CAN总线对外发送一帧数据,用来提示用户ID设置失败,用户根据该提示信息重新设置ID。
进一步地,所述步骤三中的根据ID值进入不同工作模式具体包括:DSP软件根据ID值,识别并进入对应的工作模式,其中,用户可为每个ID值预定义对应的工作模式,从而可以根据ID值识别并进入指定的工作模式。
(三)有益效果
本发明提出一种实现多功能CAN总线通信的DSP软件设计方法,采用CAN总线通信设置节点ID,无需开发专门设置ID的串口上位机等工具;将ID存储在DSP的片上FLASH中,无需增加额外硬件存储电路,节省了印制板使用空间,降低了开发成本。利用ID号码识别不同工作模式,将不同功能软件重构为一个软件,大大节约了软件管理和维护成本。
附图说明
图1为本发明的实现多功能CAN总线通信的DSP软件设计方法流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的目的在于提出一种实现多功能CAN总线通信的DSP软件设计方法,在不增加硬件电路和ID配置工具的情况下,采用DSP片上FLASH作为存储器并通过CAN总线完成ID配置,软件利用ID号码识别不同工作模式,从而实现了多种功能软件的整合。
按照本发明提供的技术方案,一种实现多功能CAN总线通信的DSP软件设计方法,DSP片上集成有FLASH和CAN控制器,包括如下步骤:
步骤一、DSP软件初始化后使用默认ID,用户通过CAN总线发送设置ID指令;
步骤二、软件接收设置ID指令后,将指令中的ID值写入DSP片上FLASH两个固定地址中;
步骤三、软件从DSP片上FLASH的两个固定地址中读取ID,根据读取结果初始化CAN控制器,根据ID值进入不同工作模式。
图1为本发明实施例的软件流程图,当DSP上电时,DSP软件首先从DSP片上FLASH的两个固定地址ADDR_1和ADDR_2中读取ID值,分别是ID_1和ID_2,并比较ID_1和ID_2是否相等且不等于-1(若未设置ID,DSP片上FLASH两个固定地址中存储数据为-1),ID_1和ID_2相等且不等于-1则使用此ID值ID_1或ID_2,否则使用默认ID值ID_DEFAULT;然后初始化CAN控制器,初始化完成对外发送一帧数据,用来提示用户DSP已经具备CAN总线通信条件和当前ID号。其中,DSP片上集成有CAN控制器和FLASH。
用户使用计算机根据上述当前ID通过CAN总线发送设置ID指令,该指令中包括有ID值ID_USER。
DSP软件判断是否收到用户设置ID指令,若收到用户设置ID指令,解析得到ID值ID_USER,将ID_USER分别写入DSP片上FLASH的两个固定地址ADDR_1和ADDR_2中。然后所述DSP软件分别读出DSP片上的所述FLASH的两个固定地址中ADDR_1和ADDR_2中的ID值,判断是否均等于ID_USER,若相等则根据ID_USER重新初始化CAN控制器,初始化完成对外发送一帧数据,用来提示用户ID设置成功;不相等说明ID写入过程发生错误,使用默认ID通过CAN总线对外发送一帧数据,用来提示用户ID设置失败,用户根据该提示信息重新设置ID。
最后根据ID值,识别并进入对应的工作模式。其中,用户可为每个ID预定义对应的工作模式,从而可以根据ID值识别并进入指定的工作模式。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
机译: 对于系统的实施例和实现,实现了一种多功能通信系统
机译: 一种可实现电子设备与电池之间通信的方法,一种可实现电子设备与电池之间通信的设备,以及一种可实现通信的电池。
机译: 一种使用通信网络向客户提供定制信息的方法,该网络系统用于实现支持网络规范的相同和多功能通信终端设备