摘要:結(jié)合Flash Magic軟件對PhilipsP89C664單片機(jī)ISP功能進(jìn)行詳細(xì)介紹,同時詳細(xì)敘述利用P89C664硬件I2C接口接收數(shù)據(jù)并轉(zhuǎn)發(fā)到電腦,實現(xiàn)I2C總線大批量數(shù)據(jù)的自動保存技術(shù),并附有完事的源泉程序清單及必要的注釋。
引言
在實際工作中,有些情況下可能需要對一些I2C接口發(fā)出的數(shù)據(jù)進(jìn)行分析,如果數(shù)據(jù)較少則比較容易解決。比如可以直接把數(shù)據(jù)保存到單片機(jī)的RAM中,然后通過LED顯示出來,但如果數(shù)據(jù)量很大,這種方法就很河取了。在這種情況下,想辦法把大量的數(shù)據(jù)保存到電腦里是一個比較好的方法這樣不但可以解決大批量數(shù)據(jù)的存儲問題,同時也易于編輯、分析和打印。
但是,電腦的外設(shè)接口中是沒有I2C接口的,因此需要對I2C部遲疑不決的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使之能發(fā)往電腦,實現(xiàn)數(shù)據(jù)的文件存儲。綜合各種因素考慮,采用UART串口的方式比較方便,因為串口技術(shù)簡單、應(yīng)用廣泛、各種應(yīng)用軟件也較為豐富。
本文不僅介紹了如何實現(xiàn)I2C數(shù)據(jù)的轉(zhuǎn)發(fā)和自動存儲,同時也介紹了P89C664的ISP功能,并給出了詳細(xì)配合相關(guān)軟件,完全可以省去一臺價格不菲的編程器,實用性強(qiáng)。這非常適合業(yè)余自學(xué)單片機(jī)技術(shù)或者在家吵建立一個簡單實用的開發(fā)系統(tǒng)。
1 P89C664單片機(jī)及ISP、IAP簡介
P89C664是Plilips公司一款優(yōu)秀的51內(nèi)核單片機(jī)芯片、帶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)站上可以下載到詳細(xì)的技術(shù)資料及各種應(yīng)用文檔:http://www.semiconductors.philips.com/。
下面科簡單的介紹一下ISP、IAP的概念。
ISP(In System Programming),即在系統(tǒng)編程。它允許MCU還在產(chǎn)品電路板上時,對其下載新的程序。這種技術(shù)的一個明優(yōu)點(diǎn)是,不需要把MCU芯片從你的電路板上拆下來,再裝到傳統(tǒng)的編程器上來寫入新的程序。你盡可以把具有ISP功能的MCU芯片焊接在電路板上,應(yīng)用更加可靠、方便。當(dāng)然,你得把MCU的UART串口留出,并設(shè)計好簡單的外圍電路;同時還配有一個專用的ISP軟件以實現(xiàn)用戶程序的直下載。這種專用的ISP下載軟件可以在各公司的網(wǎng)部上免費(fèi)下載到。P89C664的ISP軟件可在Philips公司的網(wǎng)站上下載。當(dāng)然,如果你有興趣也可以自己設(shè)計一個個性化的ISP下載軟件,因為Philips公司對ISP的各種編程指令是開放的。
IAP(In Application Programming),即在應(yīng)用中程序。就是說,MCU自己可以獲取新的代碼并對自己重新編程。這是一個極為有用的技術(shù),比如可以通過Internet、程控電話網(wǎng)等給你的產(chǎn)品遠(yuǎn)程升級,就像常見的殺毒軟件可以自動升級一樣。有了這項技術(shù),你就可以利用現(xiàn)在的程控電話網(wǎng)、互聯(lián)網(wǎng)等實現(xiàn)你的嵌入式系統(tǒng)遠(yuǎn)程自動升級,而無須傳統(tǒng)的那種給客戶郵寄芯片而帶來的不便。
需要指出的是:ISP和IAP的核心技術(shù)是相同的,都是調(diào)用內(nèi)部的標(biāo)準(zhǔn)程序?qū)lash存儲器進(jìn)行擦除和重新編程。區(qū)別在于:ISP由片內(nèi)固化的一個默認(rèn)的串行加載程序(Boot Loader)來完成這一動作;而IAP則由用戶在自己的程序中完成這一調(diào)用,這就為產(chǎn)品的遠(yuǎn)程升級提供了可能,甚至可以說是MCU應(yīng)用技術(shù)的一個里程碑。
2 ISP技術(shù)的應(yīng)用
對于Philips的MCU,其ISP電路很簡單,就是一個與計算機(jī)串口通信的電路(注:根據(jù)ISP控制軟件的不同電路會略有不同),電路如圖1所示。
國外的嵌入式系統(tǒng)學(xué)會(Embedded Systems Academy)提供了一個ISP軟件Flash Magic,可以在該組織的網(wǎng)站上下載到,網(wǎng)址為http://www.esacademy.com/。上面的連接電路也是與該軟件配套使用的。這是一款很優(yōu)秀的軟件,操作方便、功能強(qiáng)大,并且該軟件支持Philips公司的幾乎所有帶ISP的器件。另外,Philips公司也免費(fèi)提供ISP軟件,但其易用性方面不如Flash Magic。
Flash Magic的安裝過程與標(biāo)準(zhǔn)的Windows軟件類似,在此不再詳述。安裝完成后,啟動Flash Magic后,有圖2所示畫面。
緊接著Flash Magic軟件將用默認(rèn)的設(shè)置嘗試連接ISP芯片,如圖3所示。
請注意狀態(tài)欄中的顯示“Attempting to connect...”,說明Flash Magic正在嘗試著連接ISP裝置。如果你已經(jīng)用Flash Magic下載過程序并且沒有更改ISP裝置的話,則很快就可連接上。如果你是第一次使用,則需要進(jìn)行一些必要的針對性設(shè)置,以便Flash Magic能正常連接帶ISP的MCU。如果連接不上,F(xiàn)lash Magic將彈出圖4所示的提示框。
請點(diǎn)擊“取消”!然后在軟件的主界面中選擇菜單Options/Advanced Options...,如圖5所示。
此時彈出設(shè)置框,請切換到Hardware Config選項卡,如圖6所示。
使“Use DTR and RTS to control RST and PSEN”、“Keep RTS asserted while COM Port open”選項有效即可,其它都不用更改,直接點(diǎn)“OK”確定。
Flash Magic的主界面上有清晰的1、2、3、4、5數(shù)字指示。這1~5的數(shù)字不令表示5個不同的區(qū)域,同時也不是下載程序的5個步驟。當(dāng)然如果你已經(jīng)設(shè)置好了,每次下載后就可直接點(diǎn)"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ā)工作事半功倍,而且可以省去一臺昂貴的編程器,對單片機(jī)的初學(xué)者尤為適用。
3 I2C接收數(shù)據(jù)并轉(zhuǎn)發(fā)到電腦
由于P89C664帶有硬件I2C接口,因此我們用它作為從器件接收I2C總線上的數(shù)據(jù),Philips公司在相關(guān)的技術(shù)資料中給出了標(biāo)準(zhǔn)的I2C接口控制程序包。其實也可根據(jù)P89C664的資料自己來編寫I2C接口的控制程序,不過Philips公司提供的參考程序很值得我們學(xué)習(xí)、研究。下面程序中用的就是Phlips公司推出的I2C接口控制程序,為了更適用于接收大批量的I2C總線數(shù)據(jù),我們對其中的一部分代碼作了必要的更改,如果需要標(biāo)準(zhǔn)的控制程序請自己從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)試軟件。
由于串口一直以來都是各種計算機(jī)系統(tǒng)所提供的一個標(biāo)準(zhǔn)接口,因此串口中的調(diào)試軟件在網(wǎng)上隨處可見,當(dāng)然你若有興趣也可自己設(shè)計一款串口調(diào)試軟件。
在這里我們采用的是一個名為串口調(diào)試器,英文名COMPort Debuger的軟件,比較好用,并且具有大批量數(shù)據(jù)的自動保存功能,這個功能很重要。該軟件啟動后的界面如圖8所示。
在發(fā)送區(qū)和接收區(qū)中顯示有軟件作者的網(wǎng)站,大家可以去那里下載最新版。
在用戶板程序運(yùn)行并對串口調(diào)試設(shè)置好后即可點(diǎn)“打開串口”,此時在接收區(qū)將顯示通過串口發(fā)來的各種數(shù)據(jù)。
網(wǎng)站(www.dpj.com.cn)給出該轉(zhuǎn)發(fā)裝置中P89C664的完事源泉程序,程序中附有必要的注釋。
結(jié)語
本文較為詳細(xì)的介紹了P89C664 ISP功能的應(yīng)用,及利用簡單的在線下載裝置編程實現(xiàn)I2C總線的數(shù)據(jù)轉(zhuǎn)發(fā)和保存;同時給出了詳細(xì)的I2C硬件接口的初始化及整套裝置的源程序??捎糜诟鞣N大批量I2C總線數(shù)據(jù)的自動保存、編輯、分析、打印等,也可將該置用于一般的開發(fā)中,測試你的程序是否滿足要求等。
- 自動存儲(8753)
- 用P89(8334)
GPIO模擬I2C總線的驅(qū)動設(shè)計與實現(xiàn)
6321
I2C總線協(xié)議的工作流程
2417
I2C讀寫時序分析和實現(xiàn)思路
3902
I2C總線原理詳解
3925
實現(xiàn)I2C總線控制器的VHDL源代碼
251I2C總線驅(qū)動程序
64i2c總線介紹
0i2c總線ppt(I2C總線器件應(yīng)用)
0i2c總線技術(shù) (非常詳細(xì))
62I2C總線器件的C51讀寫程序
62用嵌入式系統(tǒng)的SPI模塊實現(xiàn)I2C總線通信
38用GAL配合ISA總線模擬I2C總線時序實現(xiàn)對FI1256M
33用P89C664 實現(xiàn)I2C 總線大批量數(shù)據(jù)的自動存儲
13視頻解碼技術(shù)中I2C總線控制核的實現(xiàn)
17I2C總線串行數(shù)據(jù)接口的Verilog 實現(xiàn)
144i2c總線的特點(diǎn)
26基于I2C總線的鍵盤顯示模塊設(shè)計
24I2C總線在MCS51系列單片機(jī)數(shù)據(jù)采集系統(tǒng)中的實現(xiàn)
48基于S3C44B0X的I2C總線設(shè)計
30I2C總線規(guī)范與I2C器件C51讀寫程序
95I2C總線應(yīng)用中的幾個問題
51用Verilog HDL實現(xiàn)I2C總線功能
104I2C總線接口模塊設(shè)計
41I2C總線
49基于I2C總線的大型開關(guān)矩陣設(shè)計與實現(xiàn)
44PCA9564 并行總線轉(zhuǎn)I2C總線接口芯片簡介
51PCA9665并行總線轉(zhuǎn)I2C總線接口芯片簡介
46基于EasyFPGA030的I2C總線接口模塊
29I2C總線技術(shù)在彩電中的應(yīng)用
25P82B96 I2C擴(kuò)展器Demo使用簡介
116基于I2C總線的EEPROM驅(qū)動程序
55I2C總線在Linux系統(tǒng)中的驅(qū)動設(shè)計
40MAX517與單片機(jī)的I2C總線數(shù)據(jù)通信
2453
i2c總線
1403
I2C總線驅(qū)動程序的實現(xiàn)
6072
I2C總線協(xié)議及其應(yīng)用
1756
I2C總線的工作原理與應(yīng)用
5200
帶RTC的I2C總線鐵電存儲器芯片-FM31256
3892
用Verilog HDL實現(xiàn)I2C總線功能
7138
I2C總線的單片機(jī)C語言實現(xiàn)及其應(yīng)用
3293
I2C彩電總線維修經(jīng)驗談
1988什么是IrDa/I2C管理總線
799模擬I2C總線多主節(jié)點(diǎn)通信原理及實現(xiàn)方法
5871
I2C總線詳解
4147i2c總線規(guī)范
484基于CPLD的I2C總線接口設(shè)計
96NIOS實現(xiàn)I2C總線
38互聯(lián)IC總線(I2C)
13I2C總線的結(jié)構(gòu)介紹
6《振南電子STM32視頻教程》第八講:I2C總線
1264基于C語言的I2C總線軟件模塊設(shè)計
780
i2c總線相關(guān)知識
4058
I2C總線的特點(diǎn)、控制技術(shù)與傳輸分析
10757I2C總線原理與應(yīng)用
860
淺談I2C總線,I2C接口和SPI接口的作用相同
25809
AT89S52單片機(jī)并行端口模擬I2C總線協(xié)議讀寫AT24C04的設(shè)計
3192C51模擬I2C總線的詳細(xì)資料說明
14I2C總線物理拓?fù)浣Y(jié)構(gòu)_I2C總線協(xié)議解析
7089
淺談PCA9564 I2C 總線控制器評估板
4264
i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程
7750干貨:I2C總線最全教程講解
14380
I2C總線的基本通信總結(jié)
19393
什么是I2C總線 I2C總線開發(fā)設(shè)計需要注意點(diǎn)
5851
51單片機(jī)——I2C總線
13你不能不知的I2C總線
14嵌入式內(nèi)核及驅(qū)動開發(fā)-09IIC子系統(tǒng)框架使用(I2C協(xié)議和時序,I2C驅(qū)動框架,I2C從設(shè)備驅(qū)動開發(fā),MPU6050硬件連接
17硬件I2C與模擬I2C
81ESP32 之 ESP-IDF 教學(xué)(六)——I2C數(shù)據(jù)總線(I2C)
22簡述I2C總線協(xié)議
2184
I2C子系統(tǒng)SW Architecture
1514
基于單片機(jī)的I2C總線與AT24C01實驗 I2C總線通信原理講解
5341
I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點(diǎn)?
2898i2c采樣是上升沿嗎?
4509P82B715 I2C總線擴(kuò)展器數(shù)據(jù)表
0I2C總線通信原理 如何設(shè)計I2C總線電路
2047I2C總線應(yīng)用實例分析
1378I2C總線數(shù)據(jù)傳輸速度要求
3766I2C總線故障排除技巧
4118I2C總線協(xié)議詳細(xì)解析
1712I2C總線的工作模式介紹
1768I2C總線與Arduino的接口示例
2529I2C總線數(shù)據(jù)包結(jié)構(gòu)詳解
1524I2C總線的優(yōu)缺點(diǎn)分析
1925P82B715:I2C總線擴(kuò)展的得力助手
201
電子發(fā)燒友App




評論