一款新型煙草稱重讀卡定級器的設計與實現
3.2 任務調度與實現
嵌入式實時操作系統μC/OS-II任務的調度由任務調度器控制,任務調度器的主要工作有兩項:一是在任務就緒表中查找具有最高優先級的就緒任務;二是實現任務的切換。
本系統啟動多任務后,所有應用任務都處于就緒狀態,并在任務就緒表中登記。任務調度器選擇當前優先級最高的任務開始執行。以鍵盤掃描任務為例,鍵盤被設定為150ms掃描一次,若有鍵盤按下,進行鍵處理,若無鍵按下,繼續掃描。在150ms延時的過程中,鍵盤掃描任務交出CPU使用權,由調度器查詢剩下就緒狀態任務的優先級,選擇當前優先級最高的任務開始執行。150ms延時結束,若無更高級的任務就緒,程序將回到鍵盤掃描任務繼續執行。CPU在不同任務之間輪換,保證近似每時每刻讓優先級最高的就緒任務處于運行狀態。
在μC/OS-II操作系統中,某些任務需要特定的信號量,任務只有取得相應的信號量才能繼續執行下去。例如,ADC任務必須等待A/D轉換完成信號量ADCSem就緒方能執行,因此,當ADC任務得到CPU使用權時,若該信號量未能就緒,則該任務掛起,并交出CPU控制權。若該信號量就緒,則執行任務。
在任何時刻,若有中斷發生,系統將當前任務掛起,轉而執行中斷服務子程序(ISR)。以串口中斷1(上位機通訊)為例,當串口中斷發生時,意味著上位機有命令要發送給控制器,系統將中斷當前正在執行的任務,轉入串口中斷1服務程序執行。在中斷程序中,系統先判斷是發送中斷還是接收中斷,然后進行相應的處理。
程序代碼大體如下所示:

上位機通訊中斷程序執行完畢后,調度器查詢當前就緒任務,若無更高級的任務就緒,程序將回到斷點處繼續執行原先被中斷的任務。若有更高級的任務就緒,系統轉而執行優先級高的任務。
4 結語
本系統將煙葉收購過程中煙農信息采集、煙葉自動過磅、煙葉等級設置、煙葉數據處理整合在一起,真正實現了煙草收購的智能化管理,在保證收購質量的同時極大地提高了收購速度,縮短了收購周期,降低了收購成本。本文介紹的煙草稱重讀卡定級器先后在各地的基層煙站進行推廣實施,實踐證明,本煙草稱重讀卡定級器精度高、實時性好、運行穩定、可靠性高、抗干擾能力強,可以在同類行業中推廣應用。本文引用地址:http://www.j9360.com/article/159540.htm
評論