当前位置:论文写作 > 毕业论文范文 > 文章内容

Python在嵌入式项目中的辅助开发

主题:测试开发工程师 下载地址:论文doc下载 原创作者:原创作者未知 评分:9.0分 更新时间: 2024-02-25

简介:大学硕士与本科测试开发毕业论文开题报告范文和相关优秀学术职称论文参考文献资料下载,关于免费教你怎么写测试开发方面论文范文。

测试开发论文范文

测试开发工程师论文

目录

  1. 1.Python简介
  2. 2.函数库介绍
  3. 2.1科学计算
  4. 2.2图像处理
  5. 2.3图形界面
  6. 2.4数据库
  7. 2.5硬件控制
  8. 2.6其它
  9. 3.项目案例
  10. 3.1位图资源的C代码转换
  11. 3.2 Agilent信号发生器的控制
  12. 3.3开关机电路测试
  13. 3.4辅助工具:三次样条曲线系数计算器
  14. 3.5通讯可靠性测试
  15. 测试开发工程师:软件测试开发教程 软件测试实战开发

摘 要:嵌入式系统设计开发过程中常会遇到诸如算法分析、原型验证、自动化测试、辅助工具设计等工作,其开发效率和质量直接影响到项目的进程.对于目前国内众多开发人员,迫切需要这样一种软件开发工具:易学、高效、功能强.Python作为这样一种开源脚本语言,配合众多实用的第三方函数库,可极大地提高嵌入式系统开发效率和质量.作者结合自己在几个项目开发中的实战经验,对此进行了入门介绍.

关键词:Python;嵌入式系统

引言

嵌入式设计开发通常是比较系统的工程,对开发人员有较全面的要求,硬件、软件、算法、测试等各个方面都得照顾到,所有环节有效的配合才能保证整个项目的顺利进展,对时间质量要求高的项目更是如此.

实际开发过程中常会遇到问题有算法分析、原型验证、自动化测试、辅助工具设计等,选择好恰当的工具,对提高工作效率和质量至关重要.本文要介绍的Python脚本语言和众多第三方函数库就是这样的利器,易学、高效、功能强,值得推广.

1.Python简介

Python是一种流行的动态脚本语言,经历了十多年的发展现已相当成熟稳定.其语法简捷清晰、面向对象、跨平台、扩展性强,适合完成各种高层任务,既可快速开发脚本程序,也可用来开发大规模软件.

由于遵循开源GPL协议,用户众多,反过来也推动了第三方函数库的稳步发展,现数量众多功能强大的函数库(其中大部分也是开源的)能适应几乎所有的应用:字符处理、系统控制、图像处理、图形界面、数据库、科学计算、网络应用、单元测试等.

本文不介绍Python语言的基础知识,感兴趣的读者请自行查阅相关内容.推荐的学习材料有:论文范文网站、安装自带的文档、第三方库的文档、网络社区等.

2.函数库介绍

函数库分两类:标准库和第三方库.前者是安装时自带的,能完成基础的字符、文件、系统、网络等控制,后者是在前者基础上扩充开发的,也是Python最成功之处,现就常用于嵌入式开发的几个库分类介绍,以下库均遵循GPL协议.

2.1科学计算

◆ Numpy、Scipy

NumPy数值计算包提供了矩阵、线性代数、傅里叶变换等的解决方法.

Scipy提供更强的数学计算分析功能:线性计算、信号处理、图像处理、最优化求解等.大多数函数接口和Matlab类似,容易上手.

◆ Matplotlib

二维图形绘制模块,包括线图、直方图、饼图、散点图以及误差线图等,输出效果相当专业,许多函数接口也与Matlab类似.

◆ SymPy

符号运算,可进行算法仿真、模拟.

2.2图像处理

◆ PIL

提供图像处理操作:裁剪、旋转、滤波、增强等.嵌入式开发中经常需要操纵图形资源,用于点阵液晶屏幕显示,如图形转化成C语言数组、屏幕缓冲数据转换成图片,都可借用此模块实现.

◆ MayaVi

用于绘制三维数据图形.

2.3图形界面

◆ wxPython

高效的GUI工具箱,提供图形接口,可生成标准风格的Windows程序窗口,新版本中包含的许多控件非常有特色.

◆ wxGlade

图形程序的开发工具,用wxGlade绘制好窗体后生成Python代码,加入函数相应代码即可.

2.4数据库

◆ pySqlite

轻量级的数据库,现以成为标准库.

2.5硬件控制

◆ pyParallel、pySerial

用于控制PC机的并口和串口.

◆ pyVisa

控制VISA接口设备.

◆ pyAudio

声音控制,若需用操纵声音资源,集成至嵌入式系统固件中,可用此模块.

2.6其它

◆ Socket、FTP、Telnet

网络接口,可用于控制测量仪器和设备,TCP/UDP方式调试网络设备.

◆ 动态链接库接口

某些必须由其它语言实现的功能可先编译成动态库,再由Python调用.

3.项目案例

以下介绍作者在实际项目中使用Python提高开发效率的几个例子.

3.1位图资源的C代码转换

