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

評論