自動化儀器儀表里的數控線路問題勘驗
ROM的檢測ROM中固化了儀器的監控程序、工作程序和常數表格。ROM的檢測就是要考核各存儲單元的代碼或常數在讀出時是否會出錯。采用的方法是驗證所有讀出的存儲單元各對應位代碼的異或和是否正確。將用于校驗的正確的代碼和預先與程序一起固化在ROM中。自檢時,依次讀ROM的存儲單元。每讀一次代碼值,要與前面各項讀數的代碼和進行按位相加。最后獲得的總的代碼和與標準的代碼和做比較,如一致,說明ROM正常,下面具體說明對ROM的檢測。
設datal為程序的起始地址, data2為程序的結束地址, data3為代碼校驗和的存儲單元地址,儀器采用的是MCS 51系列單片機,則可用下列匯編程序自診斷ROM的工作情況。
TROM: MOV DPTR, data2 PUSH DPH PUSH DPL MOV DPTR, datal CLR B LP1: CLR A MOVC A, @ A + DPTR XRL B, A POP A MOV R1, A CJNE A, DPL, LP3 POP A MOV R2, A 25CJNE A, DPH, LP2 A JM P LP4 LP2: PUSH R2 LP3: PUSH R1 INC DPTR A JM P LP1 LP4: MOV DPTR, data3 CLR A MOVC A, @ A+ DPTR XRL A, B JNZ ERR RET ERR: ERR是ROM出錯處理程序的入口。
I/O端口的自檢I/O端口的自檢,可采用環繞技術,即將輸出端口和輸入端口連接起來,給輸出口寫入測試矢量,從輸入口讀入,然后進行比較,即可確定有無故障。以MCS 51系列芯片為例進行說明。串行I/O的自檢M CS 51機的串行口為全雙工接口,發送和接收可以同時進行,可將其輸出TXD和輸入RXD連接起來進行自檢。如所示,當多路分配器的開關位于a時,RXD和TXD與原電路相接,電路處于正常工作方式。位于d時, RXD與TXD互聯,用于串行口自檢。位于b和c時,用于并行口和總線的自檢。
串行I/O口的自檢原理圖在串行口自檢時,先開放RXD,然后給TXD寫測試矢量。最后從RXD讀入數據,與剛才寫入的測試矢量比較,確定有無故障。下面的程序只測試了串行口的工作方式1,工作方式2和3的測試方法類同,只需改變串行口的控制寄存器SCON的初始值即可。
STRT: MOV TMOD, 20H; T1初始化,確定串行口MOV TL1, 0E8H;傳送速率為1200波特MOV TH1, 0E8H MOV SCON, 50H;串行口設置工作方式1,允許RXD接收SETB TR1;啟動定時器工作MOV R4, 0H MOV DPTR, MVCT LP1: MOV A, R4 MOV A, @ A + DPTR MOV SBUF, A;由TXD發送串行數據MOV R5, A LP2: JBC R I, LP3;接收寄存器SBUF滿否SJM P LP2 LP3: MOV A, SBUF;讀取由RXD接收的數據CJNE A, B, SERR INC R4 CJNE RE, 5H, LP1 RET MVCT: DB 00H, OFFH, OAAH, 55H SERR: SERR為出錯處理程序的入口4 2并行口P 1的自檢MCS 51機的并行口有4個, P 0、P 2、P 3都是專用口,只有P 1口可供用戶作并行輸入輸出口編程使用。為了測試P 1口,可以利用串行口RXD和TXD,如所示。此圖即為中多路分配器開關位于b和c時的情況。當串行口工作方式0時, RXD既可作串行輸出口使用,給外部移位寄存器輸出數據,又可作串行輸入口使用,從外部移位寄存器接收數據。而TXD可為外部移位寄存器提供移位脈沖。
P 1口的自檢原理圖當RXD作為輸出口工作時,先將數據串行移入74LS164中,再由P 1口并行讀入,進行比較。當RXD作為輸入口工作時,先將數據并行寫入P 1口,然后并行輸入74LS166中,再串行地移入RXD中進行比較,便可以確定串行口在方式0時是否工作正常,或者P 1口并行輸入輸出功能是否正常。總線的自檢若RAM和ROM的自檢能順利進行,則可以確定地址總線和數據總線工作正常。但當ROM和RAM的自檢同時有毛病,則可能是總線有問題。中國糧油儀器網 http://www.pc256.com/