石毅壯
(赤峰市農(nóng)牧業(yè)機(jī)械化研究推廣中心推廣科,內(nèi)蒙古赤峰024000)
遠(yuǎn)程監(jiān)控系統(tǒng)軟件功能主要包括工業(yè)現(xiàn)場(chǎng)模擬數(shù)據(jù)、數(shù)字量的采集、觸摸屏的界面顯示、坐標(biāo)向量的獲取、GPRS串行通信任務(wù)的完成.
整個(gè)嵌入式軟件系統(tǒng)軟件框架是在基于μC/OS-Ⅱ操作系統(tǒng)的多任務(wù)環(huán)境和啟動(dòng)多任務(wù)運(yùn)行上構(gòu)建的,如圖1所示.系統(tǒng)對(duì)μC/OS-Ⅱ和目標(biāo)電路板進(jìn)行初始化,緊接建立模擬量采集、數(shù)字量采集、觸摸屏界面顯示、觸摸屏坐標(biāo)的獲取和GPRS串行通信等多項(xiàng)任務(wù).若要在多任務(wù)調(diào)度開始后啟動(dòng)程序,需要由其他任務(wù)建立任務(wù)程序.
遠(yuǎn)程監(jiān)控系統(tǒng)軟件將嵌入式開發(fā)平臺(tái)作為基礎(chǔ),優(yōu)先考慮任務(wù)的實(shí)時(shí)性操作,具體過(guò)程為:首先在STM 32平臺(tái)上移植μC/OS-Ⅱ;然后編寫對(duì)應(yīng)軟件驅(qū)動(dòng)程序及用戶操作界面,并在接口函數(shù)里開發(fā)應(yīng)用程序,構(gòu)成對(duì)應(yīng)的嵌入式軟件;最后按照實(shí)時(shí)性優(yōu)先級(jí)將軟件中不同種類功能模塊進(jìn)行分類,并分配到對(duì)應(yīng)的任務(wù)中.
圖1 圖1系統(tǒng)軟件框
為保證遠(yuǎn)程監(jiān)控操作系統(tǒng)正常運(yùn)行,函數(shù)OSInit()的初始化、μC/OS-Ⅱ中所有的變量以及數(shù)據(jù)結(jié)構(gòu)要最先被調(diào)用,為了使任務(wù)區(qū)域功能始終處于就緒狀態(tài),要建立空閑任務(wù)OS_Taskldle().
在多項(xiàng)任務(wù)運(yùn)行之前,與硬件相關(guān)的內(nèi)容需要進(jìn)行對(duì)應(yīng)的配置,來(lái)完成目標(biāo)板的初始化.如硬件初端的驅(qū)動(dòng)部分與API接口進(jìn)行對(duì)應(yīng)的配置,這樣可使多項(xiàng)任務(wù)在同時(shí)運(yùn)行過(guò)程中不需要過(guò)多的與硬件相關(guān)聯(lián)部分的操作.目標(biāo)電路板的初始化主要包括中斷源的配置、系統(tǒng)時(shí)鐘的初始化、DMA控制器的初始化、ADC的初始化、觸摸電路初始化、I/O口的初始化、串口的初始化、FSMC的初始化及TFT接口初始化.
遠(yuǎn)程監(jiān)控系統(tǒng)模擬量采集過(guò)程的實(shí)質(zhì)是將直接存儲(chǔ)器存取用來(lái)提供給外設(shè)和存儲(chǔ)器之間或者存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)進(jìn)行傳輸,也就是將ADC轉(zhuǎn)換結(jié)果以DMA方式傳遞出去.其中ADC通道選擇分為規(guī)則組和注入組,注入組最多只能設(shè)置4個(gè)通道,需要觸發(fā)才可以采集到設(shè)置通道里的ADC值,而規(guī)則組可以依照通道設(shè)置的先后順序?qū)Ω魍ǖ酪来芜M(jìn)行數(shù)據(jù)采集,解決了多路ADC通道的自動(dòng)采集缺陷.由于規(guī)則通道轉(zhuǎn)換的值儲(chǔ)存在指定的數(shù)據(jù)寄存器里,即便轉(zhuǎn)換多個(gè)規(guī)則通道并保證同時(shí)實(shí)現(xiàn)DMA功能時(shí),也可以避免存儲(chǔ)在ADC_DR寄存器中的數(shù)據(jù)丟失.規(guī)則通道的轉(zhuǎn)換結(jié)束后,產(chǎn)生了DMA請(qǐng)求,通過(guò)ADC_DR寄存器將已轉(zhuǎn)換的數(shù)據(jù)傳輸?shù)接脩糁付ǖ刂?由于利用了DMA數(shù)據(jù)的快速移動(dòng)性能,節(jié)省了CPU空間資源,節(jié)省下來(lái)的資源可以完成其他操作任務(wù).
ADC單次轉(zhuǎn)換時(shí)間為采樣周期(對(duì)電壓的采樣時(shí)間)和轉(zhuǎn)換周期(采樣結(jié)束后的轉(zhuǎn)換時(shí)間)的總和.ADC采樣周期取決于時(shí)鐘來(lái)源.配置RCC時(shí),PLL為72M作為主時(shí)鐘,配置PCLK2為PLL的2分頻,同時(shí)配置ADC時(shí)鐘為PCLK2的4分頻.時(shí)鐘頻率Fadc為9 MHz,設(shè)定采樣時(shí)間為55.5個(gè)時(shí)鐘周期,ADC的轉(zhuǎn)換時(shí)間為12.5個(gè)時(shí)鐘周期,整個(gè)轉(zhuǎn)換所需要的周期數(shù)為68個(gè)時(shí)鐘周期,單次的轉(zhuǎn)換時(shí)間為7.5μs.
設(shè)置配置I/O口為數(shù)字量的采集上拉輸入模式,二進(jìn)制數(shù)字量的讀取通過(guò)讀引腳狀態(tài),來(lái)完成對(duì)應(yīng)I/O口存到相應(yīng)變量的采集功能.
通過(guò)建立BUTTON來(lái)控件觸摸屏界面顯示任務(wù)是自動(dòng)監(jiān)控狀態(tài)還是手動(dòng)發(fā)送狀態(tài).當(dāng)沒(méi)有響應(yīng)的情況下,系統(tǒng)進(jìn)入自動(dòng)狀態(tài),并且每隔一定的時(shí)間向遠(yuǎn)程監(jiān)控終端(手機(jī))發(fā)送當(dāng)前采集到的所有數(shù)據(jù)量(包括模擬量和數(shù)字量),同時(shí)對(duì)通道進(jìn)行編號(hào)排序,為功能區(qū)域擴(kuò)展做鋪墊;當(dāng)系統(tǒng)采用手動(dòng)模式時(shí),界面彈出選擇查看窗口,通過(guò)BUTTON選擇來(lái)進(jìn)入查看模擬量或數(shù)字量的界面.所有顯示通道數(shù)值后邊都對(duì)應(yīng)復(fù)選框控件,使操作者能夠手動(dòng)發(fā)送當(dāng)前相應(yīng)通道的數(shù)據(jù)量至遠(yuǎn)程監(jiān)控終端(手機(jī)),其流程如圖2所示.
圖2 界面顯示程序流程
遠(yuǎn)程監(jiān)控系統(tǒng)里通信任務(wù)必須保證其實(shí)時(shí)性,通過(guò)向GPRS模塊發(fā)送AT命令來(lái)控制其向遠(yuǎn)程監(jiān)控終端(手機(jī))發(fā)送數(shù)據(jù).采集每個(gè)數(shù)據(jù)量(包括模擬量和數(shù)字量)的通道都有標(biāo)志位.若選擇手動(dòng)模式,為確保是否發(fā)送該通道的數(shù)值,需要檢查發(fā)送短信的信號(hào)量之后每個(gè)通道的標(biāo)志位;若選擇自動(dòng)模式,則省略此流程,直接發(fā)送全部通道數(shù)值,隨后每個(gè)通道的標(biāo)志位自動(dòng)清零.串行通信任務(wù)流程,如圖3所示.
圖3 串行通信任務(wù)流程
為了驗(yàn)證GPRS遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)系統(tǒng)是否能夠達(dá)到設(shè)計(jì)要求,需要對(duì)系統(tǒng)整體性能進(jìn)行測(cè)試.
利用可調(diào)電位器產(chǎn)生模擬電壓進(jìn)行測(cè)試,數(shù)字量用高低電平來(lái)替代,A/D參考電壓范圍0~3.3 V,數(shù)字量顯示正常,如圖4所示.
圖4 信號(hào)的采集顯示
監(jiān)控系統(tǒng)通道選擇界面時(shí),系統(tǒng)開始直接進(jìn)入自動(dòng)監(jiān)控界面,可人工選擇手動(dòng)進(jìn)入通道查看選擇界面,用以發(fā)送所需要傳輸?shù)臄?shù)據(jù).
在實(shí)現(xiàn)GPRS遠(yuǎn)程監(jiān)控系統(tǒng)過(guò)程中,人機(jī)交互界面設(shè)計(jì)得簡(jiǎn)潔方便,參照模塊化設(shè)計(jì)思想,依照各種功能的實(shí)時(shí)性要求的不同,將終端的功能需求進(jìn)行分類,并在各自不同任務(wù)中得以實(shí)現(xiàn),最后通過(guò)操作系統(tǒng)對(duì)任務(wù)進(jìn)行管理,實(shí)現(xiàn)嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的各項(xiàng)功能.
[1] 張森,陳源,陳昌敏.在Linux上模擬μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,(23):80-82.
[2] 拉伯羅斯.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅲ應(yīng)用開發(fā)[M].宮輝,曾鳴,龔光華,等譯.北京:北京航空航天大學(xué)出版社,2012.
[3] 陳瑤,李佳,宋寶華.Cortex-M 3+μC/OS-Ⅱ嵌入式系統(tǒng)開發(fā)入門與應(yīng)用[M].北京:人民郵電出版社,2010.
[4] 黃燕平.μCOS ARM移植要點(diǎn)詳解[M].北京:北京航空航天大學(xué)出版社,2005.
沈陽(yáng)工程學(xué)院學(xué)報(bào)(自然科學(xué)版)2014年2期