當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]作者Email: wolfman6353@sina.com 引言: C8051FXXX系列高速SOC單片機(jī)是由美國Cygnal公司開發(fā)的完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微處理器內(nèi)核,內(nèi)部集成

作者Email: wolfman6353@sina.com 引言: C8051FXXX系列高速SOC單片機(jī)是由美國Cygnal公司開發(fā)的完全集成的混合信號系統(tǒng)級芯片,具有與8051兼容的微處理器內(nèi)核,內(nèi)部集成 FLASH程序存儲器,具有在系統(tǒng)重新編程能力,以C8051F020為例,內(nèi)部集成64K的FLASH程序存儲器。在系統(tǒng)控制軟件的開發(fā)調(diào)試階段,可用集成開發(fā)環(huán)境來下載及測試系統(tǒng),但當(dāng)將C8051F020目標(biāo)系統(tǒng)集成到產(chǎn)品后,則由于操作系統(tǒng)及軟硬件接口不一樣等等原因,不能在最終產(chǎn)品中用集成開發(fā)環(huán)境來下載FLASH程序,故產(chǎn)品到了用戶處之后,如要再進(jìn)行FLASH程序的更新,則必須更換相應(yīng)的集成電路印刷板,造成很多麻煩及不可靠因素。筆者通過實(shí)驗(yàn),在用戶操作界面的PC機(jī)及C8051F020的單片機(jī)控制系統(tǒng)之間,通過串行口進(jìn)行C8051F020單片機(jī)控制程序的自動升級及程序加密,從而使用戶只要從互聯(lián)網(wǎng)上下載控制程序,即可實(shí)現(xiàn)單片機(jī)程序的自動升級。以下以64KBFLASH RAM為例簡要介紹單片機(jī)目標(biāo)程序的準(zhǔn)備及自動升級的制作過程。 1)系統(tǒng)簡介及自動升級的實(shí)現(xiàn)方法 PC機(jī)(80486/DX2以上) 具有1.44吋軟驅(qū)及串行口。單片機(jī)控制系統(tǒng)(具有串行口及內(nèi)置的FLASH程序區(qū))。PC與C8051FXXX之間通過九針串行接口線相連。設(shè)置傳送速率為115200BIT/S。 C8051F020單片機(jī)的FLASH RAM分為用戶程序區(qū)(0000H"0FDFDH),廠家保留及加密區(qū)(0FDFEH"0FFFFH)兩部分?,F(xiàn)將用戶程序區(qū) (0000H"0FDFDH)的0000H"0DFFFH部分用于裝載用戶程序,而0E000H"0FDFDH部分作為引導(dǎo)程序區(qū),引導(dǎo)程序區(qū)在升級時不能改變,它用于與用戶操作界面的PC機(jī)部分進(jìn)行程序接收及裝載等工作。 在控制程序區(qū)0000H"0DFFFH中,做一握手程序塊,在上電時,用于和用戶操作界面PC機(jī)部分進(jìn)行握手,當(dāng)接收到PC機(jī)部分要進(jìn)行軟件升級的命令時,程序跳至引導(dǎo)程序區(qū),執(zhí)行如下流程: ->發(fā)送準(zhǔn)備升級字節(jié)到PC機(jī) ->刪除FLASH程序區(qū) ->發(fā)送開始下載命令到PC機(jī) ->接收且放到相應(yīng)地址 ->加密 為了達(dá)到自動升級的目的,需要在用戶界面的PC機(jī)引導(dǎo)時,自動檢測PC機(jī)外設(shè),軟盤控制器,一旦檢索到軟盤中有升級文件及其索引文件,且其版本比現(xiàn)有的單片機(jī)控制程序的版本高,則開始執(zhí)行PC機(jī)中的下載程序。 2)刪除0000H"ODFFFH的FLASH程序區(qū) C8051FXXX系列單片機(jī)將FLASH程序區(qū)按512字節(jié)為一頁(PAGE)來組織,在刪除控制程序區(qū)0000H"ODFFFH時,首先屏蔽掉所有中斷,使能程序刪除位PSEE(PSCTL.1),同時使能PSWE(PSCTL.0)MOVX指令指向FALSH程序區(qū)。應(yīng)用MOVX指令在每一頁的任意一地址寫0FFH,則將該頁的所有字節(jié)都置為0FFH,從而實(shí)現(xiàn)了該頁的刪除。依此操作可刪除所有的程序頁。刪除部分程序如下: //刪除0000H’ODFFFH的FLASH程序區(qū) DEL_NEXT_PAGE: CLR EA MOV A,FLSCL ANL A,#0FEH ORL A,#01H MOV FLSCL,A MOV A,PSCTL ANL A,#0FCH ORL A,#03H MOV PSCTL,A;#03H //使能頁刪除及頁寫操作 MOV A,#0FFH MOVX @DPTR,A //將該頁全填充為0FFH INC DPH INC DPH //調(diào)節(jié)頁指針 MOV A,PSCTL ANL A,#0FDH MOV PSCTL,A;#03H MOV A,DPH CJNE A,#0E0H,DEL01_NEXT_PAGE DEL01_NEXT_PAGE: JC DEL_NEXT_PAGE 3)從PC中接收FLASH字節(jié)以下程序用于從PC機(jī)中接收程序并放到相應(yīng)的FLASH地址。在此僅使能PSWE(PSCTL.0)位,使MOVX指令指向FALSH程序區(qū)。 MOV DPTR,#0000H MOV FLSCL,#01H MOV PSCTL,#01H; RECEIVE_NEXT_DOWNLOAD_CHAR: MOV FLSCL,#01H MOV PSCTL,#01H; JNB RI,$ CLR RI MOV A,SBUF0 MOVX @DPTR,A INC DPTR MOV A,DPH CJNE A,#0E0H,RECEIVE_NEXT_DOWNLOAD_CHAR MOV FLSCL,#01H //FLASH 寫使能 MOV PSCTL,#01H MOV DPTR,#0FDFEH CLR A MOVX @DPTR,A MOV DPTR,#0FDFFH MOVX @DPTR,A MOV PSCTL,#00H MOV FLSCL,#00H CYCLE_FOREVER:SJMP CYCLE_FOREVER;死循環(huán) RET 4)FLASH程序的準(zhǔn)備 為了更快地得到—下載到C8051F020的FLASH程序,先在CYGNAL IDE開發(fā)環(huán)境中,將做好的控制程序編澤,鏈按,然后用廠家提供的串行適配器將PC與目標(biāo)板連接起來,傳送FLASH程序到目標(biāo)系統(tǒng)中去。接下來用 “UPLOAD MEMORY T0 PILE…”(如圖示)功能將0000H"OEOOOH的FLASH代碼程序上載到硬盤存儲器中,再將此ASCII文件轉(zhuǎn)化為16進(jìn)制的HE文件,注意將其十的0DH,0AH等回車換行字節(jié)取消,最后生成的HEX文件即可被直接下載到FLASH的0000H"0DFFFH的相應(yīng)地址中。此HEX文件即可發(fā)送至用戶處,用于升級用戶的單片機(jī)FLASH程序。

 

