在單片機編程過程中,經常會使用到中斷。那么,什么是單片機中斷,它與CPU的輪詢有什么區別?在本文中,英銳恩單片機開發工程師將對單片機中斷和CPU輪詢做個簡單的介紹。
中斷:
中斷是一種硬件機制,在這種機制中,設備會通知CPU它需要引起注意。中斷可以隨時發生。因此,當CPU通過指示中斷請求線收到中斷信號時,CPU停止當前進程并通過將控制權傳遞給服務設備的中斷處理程序來響應該中斷。
輪詢:
輪詢不是一種硬件機制,它是一種協議,CPU會穩定地檢查該設備是否需要注意。無論設備告訴處理單元它希望進行硬件處理的位置如何,在輪詢過程中,處理單元都會不斷詢問I/O設備是否希望進行CPU處理。CPU不斷檢查連接到其上的每個設備,以偵查是否有任何設備需要硬件注意。
每個設備都有一個指示命令就緒的位,指示該設備的狀態,即該命令是否被硬件終止。如果命令位已準備就緒,則該命令已失效;否則,如果該位為零,則該命令無效。
讓我們看看中斷和輪詢之間的區別:
1、在中斷時,設備會通知CPU它需要引起注意。而在輪詢中,CPU會穩定地檢查設備是否需要注意。
2、中斷不是協議,而是一種硬件機制。輪詢不是硬件機制,而是協議。
3、在中斷中,該設備由中斷處理程序提供服務。輪詢時,該設備由CPU維修。
4、斷可以隨時發生。輪詢時,CPU會以固定或適當的間隔穩定地對設備進行投票。
5、在中斷中,中斷請求線用作指示設備需要維修的指示。在輪詢時,命令就緒位用作指示,表明設備需要維修。
6、在中斷中,一旦任何設備將其中斷,處理器就會受到干擾。相反,在輪詢中,處理器通過重復檢查每個設備的命令就緒位來浪費無數的處理器周期。
以上就是英銳恩單片機開發工程師分享的單片機中斷和輪詢之間的區別。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機、運放芯片和模擬開關。