某便携式仪表支持16级灰度点阵液晶,需要显示若干图标、图片.素材先由图形处理软件修饰完成,存为灰度位图格式文件,再调用Python编的处理脚本,转换图片成C语言格式’数组,集成到系统项目中,编译至固件,最终显示在仪表屏幕上.

图1为待转换的图标lconHelp.Bmp,转换后的结果lconHelp,c如下:

与上述正向转换对应的还有逆向转换;仪表调试过程中下断点,使用调试软件脚本命令按一定ASCII格式取出屏幕缓存,编写相应Python脚本将之转换成位图图片,实现了仪表屏幕的“截图”,可用作产品使用说明书的素材.

3.2 Agilent信号发生器的控制

硬件开发中常用的示波器、信号源、高精度万用表等仪器大都有编程控制功能,通过串口、以太网、GPIB等接口和相关协议控制.以Agilent 3320A信号源为例,通过以太网与PC组网连接后,PC机在5024端口用Telnett办议与信号源建立连接,用Python脚本通过SCPI协议控制.利用Python对象化语言的优势将信号源封装成类,设置功能(如开关、波形类型、幅度、频率、扫频、调制等)均被抽象为事件,使用时只要调用该类对象的函数即可.

如一次硬件测试中需要依次输出频率为10、20、50、100、..10K. 20K、50K、100KHz,幅度1V的正弦波,每段的间隔时间0.5秒,只需调用封装好的类,实现如下:

d:AGILENT33220A()#建立实例

d.Connect()0#网络连接

d.Reset()#仪器复位

for i in[10,20,50,100,200,500,1000,2000,5000,10000,200 00,50000.100000]:

d.SetParms(&,acute,SIN&,acute,,i,1,0)#输出正弦波

time.sleep(0.5)#延时半秒

d.Output(False)#关闭输出

3.3开关机电路测试

某款手持式仪表在开机时偶尔出现白屏无法启动的现象,测试人员不得不手动地做开关机测试,每次循环周期约1 5秒,但故障概率极低,甚至几小时测下来也不能重现,整个测试过程费时费力.

为提高效率,开发了一套自动测试装置:使用Python脚本控制并口,用一输出端口控制连接在仪表电源按键上的继电器,模拟用户的按键操作,再用几个输入端口检测仪表工作电源是否上电、开机后的LED是否点亮等,主程序负责协调整个流程,若发现开机异常,发出蜂鸣器报警.

测试开发工程师:软件测试开发教程 软件测试实战开发

经过数天的自动测试,累积数千次的开关机测试,都未发现异常,从而排除了电路方面的因素,将故障被定位在其它方面,如结构、器件质量等.

3.4辅助工具:三次样条曲线系数计算器

开发过程中常会将一些算法的参数预先计算好,固化到项目程序中去,如FFT的旋转因子、FIR滤波的系数等,利用Scipy库可方便地计算.

这里介绍的系数计算器是一带图形界面的辅助工具,用来生成样条曲线拟合时用的中间参数,同时还能计算拟合值并绘制曲线图形.用wxPython制作窗体界面,matplotlib绘制曲线图形,核心的参数计算代码因为要求与嵌入式CPU通用,故使用了C实现并封装成DLL被调用的.

在计算锂电池电压对应电量关系时的界面如图2,数据源是电压和电量的控制点,计算出的参数在终端以文本形式输出,拟合出的曲线用matplotlib自带的绘图控件显示,可移动、缩放、保存.

3.5通讯可靠性测试

某仪表内部包含自行开发文件系统,通过串口与PC机通讯,通讯驱动接口被封装成动态库,为测试文件系统和通讯的可靠性,制定了如下方案:

编写Python脚本,动态生成指定大小的测试用二进制文件,内容随机产生,调用驱动与仪表建立连接,将测试文件下载至仪器,再回收并与源文件逐字节作对比,全部正确则测试通过,如此反复测试.

经连续数天测试,发现了仪表底层通讯程序中的一处漏洞,信号量未加锁导致数据丢失,修改程序后再测试问题不再重现,漏洞解决.图3为测试时界面.

结语

由于上述软件都遵循GPL开源协议,加上能和商业软件媲美的性能,使之有很强的生命力.每个工具都有其擅长的一面,将它们有效组合熟练运用,可以很大程度地提高开发效率和质量.愿本文的案例能抛砖引玉,给同行们的设计工作其点借鉴作用.

参考文献

[1]周伟,宗杰.Python开发技术详解[M].北京:机械工业出版社.2009.

[2]周伟,宗杰Python开发技术详解[M]北京:机械工业出版社,2009.

[3]陈儒.Python源码剖析一一深度探索动态语言核心技术[M].北京:电子工业出版社,2008.

总结:本文关于测试开发论文范文,可以做为相关论文参考文献,与写作提纲思路参考。

测试开发工程师引用文献:

[1] 软件开发工程师开题报告 硕士论文开题报告范文
[2] 经典测试计量技术及仪器论文题目 测试计量技术及仪器专业论文题目如何拟
[3] 比较好写的测试论文选题 测试毕业论文题目如何定
《Python在嵌入式项目中的辅助开发》word下载【免费】
测试开发工程师相关论文范文资料