1 引言
隨著嵌入式系統的廣泛應用,原來單一傳感器的嵌入式系統逐漸向嵌入式多傳感器系統發展。由此提出了多傳感器任務調度分配的問題。本文移植典型的實時嵌入式操作系統μc/OS-II到SPCE061高性能處理器平臺,結合工程項目對于溫度濕度氧濃度的要求,構建了實時嵌入式多傳感器測控系統。
2 系統硬件設計
2.1 單片機系統設計
系統硬件電路原理框圖如圖1所示,主要由SPCE061A單片機、溫濕度傳感器、氧濃度度傳感器、LCD顯示電路、鍵盤電路、RS232通信電路、時鐘電路等組成。SPCE061A是一款基于μ'nSP內核的16位單片機。
圖1系統硬件電路原理框圖
2.2 傳感器電路設計
溫度檢測電路選用Dalls公司生產的三線式數字溫度傳感器DS18B20。該器件只有3個引腳,不需要外部元件,一條數據線進行通信。該電路的檢測溫度范圍設計為0~+50℃;精度為0.5℃;用9bit數字量來表示溫度;每次將溫度轉換成數字量需200ms。在單總線工作方式下,允許一條信號線上掛接多個DS18B20,DS18B20都有唯一的ROM代碼。在多點溫度測控系統中,ROM代碼是識別和操作DS18B20的基礎;無論讀取還是選擇對某一個傳感器進行操作,SPCE061A必須發送64位ROM代碼。
本系統用3塊DS18B20來實現對環境溫度的檢測,保證在被測環境范圍內,溫度分布均勻,測量更加準確,使用時將DS18B20放置在被測環境的不同位置。獲得溫度信息時,先由SPCE061A的IOB15腳發送一個1ms的復位脈沖,以使DS18B20復位后將向SPCE061A 發送一個回應脈沖,SPCE061A接到回應脈沖后將發送讀DS18B20序列號的讀ROM命令,以分別讀取三個DS18B20的序列號;然后,SPCE061A再發出定位命令以選擇在線的DS1820并進行溫度轉換。當溫度轉換完成后,SPCE061A的IOB15腳會發送DS1820的存儲命令,從而完成溫度信息數據的轉換和讀取。
2路氧濃度檢測選用 DW-02型氧濃度傳感器,主要特點是體積小、響應快、線性好、溫漂小等特點,穩定。主要技術指標: 響應時間≤30秒(滿量程的90%) ;測量范圍0~50% O2 ;溫度系數>0.003% O2/℃ ;線性誤差+0.2%~-0.1% O2 ;使用溫度范圍-20℃~+50℃ ;輸出電流1.1mA+15% 。 本系統測定的含氧量不得低于4.5%。
由于是冬季,當儲藏室環境溫度高于14℃或濕度大于95%RH、或氧濃度低于4.5%設定值時,不能直接將冷空氣送入儲藏室,必須將室外空氣加熱到12℃送入,否則,會造成紅薯受冷變質。三個參數中,最主要的是溫度值,然后是濕度。繼電器電路的工作情況如表1所示。
表1 繼電器控制電路工作情況
2.3 鍵盤、顯示電路及通信接口設計
系統鍵盤電路由3根線連接至SPCE061A的IOA0~IOA2組成,它們分別是功能鍵,增加鍵,減少鍵,用來實現溫、濕度氧濃度的上、下限及控制時間的設置功能。測控儀采用HT1621驅動128段LCD顯示器,用于顯示現場的溫、濕度值、O2濃度以及故障和報警狀態。HT1621是一個128(32×4)段、內存映射、多功能、I2C接口的LCD驅動器。
3 軟件設計
3.1 系統任務分配
為了充分發揮操作系統在任務調度、任務管理、任務通信、時間管理和內存管理等方面的優勢,首先必須根據需要實現的功能,合理的劃分任務和分配任務的優先級。按溫濕度測控系統所要求實現的功能,將整個系統劃分為并行存在的任務層和中斷程序。μC/OS-II嵌入式實時操作系統中的任務狀態轉換如圖2所示。
圖2 μC/OS-II任務狀態轉換示意圖
多任務系統在運行時每個任務好像獨立占用CPU一樣,因此系統必須為每個任務開辟一塊內存空間作為該任務的任務堆棧。該堆棧的作用是保存任務被切換前時CPU各寄存器的值以及系統堆棧的數據。進行任務切換的步驟如下:①將當前任務CPU所有的寄存器壓棧;②將CPU系統堆棧的數據全部拷貝到當前任務的任務堆棧中;③ 得到下一個處于運行態優先級最高的任務的任務堆棧的指針;④ 恢復下一個任務的CPU寄存器的值;⑤ 恢復下一個任務的系統堆棧中的數據;⑥ 通過中斷返回指令或函數返回指令,間接修改PC寄存器的值來進行任務切換。
任務切換方法:凌陽SPACE061A單片機有R1-R5 五個通用寄存器,還有1個SR(CPU狀態寄存器),再加上PC,總共有7個CPU內部寄存器在任務切換時需要保存。μC/OS-II系統調用OSCtxSw( )來實現任務的切換。在實際系統中,每個任務都是無限循環的,分別實現某一特定的功能,由μC/OS-II內核來進行調度。系統監視任務主要完成系統可靠性的監管;數據采集任務主要完成溫度濕度氧濃度的檢測和A/D轉換;數據處理任務主要完成采集數據和設定數據的比較判定;數據輸出任務主要完成數據輸出給LCD、通過RS232傳輸給主機、以及輸出控制信號給繼電器電路,完成通風、加熱、加濕等功能;顯示任務主要完成溫度濕度氧濃度參數的顯示。系統主程序任務流程圖如圖3所示。
圖3 系統主程序任務流程圖
3.2 μc/OS-II的移植
μC/OS-II是一種專門為微控制器設計的搶占式實時多任務操作系統,它以源代碼的形式給出。其內核主要提供進程管理、時間管理、內存管理等服務。系統最多支持56個任務,每個任務均有一個獨有的優先級。
μC/OS-II的軟件體系結構如圖4所示。從圖4中可以看到,如果要使用μC/OS-II, 必須為其編寫OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三個文件。這三個文件是與芯片的硬件特性有關的,它們主要提供任務切換與系統時鐘的功能。其它文件用C寫成,它們為系統提供任務管理、任務之間通信、時間管理以及內存管理等功能。
圖4 μC/OS-II 軟件體系結構示意圖
μC/OS-II系統時鐘:以凌陽SPCE061A單片機的TMB2時基信號作為系統時鐘,每經歷一個時鐘節拍的時間將產生一次中斷,在中斷服務子程序中會調用OSTickISR()函數。
移植工作的主要內容:用#define 設置一個常量值(OS_CPU.H);聲明10個數據類型(OS_CPU.H); 用#define 聲明3個宏(OS_CPU.H);用C語言編寫6個簡單的函數(OS_CPU_C.C);編寫4個匯編語言函數(OS_CPU_A.ASM)。
4 結論
μC/OS-II RTOS是當今嵌入式應用的熱點之一,應用RTOS提高了測控系統系統的可靠性、實時性,降低了研發周期。本文基于μC/OS-II構建的測控系統應用在漯河農業局2000萬公斤紅薯儲藏保鮮工程項目中,完全達到了設計的控制指標:溫度10-14℃±0.5℃ ,濕度80—95%RH±2%,氧濃度≮4.5%。降低了紅薯因為溫度濕度氧濃度不正常造成的變質,完好率100%,與不使用本系統的倉儲對比減少損耗25%,約500萬公斤,直接經濟效益500多萬元,同時也取得了較好的社會效益。經試驗,溫度測定范圍可以達到-20-85℃±0.5℃;濕度20—98%RH±2%;氧濃度≮1.5%。所以,該測控系統具有較廣的應用前景。
-
傳感器
+關注
關注
2548文章
50675瀏覽量
751991 -
嵌入式
+關注
關注
5068文章
19017瀏覽量
303261 -
寄存器
+關注
關注
31文章
5317瀏覽量
120006 -
操作系統
+關注
關注
37文章
6738瀏覽量
123190
發布評論請先 登錄
相關推薦
評論