磁場檢測儀的嵌入式軟件和硬件協同開發模式
引言
本文引用地址:http://www.j9360.com/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不再難懂)
評論