摘要:詳細(xì)說(shuō)明利用并口模擬I2C總線協(xié)議,實(shí)現(xiàn)Myson MTV230芯片的在線編程(ISP)過(guò)程,以及利用PC機(jī)的串口通信實(shí)現(xiàn)WINBOND W78E516B的在線編程(ISP)過(guò)程;闡述PC機(jī)的串口與并口在單片機(jī)開(kāi)發(fā)中的應(yīng)用。
關(guān)鍵詞:并口編程 串口通信 在線編程 ISP MTV230 W78E516B 引 言
1 在線編程簡(jiǎn)介
51內(nèi)核的單片機(jī)在線編程模式一般分為兩大類。一類是使用JTAG協(xié)議的在線編程模式。這類模式一般由廠家提供在線編程工具,使用方便。使用這一類模式的單片機(jī)價(jià)格往往較高,使用的廠商也不多,故不在本文的討論之列。另一類在線編程模式是使用一條特殊的指令,使單片機(jī)進(jìn)入在線編程模式。在進(jìn)入在線編程模式后,要自己控制對(duì)單片機(jī)的擦除寫(xiě)入邏輯。這一類模式又可細(xì)分為兩種不同的模式:一是進(jìn)入在線編程模式后,單片機(jī)只是提供一個(gè)接口,不再運(yùn)行用戶的程序,擦寫(xiě)邏輯全由上位機(jī)(PC)提供,如以下要討論的MTV230就屬于這種模式;另一類是進(jìn)入在線編程模式以后,芯片會(huì)運(yùn)行在某一區(qū)域的用戶編寫(xiě)的程序,芯片的編程邏輯都由芯片中這段程序控制,上位機(jī)(PC)只是作為單片機(jī)的一個(gè)數(shù)據(jù)源,向單片機(jī)傳輸要擦寫(xiě)的數(shù)據(jù),如以下要討論的W78E516B。
2 利用并口對(duì)MTV230在線編程的實(shí)現(xiàn)
2.1 MTV230簡(jiǎn)介
MTV230是由Myson公司出品的一塊集成OSD功能的基于51內(nèi)核的芯片。它使用12MHZ晶振時(shí)可以設(shè)置為倍頻工作,同時(shí)還集成了4路A/D和4路PWM DAC。其中最具競(jìng)爭(zhēng)力的便是它使用了FLASH OSD字庫(kù)。與一般的OSD芯片不同,它的字庫(kù)不是掩膜在芯片中,用戶可以自己定制。該款芯片可以滿足視頻應(yīng)用中的控制需求,因而被廣泛應(yīng)用于視頻類產(chǎn)品中。
2.2 MTV230在線編程模式的進(jìn)入
要使MTV230具有在線編程的功能,可以添加一段程序在主應(yīng)用程序中。該程序用來(lái)響應(yīng)特定的單片機(jī)狀態(tài),如某一特定引腳的電平變化,或是串口接收到特定的字符以確定是否要進(jìn)入在線編程模式。在執(zhí)行以下程序后,MTV230可以進(jìn)入在線編程模式[1]:
① 清看門狗,以防止在編程期間單片機(jī)被復(fù)位;
② 單片機(jī)的在線編程模式是在空閑狀態(tài)(idle)下進(jìn)行的,所以要關(guān)閉所有中斷,防止單片機(jī)被喚醒;
③ 由于MTV230在線編程時(shí)是作為I2C的從設(shè)備,因而要配置單片機(jī)的I2C從地址;
④ 向ISPEN寫(xiě)入0x93,使能在線編程功能;
⑤ 進(jìn)入51的空閑模式,在線編程開(kāi)始。
具體程序如下: WDT=0; //1 IE=0; //2 ISPSLV=0x7C; //3 ISPEN=0x93; //4 PCON=0x01; //5
以上程序中1~5與上述說(shuō)明對(duì)應(yīng)。以上將I2C地址設(shè)置為0x7C。值得注意的是,設(shè)置I2C從地址時(shí),最低兩位無(wú)效[1]。執(zhí)行完以上程序,單片機(jī)已經(jīng)變?yōu)橐粋(gè)I2C從設(shè)備,將I2C中SCL與芯片的15腳相連,SDA與芯片的16腳相連,就可以用I2C協(xié)議,按一定的命令格式對(duì)芯片進(jìn)行在線編程。命令格式詳見(jiàn)參考文獻(xiàn)[1],在此不再贅述。
2.3 PC機(jī)I2C接口的實(shí)現(xiàn)
對(duì)MTV230進(jìn)行在線編程,就要實(shí)現(xiàn)I2C通信協(xié)議。作為對(duì)MTV230進(jìn)行編程的上位機(jī)PC來(lái)說(shuō),實(shí)現(xiàn)I2C有三種方法:
① 使用串口與單片機(jī)通信,再由單片機(jī)模擬I2C協(xié)議,成本高,I2C速度視使用的單片機(jī)而定;
② 對(duì)計(jì)算機(jī)的并口編程,模擬I2C協(xié)議,成本低,I2C速度一般;
③ 使用USB接口實(shí)現(xiàn)I2C協(xié)議,成本高,I2C速度快市場(chǎng)上可以買到。
由于MTV230進(jìn)行編程時(shí),I2C時(shí)鐘速度最高為140kHz,速度要求不高,同時(shí)考慮到成本,決定使用方案②。
2.4 并口I2C硬件的實(shí)現(xiàn)
由于并口的每個(gè)引腳都是單向的,只能單向輸出或者單向輸入;而I2C又是一個(gè)雙向協(xié)議,SDA與SCL都要求既能輸入又能輸出(有時(shí)要獲取SCL當(dāng)前狀態(tài)),所以,SDA與SCL要分別各由一個(gè)輸出引腳與一個(gè)輸入引腳構(gòu)成。為了增加并口的驅(qū)動(dòng)能力與可靠性,設(shè)計(jì)電路如圖1所示。其中并口的2、12引腳構(gòu)成SDA腳,并口的3、10引腳構(gòu)成SCL腳。 程序特色: ① 可以設(shè)定使用的串口與通信的波特率。(與其相應(yīng)的4KB引導(dǎo)區(qū)中的程序也要相應(yīng)修改)。 ② 可以設(shè)定使單片機(jī)進(jìn)入在線編程模式的字符命令。 ③ 進(jìn)行燒寫(xiě)的文件支持二進(jìn)制文件格式(*.bin)與INTEL的Hex文件格式(*.hex)。
「該帖子被 godsky 在 2007-1-28 16:19:00 編輯過(guò)」 |