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