国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

C8051FXXX單片機FLASH程序的自動升級

發(fā)布時間:2010-11-16 15:55    發(fā)布者:eetech
關(guān)鍵詞: C8051Fxxx , Flash , 程序 , 單片機 , 自動升級
C8051FXXX系列高速SOC單片機是由美國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),但當將C8051F020目標系統(tǒng)集成到產(chǎn)品后,則由于操作系統(tǒng)及軟硬件接口不一樣等等原因,不能在最終產(chǎn)品中用集成開發(fā)環(huán)境來下載FLASH程序,故產(chǎn)品到了用戶處之后,如要再進行FLASH程序的更新,則必須更換相應(yīng)的集成電路印刷板,造成很多麻煩及不可靠因素。筆者通過實驗,在用戶操作界面的PC機及C8051F020的單片機控制系統(tǒng)之間,通過串行口進行C8051F020單片機控制程序的自動升級及程序加密,從而使用戶只要從互聯(lián)網(wǎng)上下載控制程序,即可實現(xiàn)單片機程序的自動升級。以下以64KBFLASH RAM為例簡要介紹單片機目標程序的準備及自動升級的制作過程。  

1)系統(tǒng)簡介及自動升級的實現(xiàn)方法  

PC機(80486/DX2以上)  具有1.44吋軟驅(qū)及串行口。單片機控制系統(tǒng)(具有串行口及內(nèi)置的FLASH程序區(qū))。PC與C8051FXXX之間通過九針串行接口線相連。設(shè)置傳送速率為115200BIT/S。  

C8051F020單片機的FLASH RAM分為用戶程序區(qū)(0000H"0FDFDH),廠家保留及加密區(qū)(0FDFEH"0FFFFH)兩部分,F(xiàn)將用戶程序區(qū)(0000H"0FDFDH)的0000H"0DFFFH部分用于裝載用戶程序,而0E000H"0FDFDH部分作為引導程序區(qū),引導程序區(qū)在升級時不能改變,它用于與用戶操作界面的PC機部分進行程序接收及裝載等工作。

在控制程序區(qū)0000H"0DFFFH中,做一握手程序塊,在上電時,用于和用戶操作界面PC機部分進行握手,當接收到PC機部分要進行軟件升級的命令時,程序跳至引導程序區(qū),執(zhí)行如下流程:  

->發(fā)送準備升級字節(jié)到PC機  
->刪除FLASH程序區(qū)  
->發(fā)送開始下載命令到PC機  
->接收且放到相應(yīng)地址  
->加密  

為了達到自動升級的目的,需要在用戶界面的PC機引導時,自動檢測PC機外設(shè),軟盤控制器,一旦檢索到軟盤中有升級文件及其索引文件,且其版本比現(xiàn)有的單片機控制程序的版本高,則開始執(zhí)行PC機中的下載程序。   

2)刪除0000H"ODFFFH的FLASH程序區(qū)

C8051FXXX系列單片機將FLASH程序區(qū)按512字節(jié)為一頁(PAGE)來組織,在刪除控制程序區(qū)0000H"ODFFFH時,首先屏蔽掉所有中斷,使能程序刪除位PSEE(PSCTL.1),同時使能PSWE(PSCTL.0)MOVX指令指向FALSH程序區(qū)。應(yīng)用MOVX指令在每一頁的任意一地址寫0FFH,則將該頁的所有字節(jié)都置為0FFH,從而實現(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機中接收程序并放到相應(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程序的準備  

為了更快地得到—下載到C8051F020的FLASH程序,先在CYGNAL IDE開發(fā)環(huán)境中,將做好的控制程序編澤,鏈按,然后用廠家提供的串行適配器將PC與目標板連接起來,傳送FLASH程序到目標系統(tǒng)中去。接下來用“UPLOAD MEMORY T0 PILE…”(如圖示)功能將0000H"OEOOOH的FLASH代碼程序上載到硬盤存儲器中,再將此ASCII文件轉(zhuǎn)化為16進制的HE文件,注意將其十的0DH,0AH等回車換行字節(jié)取消,最后生成的HEX文件即可被直接下載到FLASH的0000H"0DFFFH的相應(yīng)地址中。此HEX文件即可發(fā)送至用戶處,用于升級用戶的單片機FLASH程序。  


  
5)C程序的準備

//發(fā)送FLASH程序文件到單片機中去
BOOL SendFileToFlash()
{
unsigned  char ch;
FILE *fp;
long int flen,wi=0;
int i,j;  
if ((fp = fopen("flashwl","rb"))==NULL)
{
  return FALSE;
}
//初使化串口,且與單片機系統(tǒng)握手
InitialCommuClass();  
//發(fā)送數(shù)據(jù)
for (wi=0,j=0;wi=0x30) %26;amp;%26;amp; (ch=0x61) %26;amp;%26;amp; (ch=0x30) %26;amp;%26;amp; (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系列的單片機聯(lián)機成功,并最后用于在用戶處的單片機FLASH程序升級。
本文地址:http://m.qingdxww.cn/thread-39785-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97精品免费视频 | 日韩一区视频在线 | 国产成人亚洲精品 | 国内久久精品视频 | 手机看片日韩欧美 | 欧美区亚洲区 | 黄片毛片免费看 | 欧美开嫩苞实拍视频在线观看 | ww亚洲ww在线观看国产 | xf在线a精品一区二区视频网站 | 国产午夜免费不卡精品理论片 | 亚洲婷婷第一狠人综合精品 | 色综合99 | 99热在线这里只有精品 | 欧美日韩一日韩一线不卡 | www.91麻豆.com| 日本久久高清视频 | 午夜秒播 | 国产日产欧美一区二区三区 | 国产三级在线免费 | 卡一卡二卡三免费的视频 | a亚洲| 日本中文字幕网站 | 麻豆日记 | 国产免费爱在线观看视频 | 欧美黑人一级 | 黄视频网站在线观看 | 精品一区二区三区视频在线观看 | 日韩中文字幕高清在线专区 | 亚洲 欧美 日韩 丝袜 另类 | 成人免费xx | 天堂在线www在线资源 | 麻豆国产传媒片在线看 | 久久精品国产在热久久2019 | 国产精品视频免费一区二区三区 | 亚洲一级毛片免费看 | 四虎最新永久免费视频 | 天天做天天爱天天做天天吃中 | 日韩亚洲欧美一区 | 亚洲香蕉综合在人在线时看 | 这里只有精品免费视频 |