5)C程序的準(zhǔn)備 //發(fā)送FLASH程序文件到單片機(jī)中去 BOOL SendFileToFlash() { unsigned char ch; FILE *fp; long int flen,wi=0; int i,j; if ((fp = fopen("flashwl","rb"))==NULL) { return FALSE; } //初使化串口,且與單片機(jī)系統(tǒng)握手 InitialCommuClass(); //發(fā)送數(shù)據(jù) for (wi=0,j=0;wi=0x30) %26;amp;%26;amp; (ch<=0x39)) ru+=(ch-0x30)*16; else if ((ch>=0x61) %26;amp;%26;amp; (ch<=0x66)) ru+=((ch-0x61)+0x0a)*16; fread(%26;amp;ch,sizeof(unsigned char),1,fp); if ((ch>=0x30) %26;amp;%26;amp; (ch<=0x39)) ru+=ch-0x30; else if ((ch>=0x61) %26;amp;%26;amp; (ch<=0x66)) ru+=(ch-0x61)+0x0a; fwrite(%26;amp;ru,sizeof(unsigned char),1,fpw); fread(%26;amp;ch,sizeof(unsigned char),1,fp);/*0x0d*/ fread(%26;amp;ch,sizeof(unsigned char),1,fp);/*0x0d*/ fread(%26;amp;ch,sizeof(unsigned char),1,fp);/*0x0a*/ j++; if (j==255) { j=0; fread(%26;amp;ch,sizeof(unsigned char),1,fp); fread(%26;amp;ch,sizeof(unsigned char),1,fp); fread(%26;amp;ch,sizeof(unsigned char),1,fp); fread(%26;amp;ch,sizeof(unsigned char),1,fp); fread(%26;amp;ch,sizeof(unsigned char),1,fp); continue; } } fclose(fp);fclose(fpw); } 結(jié)束語 以上所介紹的FLASH自動升級程序的PC部分在VC6.0及TC2.0中開發(fā),并與805lFXXX系列的單片機(jī)聯(lián)機(jī)成功,并最后用于在用戶處的單片機(jī)FLASH程序升級。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