電磁流量計抗干擾技術探討 六
為了防止單片機輸出口狀態被意外修改,定期重新定義輸出口狀態。MSP430 單片機內部集成很多外圍設備,如UART、SPI串口、定時計數器等,為了防止這些設備的相應控制寄存器被意外修改,每次使用時都需重新設置。
指令冗余使“跑飛”的程序安定下來是有前提條件的:程序計算器必須指向程序區。當程序計數器落到非程序區,如ROM中未使用的空間、中斷向量表、數據區,則冗余指令失效。采取額外措施就是設立軟件陷阱。所謂軟件陷阱,就是一條引導指令,強行將捕獲的程序引向對程序出錯進行處理的程序,一般安排在未使用的中斷向量、未使用的ROM等。
MSP430單片機具有多個中斷發生源。正常工作時,執行完中斷服務程序后,相應的中斷標志位會被硬件自動復位;當單片機受到干擾,運行異常時,可能會觸發沒有使用的中斷,導致系統不能正常工作,因此在未被使用的中斷向量處插入冗余指令,使中斷自動返回,如:“NOP NOP RETI”。對于沒有使用的ROM,程序燒錄器默認寫入字0xffff,該字對于指令系統是一條指令,這條指令會修改單片機內部寄存器值;如果程序“跑飛”進入這段ROM中,可能造成數據運算錯誤,因此在未使用的ROM中寫入代碼,使程序跳轉到出錯處理程序。
電磁流量計