摘要:結(jié)合Flash Magic軟件對PhilipsP89C664單片機ISP功能進行詳細介紹,同時詳細敘述利用P89C664硬件I2C接口接收數(shù)據(jù)并轉(zhuǎn)發(fā)到電腦,實現(xiàn)I2C總線大批量數(shù)據(jù)的自動保存技術(shù),并附有完事的源泉程序清單及必要的注釋。
引言
在實際工作中,有些情況下可能需要對一些I2C接口發(fā)出的數(shù)據(jù)進行分析,如果數(shù)據(jù)較少則比較容易解決。比如可以直接把數(shù)據(jù)保存到單片機的RAM中,然后通過LED顯示出來,但如果數(shù)據(jù)量很大,這種方法就很河取了。在這種情況下,想辦法把大量的數(shù)據(jù)保存到電腦里是一個比較好的方法這樣不但可以解決大批量數(shù)據(jù)的存儲問題,同時也易于編輯、分析和打印。
但是,電腦的外設(shè)接口中是沒有I2C接口的,因此需要對I2C部遲疑不決的數(shù)據(jù)進行轉(zhuǎn)換,使之能發(fā)往電腦,實現(xiàn)數(shù)據(jù)的文件存儲。綜合各種因素考慮,采用UART串口的方式比較方便,因為串口技術(shù)簡單、應(yīng)用廣泛、各種應(yīng)用軟件也較為豐富。
本文不僅介紹了如何實現(xiàn)I2C數(shù)據(jù)的轉(zhuǎn)發(fā)和自動存儲,同時也介紹了P89C664的ISP功能,并給出了詳細配合相關(guān)軟件,完全可以省去一臺價格不菲的編程器,實用性強。這非常適合業(yè)余自學(xué)單片機技術(shù)或者在家吵建立一個簡單實用的開發(fā)系統(tǒng)。
1 P89C664單片機及ISP、IAP簡介
P89C664是Plilips公司一款優(yōu)秀的51內(nèi)核單片機芯片、帶64KB的Flash程序夏令、1792B的數(shù)據(jù)存儲器、I2C硬件全工作方式接口、6 clocks/12 clocks可選、8個中斷源/4級中斷優(yōu)先級、雙DPTR寄存器、PCA以及IAP、ISP功能等,具體內(nèi)容請參考相關(guān)資源。在Philips的網(wǎng)站上可以下載到詳細的技術(shù)資料及各種應(yīng)用文檔:http://www.semiconductors.philips.com/。
下面科簡單的介紹一下ISP、IAP的概念。
ISP(In System Programming),即在系統(tǒng)編程。它允許MCU還在產(chǎn)品電路板上時,對其下載新的程序。這種技術(shù)的一個明優(yōu)點是,不需要把MCU芯片從你的電路板上拆下來,再裝到傳統(tǒng)的編程器上來寫入新的程序。你盡可以把具有ISP功能的MCU芯片焊接在電路板上,應(yīng)用更加可靠、方便。當(dāng)然,你得把MCU的UART串口留出,并設(shè)計好簡單的外圍電路;同時還配有一個專用的ISP軟件以實現(xiàn)用戶程序的直下載。這種專用的ISP下載軟件可以在各公司的網(wǎng)部上免費下載到。P89C664的ISP軟件可在Philips公司的網(wǎng)站上下載。當(dāng)然,如果你有興趣也可以自己設(shè)計一個個性化的ISP下載軟件,因為Philips公司對ISP的各種編程指令是開放的。
IAP(In Application Programming),即在應(yīng)用中程序。就是說,MCU自己可以獲取新的代碼并對自己重新編程。這是一個極為有用的技術(shù),比如可以通過Internet、程控電話網(wǎng)等給你的產(chǎn)品遠程升級,就像常見的殺毒軟件可以自動升級一樣。有了這項技術(shù),你就可以利用現(xiàn)在的程控電話網(wǎng)、互聯(lián)網(wǎng)等實現(xiàn)你的嵌入式系統(tǒng)遠程自動升級,而無須傳統(tǒng)的那種給客戶郵寄芯片而帶來的不便。
需要指出的是:ISP和IAP的核心技術(shù)是相同的,都是調(diào)用內(nèi)部的標準程序?qū)lash存儲器進行擦除和重新編程。區(qū)別在于:ISP由片內(nèi)固化的一個默認的串行加載程序(Boot Loader)來完成這一動作;而IAP則由用戶在自己的程序中完成這一調(diào)用,這就為產(chǎn)品的遠程升級提供了可能,甚至可以說是MCU應(yīng)用技術(shù)的一個里程碑。
2 ISP技術(shù)的應(yīng)用
對于Philips的MCU,其ISP電路很簡單,就是一個與計算機串口通信的電路(注:根據(jù)ISP控制軟件的不同電路會略有不同),電路如圖1所示。
國外的嵌入式系統(tǒng)學(xué)會(Embedded Systems Academy)提供了一個ISP軟件Flash Magic,可以在該組織的網(wǎng)站上下載到,網(wǎng)址為http://www.esacademy.com/。上面的連接電路也是與該軟件配套使用的。這是一款很優(yōu)秀的軟件,操作方便、功能強大,并且該軟件支持Philips公司的幾乎所有帶ISP的器件。另外,Philips公司也免費提供ISP軟件,但其易用性方面不如Flash Magic。
Flash Magic的安裝過程與標準的Windows軟件類似,在此不再詳述。安裝完成后,啟動Flash Magic后,有圖2所示畫面。
緊接著Flash Magic軟件將用默認的設(shè)置嘗試連接ISP芯片,如圖3所示。
請注意狀態(tài)欄中的顯示“Attempting to connect...”,說明Flash Magic正在嘗試著連接ISP裝置。如果你已經(jīng)用Flash Magic下載過程序并且沒有更改ISP裝置的話,則很快就可連接上。如果你是第一次使用,則需要進行一些必要的針對性設(shè)置,以便Flash Magic能正常連接帶ISP的MCU。如果連接不上,F(xiàn)lash Magic將彈出圖4所示的提示框。
請點擊“取消”!然后在軟件的主界面中選擇菜單Options/Advanced Options...,如圖5所示。
此時彈出設(shè)置框,請切換到Hardware Config選項卡,如圖6所示。
使“Use DTR and RTS to control RST and PSEN”、“Keep RTS asserted while COM Port open”選項有效即可,其它都不用更改,直接點“OK”確定。
Flash Magic的主界面上有清晰的1、2、3、4、5數(shù)字指示。這1~5的數(shù)字不令表示5個不同的區(qū)域,同時也不是下載程序的5個步驟。當(dāng)然如果你已經(jīng)設(shè)置好了,每次下載后就可直接點"start"按鈕即可。
在區(qū)域1中,我們需要設(shè)置這里的每一個選項,在這里我們是以P89C664為例的,如圖7所示。
COM Port:Flash Magic支持COM1、COM2、COM3和COM4共4個串口,在過大多數(shù)電腦只有COM1和COM2口,主選擇正確的COM口,該COM就是連接用戶板的那個串口。
Baud Rate:這里設(shè)置程序的下載速率,根據(jù)情況選擇合適的值,不易太大,否則會因為干擾而無法連接,通常情況下用19200bps就比較合適了。
Device:選擇ISP器件型號,在Flash Magic的1.81版中,共支持35種ISP器件,這里選擇P89C664。
Oscillator Frea.(MHz):在這里請?zhí)钊肽阌脩舭迳螹CU用兵晶振頻率值。
其它部分類似,可以自己下載下一個Flash Magic,新自操作一下就會很清楚了。
除了下載用戶程序外,F(xiàn)lash Magic還提供了其它的一些功能,都集中在“ISP”菜單中??梢杂H自去試一下,以后你會發(fā)現(xiàn)Flash Magic真的很好用。有了它一定能讓你的開發(fā)工作事半功倍,而且可以省去一臺昂貴的編程器,對單片機的初學(xué)者尤為適用。
3 I2C接收數(shù)據(jù)并轉(zhuǎn)發(fā)到電腦
由于P89C664帶有硬件I2C接口,因此我們用它作為從器件接收I2C總線上的數(shù)據(jù),Philips公司在相關(guān)的技術(shù)資料中給出了標準的I2C接口控制程序包。其實也可根據(jù)P89C664的資料自己來編寫I2C接口的控制程序,不過Philips公司提供的參考程序很值得我們學(xué)習(xí)、研究。下面程序中用的就是Phlips公司推出的I2C接口控制程序,為了更適用于接收大批量的I2C總線數(shù)據(jù),我們對其中的一部分代碼作了必要的更改,如果需要標準的控制程序請自己從Philips的網(wǎng)站上下載。
程序的流程是首先設(shè)置好I2C接口的地址以及各SFR的值,然后啟動I2C接口,并把接收到的數(shù)據(jù)通過串口發(fā)往電腦,在電腦上啟動另一串口調(diào)試軟件并做好相關(guān)的設(shè)置,即可將I2C總線的數(shù)據(jù)接收并保存下來。在這里,我們的用戶板作用相當(dāng)于一個協(xié)議轉(zhuǎn)換裝置,即把I2C總線的數(shù)據(jù)流轉(zhuǎn)換為UART的數(shù)據(jù)流并發(fā)往電腦。
請注意:一般我們的ISP下載、串口調(diào)試是公用同一部分電路和同一個串口的。因此,F(xiàn)lash Magic和串口調(diào)試軟件不能同時啟動,否則將出錯,請在下載完程序后關(guān)閉Flash Magic軟件再啟動串口調(diào)試軟件。
由于串口一直以來都是各種計算機系統(tǒng)所提供的一個標準接口,因此串口中的調(diào)試軟件在網(wǎng)上隨處可見,當(dāng)然你若有興趣也可自己設(shè)計一款串口調(diào)試軟件。
在這里我們采用的是一個名為串口調(diào)試器,英文名COMPort Debuger的軟件,比較好用,并且具有大批量數(shù)據(jù)的自動保存功能,這個功能很重要。該軟件啟動后的界面如圖8所示。
在發(fā)送區(qū)和接收區(qū)中顯示有軟件作者的網(wǎng)站,大家可以去那里下載最新版。
在用戶板程序運行并對串口調(diào)試設(shè)置好后即可點“打開串口”,此時在接收區(qū)將顯示通過串口發(fā)來的各種數(shù)據(jù)。
網(wǎng)站(www.dpj.com.cn)給出該轉(zhuǎn)發(fā)裝置中P89C664的完事源泉程序,程序中附有必要的注釋。
結(jié)語
本文較為詳細的介紹了P89C664 ISP功能的應(yīng)用,及利用簡單的在線下載裝置編程實現(xiàn)I2C總線的數(shù)據(jù)轉(zhuǎn)發(fā)和保存;同時給出了詳細的I2C硬件接口的初始化及整套裝置的源程序。可用于各種大批量I2C總線數(shù)據(jù)的自動保存、編輯、分析、打印等,也可將該置用于一般的開發(fā)中,測試你的程序是否滿足要求等。
- 自動存儲(8580)
- 用P89(8248)
相關(guān)推薦
51單片機I2C總線AD-DA轉(zhuǎn)換的代碼有幾個不懂的地方,求大神指點
89c51單片機模擬i2c總線怎么實現(xiàn)一主多從呢?
I2C 總線協(xié)議圖解
I2C總線信號時序總結(jié)
I2C總線沖突
I2C總線出現(xiàn)問題
I2C總線協(xié)議的基礎(chǔ)知識
I2C總線協(xié)議詳解
I2C總線在大屏幕電視中的運用
I2C總線彩電故障檢修三例
I2C總線彩電的檢修
I2C總線技術(shù)的時序問題
I2C總線支持幾種傳輸模式
I2C總線是什么
I2C總線是什么
I2C總線是如何去定義的
I2C總線概述
I2C總線的AT24C02芯片應(yīng)用有哪些呢
I2C總線的使用與編程
I2C總線的原理是什么
I2C總線的學(xué)習(xí)資料分享
I2C總線的相關(guān)資料推薦
I2C總線的要點總結(jié)
I2C總線簡介
I2C總線簡介
I2C總線簡介
I2C總線簡單介紹
I2C總線簡析
I2C總線通信協(xié)議的相關(guān)資料下載
I2C總線驅(qū)動和設(shè)備驅(qū)動
I2C總線:何時使用I2C緩沖器
I2C總線:何時使用I2C緩沖器
I2C總線:固件實現(xiàn)詳細信息
I2C總線:硬件實現(xiàn)細節(jié)
I2C不迷茫--系列文章講透I2C
I2C到底能做什么?
I2C協(xié)議介紹
I2C協(xié)議簡介
I2C的物理層與協(xié)議層詳解
I2C的簡介
I2C簡介
I2C通訊協(xié)議簡介
I2c總線推送數(shù)據(jù)錯誤
i2c總線規(guī)范
i2c通信協(xié)議
總線協(xié)議I2C
用i2c總線往攝像頭寄存器中寫寄存器
用STM32F4實現(xiàn)了一個I2C總線數(shù)據(jù)分析記錄儀,無限制記錄數(shù)據(jù)
CC2640怎么大批量測試FR性能
FPGA實現(xiàn)I2C總線的通信接口的基本原理
Linux的I2C體系結(jié)構(gòu)
USB總線轉(zhuǎn)I2C總線接口芯片
verilog I2C總線協(xié)議 單總線協(xié)議
【問題匯總】關(guān)于STM32的I2C問題
了解I2C協(xié)議
什么是軟件I2C和硬件I2C
使用多種編程語言實現(xiàn)對I2C總線設(shè)備(傳感器)進行控制
關(guān)于I2C總線的程序問題
關(guān)于CPLD和I2C總線實現(xiàn)數(shù)據(jù)選擇的問題
利用I2C總線實現(xiàn)ATmega88的在應(yīng)用編程
到底什么是I2C
單片機模擬I2C總線,讀取AT24C02——田衛(wèi)衛(wèi)修正郭天祥版
基于 FPGA 的模擬 I2C協(xié)議系統(tǒng)設(shè)計
基于I2C總線圖像傳感器配置的FPGA實現(xiàn)
基于I2C總線的CMOS圖像傳感器接口電路設(shè)計
基于I2C串行總線在單片機系統(tǒng)中的數(shù)據(jù)
基于緯圖Ginkgo USB-I2C實現(xiàn)從機I2C收發(fā)數(shù)據(jù)
如何去使用I2C總線
如何解決I2C總線的麻煩?
如何驅(qū)動I2C總線?
彩電I2C總線檢修實踐
模擬I2C總線通信實現(xiàn)EEPROM讀寫功能【附1實例】
淺析I2C總線的工作原理與使用注意事項
淺談I2C總線
淺談STM32硬件I2C的使用
穩(wěn)定可靠的I2C通信的設(shè)計計算
芯片大批量生產(chǎn)時發(fā)現(xiàn)部分芯片flash里面數(shù)據(jù)丟失,可能是什么原因?qū)е碌模?/a>
請教!關(guān)于I2C總線發(fā)收數(shù)據(jù)的程序的問題
用P89C664 實現(xiàn)I2C 總線大批量數(shù)據(jù)的自動存儲

評論