新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 一種便攜式電視機(jī)軟件的升級(jí)系統(tǒng)設(shè)計(jì)

一種便攜式電視機(jī)軟件的升級(jí)系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2012-05-21 來(lái)源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://butianyuan.cn/article/165621.htm

隨著數(shù)字化程度的提高和功能的增強(qiáng),越來(lái)越重要,各種各樣的故障需要來(lái)解決。而目前電視機(jī)的方法主要通過(guò)專門的軟件燒錄儀將軟件燒錄入存儲(chǔ)器,然后將存儲(chǔ)器焊接到電視機(jī)主板上;或者將電腦與電視機(jī)相連,通過(guò)電腦將升級(jí)程序?qū)懭腚娨暀C(jī)存儲(chǔ)器。這兩種電視機(jī)軟件升級(jí)的方法存在操作復(fù)雜、時(shí)間長(zhǎng)、成本高,且需要專業(yè)性知識(shí)等缺陷。

原理

電視機(jī)軟件升級(jí)原理如圖1。電視機(jī)軟件升級(jí)是以單片機(jī)W79E632為基礎(chǔ)的可以獨(dú)立運(yùn)行的系統(tǒng)。首先升級(jí)系統(tǒng)作為從機(jī)接收電腦系統(tǒng)發(fā)送過(guò)來(lái)的升級(jí)程序數(shù)據(jù)并進(jìn)行存儲(chǔ),然后升級(jí)系統(tǒng)作為主機(jī)將存儲(chǔ)的升級(jí)程序數(shù)據(jù)發(fā)送給電視機(jī)系統(tǒng),電視機(jī)系統(tǒng)將升級(jí)程序數(shù)據(jù)存儲(chǔ)、運(yùn)行,從而實(shí)現(xiàn)軟件升級(jí)。

1_副本.jpg

目前電視機(jī)的升級(jí)接口一般是UART串行接口和I2C接口,該軟件升級(jí)系統(tǒng)可以選用兩種接口來(lái)升級(jí)。電腦系統(tǒng)若沒有這兩個(gè)接口,需要通過(guò)接口轉(zhuǎn)換裝置來(lái)與升級(jí)系統(tǒng)相連。

系統(tǒng)硬件實(shí)現(xiàn)

電視機(jī)軟件升級(jí)系統(tǒng)硬件框圖如圖2所示。系統(tǒng)主要包括單片機(jī)W79E632、FLASH存儲(chǔ)器、UART串口接口電路、I2C接口電路、中斷電路以及狀態(tài)指示燈等。

2_副本.jpg

WINBOND公司單片機(jī)W79E632具有128k ISP(In-System Program)FLASH ROM、4k的LD(Loader program)FLASH ROM、軟件指令完全與51單片機(jī)兼容、執(zhí)行效率高和速度快等優(yōu)點(diǎn)。

W79E632有UART串行接口,沒有I2C接口及SPI接口,采用I/O口P8、P9模擬I2C接口,I/O口P4~P7模擬SPI接口。FLASH存儲(chǔ)采用NOR FLASH,3.3V供電。由于FLASH是3.3V供電,W79E632 I/O口電平為5V,為保證數(shù)據(jù)的可靠性,系統(tǒng)有一個(gè)5V/3.3V SPI總線轉(zhuǎn)換電路。

系統(tǒng)自身的引導(dǎo)程序、初始化程序以及UART接口數(shù)據(jù)讀寫程序、I2C接口數(shù)據(jù)讀寫程序、SPI接口數(shù)據(jù)讀寫程序等都放在內(nèi)部ROM中,F(xiàn)LASH存儲(chǔ)器專門存儲(chǔ)電視機(jī)升級(jí)程序數(shù)據(jù)。開關(guān)SW2、SW3產(chǎn)生低脈沖來(lái)觸發(fā)外部中斷INT0、INT1,以控制I2C接口數(shù)據(jù)的接收和發(fā)送;串行接口中斷控制UART接口數(shù)據(jù)的接收,而SW1產(chǎn)生低脈沖通過(guò)I/O口P3控制UART接口數(shù)據(jù)的發(fā)送。升級(jí)系統(tǒng)通過(guò)W79E632內(nèi)部定時(shí)器以及I/O口P2、P1控制紅/綠指示燈來(lái)表達(dá)當(dāng)前狀態(tài),例如紅綠燈都亮,升級(jí)系統(tǒng)運(yùn)行正常,準(zhǔn)備讀寫;紅燈亮,綠燈閃動(dòng),升級(jí)系統(tǒng)正在寫或讀FLASH存儲(chǔ)器。

系統(tǒng)軟件實(shí)現(xiàn)

升級(jí)系統(tǒng)的軟件實(shí)現(xiàn)包括兩部分:作為從機(jī)接收并存儲(chǔ)電腦系統(tǒng)發(fā)送的電視機(jī)升級(jí)程序數(shù)據(jù)和作為主機(jī)向電視機(jī)系統(tǒng)發(fā)送存儲(chǔ)的電視機(jī)升級(jí)程序數(shù)據(jù)。

