CN103019932B - 一种获取嵌入式软件版本信息的方法 - Google Patents

一种获取嵌入式软件版本信息的方法 Download PDF

Info

Publication number
CN103019932B
CN103019932B CN201210488667.1A CN201210488667A CN103019932B CN 103019932 B CN103019932 B CN 103019932B CN 201210488667 A CN201210488667 A CN 201210488667A CN 103019932 B CN103019932 B CN 103019932B
Authority
CN
China
Prior art keywords
pin
button
state
arranging
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210488667.1A
Other languages
English (en)
Other versions
CN103019932A (zh
Inventor
马建辉
王知学
刘源杨
王岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation Shandong Academy of Sciences
Original Assignee
Institute of Automation Shandong Academy of Sciences
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Automation Shandong Academy of Sciences filed Critical Institute of Automation Shandong Academy of Sciences
Priority to CN201210488667.1A priority Critical patent/CN103019932B/zh
Publication of CN103019932A publication Critical patent/CN103019932A/zh
Application granted granted Critical
Publication of CN103019932B publication Critical patent/CN103019932B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Circuit Arrangement For Electric Light Sources In General (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种获取嵌入式软件版本信息的方法,首先设计电路实现按键检测和LED驱动复用IO脚,当IO脚为输入方向时,通过IO状态的读取可以检测按键的按下和弹起状态,当IO脚为输出方向时,可以设置高低电平实现LED的亮灭控制。具体应用时,首先设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向。本发明通过MCU的单个IO管脚及简单的软件程序便实现嵌入式软件版本信息的读取,占用软硬件资源很少;通过按键的方式触发读取软件版本信息操作,避免了复杂的诊断协议和诊断接口。

Description

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

Claims (2)

1.一种获取嵌入式软件版本信息的方法,其特征是,首先利用按键、LED灯、限流电阻R1和上拉电阻R2四个元件搭建电路,然后设置IO脚为输入方向,周期检测按键操作,检测到有效的按键按下操作后,当按键弹起时将IO脚设置为输出方向,以PWM的方式驱动LED灯,通过不同的闪烁频率、间歇时间和闪烁次数进行软件版本的显示,显示完成后再次设置IO脚为输入方向;
具体步骤为:
步骤一:连接硬件电路:电阻R2和LED灯并联之后一端与电阻R1和按键连接,按键与电源连接,电阻R1接地,电阻R2和LED灯并联之后另一端与IO脚连接;
步骤二:设置IO脚为输入方向,启动定时采样周期;
步骤三:采样周期定时到达后,读取IO状态,如果IO状态为1,进入步骤四,否则不进行任何操作;
步骤四:判断三次采样周期读取到的IO状态是否全为1,如果是,进入步骤五,否则进入步骤三;
步骤五:采样周期定时到达,读取IO状态,如果IO状态为0,进入步骤六,否则不进行任何操作;
步骤六:停止采样周期定时,设置IO脚为输出方向,根据版本号常量与x和y的关系,x=VERSION/10和y=VERSION%10,VERSION为一个1-99的整型常量,计算x和y,进入步骤七;
步骤七:以频率为2Hz、占空比为50%的PWM形式输出x个周期的方波脉冲,进入步骤八;
步骤八:设置IO状态为0,启动3s间歇定时,定时到达后进入步骤九;
步骤九:以频率为1Hz、占空比为50%的PWM形式输出y个周期的方波脉冲,进入步骤十;
步骤十:设置IO状态为0,返回步骤二。
2.如权利要求1所述一种获取嵌入式软件版本信息的方法,其特征是,所述步骤二中的采样周期为20ms。
CN201210488667.1A 2012-11-26 2012-11-26 一种获取嵌入式软件版本信息的方法 Expired - Fee Related CN103019932B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210488667.1A CN103019932B (zh) 2012-11-26 2012-11-26 一种获取嵌入式软件版本信息的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210488667.1A CN103019932B (zh) 2012-11-26 2012-11-26 一种获取嵌入式软件版本信息的方法

Publications (2)

Publication Number Publication Date
CN103019932A CN103019932A (zh) 2013-04-03
CN103019932B true CN103019932B (zh) 2015-08-05

Family

ID=47968557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210488667.1A Expired - Fee Related CN103019932B (zh) 2012-11-26 2012-11-26 一种获取嵌入式软件版本信息的方法

Country Status (1)

Country Link
CN (1) CN103019932B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103760797A (zh) * 2014-01-02 2014-04-30 常熟市天银机电股份有限公司 无显示器电子控制器的软件版本标识的确认方法
CN107391127A (zh) * 2017-07-06 2017-11-24 上海斐讯数据通信技术有限公司 软件版本信息保存方法和系统
CN107632843A (zh) * 2017-09-26 2018-01-26 郑州云海信息技术有限公司 一种基于cpld_fpga的版本显示系统和方法
CN108008283A (zh) * 2017-11-23 2018-05-08 莱克电气股份有限公司 一种版本号检测系统及方法
CN108536565A (zh) * 2018-01-04 2018-09-14 郑州云海信息技术有限公司 一种cpld-fpga版本、阶段信息三状态显示模块化实现方法
CN111736881B (zh) * 2020-06-12 2021-05-25 哈尔滨市科佳通用机电股份有限公司 机车信号车载设备软件更新系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174222A (zh) * 2006-10-31 2008-05-07 中兴通讯股份有限公司 数据版本升级方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于R5G0C314DA芯片的IO口复用;高琼等;《家电科技》;20120630;第2012年卷(第6期);第70页到第71页 *
浅析C语言中的浮点数;杜叔强;《兰州工业高等专科学校学报》;20101031;第17卷(第5期);第26页到第28页 *
美国国家半导体公司.发光二极管(LED)的相关应用及驱动技术.《世界电子元器件》.2007,第2007年卷(第12期),第94页到第97页. *

Also Published As

Publication number Publication date
CN103019932A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN103019932B (zh) 一种获取嵌入式软件版本信息的方法
CN104349532A (zh) Led恒流驱动器及led恒流驱动方法
CN106019040A (zh) 一种光耦电气性能检测装置
CN103347352B (zh) Led光源短路检测方法及装置、led背光及液晶显示设备
CN102510642A (zh) 基于物联网的非易失型led灯运行数据记录方法
CN206057538U (zh) 一种多通道led直流老化电源
CN203276265U (zh) 基于usb接口的i2c总线测试装置
CN202887174U (zh) 一种获取嵌入式软件版本信息的电路
CN102707639A (zh) 一种多功能空气干燥器用控制器
CN206224784U (zh) 一种基于gprs通信技术的光电直读燃气表控制器
CN104349528A (zh) 指示灯状态显示系统
CN201060241Y (zh) 霍尔组件检测装置
CN204536515U (zh) 一种多电源系统故障诊断装置
CN210245417U (zh) 一种智能多功能时间继电器装置
CN203909271U (zh) 一种电压跌落工装
CN203299647U (zh) 智能电路板测试设备
CN203798935U (zh) 元件保护跳闸矩阵检验装置
CN206557359U (zh) 一种模拟电源芯片的告警装置
CN102539989A (zh) 电能表多功能检测仪
CN203732621U (zh) 一种测量功率因数测量仪表
CN201532629U (zh) 序号烧录装置
CN206291968U (zh) 多路温度检测电路
CN202583773U (zh) 过程校验仪的控制电路
CN109688658B (zh) 一种光源驱动自适应的方法及装置
CN104267280A (zh) 一种多通道电涌保护器检测装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150805