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




評論