系統(tǒng)主頻為22.1184MHz,UART接口采用8位移位寄存器模式,波特率是系統(tǒng)主頻率的1/12,每接收完或發(fā)送完一個(gè)數(shù)據(jù)字節(jié)將產(chǎn)生中斷;I2C接口最高傳輸速率為100kb/s,SPI接口最高傳輸速率為2.2Mb/s。

系統(tǒng)自檢、初始化等程序以1000H為起始地址。上電后直接跳到1000H處,進(jìn)行初始化設(shè)置,建立好堆棧,設(shè)置好UART接口、I2C接口以及SPI接口相關(guān)參數(shù);紅綠指示燈都亮,允許中斷。此后系統(tǒng)正常運(yùn)行,等待中斷并監(jiān)視I/O口P3的狀態(tài),以決定系統(tǒng)是作為主機(jī)還是從機(jī)進(jìn)行下一步運(yùn)作。

作為從機(jī)接收并存儲(chǔ)升級(jí)程序數(shù)據(jù)

升級(jí)系統(tǒng)作為從機(jī)接收并存儲(chǔ)電腦系統(tǒng)發(fā)送的電視機(jī)升級(jí)程序數(shù)據(jù),流程如圖3所示。

3_副本.jpg

1.系統(tǒng)正常運(yùn)行,開串口中斷、外部中斷及定時(shí)器中斷,等待中斷。

2.從I2C接口接收升級(jí)程序數(shù)據(jù)時(shí),按一下開關(guān)SW2,產(chǎn)生外部中斷INT0。屏蔽除定時(shí)器中斷外所有的中斷,將與當(dāng)前狀態(tài)相關(guān)的寄存器及程序指針數(shù)據(jù)暫時(shí)存入堆棧。同時(shí)設(shè)置定時(shí)器相關(guān)參數(shù),使W79E632能夠向I/O口P1發(fā)送周期為500ms的脈沖信號(hào)以控制綠燈閃動(dòng),表示正在接收數(shù)據(jù)。串口中斷由W79E632自動(dòng)產(chǎn)生。如果產(chǎn)生串口中斷,則屏蔽除串口中斷、定時(shí)器中斷外所有的中斷,其它設(shè)置與INT0中斷相同。

3.產(chǎn)生INT0中斷時(shí),則啟動(dòng)I2C接口讀程序I2C_Read將I/O口緩沖寄存器中的數(shù)據(jù)寫入W79E632內(nèi)部RAM;如果產(chǎn)生串行中斷,則啟動(dòng)串行接口讀程序UART_Read,將串行接口寄存器中的數(shù)據(jù)寫入W79E632內(nèi)部RAM內(nèi),并清除串口接收中斷標(biāo)志RI,以使下一個(gè)數(shù)據(jù)能準(zhǔn)確接收。

4.電腦系統(tǒng)以256字節(jié)作為一個(gè)數(shù)據(jù)塊進(jìn)行發(fā)送,每發(fā)送完256字節(jié)后發(fā)送一個(gè)累加校驗(yàn)和進(jìn)行校驗(yàn)。W79E632校驗(yàn)數(shù)據(jù)有效后,啟動(dòng)FLASH寫程序SPI_Write,將RAM中的256字節(jié)數(shù)據(jù)寫入FLASH;寫完后向電腦系統(tǒng)發(fā)送響應(yīng)信號(hào)“RIGHT”,電腦系統(tǒng)繼續(xù)發(fā)送數(shù)據(jù)。W79E632判斷下一個(gè)字符是否是“結(jié)束”字符(即每一個(gè)數(shù)據(jù)塊的第一個(gè)字符),不是“結(jié)束”字符則繼續(xù)接收數(shù)據(jù);如果是“結(jié)束”字符則啟動(dòng)SPI_Write程序?qū)?ldquo;結(jié)束”字符直接寫入FLASH,然后結(jié)束。W79E632校驗(yàn)后數(shù)據(jù)無(wú)效,則立即向電腦系統(tǒng)發(fā)送響應(yīng)信號(hào)“ERROR”,然后結(jié)束。

5.結(jié)束時(shí),W79E632清除內(nèi)部RAM、I/O口緩沖寄存器和串行接口寄存器中的數(shù)據(jù),將定時(shí)器、UART接口或I2C接口恢復(fù)為初始狀態(tài),讀出堆棧中保存的數(shù)據(jù)并寫入相應(yīng)的寄存器以恢復(fù)中斷前狀態(tài);綠燈繼續(xù)閃動(dòng)2s后開中斷,系統(tǒng)恢復(fù)正常運(yùn)行狀態(tài)。

作為主機(jī)發(fā)送升級(jí)程序數(shù)據(jù)

升級(jí)系統(tǒng)作為主機(jī)的流程如圖4所示。

1.系統(tǒng)正常運(yùn)行,開串口中斷、外部中斷及定時(shí)器中斷,查詢I/O口P3的狀態(tài),等待中斷。

4_副本.jpg

2.從I2C接口發(fā)送存儲(chǔ)的升級(jí)程序數(shù)據(jù)時(shí),按一下開關(guān)SW3產(chǎn)生外部中斷INT1。此時(shí)設(shè)置與產(chǎn)生INT0時(shí)相同。如果查詢到P3口有脈沖則屏蔽除串口中斷、定時(shí)器中斷外的所有中斷,其他設(shè)置與產(chǎn)生INT1中斷相同。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