基于S3C44B0的數據監測模塊實(shí)時(shí)性分析與設計
實(shí)時(shí)數據監測是保證大中型旋轉機械安全運行的重要手段。隨著(zhù)工業(yè)自動(dòng)化程度的日益提高,對旋轉機械的實(shí)時(shí)數據監測的實(shí)時(shí)性、可靠性也提出了更高的要求。
筆者在S3C44B0上基于μC/OS-II進(jìn)行通用實(shí)時(shí)數據監測模塊的設計,并將其應用在旋轉機械監視保護系統中,實(shí)現了很好的實(shí)時(shí)性。該監測模塊具有對32個(gè)模擬量測點(diǎn)進(jìn)行采集、顯示、通信與管理的功能。
1 系統實(shí)時(shí)性需求
該實(shí)時(shí)數據監測模塊是基于μC/OS-II進(jìn)行設計的,而保證系統實(shí)時(shí)性的重要策略是系統的中斷處理機制。下面首先對系統設計的中斷處理機制進(jìn)行分析。
1.1 中斷處理機制分析
實(shí)時(shí)系統最根本的特點(diǎn)是實(shí)時(shí)性,而中斷處理程序是實(shí)時(shí)系統的重要組成部分,是RTOS實(shí)時(shí)性的重要體現。系統通過(guò)中斷機制了解外部世界,并對外部事件立刻作出響應。實(shí)時(shí)系統的反應速度取決于系統對于中斷的響應速度和中斷處理程序的處理速度。為了獲取對外部事件的最短反應時(shí)間,μC/OS-II系統中斷響應過(guò)程如圖1所示。第①階段是中斷延遲時(shí)間,從出現中斷請求到當前任務(wù)開(kāi)中斷這一過(guò)程。實(shí)時(shí)系統在進(jìn)入臨界區代碼段之前都要關(guān)中斷,執行完臨界代碼之后再開(kāi)中斷。關(guān)中斷的時(shí)間越長(cháng),中斷延遲就越長(cháng)。第②階段是內核保存當前任務(wù)的狀態(tài),將CPU寄存器壓棧,以便為中斷服務(wù)。第③階段調用OSIntEnter()函數或把中斷嵌套層數計數器直接加1,用OSIntExit()函數,將中斷嵌套層數計數器減1,當嵌套計數器減到零時(shí),μC/OS-II要判定有沒(méi)有優(yōu)先級較高的任務(wù)被中斷服務(wù)子程序喚醒。如果有優(yōu)先級高的任務(wù)進(jìn)入了就緒態(tài),μC/OS-II就返回到那個(gè)優(yōu)先級高的任務(wù)B。如果中斷嵌套層數計數器大于0,μC/OS-II將被返回到被中斷了的任務(wù)A。OSIntExit()函數的作用是進(jìn)行中斷級的任務(wù)調度。第④階段恢復已壓棧的寄存器值;最后執行中斷返回指令,結束中斷。
圖1 系統中斷處理機制分析
根據上述中斷處理機制,中斷響應時(shí)間是影響中斷實(shí)時(shí)性的最重要指標,而中斷延遲是其主要因素,延遲時(shí)間主要由系統時(shí)鐘和關(guān)中斷的時(shí)間決定。由于系統存在對任務(wù)和多中斷的調度,所以中斷延遲是個(gè)變量,一般為4~28個(gè)處理器周期。
1.2 實(shí)時(shí)數據監測模塊實(shí)時(shí)性需求分析
該實(shí)時(shí)數據監測模塊最多同時(shí)對32個(gè)測點(diǎn)的數據進(jìn)行實(shí)時(shí)監測。下面就以32個(gè)測點(diǎn)數目對該系統的實(shí)時(shí)性進(jìn)行分析,并從系統測量時(shí)間、功能要求兩個(gè)方面說(shuō)明系統保證實(shí)時(shí)性的時(shí)間條件。
1.2.1 功能要求
?、?32同步采樣,即系統能夠進(jìn)行多通道采樣,并且系統的A/D轉換芯片對采樣信號可以進(jìn)行高速動(dòng)態(tài)采集波形的要求,通道采集頻率高達240 Hz。
?、?A/D轉換位數,不小于16位。
?、?要求系統必須與計算機接口進(jìn)行通信,并且接口具有足夠的傳輸速率來(lái)滿(mǎn)足系統的實(shí)時(shí)性要求。
?、?要求該系統具有即插即用功能,在即插即用的同時(shí),系統能夠實(shí)時(shí)更新測點(diǎn)的數據以及狀態(tài)參數。
?、?該系統必須具有報警延時(shí)和報警保持功能。各個(gè)通道的報警延時(shí)用戶(hù)可以根據自己的需要設定,并且報警狀態(tài)可以被保持。
1.2.2 測量時(shí)間
因為每個(gè)測點(diǎn)就是需要采集的一個(gè)數據源,因此系統需要同時(shí)對32個(gè)數據源的數據進(jìn)行采集。每個(gè)測點(diǎn)可以分為多個(gè)通道(假設都為2個(gè)通道),系統需要同時(shí)采集的數據有64個(gè)。這樣可以計算出系統測量周期t為:
t=64×系統對每個(gè)通道數據源的測量時(shí)間
每個(gè)通道的測量時(shí)間包括通信時(shí)間和A/D采集時(shí)間、顯示時(shí)間。
(1) 通信時(shí)間
系統通信采用工業(yè)控制和分布式系統協(xié)議MODBUS_RTU通信協(xié)議。通信協(xié)議采用十六進(jìn)制的形式,所有寄存器采用的都是16位寄存器。寄存器中數據的排列采用大端格式。MODBUS_RTU基本幀格式如表1所列。
表1 MODBUS_RTU基本幀格式
該系統按照上述MODBUS_RTU的基本幀格式發(fā)送命令。發(fā)送命令基本流程如下:上位機按照表1敘述的MODBUS_RTU基本幀格式向下位機發(fā)送,下位機接收到上位機發(fā)送過(guò)來(lái)的命令后,執行相應的操作,然后將返回上位機應答信號。這一過(guò)程成為一個(gè)通信過(guò)程。該系統的一個(gè)通道的通信時(shí)間為10 ms。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評論