一種便攜式電視機軟件的升級系統
3.產(chǎn)生INT0中斷時(shí),則啟動(dòng)I2C接口讀程序I2C_Read將I/O口緩沖寄存器中的數據寫(xiě)入W79E632內部RAM;如果產(chǎn)生串行中斷,則啟動(dòng)串行接口讀程序UART_Read,將串行接口寄存器中的數據寫(xiě)入W79E632內部RAM內,并清除串口接收中斷標志RI,以使下一個(gè)數據能準確接收。
本文引用地址:http://dyxdggzs.com/article/106927.htm4.電腦系統以256字節作為一個(gè)數據塊進(jìn)行發(fā)送,每發(fā)送完256字節后發(fā)送一個(gè)累加校驗和進(jìn)行校驗。W79E632校驗數據有效后,啟動(dòng)FLASH寫(xiě)程序SPI_Write,將RAM中的256字節數據寫(xiě)入FLASH;寫(xiě)完后向電腦系統發(fā)送響應信號“RIGHT”,電腦系統繼續發(fā)送數據。W79E632判斷下一個(gè)字符是否是“結束”字符(即每一個(gè)數據塊的第一個(gè)字符),不是“結束”字符則繼續接收數據;如果是“結束”字符則啟動(dòng)SPI_Write程序將“結束”字符直接寫(xiě)入FLASH,然后結束。W79E632校驗后數據無(wú)效,則立即向電腦系統發(fā)送響應信號“ERROR”,然后結束。
5.結束時(shí),W79E632清除內部RAM、I/O口緩沖寄存器和串行接口寄存器中的數據,將定時(shí)器、UART接口或I2C接口恢復為初始狀態(tài),讀出堆棧中保存的數據并寫(xiě)入相應的寄存器以恢復中斷前狀態(tài);綠燈繼續閃動(dòng)2s后開(kāi)中斷,系統恢復正常運行狀態(tài)。
作為主機發(fā)送升級程序數據
升級系統作為主機的流程如圖4所示。
1.系統正常運行,開(kāi)串口中斷、外部中斷及定時(shí)器中斷,
查詢(xún)I/O口P3的狀態(tài),等待中斷。
2.從I2C接口發(fā)送存儲的升級程序數據時(shí),按一下開(kāi)關(guān)SW3產(chǎn)生外部中斷INT1。此時(shí)設置與產(chǎn)生INT0時(shí)相同。如果查詢(xún)到P3口有脈沖則屏蔽除串口中斷、定時(shí)器中斷外的所有中斷,其他設置與產(chǎn)生INT1中斷相同。
3.W79E632啟動(dòng)FLASH讀程序SPI_Read,讀取FLASH中存儲的升級程序數據,每次連續讀完256字節存入W79E632的RAM中。W79E632每次存儲數據塊的第一個(gè)字符存儲前,判斷是否是“結束”字符。
評論