郭雙茂 馮 浩 周 參
(公安部第一研究所,北京 102200)
?
采用微控制器操作系統(tǒng)的便攜式儀器設計
郭雙茂 馮 浩 周 參
(公安部第一研究所,北京 102200)
在分析研究了便攜式儀器裝置控制系統(tǒng)的特點及要求后,采用基于ARM最新Codex-M3內核的STM32F103作為主控芯片,移植μC/OS-II嵌入式操作系統(tǒng)作為整體設計方案,重點分析了如何通過采用實時操作系統(tǒng)編程的方法實現(xiàn)儀器所有系統(tǒng)功能。該方案應用于某種便攜式射線源,采用分任務、分模塊設計思路,實現(xiàn)關鍵數(shù)據采集、存儲,工作參數(shù)可調,驅動相位自動調整,按鍵,LCD顯示,RS- 485通信等系統(tǒng)功能。應用實驗結果證明,在便攜式儀器設計中采用微控制器操作系統(tǒng)是一種很好的選擇。
便攜式儀器 微控制器(MCU) μC/OS-II STM32 嵌入式操作系統(tǒng) LCD
隨著我國經濟的發(fā)展、人口的增多,突發(fā)事件日益增多。由于突發(fā)事件具有突變性、不可預測性等特點,常規(guī)儀器又受到應用場所、應用環(huán)境的限制,已經不能滿足當時的形勢需要。便攜式儀器儀表由于其集成度高、功耗低、功能全面、操作簡單、機動性強、應用迅速等特點得到了廣泛推薦和認可[1]。
便攜式儀器的諸多優(yōu)點也給研制工作帶來了困難。在按要求完成主要功能的同時必須具有體積小、功耗低等特點[2];在不損失性能的前提下,對系統(tǒng)的集成性提出要求;同時考慮到便攜式儀器的使用環(huán)境多為工業(yè)現(xiàn)場和野外等情況,對它的電磁兼容性、穩(wěn)定性、可靠性也有更高要求。
對于體積和功耗都有極高要求的便攜式儀器,嵌入式操作系統(tǒng)提供了很多附加功能,減小了系統(tǒng)的有效空間,縮短了開發(fā)周期,節(jié)約了開發(fā)成本,使便攜式儀器朝著高速度、高精度、高集成度、低功耗、高抗損壞性、便攜性、多外圍接口的方向迅速發(fā)展。
本文所設計的便攜式射線源具有控制系統(tǒng)任務多、實時性強、安全可靠性高、功能多等特點,采用基于ARM最新Codex-M3內核的STM32F103作為主控芯片,移植μC/OS-II嵌入式操作系統(tǒng)作為整體設計方案。重點分析如何通過基于實時操作系統(tǒng)編程的方法實現(xiàn)整個控制系統(tǒng)所有的功能。
整個系統(tǒng)由兩大部分組成:硬件層、軟件層,其中軟件層包括實時操作系統(tǒng)和應用軟件程序編寫。硬件層電路主要包括上電復位電路、存儲電路、LCD驅動電路、RS-485通信電路、按鍵輸入電路、聲光預警電路、D/A輸出電路、PWM驅動輸出電路等。操作系統(tǒng)層是整個系統(tǒng)上層控制和下層硬件的連接紐帶,系統(tǒng)中各功能主要有:存取外部存儲器中已保存的各項數(shù)據、驅動LCD顯示、數(shù)據采集、數(shù)據處理、驅動信號輸出、聲光預警、設定值保護、人機交互操作、與上位機通信等。這些功能按要求被分成幾組任務,操作系統(tǒng)負責這些任務調度。
硬件原理框圖如圖1所示,其中核心控制芯片采用STM32F103VC。
圖1 硬件原理框圖
2.1 主控芯片STM32
STM32系列微處理器是意法半導體推出的高性能32位以Cortex-M3 為內核的面向工業(yè)控制的處理器[3]。Cortex-M3 內核是 ARM 公司推出的最新的基于 ARMv7 構架的面向微控制領域的處理器內核。本設計中共用了14個中斷。
STM32F103VC工作頻率為72 MHz,內置高速存儲器。豐富的I/O端口和外設,包括3個12位的ADC,提供15個采樣通道和多種采樣模式;擁有12通道DMA控制器, 4個通用16位定時器和2個PWM定時器;具有多種標準和先進的通信接口;采用LQFPl00封裝,提供80個GPIO,除了模擬輸入I/O,其他管腳可以承受5 V信號輸入。功耗低,在72 MHz時消耗36 mA(所有外設處于工作狀態(tài)),待機時下降到2 μA[5]。另外,STM32F103 微處理器內部有一個 SysTick 定時器,應用此定時器可在需要移植的操作系統(tǒng)中實現(xiàn)時鐘中斷,方便μC/OS-II的移植。本便攜式儀器控制系統(tǒng)共用了6路A/D采樣通道、1個SPI通信接口、2個定時器、2個PWM定時器、1個USART通信接口,加上其他控制信號量共用到了60個I/O口。選擇此款處理器不僅能完全滿足本系統(tǒng)要求,也為儀器的擴展升級打下了基礎
2.2 各功能模塊設計
鍵盤模塊采用薄膜按鍵構成獨立鍵盤,電路上每個按鍵直接連接到STM32的I/O引腳上,程序上采用中斷的方式讀入鍵值;LCD選用8位并行數(shù)據傳輸接口的藍白單色屏[6];為便于便攜式X射線源與其他安全檢查系統(tǒng)部件組合擴展,通信模塊選用芯片MAX3488構成全雙工的RS- 485通信接口。由于高壓干擾因素,儀器工作時直接從高壓電路取樣所得到的高壓、束流信號并不是穩(wěn)定直流信號,而是隨著大功率驅動輸出波形變化的信號。為了能得到更強的有效直流信號,加入了一階低通濾波電路并改變取樣電阻比例,使得取樣信號值在規(guī)定范圍內盡量大;并在軟件上根據信號波形特點選取合適的采樣周期,采用中位值平均濾波算法最終得到穩(wěn)定真實的高壓、束流采樣數(shù)字值。
存儲芯片選用單片機監(jiān)控芯片X25043。聲光預警、射線開關信號通過達林頓晶體管陣列驅動芯片ULN2003輸出;D/A輸出模塊選用帶反饋電壓輸出的4路12位D/A轉換器DAC8412。系統(tǒng)的溫度傳感器要直接放在源內,距高壓發(fā)生電路近,要求溫度傳感器的抗干擾能力很強,通過分析、實驗后最終采用型號為MF52B103G3950的NTC熱敏電阻[7]。
高壓功率驅動電路采用脈寬調制和推挽驅動相結合的方式。射線源高壓驅動頻率必須調整到最佳值以確保驅動電路效率最高。高壓驅動電路的頻率調整不佳或相位漂移是造成射線源信號不穩(wěn)或故障的原因之一。本文設計的X射線源由于工作參數(shù)需要在較寬范圍內變化,以適應不同的應用場合,因此其工作參數(shù)不固定、功率輸出變化范圍寬,存在頻率調整問題。本設計通過大量實驗得到射線源在不同高壓、束流下驅動諧振頻率值,然后創(chuàng)建一個二維數(shù)據表并利用STM32內部定時器的PWM波功能最終實現(xiàn)了在不同工作參數(shù)狀態(tài)下諧振頻率的自動調整輸出。
3.1 μC/OS-II實時操作系統(tǒng)
μC/OS-II實時操作系統(tǒng)的內核結構如圖2所示。
圖2 μCOS-II內核結構
μC/OS-II是由Labrosse編寫的一個源碼公開、可移植、可固化、可裁剪、占先式實時多任務操作系統(tǒng)[8]。μC/OS-II操作系統(tǒng)將各種功能劃分為一個個任務,每個任務相對獨立,可以定義多達64個任務,足夠一般系統(tǒng)使用。任務之間以及任務與中斷服務程序之間可以調用信號量、消息郵箱、消息隊列、延時等系統(tǒng)服務來實現(xiàn)彼此通信和同步。這一切由操作系統(tǒng)統(tǒng)一調度,分配資源,協(xié)調各個任務的運行。某一個任務出現(xiàn)問題也不會導致整個系統(tǒng)癱瘓,從而提高了系統(tǒng)的可靠性。同時,實時操作系統(tǒng)的移植使整個系統(tǒng)更加容易更新以及擴展新的功能,提高了系統(tǒng)的開放性和開發(fā)效率。
3.2 應用軟件程序
為了使用戶方便地訪問STM32的各標準外設,并使用它們的所有特性,ST公司提供了免費的軟件包-固件庫。通過使用固件庫,無需深入掌握細節(jié),就可以應用每一個外設,大大減少用戶的程序編寫時間,進一步降低開發(fā)成本。本系統(tǒng)在底層硬件驅動程序編寫中使用了STM32F10xxx標準外設庫(StdPeriph—Lib)V3.0.0[10]。程序首先對系統(tǒng)時鐘、中斷和所用到的標準外設等進行配置,然后對X25043、LCD、DAC-8412等功能模塊進行初始化,板級驅動配置完成之后進行μC/OS-II 的初始化。
程序主要部分流程圖如圖3所示。
圖3 程序主要部分流程圖
本控制系統(tǒng)共劃分了4個任務:通信任務,優(yōu)先級為4;射線工作控制任務,優(yōu)先級為5;液晶屏顯示任務,優(yōu)先級為6;循環(huán)檢查任務,優(yōu)先級為7。軟件結構框圖如圖4所示。
圖4 軟件結構框圖
本文采用外部中斷的方式來觸發(fā)等待狀態(tài)的各項任務,通過郵箱的機制完成任務間通信。各任務具體描述如下。
3.2.1 通信任務
該任務實現(xiàn)了安全檢查系統(tǒng)中上位機對X射線源的完全控制。當控制系統(tǒng)接收到上位機發(fā)送的指令后,系統(tǒng)進入串口中斷,在串口中斷服務子程序中向通信任務的郵箱發(fā)送消息,使其進入就緒狀態(tài)然后運行。上位機可以向便攜式X射線源控制系統(tǒng)發(fā)送各種指令,從而實現(xiàn)遠程操作控制。系統(tǒng)所采用的RS-485通信方式與現(xiàn)有的安檢系統(tǒng)各部件間的通信方式一致,易于產品集成。
3.2.2 射線工作控制任務
該任務由按鍵或定時器TIM4中斷觸發(fā),任務首先根據高壓、束流值查找二維數(shù)據表送出合適的驅動頻率,并將用戶輸入的高壓、束流值進行一定轉換。當“開始鍵”按下,TIM4啟動計時,束流值通過DAC8412送出,同時蜂鳴器、指示燈以頻率1鳴叫閃爍進行X射線發(fā)射前預警。預警時間到后,X射線使能控制信號、高壓信號送出開始發(fā)射X射線,此時蜂鳴器、指示燈以頻率2鳴叫閃爍,警示正在發(fā)射X射線。當X射線發(fā)射一段時間到達所設定的“曝光時間”時,TIM4再次觸發(fā)射線工作控制任務,該任務通過對標志位的判定來關閉X射線的發(fā)射。
3.2.3 LCD顯示任務
該任務主要由按鍵中斷觸發(fā)。系統(tǒng)會根據鍵值和菜單號的不同在LCD上顯示不同的內容,從而使操作者能更加直觀地對射線源的一些工作參數(shù)進行設置,并查看工作狀態(tài)的。該任務同時實現(xiàn)了LCD背景燈開關控制及喚醒功能。
3.2.4 循環(huán)檢查任務
該任務由定時器TIM3每500 ms調用一次。所執(zhí)行任務包括:射線發(fā)射時、射線停止時采樣系統(tǒng)溫度、高壓、束流、電池電壓等數(shù)據。當采樣值與設定值相比出現(xiàn)異常時,立即采取相應動作如不同頻率的聲光報警、LCD文字提示等。當便攜式X射線源出現(xiàn)嚴重錯誤時,控制系統(tǒng)會禁止用戶再次發(fā)射X射線;對“看門狗”進行“喂狗”,以防止程序“跑非”或者死機;通過判定標志位對工作參數(shù)、射線源總工作時間等關鍵數(shù)據進行存儲。
嵌入式系統(tǒng)的應用,改變了以往儀器系統(tǒng)的設計思路,它使儀器系統(tǒng)的結構更加緊湊,模塊化更加明顯,有利于硬件的移植和軟件的再升級。本文以具有ARM Cortex-M3內核的32位微處理器STM32F103VC為控制核心設計系統(tǒng)外圍硬件電路,移植實時操作系統(tǒng)μC/OS-II進行系統(tǒng)編程。系統(tǒng)充分利用μC/OS-II和STM32系列微處理器結合的優(yōu)勢,不僅實現(xiàn)了所需的各項功能,并且運行穩(wěn)定、安全、可靠。
目前,便攜式X射線源作為安檢系統(tǒng)中的一個重要模塊已經開始使用。使用中發(fā)現(xiàn),在野外等特殊工作環(huán)境中,整個安檢系統(tǒng)各模塊之間如單靠有線通信方式連接不便于各模塊的移動、連接等,如果在各模塊上增加無線通信方式如WiFi,不僅可省去連接通信信的麻煩,也會增加用戶現(xiàn)場操作的安全性。在后期產品改進中,將充分發(fā)揮本系統(tǒng)易升級、易擴展等優(yōu)點,加入無線通信模塊豐富其功能。
[1] 莊松林,肖中漢.我國儀器儀表與測量控制科技的發(fā)展[J].自
動化儀表,2009,30(5):2-6.
[2] 王永勝.智能儀表技術及工業(yè)自動化應用發(fā)展探討[J].自動化博覽,2009(6):44-47.
[3] 彭剛,秦志強.基于ARM Cortex-M3的STM32系列嵌入式微控制器應用實踐[M].北京:電子工業(yè)出版社,2011:54-69.
[4] 宋巖.ARM Cortex-M3權威指南[M].北京:北京航空航天大學出版社,2009:88-120.
[5] 劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011:23-76.
[6] 郭強.液晶顯示模塊應用與調試[M].北京:電子工業(yè)出版社,2010.
[7] 范寒柏,謝漢華.基于NTC熱敏電阻的三種高精度測溫系統(tǒng)研究[J].傳感器技術學報,2010,23(11):1576-1579.
[8] 任哲.嵌入式實時操作系統(tǒng)μC/OS-II原理及應用[M].北京:北京航空航天大學出版社,2009.
[9] Jean J.嵌入式實時操作系統(tǒng)μC/OS-II[M].2版.邵貝貝,譯.北京:航空航天大學出版社,2003:34-316.
[10]南亦民.基于STM32標準外設庫STM32F103xxx外圍器件編程[J].長沙航空職業(yè)技術學院學報,2010(4):41-45.
Designing the Portable Instrument by using MCU and Operating System
Having been analyzing and researching the features and requirements of portable instruments,the design scheme based on latest Codex-M3 of ARM as the core and transplanted μC/OS-II embedded operating system is proposed.The implementation of all the functions by adopting the method of system programming based on RTOS is analyzed emphatically.The scheme is applied in certain portable X-ray source; the system functions including data collection and storage,adjustable working parameters,driving phase automatic adjustment,keypad,LCD display,RS- 485 communication,etc.,are implemented through the design concept of multitasking and modularization.The experimental results show that using MCU and μC/OS-II operating system is a better choice in designing portable instruments.
Portable instrument Micro chip unit(MCU) μC/OS-II STM32 Embedded operating system LCD
郭雙茂(1982-),男,2010年畢業(yè)于北京信息科技大學測試計量技術及儀器專業(yè),獲碩士學位,工程師;主要從事硬件設計方面的工作。
TP216;TH7
A
10.16086/j.cnki.issn1000-0380.201601023
修改稿收到日期:2014-12-17。