一款新型煙草稱重讀卡定級器的設(shè)計(jì)與實(shí)現(xiàn)
3.2 任務(wù)調(diào)度與實(shí)現(xiàn)
嵌入式實(shí)時操作系統(tǒng)μC/OS-II任務(wù)的調(diào)度由任務(wù)調(diào)度器控制,任務(wù)調(diào)度器的主要工作有兩項(xiàng):一是在任務(wù)就緒表中查找具有最高優(yōu)先級的就緒任務(wù);二是實(shí)現(xiàn)任務(wù)的切換。
本系統(tǒng)啟動多任務(wù)后,所有應(yīng)用任務(wù)都處于就緒狀態(tài),并在任務(wù)就緒表中登記。任務(wù)調(diào)度器選擇當(dāng)前優(yōu)先級最高的任務(wù)開始執(zhí)行。以鍵盤掃描任務(wù)為例,鍵盤被設(shè)定為150ms掃描一次,若有鍵盤按下,進(jìn)行鍵處理,若無鍵按下,繼續(xù)掃描。在150ms延時的過程中,鍵盤掃描任務(wù)交出CPU使用權(quán),由調(diào)度器查詢剩下就緒狀態(tài)任務(wù)的優(yōu)先級,選擇當(dāng)前優(yōu)先級最高的任務(wù)開始執(zhí)行。150ms延時結(jié)束,若無更高級的任務(wù)就緒,程序?qū)⒒氐芥I盤掃描任務(wù)繼續(xù)執(zhí)行。CPU在不同任務(wù)之間輪換,保證近似每時每刻讓優(yōu)先級最高的就緒任務(wù)處于運(yùn)行狀態(tài)。
在μC/OS-II操作系統(tǒng)中,某些任務(wù)需要特定的信號量,任務(wù)只有取得相應(yīng)的信號量才能繼續(xù)執(zhí)行下去。例如,ADC任務(wù)必須等待A/D轉(zhuǎn)換完成信號量ADCSem就緒方能執(zhí)行,因此,當(dāng)ADC任務(wù)得到CPU使用權(quán)時,若該信號量未能就緒,則該任務(wù)掛起,并交出CPU控制權(quán)。若該信號量就緒,則執(zhí)行任務(wù)。
在任何時刻,若有中斷發(fā)生,系統(tǒng)將當(dāng)前任務(wù)掛起,轉(zhuǎn)而執(zhí)行中斷服務(wù)子程序(ISR)。以串口中斷1(上位機(jī)通訊)為例,當(dāng)串口中斷發(fā)生時,意味著上位機(jī)有命令要發(fā)送給控制器,系統(tǒng)將中斷當(dāng)前正在執(zhí)行的任務(wù),轉(zhuǎn)入串口中斷1服務(wù)程序執(zhí)行。在中斷程序中,系統(tǒng)先判斷是發(fā)送中斷還是接收中斷,然后進(jìn)行相應(yīng)的處理。
程序代碼大體如下所示:
上位機(jī)通訊中斷程序執(zhí)行完畢后,調(diào)度器查詢當(dāng)前就緒任務(wù),若無更高級的任務(wù)就緒,程序?qū)⒒氐綌帱c(diǎn)處繼續(xù)執(zhí)行原先被中斷的任務(wù)。若有更高級的任務(wù)就緒,系統(tǒng)轉(zhuǎn)而執(zhí)行優(yōu)先級高的任務(wù)。
4 結(jié)語
本系統(tǒng)將煙葉收購過程中煙農(nóng)信息采集、煙葉自動過磅、煙葉等級設(shè)置、煙葉數(shù)據(jù)處理整合在一起,真正實(shí)現(xiàn)了煙草收購的智能化管理,在保證收購質(zhì)量的同時極大地提高了收購速度,縮短了收購周期,降低了收購成本。本文介紹的煙草稱重讀卡定級器先后在各地的基層煙站進(jìn)行推廣實(shí)施,實(shí)踐證明,本煙草稱重讀卡定級器精度高、實(shí)時性好、運(yùn)行穩(wěn)定、可靠性高、抗干擾能力強(qiáng),可以在同類行業(yè)中推廣應(yīng)用。本文引用地址:http://www.ex-cimer.com/article/159540.htm
評論