新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 磁场检测仪的嵌入式软件和硬件协同开发模式

磁场检测仪的嵌入式软件和硬件协同开发模式

作者:时间:2012-12-10来源:网络收藏

引言

本文引用地址:http://www.eepw.com.cn/article/148208.htm

随着电子产品功能日益增多、性能日益增强,低成本32位微处理器、多层PCB板被广泛应用,团队的规模随之扩大,同时周期呈指数增长。因此,以往的方式越来越不适应项目开发的需要。目前,国内器主要集中应用在工业用低频强和通信用的高频弱测量上,而中频强磁场测量仍是磁场测量领域的一个难题。基于操作系统的中频强磁场的测量系统开发中,涉及到高速电路设计、多层PCB板布线、32位微处理器编程、上位机软件编程等多项工作,因此,需要众多开发人员开发。

通过长期的实践发现,在项目开发中引入开源项目管理平台Redmine、操作系统μC/OS-II、仿真软件Proteus和调试软件Bus Hou nd,能够有效地提升整个项目的开发能力和管理水平。采用开发管理,可以达到以下4方面的显著效果:提高之间的协同开发效率;提高嵌入式软件各模块间的开发效率和开发质量;提高上位机和下位机软件的开发效率和开发质量;有效提高整个项目协同开发的管理水平。

1 磁场开发管理平台

项目管理的好坏关系到项目开发质量的高低,同时,对开发效率和开发质量也将产生重大的影响。目前市场上,基于Web的开源项目管理软件已经发展得很成熟,此类软件在高校的教学和研究,以及中小企业的项目开发管理中,都得到了广泛的应用。

现阶段,在磁场检测系统项目开发中,由于软的开发复杂,开发人员众多且开发人员存在着开发能力参差不齐、流动性大等特点,加上项目的开发时间跨度大等原因,使得项目管理变得十分困难。经过笔者应用分析,从软件的成熟度、稳定性、流行性、社区发展情况,以及安装配置的简易性这几方面进行详细的分析比较,最终在Launchpad、Redmine和Trac这3个软件中,选择了Redmine。

在磁场检测系统的项目管理平台搭建中,首先,利用BitNami Redmine Stack提供的一键式安装包,安装好Redmine平台,然后把中频磁场检测系统开发团队的成员、任务(问题)、文档、讨论、Wiki、版本管理,以及各种形式的资源整合在此平台上,大家通过一起参与更新任务、更新文档等来推动项目的进度。同时,系统地利用时间线索和各种报表,动态显示项目的进度状态。

在项目中引入Redmine管理平台,界面如图1所示。起到了立竿见影的效果:

①开发团队中新加入的成员通过此平台,可以快速地了解项目的详细情况,从而能够快速地接手项目;

②团队中如有成员离开,其他成员可以快速地接手该成员原来负责的任务;

③相对于以往采用客户端TortoiseSVN访问SVN的方式,开发成员更容易接受Redmine提供的Web访问方式,来访问和操作SVN版本控制器;

④为团队成员的内部沟通和交流提供了高效的平台;

⑤根据项目的进展情况,可以及时地调整项目的进度,从而实现高效的动态管理。

2 嵌入式硬件协同开发

Proteus可以实现原理图设计、PCB布板以及微处理器与外围电路的协同仿真。Proteus微处理器模型支持8051、PIC、MSP430、AVR、ARM 7和HC11等系列微处理器。其中,2011年推出的Proteus7.10版本,增加了对ARM Correx-M3系列处理器的支持。

电子产品从芯片的选型、电路设计、PCB布板到样板焊接调试,这中间一般需要几个月的时间,这段时间对整个项目开发来说,是非常关键的。在磁场样板制作的同时,嵌入式软件开发人员在Proteus中绘制基本原理图后,就可着手在Proteus的ARM Cortex-M3微处理器模型上编写程序。

由于采用Proteus和IAR联调,即在IAR集成开发环境中进行代码调试,运行和调试结果直接在Proteus中显示,因此不用等到样板制作完毕再开始嵌入式软件的调试,从而做到嵌入式软件和硬件的同步开发。

另外,相对于直接在样板上调试,Proteus更容易判断出某个功能不能实现的具体原因,是由于硬件的故障还是软件的编程问题引起的,从而避免了误将硬件故障认为是软件编程问题的情况发生,大大提高开发效率。另一方面,在磁场检测仪LCD显示驱动程序的调试中,利用Proteus提供的逻辑分析仪虚拟仪器测量LCD驱动时序,可以非常直观地调试LCD的驱动程序,快速地完成LCD驱动程序的编程和调试。

由于磁场检测仪中每一版本的PCB都只焊接制作了3块样板,大部分调试都在Proteus上完成。所以,用Proteus代替实际样板调试,可以很大程度地减少元件的购置,减少样板的制作;同时,也大大减少了JTAG仿真器、示波器、逻辑分析仪等调试设备的购置。为磁场检测系统开发节约大量的资金和宝贵的开发时间。

3 嵌入式软件各模块协同开发

3.1 引入嵌入式操作系统实现任务分解

现在,国内低端手机设计上广泛使用联发科技MTK的方案,将手机芯片和手机软件平台预先整合到一起。MTK的整套软件系统十分庞大且复杂,但其架构是引入Nucleus嵌入式操作系统,将手机软件分解成多个任务并行开发。

MTK使用了Nucleus实时操作系统,但在其上做了内核抽象层的封装,以适应最终生产厂商选择其他实时操作系统的需要(如选择替换为ThreadX)。Nucleus、ThreadX和μC/OS-II这3个嵌入式操作系统功能上很类似,但商用license是不一样的。其中μC/OS-II应用在市场上销售的产品,是需要购买license的;而针对高校的教学和研究,是免费的。这也是μC/OS-II广泛被高校教师和学生认知的一个重要原因,同时这也是我们优先采用μC/OS-II作为磁场检测仪的嵌入式操作系统的一个重要原因。

目前,ARM程序的规模一般都很大,需要多人协同开发。由于不带嵌人式操作系统的程序,仅依靠全局变量和函数传递信息,程序耦合度十分高,很难实现多人的协同开发。引入嵌入式操作系统后,各个任务间通过消息邮箱、消息队列或信号量同步,大大降低程序的耦合度,极大地提高团队协同开发的效率。

引入嵌入式操作系统后,一般将程序分成几个任务(线程),分别由专人负责。嵌入式软件开发流程中,首先是对电路板和嵌入式操作系统进行初始化,接着创建若干任务,剩下的工作就是编写每个任务或中断处理的程序代码。图2为磁场检测仪的中断和任务间的同步关系框架图.

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