一種便攜式電視機軟件的升級系統
W79E632有UART串行接口,沒有I2C接口及SPI接口,采用I/O口P8、P9模擬I2C接口,I/O口P4~P7模擬SPI接口。FLASH存儲采用NOR FLASH,3.3V供電。由于FLASH是3.3V供電,W79E632 I/O口電平為5V,為保證數據的可靠性,系統有一個5V/3.3V SPI總線轉換電路。
本文引用地址:http://www.104case.com/article/106927.htm系統自身的引導程序、初始化程序以及UART接口數據讀寫程序、I2C接口數據讀寫程序、SPI接口數據讀寫程序等都放在內部ROM中,FLASH存儲器專門存儲電視機升級程序數據。開關SW2、SW3產生低脈沖來觸發外部中斷INT0、INT1,以控制I2C接口數據的接收和發送;串行接口中斷控制UART接口數據的接收,而SW1產生低脈沖通過I/O口P3控制UART接口數據的發送。升級系統通過W79E632內部定時器以及I/O口P2、P1控制紅/綠指示燈來表達當前狀態,例如紅綠燈都亮,升級系統運行正常,準備讀寫;紅燈亮,綠燈閃動,升級系統正在寫或讀FLASH存儲器。
系統軟件實現
升級系統的軟件實現包括兩部分:作為從機接收并存儲電腦系統發送的電視機升級程序數據和作為主機向電視機系統發送存儲的電視機升級程序數據。
系統主頻設計為22.1184MHz,UART接口采用8位移位寄存器模式,波特率是系統主頻率的1/12,每接收完或發送完一個數據字節將產生中斷;I2C接口最高傳輸速率為100kb/s,SPI接口最高傳輸速率為2.2Mb/s。
系統自檢、初始化等程序以1000H為起始地址。上電后直接跳到1000H處,進行初始化設置,建立好堆棧,設置好UART接口、I2C接口以及SPI接口相關參數;紅綠指示燈都亮,允許中斷。此后系統正常運行,等待中斷并監視I/O口P3的狀態,以決定系統是作為主機還是從機進行下一步運作。
作為從機接收并存儲升級程序數據
升級系統作為從機接收并存儲電腦系統發送的電視機升級程序數據,流程如圖3所示。
1.系統正常運行,開串口中斷、外部中斷及定時器中斷,等待中斷。
2.從I2C接口接收升級程序數據時,按一下開關SW2,產生外部中斷INT0。屏蔽除定時器中斷外所有的中斷,將與當前狀態相關的寄存器及程序指針數據暫時存入堆棧。同時設置定時器相關參數,使W79E632能夠向I/O口P1發送周期為500ms的脈沖信號以控制綠燈閃動,表示正在接收數據。串口中斷由W79E632自動產生。如果產生串口中斷,則屏蔽除串口中斷、定時器中斷外所有的中斷,其它設置與INT0中斷相同。
評論