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