磁場檢測儀的嵌入式軟件和硬件協(xié)同開發(fā)模式
引言
本文引用地址:http://butianyuan.cn/article/148208.htm隨著電子產(chǎn)品功能日益增多、性能日益增強,低成本32位微處理器、多層PCB板被廣泛應(yīng)用,軟件和開發(fā)團隊的規(guī)模隨之?dāng)U大,同時開發(fā)周期呈指數(shù)增長。因此,以往的開發(fā)方式越來越不適應(yīng)項目開發(fā)的需要。目前,國內(nèi)磁場檢測儀器主要集中應(yīng)用在工業(yè)用低頻強磁場和通信用的高頻弱磁場測量上,而中頻強磁場測量仍是磁場測量領(lǐng)域的一個難題。基于嵌入式操作系統(tǒng)的中頻強磁場的測量系統(tǒng)開發(fā)中,涉及到高速硬件電路設(shè)計、多層PCB板布線、32位微處理器編程、上位機軟件編程等多項工作,因此,需要眾多開發(fā)人員協(xié)同開發(fā)。
通過長期的實踐發(fā)現(xiàn),在項目開發(fā)中引入開源項目管理平臺Redmine、嵌入式操作系統(tǒng)μC/OS-II、仿真軟件Proteus和調(diào)試軟件Bus Hou nd,能夠有效地提升整個項目的協(xié)同開發(fā)能力和管理水平。采用協(xié)同開發(fā)管理模式,可以達到以下4方面的顯著效果:提高嵌入式軟件和硬件之間的協(xié)同開發(fā)效率;提高嵌入式軟件各模塊間的開發(fā)效率和開發(fā)質(zhì)量;提高上位機和下位機軟件的開發(fā)效率和開發(fā)質(zhì)量;有效提高整個項目協(xié)同開發(fā)的管理水平。
1 磁場檢測儀開發(fā)管理平臺
項目管理的好壞關(guān)系到項目開發(fā)質(zhì)量的高低,同時,對開發(fā)效率和開發(fā)質(zhì)量也將產(chǎn)生重大的影響。目前市場上,基于Web的開源項目管理軟件已經(jīng)發(fā)展得很成熟,此類軟件在高校的教學(xué)和研究,以及中小企業(yè)的項目開發(fā)管理中,都得到了廣泛的應(yīng)用。
現(xiàn)階段,在磁場檢測系統(tǒng)項目開發(fā)中,由于軟硬件的開發(fā)復(fù)雜,開發(fā)人員眾多且開發(fā)人員存在著開發(fā)能力參差不齊、流動性大等特點,加上項目的開發(fā)時間跨度大等原因,使得項目管理變得十分困難。經(jīng)過筆者應(yīng)用分析,從軟件的成熟度、穩(wěn)定性、流行性、社區(qū)發(fā)展情況,以及安裝配置的簡易性這幾方面進行詳細的分析比較,最終在Launchpad、Redmine和Trac這3個軟件中,選擇了Redmine。
在磁場檢測系統(tǒng)的項目管理平臺搭建中,首先,利用BitNami Redmine Stack提供的一鍵式安裝包,安裝好Redmine平臺,然后把中頻磁場檢測系統(tǒng)開發(fā)團隊的成員、任務(wù)(問題)、文檔、討論、Wiki、版本管理,以及各種形式的資源整合在此平臺上,大家通過一起參與更新任務(wù)、更新文檔等來推動項目的進度。同時,系統(tǒng)地利用時間線索和各種報表,動態(tài)顯示項目的進度狀態(tài)。
在項目中引入Redmine管理平臺,界面如圖1所示。起到了立竿見影的效果:
①開發(fā)團隊中新加入的成員通過此平臺,可以快速地了解項目的詳細情況,從而能夠快速地接手項目;
②團隊中如有成員離開,其他成員可以快速地接手該成員原來負責(zé)的任務(wù);
③相對于以往采用客戶端TortoiseSVN訪問SVN的方式,開發(fā)成員更容易接受Redmine提供的Web訪問方式,來訪問和操作SVN版本控制器;
④為團隊成員的內(nèi)部溝通和交流提供了高效的平臺;
⑤根據(jù)項目的進展情況,可以及時地調(diào)整項目的進度,從而實現(xiàn)高效的動態(tài)管理。
2 嵌入式軟件和硬件協(xié)同開發(fā)
Proteus可以實現(xiàn)原理圖設(shè)計、PCB布板以及微處理器與外圍電路的協(xié)同仿真。Proteus微處理器模型支持8051、PIC、MSP430、AVR、ARM 7和HC11等系列微處理器。其中,2011年推出的Proteus7.10版本,增加了對ARM Correx-M3系列處理器的支持。
電子產(chǎn)品從芯片的選型、電路設(shè)計、PCB布板到樣板焊接調(diào)試,這中間一般需要幾個月的時間,這段時間對整個項目開發(fā)來說,是非常關(guān)鍵的。在磁場檢測儀樣板制作的同時,嵌入式軟件開發(fā)人員在Proteus中繪制基本原理圖后,就可著手在Proteus的ARM Cortex-M3微處理器模型上編寫程序。
由于采用Proteus和IAR聯(lián)調(diào),即在IAR集成開發(fā)環(huán)境中進行代碼調(diào)試,運行和調(diào)試結(jié)果直接在Proteus中顯示,因此不用等到樣板制作完畢再開始嵌入式軟件的調(diào)試,從而做到嵌入式軟件和硬件的同步開發(fā)。
另外,相對于直接在樣板上調(diào)試,Proteus更容易判斷出某個功能不能實現(xiàn)的具體原因,是由于硬件的故障還是軟件的編程問題引起的,從而避免了誤將硬件故障認為是軟件編程問題的情況發(fā)生,大大提高開發(fā)效率。另一方面,在磁場檢測儀LCD顯示驅(qū)動程序的調(diào)試中,利用Proteus提供的邏輯分析儀虛擬儀器測量LCD驅(qū)動時序,可以非常直觀地調(diào)試LCD的驅(qū)動程序,快速地完成LCD驅(qū)動程序的編程和調(diào)試。
由于磁場檢測儀中每一版本的PCB都只焊接制作了3塊樣板,大部分調(diào)試都在Proteus上完成。所以,用Proteus代替實際樣板調(diào)試,可以很大程度地減少元件的購置,減少樣板的制作;同時,也大大減少了JTAG仿真器、示波器、邏輯分析儀等調(diào)試設(shè)備的購置。為磁場檢測系統(tǒng)開發(fā)節(jié)約大量的資金和寶貴的開發(fā)時間。
3 嵌入式軟件各模塊協(xié)同開發(fā)
3.1 引入嵌入式操作系統(tǒng)實現(xiàn)任務(wù)分解
現(xiàn)在,國內(nèi)低端手機設(shè)計上廣泛使用聯(lián)發(fā)科技MTK的方案,將手機芯片和手機軟件平臺預(yù)先整合到一起。MTK的整套軟件系統(tǒng)十分龐大且復(fù)雜,但其架構(gòu)是引入Nucleus嵌入式操作系統(tǒng),將手機軟件分解成多個任務(wù)并行開發(fā)。
MTK使用了Nucleus實時操作系統(tǒng),但在其上做了內(nèi)核抽象層的封裝,以適應(yīng)最終生產(chǎn)廠商選擇其他實時操作系統(tǒng)的需要(如選擇替換為ThreadX)。Nucleus、ThreadX和μC/OS-II這3個嵌入式操作系統(tǒng)功能上很類似,但商用license是不一樣的。其中μC/OS-II應(yīng)用在市場上銷售的產(chǎn)品,是需要購買license的;而針對高校的教學(xué)和研究,是免費的。這也是μC/OS-II廣泛被高校教師和學(xué)生認知的一個重要原因,同時這也是我們優(yōu)先采用μC/OS-II作為磁場檢測儀的嵌入式操作系統(tǒng)的一個重要原因。
目前,ARM程序的規(guī)模一般都很大,需要多人協(xié)同開發(fā)。由于不帶嵌人式操作系統(tǒng)的程序,僅依靠全局變量和函數(shù)傳遞信息,程序耦合度十分高,很難實現(xiàn)多人的協(xié)同開發(fā)。引入嵌入式操作系統(tǒng)后,各個任務(wù)間通過消息郵箱、消息隊列或信號量同步,大大降低程序的耦合度,極大地提高團隊協(xié)同開發(fā)的效率。
引入嵌入式操作系統(tǒng)后,一般將程序分成幾個任務(wù)(線程),分別由專人負責(zé)。嵌入式軟件開發(fā)流程中,首先是對電路板和嵌入式操作系統(tǒng)進行初始化,接著創(chuàng)建若干任務(wù),剩下的工作就是編寫每個任務(wù)或中斷處理的程序代碼。圖2為磁場檢測儀的中斷和任務(wù)間的同步關(guān)系框架圖.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論