专利名称:一种获取嵌入式软件版本信息的方法
技术领域:
本发明涉及嵌入式系统技术领域,尤其涉及一种获取嵌入式软件版本信息的方法。
背景技术:
在嵌入式软件的开发阶段,需要经过多次设计迭代并进行充分测试以提高软件可 靠性和完善产品性能。采用软件版本的形式对设计过程建立里程碑,以版本标号的形式对 各个软件版本进行标识和区分,然后在计算机上以文档管理的形式或者通过专业的版本控 制工具对各个版本软件的源代码及其二进制文件进行整理及控制是一种有效的软件开发 管理方式并已被广泛采用。在开发过程中,为了提高设计效率,开发和测试并行进行,为了 测试缺陷、查找缺陷原因或定位缺陷的引入时间,可能需要对不同版本的软件进行测试。当 测试出某个缺陷后,需要定位当前运行软件的版本号进行进一步分析,由于硬件版本的相 对固定性,无法通过检查硬件电路的手段来判断当前运行软件的版本,如果软件本身包含 版本信息,通过一种手段从软件中获得版本信息,便可以解决上述问题。
中国发明专利一种在嵌入式软件中记录版本信息的方法(申请号 200710074006. 3),提供了一种分析代码二进制文件读取软件版本信息的方法,在代码二进 制文件的固定地址处存储版本信息,读取版本信息时,根据代码二进制文件的格式查找出 文件中存储版本信息的位置,从而读取版本信息,这种方式需要分析者有权限读取代码二 进制文件,并且由于需要根据文件类型及格式进行文件分析,所以需要比较专业的知识和 工具,效率也比较低,本发明采用预留的MCU IO管脚进行软件版本的获取,通过在单个IO 管脚上实现按键检测与LED驱动的复用,按键触发嵌入式设备输出当前软件版本信息,设 备以特定方式LED脉冲闪烁的表现形式输出版本信息。这种方式避免了对代码二进制文件 的专业分析和数据查找,可以高效直观得在测试现场获取版本信息,而且因为其简单易实 现、占用资源少,在嵌入式设备领域具有广泛的适用性。发明内容
本发明的目的就是为了解决上述问题,提供一种获取嵌入式软件版本信息的方 法,它具有简单易实现、占用资源少的优点。
为了实现上述目的,本发明采用如下技术方案
一种获取嵌入式软件版本信息的方法,首先利用按键、LED、限流电阻Rl和上拉电 阻R2四个元件搭建电路,然后设置IO脚为输入方向,周期检测按键操作,检测到有效的按 键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的 闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
—种获取嵌入式软件版本信息的方法,具体步骤为
步骤一连接硬件电路电阻R2和LED灯并联之后一端与电阻Rl和按键连接,按键与电源连接,电阻Rl接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二 设置IO脚为输入方向,启动定时采样周期;
步骤三采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则 不进行任何操作;
步骤四判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否 则进入步骤三;
步骤五采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不 进行任何操作;
步骤六停止采样周期定时,设置IO脚为输出方向,根据版本号常量VERSION和公 式x=VERSI0N/10和y=VERSI0N% 10计算x和y,进入步骤七;
步骤七以频率为2Hz、占空比为50%的PWM形式输出X个周期的方波脉冲,进入 步骤八;
步骤八设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九以频率为1Hz、占空比为50%的PWM形式输出y个周期的方波脉冲,进入 步骤十;
步骤十设置IO状态为O,返回步骤二。
设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状 态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现 LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效 的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不 同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输 入方向。
软件版本标号采用带小数点的浮点数形式,格式为X. y,X和y的取值区间为
,共计可包含O. 1-9.9的99个版本,由于浮点数运算存在误差,在每次软件定版时,在软 件程序中以一个1-99的整型常量VERSION来表示版本号,VERSION= (x. y) *10,从版本号常 量VERSION中提取X和y的计算公式如下
X=VERSION/IO (1-1)
y=VERS ION % 10 (1-2)
X等于版本号常量除以10的模,y等于版本号常量除以10的余数。
硬件电路包括按键、LED、限流电阻Rl和上拉电阻R2四个元件。IO脚设置为输入 方向时,按键按下,限流电阻Rl端电压为VCC, LED截止处于熄灭状态,由于上拉电阻R2的 作用,IO脚电平为高,状态值为1,当按键弹起,限流电阻Rl端电压为0,LED截止,IO脚电 平为低,状态值为O。IO设置为输出方向时,在按键处于弹起状态的条件下,IO电平为高时, LED导通点亮,IO电平为低时,LED截止熄灭,当按键按下时,LED截止熄灭。可选择红、黄、 蓝不同颜色的LED,不同颜色LED的导通电压不同,决定所使用的限流电阻Rl的阻值也不相 同,同时调整限流电阻Rl阻值,可以调节LED灯的亮度。该电路可以在嵌入式设备上直接 实现,也可以通过嵌入式设备的预留端口在设备外部实现。
本发明的有益效果
1.通过MCU的单个IO管脚及简单的软件程序便可以实现嵌入式软件版本信息的读取,占用软硬件资源很少;
2.通过按键的方式触发读取软件版本信息操作,避免了复杂的诊断协议和诊断接 Π ;
3.通过LED脉冲闪烁的方式输出软件版本信息,直观方便;
4.电路设计和程序设计简单,可以方便地在不同的嵌入式设备上实现,具有广泛的适用性;
图1为本发明的硬件电路图2为本发明方法的软件设计流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图2所示,一种获取嵌入式软件版本信息的方法,具体步骤为
步骤一连接硬件电路电阻R2和LED灯并联之后一端与电阻Rl和按键连接,按键与电源连接,电阻Rl接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二 设置IO脚输入方向,启动定时采样周期;
步骤三采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作;
步骤四判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三;
步骤五采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作;
步骤六停止采样周期定时,设置IO脚为输出方向,根据版本号常量VERSION和公式x=VERSI0N/10和y=VERSI0N% 10计算x和y,进入步骤七;
步骤七以频率为2Hz、占空比为50%的PWM形式输出X个周期的方波脉冲,进入步骤八;
步骤八设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九以频率为1Hz、占空比为50%的PWM形式输出y个周期的方波脉冲,进入步骤十;
步骤十设置IO状态为O,返回步骤二。
设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现 LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
软件版本标号采用带小数点的浮点数形式,格式为X. y,X和y的取值区间为
,共计可包含O. 1-9.9的99个版本,由于浮点数运算存在误差,在每次软件定版时,在软件程序中以一个1-99的整型常量VERSION来表示版本号,VERSION= (x. y) *10,从版本号常 量VERSION中提取X和y的计算公式如下
X=VERSION/IO (1-1)
y=VERS ION % 10 (1-2)
X等于版本号常量除以10的模,y等于版本号常量除以10的余数。
如图1所示,硬件电路包括按键、LED、限流电阻Rl和上拉电阻R2四个元件。IO 脚设置为输入方向时,按键按下,限流电阻Rl端电压为VCC,LED截止处于熄灭状态,由于 上拉电阻R2的作用,IO脚电平为高,状态值为1,当按键弹起,限流电阻Rl端电压为0,LED 截止,IO脚电平为低,状态值为O。IO设置为输出方向时,在按键处于弹起状态的条件下, IO电平为高时,LED导通点亮,IO电平为低时,LED截止熄灭,当按键按下时,LED截止熄灭。 可选择红、黄、蓝不同颜色的LED,不同颜色LED的导通电压不同,决定所使用的限流电阻Rl 的阻值也不相同,同时调整限流电阻Rl阻值,可以调节LED灯的亮度。该电路可以在嵌入 式设备上直接实现,也可以通过嵌入式设备的预留端口在设备外部实现。
上述虽然结合附图对本发明的具体实施方式
进行了描述,但并非对本发明保护范 围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不 需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
权利要求
1.一种获取嵌入式软件版本信息的方法,其特征是,首先利用按键、LED、限流电阻Rl和上拉电阻R2四个元件搭建电路,然后设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。
2.一种获取嵌入式软件版本信息的方法,其特征是,具体步骤为 步骤一连接硬件电路电阻R2和LED灯并联之后一端与电阻Rl和按键连接,按键与电源连接,电阻Rl接地,电阻R2和LED灯并联之后另一端与IO脚连接; 步骤二 设置IO脚输入方向,启动定时采样周期; 步骤三采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作; 步骤四判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三; 步骤五采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作; 步骤六停止采样周期定时,设置IO脚为输出方向,根据版本号常量与X和y的关系,计算X和y,进入步骤七; 步骤七以一定的PWM形式输出X个周期的方波脉冲,进入步骤八; 步骤八设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九; 步骤九以一定的PWM形式输出y个周期的方波脉冲,进入步骤十; 步骤十设置IO状态为0,返回步骤二。
3.如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤二中的采样周期为20ms。
4.如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述版本常量与 X 和 y 的关系为x=VERSI0N/10 和 y=VERSI0N%10。
5.如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤七中PWM的频率为2Hz、占空比为50%。
6.如权利要求2所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤九中P丽的频率为IHz、占空比为50%。
全文摘要
本发明公开了一种获取嵌入式软件版本信息的方法,首先设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。本发明通过MCU的单个IO管脚及简单的软件程序便实现嵌入式软件版本信息的读取,占用软硬件资源很少;通过按键的方式触发读取软件版本信息操作,避免了复杂的诊断协议和诊断接口。
文档编号G06F11/36GK103019932SQ20121048866
公开日2013年4月3日 申请日期2012年11月26日 优先权日2012年11月26日
发明者马建辉, 王知学, 刘源杨, 王岗 申请人:山东省科学院自动化研究所